From b03275ef01c1d5c9082dc9c6d9ab94618a32550c Mon Sep 17 00:00:00 2001 From: cicdguy Date: Wed, 8 Jan 2025 18:10:19 +0000 Subject: [PATCH] deploy: ab4b15e0017d4707ad15300fbab766ff99aee719 --- development/appendix/reproducibility.html | 4 +- .../www/lock/graphs/efficacy/fstg01.lock | 50 +- .../www/lock/graphs/efficacy/fstg02.lock | 50 +- .../www/lock/graphs/efficacy/kmg01.lock | 50 +- .../www/lock/graphs/efficacy/mmrmg01.lock | 50 +- .../www/lock/graphs/efficacy/mmrmg02.lock | 22 +- .../assets/www/lock/graphs/other/brg01.lock | 16 +- .../assets/www/lock/graphs/other/bwg01.lock | 39 +- .../assets/www/lock/graphs/other/cig01.lock | 50 +- .../assets/www/lock/graphs/other/ippg01.lock | 50 +- .../assets/www/lock/graphs/other/ltg01.lock | 50 +- .../assets/www/lock/graphs/other/mng01.lock | 50 +- .../lock/graphs/pharmacokinetic/pkcg01.lock | 16 +- .../lock/graphs/pharmacokinetic/pkcg02.lock | 16 +- .../lock/graphs/pharmacokinetic/pkcg03.lock | 16 +- .../lock/graphs/pharmacokinetic/pkpg01.lock | 16 +- .../lock/graphs/pharmacokinetic/pkpg02.lock | 16 +- .../lock/graphs/pharmacokinetic/pkpg03.lock | 16 +- .../lock/graphs/pharmacokinetic/pkpg04.lock | 16 +- .../lock/graphs/pharmacokinetic/pkpg06.lock | 16 +- .../assets/www/lock/listings/ADA/adal02.lock | 12 +- .../assets/www/lock/listings/ECG/egl01.lock | 12 +- .../lock/listings/adverse-events/ael01.lock | 12 +- .../listings/adverse-events/ael01_nollt.lock | 12 +- .../lock/listings/adverse-events/ael02.lock | 12 +- .../listings/adverse-events/ael02_ed.lock | 12 +- .../lock/listings/adverse-events/ael03.lock | 12 +- .../lock/listings/adverse-events/ael04.lock | 12 +- .../concomitant-medications/cml01.lock | 12 +- .../concomitant-medications/cml02a_gl.lock | 12 +- .../concomitant-medications/cml02b_gl.lock | 12 +- .../dsur4.lock | 12 +- .../www/lock/listings/disposition/dsl01.lock | 12 +- .../www/lock/listings/disposition/dsl02.lock | 12 +- .../www/lock/listings/efficacy/oncl01.lock | 12 +- .../www/lock/listings/exposure/exl01.lock | 12 +- .../www/lock/listings/lab-results/lbl01.lock | 12 +- .../lock/listings/lab-results/lbl01_rls.lock | 12 +- .../www/lock/listings/lab-results/lbl02a.lock | 12 +- .../lock/listings/lab-results/lbl02a_rls.lock | 12 +- .../www/lock/listings/lab-results/lbl02b.lock | 12 +- .../lock/listings/medical-history/mhl01.lock | 12 +- .../lock/listings/pharmacokinetic/adal01.lock | 12 +- .../lock/listings/pharmacokinetic/pkcl01.lock | 12 +- .../lock/listings/pharmacokinetic/pkcl02.lock | 12 +- .../lock/listings/pharmacokinetic/pkpl01.lock | 12 +- .../lock/listings/pharmacokinetic/pkpl02.lock | 12 +- .../lock/listings/pharmacokinetic/pkpl04.lock | 12 +- .../www/lock/listings/vital-signs/vsl01.lock | 12 +- .../assets/www/lock/tables/ADA/adat01.lock | 16 +- .../assets/www/lock/tables/ADA/adat02.lock | 16 +- .../assets/www/lock/tables/ADA/adat03.lock | 16 +- .../assets/www/lock/tables/ADA/adat04a.lock | 16 +- .../assets/www/lock/tables/ADA/adat04b.lock | 16 +- .../assets/www/lock/tables/ECG/egt01.lock | 50 +- .../assets/www/lock/tables/ECG/egt02.lock | 50 +- .../assets/www/lock/tables/ECG/egt03.lock | 50 +- .../assets/www/lock/tables/ECG/egt04.lock | 16 +- .../www/lock/tables/ECG/egt05_qtcat.lock | 50 +- .../www/lock/tables/adverse-events/aet01.lock | 50 +- .../tables/adverse-events/aet01_aesi.lock | 50 +- .../www/lock/tables/adverse-events/aet02.lock | 50 +- .../lock/tables/adverse-events/aet02_smq.lock | 50 +- .../www/lock/tables/adverse-events/aet03.lock | 50 +- .../www/lock/tables/adverse-events/aet04.lock | 50 +- .../lock/tables/adverse-events/aet04_pi.lock | 50 +- .../www/lock/tables/adverse-events/aet05.lock | 50 +- .../lock/tables/adverse-events/aet05_all.lock | 50 +- .../www/lock/tables/adverse-events/aet06.lock | 50 +- .../lock/tables/adverse-events/aet06_smq.lock | 50 +- .../www/lock/tables/adverse-events/aet07.lock | 50 +- .../www/lock/tables/adverse-events/aet09.lock | 50 +- .../lock/tables/adverse-events/aet09_smq.lock | 50 +- .../www/lock/tables/adverse-events/aet10.lock | 50 +- .../tables/concomitant-medications/cmt01.lock | 50 +- .../concomitant-medications/cmt01a.lock | 50 +- .../concomitant-medications/cmt01b.lock | 50 +- .../concomitant-medications/cmt02_pt.lock | 50 +- .../assets/www/lock/tables/deaths/dtht01.lock | 16 +- .../www/lock/tables/demography/dmt01.lock | 50 +- .../tables/disclosures/disclosurest01.lock | 16 +- .../www/lock/tables/disclosures/eudrat01.lock | 16 +- .../www/lock/tables/disclosures/eudrat02.lock | 16 +- .../www/lock/tables/disposition/dst01.lock | 50 +- .../www/lock/tables/disposition/pdt01.lock | 50 +- .../www/lock/tables/disposition/pdt02.lock | 16 +- .../www/lock/tables/efficacy/aovt01.lock | 50 +- .../www/lock/tables/efficacy/aovt02.lock | 50 +- .../www/lock/tables/efficacy/aovt03.lock | 16 +- .../www/lock/tables/efficacy/cfbt01.lock | 50 +- .../www/lock/tables/efficacy/cmht01.lock | 50 +- .../www/lock/tables/efficacy/coxt01.lock | 50 +- .../www/lock/tables/efficacy/coxt02.lock | 50 +- .../www/lock/tables/efficacy/dort01.lock | 50 +- .../www/lock/tables/efficacy/lgrt02.lock | 50 +- .../www/lock/tables/efficacy/mmrmt01.lock | 50 +- .../www/lock/tables/efficacy/onct05.lock | 50 +- .../www/lock/tables/efficacy/ratet01.lock | 16 +- .../www/lock/tables/efficacy/rbmit01.lock | 22 +- .../www/lock/tables/efficacy/rspt01.lock | 50 +- .../www/lock/tables/efficacy/ttet01.lock | 50 +- .../www/lock/tables/exposure/ext01.lock | 50 +- .../www/lock/tables/lab-results/lbt01.lock | 50 +- .../www/lock/tables/lab-results/lbt02.lock | 50 +- .../www/lock/tables/lab-results/lbt03.lock | 50 +- .../www/lock/tables/lab-results/lbt04.lock | 50 +- .../www/lock/tables/lab-results/lbt05.lock | 16 +- .../www/lock/tables/lab-results/lbt06.lock | 16 +- .../www/lock/tables/lab-results/lbt07.lock | 50 +- .../www/lock/tables/lab-results/lbt08.lock | 16 +- .../www/lock/tables/lab-results/lbt09.lock | 16 +- .../www/lock/tables/lab-results/lbt10.lock | 16 +- .../www/lock/tables/lab-results/lbt10_bl.lock | 16 +- .../www/lock/tables/lab-results/lbt11.lock | 50 +- .../www/lock/tables/lab-results/lbt11_bl.lock | 50 +- .../www/lock/tables/lab-results/lbt12.lock | 16 +- .../www/lock/tables/lab-results/lbt12_bl.lock | 16 +- .../www/lock/tables/lab-results/lbt13.lock | 50 +- .../www/lock/tables/lab-results/lbt14.lock | 50 +- .../www/lock/tables/lab-results/lbt15.lock | 50 +- .../lock/tables/medical-history/mht01.lock | 50 +- .../lock/tables/pharmacokinetic/pkct01.lock | 16 +- .../lock/tables/pharmacokinetic/pkpt02.lock | 16 +- .../lock/tables/pharmacokinetic/pkpt03.lock | 16 +- .../lock/tables/pharmacokinetic/pkpt04.lock | 16 +- .../lock/tables/pharmacokinetic/pkpt05.lock | 16 +- .../lock/tables/pharmacokinetic/pkpt06.lock | 16 +- .../lock/tables/pharmacokinetic/pkpt07.lock | 16 +- .../lock/tables/pharmacokinetic/pkpt08.lock | 16 +- .../lock/tables/pharmacokinetic/pkpt11.lock | 16 +- .../tables/risk-management-plan/rmpt01.lock | 50 +- .../tables/risk-management-plan/rmpt03.lock | 50 +- .../tables/risk-management-plan/rmpt04.lock | 50 +- .../tables/risk-management-plan/rmpt05.lock | 50 +- .../tables/risk-management-plan/rmpt06.lock | 16 +- .../www/lock/tables/safety/enrollment01.lock | 50 +- .../www/lock/tables/vital-signs/vst01.lock | 50 +- .../www/lock/tables/vital-signs/vst02.lock | 50 +- development/assets/www/renv.lock | 52 +- development/graphs/efficacy/fstg01.html | 58 +- .../fstg01_files/figure-html/teal-2.png | Bin 94629 -> 92551 bytes development/graphs/efficacy/fstg02.html | 56 +- .../fstg02_files/figure-html/teal-2.png | Bin 88499 -> 90723 bytes development/graphs/efficacy/kmg01.html | 60 +- .../kmg01_files/figure-html/teal-2.png | Bin 152851 -> 151170 bytes development/graphs/efficacy/mmrmg01.html | 48 +- .../mmrmg01_files/figure-html/teal-1.png | Bin 166896 -> 166624 bytes development/graphs/efficacy/mmrmg02.html | 28 +- development/graphs/other/brg01.html | 44 +- development/graphs/other/bwg01.html | 66 +- .../other/bwg01_files/figure-html/teal-2.png | Bin 96793 -> 96914 bytes development/graphs/other/cig01.html | 58 +- .../other/cig01_files/figure-html/teal-2.png | Bin 113215 -> 111612 bytes development/graphs/other/ippg01.html | 52 +- .../other/ippg01_files/figure-html/teal-2.png | Bin 181152 -> 180929 bytes development/graphs/other/ltg01.html | 60 +- development/graphs/other/mng01.html | 62 +- .../other/mng01_files/figure-html/teal-2.png | Bin 161674 -> 161632 bytes .../graphs/pharmacokinetic/pkcg01.html | 28 +- .../graphs/pharmacokinetic/pkcg02.html | 30 +- .../graphs/pharmacokinetic/pkcg03.html | 30 +- .../graphs/pharmacokinetic/pkpg01.html | 30 +- .../graphs/pharmacokinetic/pkpg02.html | 30 +- .../graphs/pharmacokinetic/pkpg03.html | 28 +- .../graphs/pharmacokinetic/pkpg04.html | 26 +- .../pkpg04_files/figure-html/plot1-1.svg | 199 +- .../graphs/pharmacokinetic/pkpg06.html | 34 +- development/listings/ADA/adal02.html | 24 +- development/listings/ECG/egl01.html | 24 +- .../listings/adverse-events/ael01.html | 24 +- .../listings/adverse-events/ael01_nollt.html | 24 +- .../listings/adverse-events/ael02.html | 24 +- .../listings/adverse-events/ael02_ed.html | 24 +- .../listings/adverse-events/ael03.html | 24 +- .../listings/adverse-events/ael04.html | 24 +- .../concomitant-medications/cml01.html | 24 +- .../concomitant-medications/cml02a_gl.html | 24 +- .../concomitant-medications/cml02b_gl.html | 24 +- .../dsur4.html | 24 +- development/listings/disposition/dsl01.html | 24 +- development/listings/disposition/dsl02.html | 24 +- development/listings/efficacy/oncl01.html | 24 +- development/listings/exposure/exl01.html | 24 +- development/listings/lab-results/lbl01.html | 24 +- .../listings/lab-results/lbl01_rls.html | 24 +- development/listings/lab-results/lbl02a.html | 24 +- .../listings/lab-results/lbl02a_rls.html | 24 +- development/listings/lab-results/lbl02b.html | 24 +- .../listings/medical-history/mhl01.html | 22 +- .../listings/pharmacokinetic/adal01.html | 24 +- .../listings/pharmacokinetic/pkcl01.html | 22 +- .../listings/pharmacokinetic/pkcl02.html | 24 +- .../listings/pharmacokinetic/pkpl01.html | 24 +- .../listings/pharmacokinetic/pkpl02.html | 24 +- .../listings/pharmacokinetic/pkpl04.html | 22 +- development/listings/vital-signs/vsl01.html | 24 +- development/repro.html | 10 +- development/search.json | 4936 ++++++++--------- .../bootstrap/bootstrap-dark.min.css | 4 +- .../site_libs/bootstrap/bootstrap.min.css | 4 +- development/sitemap.xml | 568 +- development/tables/ADA/adat01.html | 26 +- development/tables/ADA/adat02.html | 28 +- development/tables/ADA/adat03.html | 28 +- development/tables/ADA/adat04a.html | 28 +- development/tables/ADA/adat04b.html | 28 +- development/tables/ECG/egt01.html | 48 +- .../ECG/egt01_files/figure-html/teal-1.png | Bin 243774 -> 243656 bytes development/tables/ECG/egt02.html | 48 +- .../ECG/egt02_files/figure-html/teal-1.png | Bin 136832 -> 136616 bytes development/tables/ECG/egt03.html | 52 +- .../ECG/egt03_files/figure-html/teal-1.png | Bin 129413 -> 129433 bytes development/tables/ECG/egt04.html | 28 +- development/tables/ECG/egt05_qtcat.html | 50 +- .../egt05_qtcat_files/figure-html/teal-1.png | Bin 285499 -> 285515 bytes development/tables/adverse-events/aet01.html | 56 +- .../tables/adverse-events/aet01_aesi.html | 54 +- .../aet01_aesi_files/figure-html/teal-1.png | Bin 128325 -> 128422 bytes .../aet01_files/figure-html/teal-1.png | Bin 157186 -> 157214 bytes development/tables/adverse-events/aet02.html | 74 +- .../aet02_files/figure-html/teal-1.png | Bin 258714 -> 258367 bytes .../tables/adverse-events/aet02_smq.html | 50 +- .../aet02_smq_files/figure-html/teal-1.png | Bin 148935 -> 149251 bytes development/tables/adverse-events/aet03.html | 50 +- .../aet03_files/figure-html/teal-1.png | Bin 368943 -> 369133 bytes development/tables/adverse-events/aet04.html | 48 +- .../aet04_files/figure-html/teal-1.png | Bin 362276 -> 362084 bytes .../tables/adverse-events/aet04_pi.html | 64 +- .../aet04_pi_files/figure-html/teal-1.png | Bin 137553 -> 137656 bytes development/tables/adverse-events/aet05.html | 52 +- .../tables/adverse-events/aet05_all.html | 52 +- .../aet05_all_files/figure-html/teal-1.png | Bin 118526 -> 118386 bytes .../aet05_files/figure-html/teal-1.png | Bin 120993 -> 120888 bytes development/tables/adverse-events/aet06.html | 56 +- .../aet06_files/figure-html/teal-1.png | Bin 252555 -> 252448 bytes .../tables/adverse-events/aet06_smq.html | 54 +- .../aet06_smq_files/figure-html/teal-1.png | Bin 152029 -> 151730 bytes development/tables/adverse-events/aet07.html | 52 +- .../aet07_files/figure-html/teal-1.png | Bin 99867 -> 99728 bytes development/tables/adverse-events/aet09.html | 52 +- .../aet09_files/figure-html/teal-1.png | Bin 190953 -> 190932 bytes .../tables/adverse-events/aet09_smq.html | 50 +- .../aet09_smq_files/figure-html/teal-1.png | Bin 141287 -> 141263 bytes development/tables/adverse-events/aet10.html | 52 +- .../aet10_files/figure-html/teal-1.png | Bin 155832 -> 155435 bytes .../tables/concomitant-medications/cmt01.html | 56 +- .../cmt01_files/figure-html/teal-1.png | Bin 199645 -> 199578 bytes .../concomitant-medications/cmt01a.html | 56 +- .../cmt01a_files/figure-html/teal-1.png | Bin 278869 -> 278925 bytes .../concomitant-medications/cmt01b.html | 52 +- .../cmt01b_files/figure-html/teal-1.png | Bin 346111 -> 345954 bytes .../concomitant-medications/cmt02_pt.html | 50 +- .../cmt02_pt_files/figure-html/teal-1.png | Bin 301625 -> 301595 bytes development/tables/deaths/dtht01.html | 34 +- development/tables/demography/dmt01.html | 58 +- .../dmt01_files/figure-html/teal-1.png | Bin 117879 -> 117804 bytes .../tables/disclosures/disclosurest01.html | 48 +- development/tables/disclosures/eudrat01.html | 28 +- development/tables/disclosures/eudrat02.html | 28 +- development/tables/disposition/dst01.html | 54 +- .../dst01_files/figure-html/teal-1.png | Bin 161199 -> 160853 bytes development/tables/disposition/pdt01.html | 48 +- .../pdt01_files/figure-html/teal-1.png | Bin 290721 -> 290631 bytes development/tables/disposition/pdt02.html | 26 +- development/tables/efficacy/aovt01.html | 50 +- .../aovt01_files/figure-html/teal-1.png | Bin 163342 -> 162898 bytes development/tables/efficacy/aovt02.html | 50 +- .../aovt02_files/figure-html/teal-1.png | Bin 163545 -> 163388 bytes development/tables/efficacy/aovt03.html | 28 +- development/tables/efficacy/cfbt01.html | 50 +- .../cfbt01_files/figure-html/teal-1.png | Bin 233993 -> 234074 bytes development/tables/efficacy/cmht01.html | 52 +- .../cmht01_files/figure-html/teal-1.png | Bin 147803 -> 147827 bytes development/tables/efficacy/coxt01.html | 54 +- .../coxt01_files/figure-html/teal-1.png | Bin 141662 -> 141786 bytes development/tables/efficacy/coxt02.html | 52 +- .../coxt02_files/figure-html/teal-1.png | Bin 146058 -> 145750 bytes development/tables/efficacy/dort01.html | 56 +- .../dort01_files/figure-html/teal-1.png | Bin 206350 -> 206658 bytes development/tables/efficacy/lgrt02.html | 56 +- .../lgrt02_files/figure-html/teal-1.png | Bin 126624 -> 126837 bytes development/tables/efficacy/mmrmt01.html | 48 +- .../mmrmt01_files/figure-html/teal-1.png | Bin 166662 -> 166652 bytes development/tables/efficacy/onct05.html | 56 +- .../onct05_files/figure-html/teal-2.png | Bin 91069 -> 93138 bytes development/tables/efficacy/ratet01.html | 28 +- development/tables/efficacy/rbmit01.html | 34 +- development/tables/efficacy/rspt01.html | 58 +- .../rspt01_files/figure-html/teal-1.png | Bin 174663 -> 174834 bytes development/tables/efficacy/ttet01.html | 60 +- .../ttet01_files/figure-html/teal-1.png | Bin 216093 -> 216104 bytes development/tables/exposure/ext01.html | 54 +- .../ext01_files/figure-html/teal-1.png | Bin 170611 -> 170488 bytes development/tables/lab-results/lbt01.html | 50 +- .../lbt01_files/figure-html/teal-1.png | Bin 220814 -> 220799 bytes development/tables/lab-results/lbt02.html | 50 +- .../lbt02_files/figure-html/teal-1.png | Bin 217265 -> 217372 bytes development/tables/lab-results/lbt03.html | 52 +- .../lbt03_files/figure-html/teal-1.png | Bin 206249 -> 206360 bytes development/tables/lab-results/lbt04.html | 48 +- .../lbt04_files/figure-html/teal-1.png | Bin 136933 -> 136596 bytes development/tables/lab-results/lbt05.html | 32 +- development/tables/lab-results/lbt06.html | 30 +- development/tables/lab-results/lbt07.html | 50 +- .../lbt07_files/figure-html/teal-1.png | Bin 199145 -> 198874 bytes development/tables/lab-results/lbt08.html | 28 +- development/tables/lab-results/lbt09.html | 30 +- development/tables/lab-results/lbt10.html | 30 +- development/tables/lab-results/lbt10_bl.html | 30 +- development/tables/lab-results/lbt11.html | 54 +- development/tables/lab-results/lbt11_bl.html | 54 +- .../lbt11_bl_files/figure-html/teal-1.png | Bin 195822 -> 195754 bytes .../lbt11_files/figure-html/teal-1.png | Bin 199079 -> 199009 bytes development/tables/lab-results/lbt12.html | 26 +- development/tables/lab-results/lbt12_bl.html | 28 +- development/tables/lab-results/lbt13.html | 58 +- .../lbt13_files/figure-html/teal-1.png | Bin 362361 -> 362410 bytes development/tables/lab-results/lbt14.html | 58 +- .../lbt14_files/figure-html/teal-1.png | Bin 115861 -> 115609 bytes development/tables/lab-results/lbt15.html | 52 +- .../lbt15_files/figure-html/teal-1.png | Bin 127921 -> 128068 bytes development/tables/medical-history/mht01.html | 56 +- .../mht01_files/figure-html/teal-1.png | Bin 218784 -> 218988 bytes .../tables/pharmacokinetic/pkct01.html | 32 +- .../tables/pharmacokinetic/pkpt02.html | 30 +- .../tables/pharmacokinetic/pkpt03.html | 30 +- .../tables/pharmacokinetic/pkpt04.html | 28 +- .../tables/pharmacokinetic/pkpt05.html | 30 +- .../tables/pharmacokinetic/pkpt06.html | 30 +- .../tables/pharmacokinetic/pkpt07.html | 26 +- .../tables/pharmacokinetic/pkpt08.html | 28 +- .../tables/pharmacokinetic/pkpt11.html | 28 +- .../tables/risk-management-plan/rmpt01.html | 50 +- .../rmpt01_files/figure-html/teal-1.png | Bin 128727 -> 128648 bytes .../tables/risk-management-plan/rmpt03.html | 52 +- .../rmpt03_files/figure-html/teal-1.png | Bin 120382 -> 120390 bytes .../tables/risk-management-plan/rmpt04.html | 50 +- .../rmpt04_files/figure-html/teal-1.png | Bin 129735 -> 129867 bytes .../tables/risk-management-plan/rmpt05.html | 50 +- .../rmpt05_files/figure-html/teal-1.png | Bin 133177 -> 133176 bytes .../tables/risk-management-plan/rmpt06.html | 34 +- development/tables/safety/enrollment01.html | 56 +- .../enrollment01_files/figure-html/teal-1.png | Bin 117295 -> 117027 bytes development/tables/vital-signs/vst01.html | 50 +- .../vst01_files/figure-html/teal-1.png | Bin 270810 -> 270726 bytes development/tables/vital-signs/vst02.html | 52 +- .../vst02_files/figure-html/teal-1.png | Bin 183980 -> 184150 bytes 347 files changed, 7862 insertions(+), 7730 deletions(-) diff --git a/development/appendix/reproducibility.html b/development/appendix/reproducibility.html index 33884b598..273ab6d3b 100644 --- a/development/appendix/reproducibility.html +++ b/development/appendix/reproducibility.html @@ -1479,11 +1479,11 @@ loaded via a namespace (and not attached): [1] digest_0.6.37 R6_2.5.1 codetools_0.2-20 fastmap_1.2.0 - [5] pkgcache_2.2.3 xfun_0.49 magrittr_2.0.3 glue_1.8.0 + [5] pkgcache_2.2.3 xfun_0.50 magrittr_2.0.3 glue_1.8.0 [9] knitr_1.49 htmltools_0.5.8.1 rmarkdown_2.29 lifecycle_1.0.4 [13] ps_1.8.1 cli_3.6.3 processx_3.8.4 vctrs_0.6.5 [17] testthat_3.2.2 compiler_4.4.1 tools_4.4.1 brio_1.1.5 -[21] curl_6.0.1 evaluate_1.0.1 pillar_1.10.0 yaml_2.3.10 +[21] curl_6.1.0 evaluate_1.0.1 pillar_1.10.1 yaml_2.3.10 [25] htmlwidgets_1.6.4 rlang_1.1.4 jsonlite_1.8.9 diff --git a/development/assets/www/lock/graphs/efficacy/fstg01.lock b/development/assets/www/lock/graphs/efficacy/fstg01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/graphs/efficacy/fstg01.lock +++ b/development/assets/www/lock/graphs/efficacy/fstg01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/graphs/efficacy/fstg02.lock b/development/assets/www/lock/graphs/efficacy/fstg02.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/graphs/efficacy/fstg02.lock +++ b/development/assets/www/lock/graphs/efficacy/fstg02.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/graphs/efficacy/kmg01.lock b/development/assets/www/lock/graphs/efficacy/kmg01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/graphs/efficacy/kmg01.lock +++ b/development/assets/www/lock/graphs/efficacy/kmg01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/graphs/efficacy/mmrmg01.lock b/development/assets/www/lock/graphs/efficacy/mmrmg01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/graphs/efficacy/mmrmg01.lock +++ b/development/assets/www/lock/graphs/efficacy/mmrmg01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/graphs/efficacy/mmrmg02.lock b/development/assets/www/lock/graphs/efficacy/mmrmg02.lock index 9a54a1f84..10c9a704c 100644 --- a/development/assets/www/lock/graphs/efficacy/mmrmg02.lock +++ b/development/assets/www/lock/graphs/efficacy/mmrmg02.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -157,9 +157,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -169,7 +169,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -1010,7 +1010,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1060,7 +1060,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1072,7 +1072,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1613,7 +1613,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1622,7 +1622,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/graphs/other/brg01.lock b/development/assets/www/lock/graphs/other/brg01.lock index 3aa705fcb..575a9a796 100644 --- a/development/assets/www/lock/graphs/other/brg01.lock +++ b/development/assets/www/lock/graphs/other/brg01.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -912,7 +912,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -950,7 +950,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -962,7 +962,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1355,7 +1355,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1364,7 +1364,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/graphs/other/bwg01.lock b/development/assets/www/lock/graphs/other/bwg01.lock index a922de63f..2526e81b1 100644 --- a/development/assets/www/lock/graphs/other/bwg01.lock +++ b/development/assets/www/lock/graphs/other/bwg01.lock @@ -101,9 +101,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -112,7 +112,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -464,7 +464,7 @@ "Package": "class", "Version": "7.3-23", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "MASS", "R", @@ -569,13 +569,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1412,7 +1412,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1480,7 +1480,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1492,7 +1492,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1764,7 +1764,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1777,7 +1777,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2120,7 +2120,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2144,16 +2144,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2161,11 +2162,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2178,7 +2179,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2563,7 +2564,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2572,7 +2573,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/graphs/other/cig01.lock b/development/assets/www/lock/graphs/other/cig01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/graphs/other/cig01.lock +++ b/development/assets/www/lock/graphs/other/cig01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/graphs/other/ippg01.lock b/development/assets/www/lock/graphs/other/ippg01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/graphs/other/ippg01.lock +++ b/development/assets/www/lock/graphs/other/ippg01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/graphs/other/ltg01.lock b/development/assets/www/lock/graphs/other/ltg01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/graphs/other/ltg01.lock +++ b/development/assets/www/lock/graphs/other/ltg01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/graphs/other/mng01.lock b/development/assets/www/lock/graphs/other/mng01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/graphs/other/mng01.lock +++ b/development/assets/www/lock/graphs/other/mng01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/graphs/pharmacokinetic/pkcg01.lock b/development/assets/www/lock/graphs/pharmacokinetic/pkcg01.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/graphs/pharmacokinetic/pkcg01.lock +++ b/development/assets/www/lock/graphs/pharmacokinetic/pkcg01.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/graphs/pharmacokinetic/pkcg02.lock b/development/assets/www/lock/graphs/pharmacokinetic/pkcg02.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/graphs/pharmacokinetic/pkcg02.lock +++ b/development/assets/www/lock/graphs/pharmacokinetic/pkcg02.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/graphs/pharmacokinetic/pkcg03.lock b/development/assets/www/lock/graphs/pharmacokinetic/pkcg03.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/graphs/pharmacokinetic/pkcg03.lock +++ b/development/assets/www/lock/graphs/pharmacokinetic/pkcg03.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/graphs/pharmacokinetic/pkpg01.lock b/development/assets/www/lock/graphs/pharmacokinetic/pkpg01.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/graphs/pharmacokinetic/pkpg01.lock +++ b/development/assets/www/lock/graphs/pharmacokinetic/pkpg01.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/graphs/pharmacokinetic/pkpg02.lock b/development/assets/www/lock/graphs/pharmacokinetic/pkpg02.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/graphs/pharmacokinetic/pkpg02.lock +++ b/development/assets/www/lock/graphs/pharmacokinetic/pkpg02.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/graphs/pharmacokinetic/pkpg03.lock b/development/assets/www/lock/graphs/pharmacokinetic/pkpg03.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/graphs/pharmacokinetic/pkpg03.lock +++ b/development/assets/www/lock/graphs/pharmacokinetic/pkpg03.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/graphs/pharmacokinetic/pkpg04.lock b/development/assets/www/lock/graphs/pharmacokinetic/pkpg04.lock index f22345d5e..9eaec60e3 100644 --- a/development/assets/www/lock/graphs/pharmacokinetic/pkpg04.lock +++ b/development/assets/www/lock/graphs/pharmacokinetic/pkpg04.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -921,7 +921,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -959,7 +959,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -971,7 +971,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1364,7 +1364,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1373,7 +1373,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/graphs/pharmacokinetic/pkpg06.lock b/development/assets/www/lock/graphs/pharmacokinetic/pkpg06.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/graphs/pharmacokinetic/pkpg06.lock +++ b/development/assets/www/lock/graphs/pharmacokinetic/pkpg06.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/ADA/adal02.lock b/development/assets/www/lock/listings/ADA/adal02.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/ADA/adal02.lock +++ b/development/assets/www/lock/listings/ADA/adal02.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/ECG/egl01.lock b/development/assets/www/lock/listings/ECG/egl01.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/ECG/egl01.lock +++ b/development/assets/www/lock/listings/ECG/egl01.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/adverse-events/ael01.lock b/development/assets/www/lock/listings/adverse-events/ael01.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/adverse-events/ael01.lock +++ b/development/assets/www/lock/listings/adverse-events/ael01.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/adverse-events/ael01_nollt.lock b/development/assets/www/lock/listings/adverse-events/ael01_nollt.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/adverse-events/ael01_nollt.lock +++ b/development/assets/www/lock/listings/adverse-events/ael01_nollt.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/adverse-events/ael02.lock b/development/assets/www/lock/listings/adverse-events/ael02.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/adverse-events/ael02.lock +++ b/development/assets/www/lock/listings/adverse-events/ael02.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/adverse-events/ael02_ed.lock b/development/assets/www/lock/listings/adverse-events/ael02_ed.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/adverse-events/ael02_ed.lock +++ b/development/assets/www/lock/listings/adverse-events/ael02_ed.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/adverse-events/ael03.lock b/development/assets/www/lock/listings/adverse-events/ael03.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/adverse-events/ael03.lock +++ b/development/assets/www/lock/listings/adverse-events/ael03.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/adverse-events/ael04.lock b/development/assets/www/lock/listings/adverse-events/ael04.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/adverse-events/ael04.lock +++ b/development/assets/www/lock/listings/adverse-events/ael04.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/concomitant-medications/cml01.lock b/development/assets/www/lock/listings/concomitant-medications/cml01.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/concomitant-medications/cml01.lock +++ b/development/assets/www/lock/listings/concomitant-medications/cml01.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/concomitant-medications/cml02a_gl.lock b/development/assets/www/lock/listings/concomitant-medications/cml02a_gl.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/concomitant-medications/cml02a_gl.lock +++ b/development/assets/www/lock/listings/concomitant-medications/cml02a_gl.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/concomitant-medications/cml02b_gl.lock b/development/assets/www/lock/listings/concomitant-medications/cml02b_gl.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/concomitant-medications/cml02b_gl.lock +++ b/development/assets/www/lock/listings/concomitant-medications/cml02b_gl.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/development-safety-update-report/dsur4.lock b/development/assets/www/lock/listings/development-safety-update-report/dsur4.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/development-safety-update-report/dsur4.lock +++ b/development/assets/www/lock/listings/development-safety-update-report/dsur4.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/disposition/dsl01.lock b/development/assets/www/lock/listings/disposition/dsl01.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/disposition/dsl01.lock +++ b/development/assets/www/lock/listings/disposition/dsl01.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/disposition/dsl02.lock b/development/assets/www/lock/listings/disposition/dsl02.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/disposition/dsl02.lock +++ b/development/assets/www/lock/listings/disposition/dsl02.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/efficacy/oncl01.lock b/development/assets/www/lock/listings/efficacy/oncl01.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/efficacy/oncl01.lock +++ b/development/assets/www/lock/listings/efficacy/oncl01.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/exposure/exl01.lock b/development/assets/www/lock/listings/exposure/exl01.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/exposure/exl01.lock +++ b/development/assets/www/lock/listings/exposure/exl01.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/lab-results/lbl01.lock b/development/assets/www/lock/listings/lab-results/lbl01.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/lab-results/lbl01.lock +++ b/development/assets/www/lock/listings/lab-results/lbl01.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/lab-results/lbl01_rls.lock b/development/assets/www/lock/listings/lab-results/lbl01_rls.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/lab-results/lbl01_rls.lock +++ b/development/assets/www/lock/listings/lab-results/lbl01_rls.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/lab-results/lbl02a.lock b/development/assets/www/lock/listings/lab-results/lbl02a.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/lab-results/lbl02a.lock +++ b/development/assets/www/lock/listings/lab-results/lbl02a.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/lab-results/lbl02a_rls.lock b/development/assets/www/lock/listings/lab-results/lbl02a_rls.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/lab-results/lbl02a_rls.lock +++ b/development/assets/www/lock/listings/lab-results/lbl02a_rls.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/lab-results/lbl02b.lock b/development/assets/www/lock/listings/lab-results/lbl02b.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/lab-results/lbl02b.lock +++ b/development/assets/www/lock/listings/lab-results/lbl02b.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/medical-history/mhl01.lock b/development/assets/www/lock/listings/medical-history/mhl01.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/medical-history/mhl01.lock +++ b/development/assets/www/lock/listings/medical-history/mhl01.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/pharmacokinetic/adal01.lock b/development/assets/www/lock/listings/pharmacokinetic/adal01.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/pharmacokinetic/adal01.lock +++ b/development/assets/www/lock/listings/pharmacokinetic/adal01.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/pharmacokinetic/pkcl01.lock b/development/assets/www/lock/listings/pharmacokinetic/pkcl01.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/pharmacokinetic/pkcl01.lock +++ b/development/assets/www/lock/listings/pharmacokinetic/pkcl01.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/pharmacokinetic/pkcl02.lock b/development/assets/www/lock/listings/pharmacokinetic/pkcl02.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/pharmacokinetic/pkcl02.lock +++ b/development/assets/www/lock/listings/pharmacokinetic/pkcl02.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/pharmacokinetic/pkpl01.lock b/development/assets/www/lock/listings/pharmacokinetic/pkpl01.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/pharmacokinetic/pkpl01.lock +++ b/development/assets/www/lock/listings/pharmacokinetic/pkpl01.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/pharmacokinetic/pkpl02.lock b/development/assets/www/lock/listings/pharmacokinetic/pkpl02.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/pharmacokinetic/pkpl02.lock +++ b/development/assets/www/lock/listings/pharmacokinetic/pkpl02.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/pharmacokinetic/pkpl04.lock b/development/assets/www/lock/listings/pharmacokinetic/pkpl04.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/pharmacokinetic/pkpl04.lock +++ b/development/assets/www/lock/listings/pharmacokinetic/pkpl04.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/listings/vital-signs/vsl01.lock b/development/assets/www/lock/listings/vital-signs/vsl01.lock index 1e35d15b3..d559b14fc 100644 --- a/development/assets/www/lock/listings/vital-signs/vsl01.lock +++ b/development/assets/www/lock/listings/vital-signs/vsl01.lock @@ -359,7 +359,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -371,7 +371,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -451,7 +451,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -464,7 +464,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -650,7 +650,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -659,7 +659,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/ADA/adat01.lock b/development/assets/www/lock/tables/ADA/adat01.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/ADA/adat01.lock +++ b/development/assets/www/lock/tables/ADA/adat01.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/ADA/adat02.lock b/development/assets/www/lock/tables/ADA/adat02.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/ADA/adat02.lock +++ b/development/assets/www/lock/tables/ADA/adat02.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/ADA/adat03.lock b/development/assets/www/lock/tables/ADA/adat03.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/ADA/adat03.lock +++ b/development/assets/www/lock/tables/ADA/adat03.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/ADA/adat04a.lock b/development/assets/www/lock/tables/ADA/adat04a.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/ADA/adat04a.lock +++ b/development/assets/www/lock/tables/ADA/adat04a.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/ADA/adat04b.lock b/development/assets/www/lock/tables/ADA/adat04b.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/ADA/adat04b.lock +++ b/development/assets/www/lock/tables/ADA/adat04b.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/ECG/egt01.lock b/development/assets/www/lock/tables/ECG/egt01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/ECG/egt01.lock +++ b/development/assets/www/lock/tables/ECG/egt01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/ECG/egt02.lock b/development/assets/www/lock/tables/ECG/egt02.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/ECG/egt02.lock +++ b/development/assets/www/lock/tables/ECG/egt02.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/ECG/egt03.lock b/development/assets/www/lock/tables/ECG/egt03.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/ECG/egt03.lock +++ b/development/assets/www/lock/tables/ECG/egt03.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/ECG/egt04.lock b/development/assets/www/lock/tables/ECG/egt04.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/ECG/egt04.lock +++ b/development/assets/www/lock/tables/ECG/egt04.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/ECG/egt05_qtcat.lock b/development/assets/www/lock/tables/ECG/egt05_qtcat.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/ECG/egt05_qtcat.lock +++ b/development/assets/www/lock/tables/ECG/egt05_qtcat.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet01.lock b/development/assets/www/lock/tables/adverse-events/aet01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet01.lock +++ b/development/assets/www/lock/tables/adverse-events/aet01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet01_aesi.lock b/development/assets/www/lock/tables/adverse-events/aet01_aesi.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet01_aesi.lock +++ b/development/assets/www/lock/tables/adverse-events/aet01_aesi.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet02.lock b/development/assets/www/lock/tables/adverse-events/aet02.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet02.lock +++ b/development/assets/www/lock/tables/adverse-events/aet02.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet02_smq.lock b/development/assets/www/lock/tables/adverse-events/aet02_smq.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet02_smq.lock +++ b/development/assets/www/lock/tables/adverse-events/aet02_smq.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet03.lock b/development/assets/www/lock/tables/adverse-events/aet03.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet03.lock +++ b/development/assets/www/lock/tables/adverse-events/aet03.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet04.lock b/development/assets/www/lock/tables/adverse-events/aet04.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet04.lock +++ b/development/assets/www/lock/tables/adverse-events/aet04.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet04_pi.lock b/development/assets/www/lock/tables/adverse-events/aet04_pi.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet04_pi.lock +++ b/development/assets/www/lock/tables/adverse-events/aet04_pi.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet05.lock b/development/assets/www/lock/tables/adverse-events/aet05.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet05.lock +++ b/development/assets/www/lock/tables/adverse-events/aet05.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet05_all.lock b/development/assets/www/lock/tables/adverse-events/aet05_all.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet05_all.lock +++ b/development/assets/www/lock/tables/adverse-events/aet05_all.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet06.lock b/development/assets/www/lock/tables/adverse-events/aet06.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet06.lock +++ b/development/assets/www/lock/tables/adverse-events/aet06.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet06_smq.lock b/development/assets/www/lock/tables/adverse-events/aet06_smq.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet06_smq.lock +++ b/development/assets/www/lock/tables/adverse-events/aet06_smq.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet07.lock b/development/assets/www/lock/tables/adverse-events/aet07.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet07.lock +++ b/development/assets/www/lock/tables/adverse-events/aet07.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet09.lock b/development/assets/www/lock/tables/adverse-events/aet09.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet09.lock +++ b/development/assets/www/lock/tables/adverse-events/aet09.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet09_smq.lock b/development/assets/www/lock/tables/adverse-events/aet09_smq.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet09_smq.lock +++ b/development/assets/www/lock/tables/adverse-events/aet09_smq.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/adverse-events/aet10.lock b/development/assets/www/lock/tables/adverse-events/aet10.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/adverse-events/aet10.lock +++ b/development/assets/www/lock/tables/adverse-events/aet10.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/concomitant-medications/cmt01.lock b/development/assets/www/lock/tables/concomitant-medications/cmt01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/concomitant-medications/cmt01.lock +++ b/development/assets/www/lock/tables/concomitant-medications/cmt01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/concomitant-medications/cmt01a.lock b/development/assets/www/lock/tables/concomitant-medications/cmt01a.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/concomitant-medications/cmt01a.lock +++ b/development/assets/www/lock/tables/concomitant-medications/cmt01a.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/concomitant-medications/cmt01b.lock b/development/assets/www/lock/tables/concomitant-medications/cmt01b.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/concomitant-medications/cmt01b.lock +++ b/development/assets/www/lock/tables/concomitant-medications/cmt01b.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/concomitant-medications/cmt02_pt.lock b/development/assets/www/lock/tables/concomitant-medications/cmt02_pt.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/concomitant-medications/cmt02_pt.lock +++ b/development/assets/www/lock/tables/concomitant-medications/cmt02_pt.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/deaths/dtht01.lock b/development/assets/www/lock/tables/deaths/dtht01.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/deaths/dtht01.lock +++ b/development/assets/www/lock/tables/deaths/dtht01.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/demography/dmt01.lock b/development/assets/www/lock/tables/demography/dmt01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/demography/dmt01.lock +++ b/development/assets/www/lock/tables/demography/dmt01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/disclosures/disclosurest01.lock b/development/assets/www/lock/tables/disclosures/disclosurest01.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/disclosures/disclosurest01.lock +++ b/development/assets/www/lock/tables/disclosures/disclosurest01.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/disclosures/eudrat01.lock b/development/assets/www/lock/tables/disclosures/eudrat01.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/disclosures/eudrat01.lock +++ b/development/assets/www/lock/tables/disclosures/eudrat01.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/disclosures/eudrat02.lock b/development/assets/www/lock/tables/disclosures/eudrat02.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/disclosures/eudrat02.lock +++ b/development/assets/www/lock/tables/disclosures/eudrat02.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/disposition/dst01.lock b/development/assets/www/lock/tables/disposition/dst01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/disposition/dst01.lock +++ b/development/assets/www/lock/tables/disposition/dst01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/disposition/pdt01.lock b/development/assets/www/lock/tables/disposition/pdt01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/disposition/pdt01.lock +++ b/development/assets/www/lock/tables/disposition/pdt01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/disposition/pdt02.lock b/development/assets/www/lock/tables/disposition/pdt02.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/disposition/pdt02.lock +++ b/development/assets/www/lock/tables/disposition/pdt02.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/efficacy/aovt01.lock b/development/assets/www/lock/tables/efficacy/aovt01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/efficacy/aovt01.lock +++ b/development/assets/www/lock/tables/efficacy/aovt01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/efficacy/aovt02.lock b/development/assets/www/lock/tables/efficacy/aovt02.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/efficacy/aovt02.lock +++ b/development/assets/www/lock/tables/efficacy/aovt02.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/efficacy/aovt03.lock b/development/assets/www/lock/tables/efficacy/aovt03.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/efficacy/aovt03.lock +++ b/development/assets/www/lock/tables/efficacy/aovt03.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/efficacy/cfbt01.lock b/development/assets/www/lock/tables/efficacy/cfbt01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/efficacy/cfbt01.lock +++ b/development/assets/www/lock/tables/efficacy/cfbt01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/efficacy/cmht01.lock b/development/assets/www/lock/tables/efficacy/cmht01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/efficacy/cmht01.lock +++ b/development/assets/www/lock/tables/efficacy/cmht01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/efficacy/coxt01.lock b/development/assets/www/lock/tables/efficacy/coxt01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/efficacy/coxt01.lock +++ b/development/assets/www/lock/tables/efficacy/coxt01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/efficacy/coxt02.lock b/development/assets/www/lock/tables/efficacy/coxt02.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/efficacy/coxt02.lock +++ b/development/assets/www/lock/tables/efficacy/coxt02.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/efficacy/dort01.lock b/development/assets/www/lock/tables/efficacy/dort01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/efficacy/dort01.lock +++ b/development/assets/www/lock/tables/efficacy/dort01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/efficacy/lgrt02.lock b/development/assets/www/lock/tables/efficacy/lgrt02.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/efficacy/lgrt02.lock +++ b/development/assets/www/lock/tables/efficacy/lgrt02.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/efficacy/mmrmt01.lock b/development/assets/www/lock/tables/efficacy/mmrmt01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/efficacy/mmrmt01.lock +++ b/development/assets/www/lock/tables/efficacy/mmrmt01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/efficacy/onct05.lock b/development/assets/www/lock/tables/efficacy/onct05.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/efficacy/onct05.lock +++ b/development/assets/www/lock/tables/efficacy/onct05.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/efficacy/ratet01.lock b/development/assets/www/lock/tables/efficacy/ratet01.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/efficacy/ratet01.lock +++ b/development/assets/www/lock/tables/efficacy/ratet01.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/efficacy/rbmit01.lock b/development/assets/www/lock/tables/efficacy/rbmit01.lock index d9cb689e4..f517a494e 100644 --- a/development/assets/www/lock/tables/efficacy/rbmit01.lock +++ b/development/assets/www/lock/tables/efficacy/rbmit01.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -157,9 +157,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -169,7 +169,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -1007,7 +1007,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1045,7 +1045,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1057,7 +1057,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1576,7 +1576,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1585,7 +1585,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/efficacy/rspt01.lock b/development/assets/www/lock/tables/efficacy/rspt01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/efficacy/rspt01.lock +++ b/development/assets/www/lock/tables/efficacy/rspt01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/efficacy/ttet01.lock b/development/assets/www/lock/tables/efficacy/ttet01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/efficacy/ttet01.lock +++ b/development/assets/www/lock/tables/efficacy/ttet01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/exposure/ext01.lock b/development/assets/www/lock/tables/exposure/ext01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/exposure/ext01.lock +++ b/development/assets/www/lock/tables/exposure/ext01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/lab-results/lbt01.lock b/development/assets/www/lock/tables/lab-results/lbt01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/lab-results/lbt01.lock +++ b/development/assets/www/lock/tables/lab-results/lbt01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/lab-results/lbt02.lock b/development/assets/www/lock/tables/lab-results/lbt02.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/lab-results/lbt02.lock +++ b/development/assets/www/lock/tables/lab-results/lbt02.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/lab-results/lbt03.lock b/development/assets/www/lock/tables/lab-results/lbt03.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/lab-results/lbt03.lock +++ b/development/assets/www/lock/tables/lab-results/lbt03.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/lab-results/lbt04.lock b/development/assets/www/lock/tables/lab-results/lbt04.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/lab-results/lbt04.lock +++ b/development/assets/www/lock/tables/lab-results/lbt04.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/lab-results/lbt05.lock b/development/assets/www/lock/tables/lab-results/lbt05.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/lab-results/lbt05.lock +++ b/development/assets/www/lock/tables/lab-results/lbt05.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/lab-results/lbt06.lock b/development/assets/www/lock/tables/lab-results/lbt06.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/lab-results/lbt06.lock +++ b/development/assets/www/lock/tables/lab-results/lbt06.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/lab-results/lbt07.lock b/development/assets/www/lock/tables/lab-results/lbt07.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/lab-results/lbt07.lock +++ b/development/assets/www/lock/tables/lab-results/lbt07.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/lab-results/lbt08.lock b/development/assets/www/lock/tables/lab-results/lbt08.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/lab-results/lbt08.lock +++ b/development/assets/www/lock/tables/lab-results/lbt08.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/lab-results/lbt09.lock b/development/assets/www/lock/tables/lab-results/lbt09.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/lab-results/lbt09.lock +++ b/development/assets/www/lock/tables/lab-results/lbt09.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/lab-results/lbt10.lock b/development/assets/www/lock/tables/lab-results/lbt10.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/lab-results/lbt10.lock +++ b/development/assets/www/lock/tables/lab-results/lbt10.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/lab-results/lbt10_bl.lock b/development/assets/www/lock/tables/lab-results/lbt10_bl.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/lab-results/lbt10_bl.lock +++ b/development/assets/www/lock/tables/lab-results/lbt10_bl.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/lab-results/lbt11.lock b/development/assets/www/lock/tables/lab-results/lbt11.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/lab-results/lbt11.lock +++ b/development/assets/www/lock/tables/lab-results/lbt11.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/lab-results/lbt11_bl.lock b/development/assets/www/lock/tables/lab-results/lbt11_bl.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/lab-results/lbt11_bl.lock +++ b/development/assets/www/lock/tables/lab-results/lbt11_bl.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/lab-results/lbt12.lock b/development/assets/www/lock/tables/lab-results/lbt12.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/lab-results/lbt12.lock +++ b/development/assets/www/lock/tables/lab-results/lbt12.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/lab-results/lbt12_bl.lock b/development/assets/www/lock/tables/lab-results/lbt12_bl.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/lab-results/lbt12_bl.lock +++ b/development/assets/www/lock/tables/lab-results/lbt12_bl.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/lab-results/lbt13.lock b/development/assets/www/lock/tables/lab-results/lbt13.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/lab-results/lbt13.lock +++ b/development/assets/www/lock/tables/lab-results/lbt13.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/lab-results/lbt14.lock b/development/assets/www/lock/tables/lab-results/lbt14.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/lab-results/lbt14.lock +++ b/development/assets/www/lock/tables/lab-results/lbt14.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/lab-results/lbt15.lock b/development/assets/www/lock/tables/lab-results/lbt15.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/lab-results/lbt15.lock +++ b/development/assets/www/lock/tables/lab-results/lbt15.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/medical-history/mht01.lock b/development/assets/www/lock/tables/medical-history/mht01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/medical-history/mht01.lock +++ b/development/assets/www/lock/tables/medical-history/mht01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/pharmacokinetic/pkct01.lock b/development/assets/www/lock/tables/pharmacokinetic/pkct01.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/pharmacokinetic/pkct01.lock +++ b/development/assets/www/lock/tables/pharmacokinetic/pkct01.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/pharmacokinetic/pkpt02.lock b/development/assets/www/lock/tables/pharmacokinetic/pkpt02.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/pharmacokinetic/pkpt02.lock +++ b/development/assets/www/lock/tables/pharmacokinetic/pkpt02.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/pharmacokinetic/pkpt03.lock b/development/assets/www/lock/tables/pharmacokinetic/pkpt03.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/pharmacokinetic/pkpt03.lock +++ b/development/assets/www/lock/tables/pharmacokinetic/pkpt03.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/pharmacokinetic/pkpt04.lock b/development/assets/www/lock/tables/pharmacokinetic/pkpt04.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/pharmacokinetic/pkpt04.lock +++ b/development/assets/www/lock/tables/pharmacokinetic/pkpt04.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/pharmacokinetic/pkpt05.lock b/development/assets/www/lock/tables/pharmacokinetic/pkpt05.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/pharmacokinetic/pkpt05.lock +++ b/development/assets/www/lock/tables/pharmacokinetic/pkpt05.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/pharmacokinetic/pkpt06.lock b/development/assets/www/lock/tables/pharmacokinetic/pkpt06.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/pharmacokinetic/pkpt06.lock +++ b/development/assets/www/lock/tables/pharmacokinetic/pkpt06.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/pharmacokinetic/pkpt07.lock b/development/assets/www/lock/tables/pharmacokinetic/pkpt07.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/pharmacokinetic/pkpt07.lock +++ b/development/assets/www/lock/tables/pharmacokinetic/pkpt07.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/pharmacokinetic/pkpt08.lock b/development/assets/www/lock/tables/pharmacokinetic/pkpt08.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/pharmacokinetic/pkpt08.lock +++ b/development/assets/www/lock/tables/pharmacokinetic/pkpt08.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/pharmacokinetic/pkpt11.lock b/development/assets/www/lock/tables/pharmacokinetic/pkpt11.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/pharmacokinetic/pkpt11.lock +++ b/development/assets/www/lock/tables/pharmacokinetic/pkpt11.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/risk-management-plan/rmpt01.lock b/development/assets/www/lock/tables/risk-management-plan/rmpt01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/risk-management-plan/rmpt01.lock +++ b/development/assets/www/lock/tables/risk-management-plan/rmpt01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/risk-management-plan/rmpt03.lock b/development/assets/www/lock/tables/risk-management-plan/rmpt03.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/risk-management-plan/rmpt03.lock +++ b/development/assets/www/lock/tables/risk-management-plan/rmpt03.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/risk-management-plan/rmpt04.lock b/development/assets/www/lock/tables/risk-management-plan/rmpt04.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/risk-management-plan/rmpt04.lock +++ b/development/assets/www/lock/tables/risk-management-plan/rmpt04.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/risk-management-plan/rmpt05.lock b/development/assets/www/lock/tables/risk-management-plan/rmpt05.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/risk-management-plan/rmpt05.lock +++ b/development/assets/www/lock/tables/risk-management-plan/rmpt05.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/risk-management-plan/rmpt06.lock b/development/assets/www/lock/tables/risk-management-plan/rmpt06.lock index 185f1ae62..e62de9dfb 100644 --- a/development/assets/www/lock/tables/risk-management-plan/rmpt06.lock +++ b/development/assets/www/lock/tables/risk-management-plan/rmpt06.lock @@ -40,9 +40,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -51,7 +51,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "Matrix": { "Package": "Matrix", @@ -905,7 +905,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -943,7 +943,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -955,7 +955,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgconfig": { "Package": "pkgconfig", @@ -1348,7 +1348,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1357,7 +1357,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "yaml": { "Package": "yaml", diff --git a/development/assets/www/lock/tables/safety/enrollment01.lock b/development/assets/www/lock/tables/safety/enrollment01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/safety/enrollment01.lock +++ b/development/assets/www/lock/tables/safety/enrollment01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/vital-signs/vst01.lock b/development/assets/www/lock/tables/vital-signs/vst01.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/vital-signs/vst01.lock +++ b/development/assets/www/lock/tables/vital-signs/vst01.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/lock/tables/vital-signs/vst02.lock b/development/assets/www/lock/tables/vital-signs/vst02.lock index daf095c08..30b96a288 100644 --- a/development/assets/www/lock/tables/vital-signs/vst02.lock +++ b/development/assets/www/lock/tables/vital-signs/vst02.lock @@ -57,9 +57,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -68,7 +68,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -266,9 +266,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -278,7 +278,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -597,13 +597,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1286,11 +1286,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1300,7 +1301,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1590,7 +1591,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1670,7 +1671,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1682,7 +1683,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -1976,7 +1977,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -1989,7 +1990,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2309,7 +2310,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2333,16 +2334,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2350,11 +2352,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2367,7 +2369,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -2860,7 +2862,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -2869,7 +2871,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/assets/www/renv.lock b/development/assets/www/renv.lock index 9904c6ea8..803988d0d 100644 --- a/development/assets/www/renv.lock +++ b/development/assets/www/renv.lock @@ -101,9 +101,9 @@ }, "MASS": { "Package": "MASS", - "Version": "7.3-63", + "Version": "7.3-64", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -112,7 +112,7 @@ "stats", "utils" ], - "Hash": "192afb459696dc96ccb5adb5bef047de" + "Hash": "49d2d8090b74c1179df1aff16201caf8" }, "MESS": { "Package": "MESS", @@ -310,9 +310,9 @@ }, "TMB": { "Package": "TMB", - "Version": "1.9.15", + "Version": "1.9.16", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -322,7 +322,7 @@ "stats", "utils" ], - "Hash": "a9c26d0c76fdcde77410b88197efa7bf" + "Hash": "ab41aa976351076a1840842a4e415d7f" }, "abind": { "Package": "abind", @@ -558,7 +558,7 @@ "Package": "class", "Version": "7.3-23", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "MASS", "R", @@ -673,13 +673,13 @@ }, "curl": { "Package": "curl", - "Version": "6.0.1", + "Version": "6.1.0", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "R" ], - "Hash": "e8ba62486230951fcd2b881c5be23f96" + "Hash": "8dd23d308c751efdf675124aad4bf5d7" }, "data.table": { "Package": "data.table", @@ -1421,11 +1421,12 @@ }, "labelled": { "Package": "labelled", - "Version": "2.13.0", + "Version": "2.14.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", + "cli", "dplyr", "haven", "lifecycle", @@ -1435,7 +1436,7 @@ "tidyselect", "vctrs" ], - "Hash": "ad4b6d757624221aec6220b8c78defeb" + "Hash": "be115c6af900d820c263a73ec8dea03c" }, "later": { "Package": "later", @@ -1737,7 +1738,7 @@ "Package": "nnet", "Version": "7.3-20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Requirements": [ "R", "stats", @@ -1817,7 +1818,7 @@ }, "pillar": { "Package": "pillar", - "Version": "1.10.0", + "Version": "1.10.1", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -1829,7 +1830,7 @@ "utils", "vctrs" ], - "Hash": "101ca350beea21261a15ba169d7a8513" + "Hash": "8b16b6097daef84cd3c40a6a7c5c9d86" }, "pkgbuild": { "Package": "pkgbuild", @@ -2196,7 +2197,7 @@ }, "rlistings": { "Package": "rlistings", - "Version": "0.2.9.9012", + "Version": "0.2.9.9013", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2209,7 +2210,7 @@ "tibble", "utils" ], - "Hash": "19ee4e618bcc2dcf1835d57f939a5d34" + "Hash": "66897cf8ee5b62a6c0b1b04da11711c3" }, "rmarkdown": { "Package": "rmarkdown", @@ -2565,7 +2566,7 @@ }, "teal": { "Package": "teal", - "Version": "0.15.2.9097", + "Version": "0.15.2.9098", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2589,16 +2590,17 @@ "tools", "utils" ], - "Hash": "4a43425f92f3f4bff57e35679b816849" + "Hash": "597aeedbbf265a3ddad35dbb374e8c36" }, "teal.code": { "Package": "teal.code", - "Version": "0.5.0.9021", + "Version": "0.5.0.9022", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ "R", "checkmate", + "cli", "grDevices", "lifecycle", "methods", @@ -2606,11 +2608,11 @@ "stats", "utils" ], - "Hash": "4957606af131f99f3aac9677f55fefa6" + "Hash": "a31fd20f4d0de06dd54cf9b7a83a9496" }, "teal.data": { "Package": "teal.data", - "Version": "0.6.0.9023", + "Version": "0.6.0.9025", "Source": "Repository", "Repository": "https://pharmaverse.r-universe.dev", "Requirements": [ @@ -2623,7 +2625,7 @@ "teal.code", "utils" ], - "Hash": "8ce7aa0a8734907c0cb4d8f494b551e7" + "Hash": "67ff23be7e82fb37cd175480933578e4" }, "teal.logger": { "Package": "teal.logger", @@ -3172,7 +3174,7 @@ }, "xfun": { "Package": "xfun", - "Version": "0.49", + "Version": "0.50", "Source": "Repository", "Repository": "RSPM", "Requirements": [ @@ -3181,7 +3183,7 @@ "stats", "tools" ], - "Hash": "8687398773806cfff9401a2feca96298" + "Hash": "44ab88837d3f8dfc66a837299b887fa6" }, "xml2": { "Package": "xml2", diff --git a/development/graphs/efficacy/fstg01.html b/development/graphs/efficacy/fstg01.html index 4cba63dc9..603dc66d3 100644 --- a/development/graphs/efficacy/fstg01.html +++ b/development/graphs/efficacy/fstg01.html @@ -1471,7 +1471,7 @@

Output

@@ -1540,7 +1540,7 @@ @@ -1620,7 +1620,7 @@ @@ -1682,7 +1682,7 @@ @@ -1747,7 +1747,7 @@ @@ -1821,7 +1821,7 @@ @@ -2045,7 +2045,7 @@

Timestamp

-
[1] "2025-01-01 17:34:50 UTC"
+
[1] "2025-01-08 18:08:32 UTC"

Session Info

@@ -2061,7 +2061,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2079,7 +2079,7 @@ codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM cowplot 1.1.3 2024-01-22 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2090,7 +2090,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2108,16 +2108,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2126,13 +2126,13 @@ purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM ragg 1.3.3 2024-09-11 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2146,17 +2146,17 @@ stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM systemfonts 1.1.0 2024-05-15 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM textshaping 0.4.1 2024-12-06 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) @@ -2168,7 +2168,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2188,9 +2188,9 @@
diff --git a/development/graphs/efficacy/fstg01_files/figure-html/teal-2.png b/development/graphs/efficacy/fstg01_files/figure-html/teal-2.png index b7f1d004943641daad612258482d1fc8aee77ac4..ead1d058e64fa711bba61a53914ff4fa89839ad3 100644 GIT binary patch delta 56963 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"Q5xJU%GnyD&ip^%+Tn})klUjzJAThUt&(h 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 delta 59349 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 diff --git a/development/graphs/efficacy/fstg02.html b/development/graphs/efficacy/fstg02.html index c10154e5e..2f1568093 100644 --- a/development/graphs/efficacy/fstg02.html +++ b/development/graphs/efficacy/fstg02.html @@ -1471,7 +1471,7 @@

Output

@@ -1553,7 +1553,7 @@ @@ -1640,7 +1640,7 @@ @@ -1716,7 +1716,7 @@ @@ -1795,7 +1795,7 @@ @@ -2049,7 +2049,7 @@

Timestamp

-
[1] "2025-01-01 17:35:58 UTC"
+
[1] "2025-01-08 18:09:54 UTC"

Session Info

@@ -2065,7 +2065,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2083,7 +2083,7 @@ codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM cowplot 1.1.3 2024-01-22 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2094,7 +2094,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats * 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2112,16 +2112,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2130,13 +2130,13 @@ purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM ragg 1.3.3 2024-09-11 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2150,17 +2150,17 @@ stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM systemfonts 1.1.0 2024-05-15 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM textshaping 0.4.1 2024-12-06 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) @@ -2172,7 +2172,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2192,9 +2192,9 @@
diff --git a/development/graphs/efficacy/fstg02_files/figure-html/teal-2.png b/development/graphs/efficacy/fstg02_files/figure-html/teal-2.png index 2983dfb3088aea281dafebececd1cf4c93d49cf9..bd24568f4e18c5cc3cbc6c0e52a1ee3eb0b23177 100644 GIT binary patch delta 52928 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 delta 50713 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 C-}PJo diff --git a/development/graphs/efficacy/kmg01.html b/development/graphs/efficacy/kmg01.html index 1d1e249e4..a9c21285d 100644 --- a/development/graphs/efficacy/kmg01.html +++ b/development/graphs/efficacy/kmg01.html @@ -1471,7 +1471,7 @@

Output

@@ -1533,7 +1533,7 @@ @@ -1589,7 +1589,7 @@ @@ -1642,7 +1642,7 @@ @@ -1697,7 +1697,7 @@ @@ -1753,7 +1753,7 @@ @@ -1814,7 +1814,7 @@ @@ -2019,7 +2019,7 @@

Timestamp

-
[1] "2025-01-01 17:35:32 UTC"
+
[1] "2025-01-08 18:08:05 UTC"

Session Info

@@ -2035,7 +2035,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2053,7 +2053,7 @@ codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM cowplot 1.1.3 2024-01-22 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2063,7 +2063,7 @@ fastmap 1.2.0 2024-05-15 [1] RSPM fontawesome 0.5.3 2024-11-16 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2081,16 +2081,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2099,13 +2099,13 @@ purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM ragg 1.3.3 2024-09-11 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2119,17 +2119,17 @@ stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM systemfonts 1.1.0 2024-05-15 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM textshaping 0.4.1 2024-12-06 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) @@ -2141,7 +2141,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2161,9 +2161,9 @@
diff --git a/development/graphs/efficacy/kmg01_files/figure-html/teal-2.png b/development/graphs/efficacy/kmg01_files/figure-html/teal-2.png index 6afee75768c45c89e5340519d4285304d3387126..89b1b7449e1bece7b21ddc4f9665cd666de8ebcd 100644 GIT binary patch delta 95005 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 kuPC6(@yZjf%4MVGX6H%NCGNOw0#cZc+y+w;EP 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 hs7_!QPe2^B&BWu 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

8zVovPyZg06QC;gS&l*QIkar%^xg=4 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 P8gphE%{V9j?T`NlwF+JY diff --git a/development/graphs/efficacy/mmrmg01.html b/development/graphs/efficacy/mmrmg01.html index df13a9b40..806479e0e 100644 --- a/development/graphs/efficacy/mmrmg01.html +++ b/development/graphs/efficacy/mmrmg01.html @@ -1666,7 +1666,7 @@

Timestamp

-
[1] "2025-01-01 17:34:25 UTC"
+
[1] "2025-01-08 18:09:33 UTC"

Session Info

@@ -1682,7 +1682,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1700,7 +1700,7 @@ codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM cowplot 1.1.3 2024-01-22 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1710,7 +1710,7 @@ fastmap 1.2.0 2024-05-15 [1] RSPM fontawesome 0.5.3 2024-11-16 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1728,18 +1728,18 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM - mmrm 0.3.14.9001 2025-01-01 [1] https://p~ + mmrm 0.3.14.9001 2025-01-08 [1] https://p~ multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) parallelly 1.41.0 2024-12-18 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1747,13 +1747,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1766,30 +1766,30 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ - tern.mmrm * 0.3.2.9002 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ + tern.mmrm * 0.3.2.9002 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM - TMB 1.9.15 2024-09-09 [1] RSPM + TMB 1.9.16 2025-01-08 [1] CRAN (R 4.4.1) vctrs 0.6.5 2023-12-01 [1] RSPM webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1) webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) diff --git a/development/graphs/efficacy/mmrmg01_files/figure-html/teal-1.png b/development/graphs/efficacy/mmrmg01_files/figure-html/teal-1.png index 87db6531dc7878f18c401b044af7a8a2676eec96..ab6761ccb3a26c3b973e2b9747b7becbdd3bb12b 100644 GIT binary patch delta 10179 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®`$IjF6xyFc5L1)>;O z06GMEilIO>Z=xrf+6ABwI#*gE;ti?W?VkhK3wmy~4|V~A2hHW2-NEWPR2wTIACOAA~251%F6rq@6%B!og=;> zKf^8uHj^k2CvN*XHrCK5RRuIC9Fy7>BW(5ps0Ikm>({Q;gVmgR1~B{}7Z+Cm72Qm4 zPEv!#75BL}3}=DAq@-M<9>vLgZ*HD*_tDS@WB5=~@@sgwTGQMmV3aTFcyMy7a$2X? z-;w{gxs#wVxDh%gK_r2_B{i!EtP!q`>pyqeM1?5w6mk53~`^A0kHrY z>hx95+;wwuWhx$ojcW(+0*(Q(fTl1z(G&r~pb#Gbt}xp%szRgFTwJEw+S(>2Ccw!} zO@EWYHmlvHzsMmzDaomLz$CT-d|;?F=r=Adc?=&Q-r#JlZPZ$dCMY2C7cYKlJs*m6 zbZA91F`hm>KRSAXf#GMCu@pUhc)Z&gDJlJ&-W$qi&z_yB7XoSj{x&qz!&FolD=Uds zr=z6E)>J2dHR2c}5ZJ)hm5dJs3L6?4&aJQjmttX=CJ^`nor#me8j-mJ^WZc=V8H|I za7)nS4a_wV0LCEawTz?;ISTXhFK=vYtgZ?O3BgD}NJt12N!eZ{*hU%}8c{sjfCkX7 zAceba?~BGl8JTcAkhJT$87JjZcicdLS>MT|H}xzyS<`Jv9z(C0Uz7L!VflwVQQD_5 zG5Vh54`gn{>(^kmF>rAB%!UulyJzXmA_Ri1I6ExesK`FO-3A)mO`eDrOy}%cufj{Q$O;W44m^fKt^>7`hYHHLFn%O}G4BAPkny4eF)R~i}`#~w-$!QgB9*kqrz zva-sag((5^12WU5aK6NT0snV-xeQVZ7>1UPjwP@wp3Wdz7GQMjoSeRRRqz23s0-Jr zA8he0m^=e$Z7l5UpY<|=7+`l=e*EaN5r-{PPt6Cl2dZY<)R$M^f=9RcxC<$pe&CRV4*OQLRy+mGF$t6cO>mzC^Do-xS)+CHd zkx_d@PrS!4?cd7j{)@>=r<6p7OfjQVQ+nFkoi+(xo6zz~N=yGA>_=yG>*?u98d-Ds zLk$>Zt^ZFSe0Zd0-ilc!q19fJBTNNjJeUpEOLDu7WW1Zq5OIN)d>eWSQisYqVlQb7 z8PjB$Zj@)kh?Bi&%yei#Y3?{G5sXw&S6Tsn3p(8#k1G_ zjI+Q>OI{;C1;xnzMc63f!a?#a6iqVeC}U1+Q~Jd)d;u2lw}jF%<|mHw0@6k2D_{A} z!p!K^5TQW!?cVQ&0GUHRUV~~a0W8lVX_PlUJsj|JUjK^MrYfo$y+LmxAn%g8>Ms;yJw5Og`~l9wH%t&y~$Q9=w87%X4+!+&0h5?0e;_OMT})-XoO8=JZ5_F?Nq| zvr0WRGp~QVU(%slr&#Vn&Zi1>>7dq52b;#1uudkL6TKe^4H-;Fgqcgz0jM9C+dDsO z9WN)wC=n}ubgz#+``lA2KXlgVGRwJ)64&9a4-{EGQQh}4kxaHe!8u=3uRDfrTG;;< zB{dw}trOzt*d)jcEIGm+X=pR3@oM~zkKDHc~xE>pko4fVp;*L+vdVr#FTdqn>4`eE*hxk6o&}NZZS{bkf9V zE2)KVb|W4`DHHDGZjz~uNBvW;6dQ_48~8uWY(G(h!Wku^_+JIPHBpYQD2L7-%zt*t zBk9s@klMHTm?oL+;zxMOTPLhp^ovAol9l`r;7V!b*oH@!?zG^t0{nchTJU}Ves;7N zhG#lMDcA<4Zke$7)=mxT6I_2P*K`tba`kQ6)bG1LWnkx|W}jB~n2disiT3pQB-pcW z=Z=s2mv5~QH|e(@`mrlGebvK+507yo_o_0GrnwVL@AUXo+~{LY9#VVQdJZ}Jb4UHo zWczAIWTxFMkE0yiz4`AlXSDpcihVj%-S(@W(rYd$*lE1ge7`vy3bbgKJvCpCV|u^b zt?qwsh3g?qetA}38FMMazN7bXK7S=-;MuM=S&6ip)c3NB9Au-WanBA;)6O5ajyF%L zt)^=gEM$zo@{LS5RKY(i;JqZ^!^kj z8H_i3{{Ct4PF2B|2>s{$sb4xxx@Ah5MsGBrsp+LAU%n7UalEj~=vE(PgtC+J4Gg<; ziX1?3NfIUmVaR__Z0H2^Jo)!k{AA2M8cHc-=w)yVW(6!KP;7w=$Agt}dcmUn)!1m= z{aF_@B@G>&Tj3xW=;h@;po&fO!R>ne`ZeeAV3lMTHiwwzz%)0#!Q$0Ibab?4;#I@6 zPKV(tA{doGbHGdmWyyk`8!DF)6x4WsyTG=S2khl1sVQf{I*@apL*6iqfr^z$&`i|= zbsNSdSGLZOeYeyV$Q8)8p{4N4$eu4S`r8)+8GstX<;;rg4U^>kzI^$Dm68SW3#~I! z-3o`pfulRiXHz@?c763NX#dzkQw859Xj5WhV!Rr0=L?7N)@{(;mO(^%dwLEoDN;}% z5RI2nR94Jr>L_&y;Ese9kpBL=ON}Jst?6*KHNH>M{?}#j1|L3r2n-f(vIC&s@ss_to>~C$_b; z65w}mOO&56sXRwm+cORERL9q!0F^dHh;BgQy!*jH;*`PJz_bfnNE$Z4{q`JRjSQ^Co2N(Dq3EIU3yK|p`a zG_i{puT$swZY=|`1gFa#<~TA?x708x?dCvK$iXHuy#u{>SbK|4R-UCTDsq!^U)dIQ+7WFT;%G_LM;`SQ6x3Ipx zPNJF6iRwnFX=#06yaap+d>Ix7hTFQjR^sd+UeXa5_CBhwuLrF$doc9DbSvj_vLwqG12(yL9==b2pzG61i(bvz=`3&~X z_6-wZm_dFCq6KsCgL*0uYtncnB@UPthon8Lh(%yd&LSAG;PeC^KRtt!i4io8PDntq zbogOVA_Fc%mR|N%>FlFjz}TjJABJ%BKA+A!ijv_Ws1}Qb#66MleV&GSWn;cZ07@_@I~J zCh-a8p?C}sK9Uj~FY|=AO(+jib@?}dd4z!V(VnadgH}inNU}_Wye}ZpK>2+5@F7vF z7v?FzPxaGv(BSBYfaf0=hy=o*IqPm|KD=cDo_I$yZD@n*WHVE`J(=gi)U`VDjHi#! zjg`|Wk0424Vc?eZ3=Hi2X-|elyw)or4{&fY3E|=4B*6`D7?4r`%w!RfcJs><6BFW2 zzwf4lH{J{z0u<`Y7c}3}(~yvozQ3u`NHRPM7>#th!DNP`IJNM_pSeTx0Az3n<}E;h)TOlyITvZp zjw3LW1?>PPF^uk0wFpyFJs`2*$Z{^QJ@4>4`PMu$LbAYD!>^VCRn0!k-Vt}41-xF{ zQ@0`H;Q2g$d;m&|=%kf)zn5M?LZYysKpcgtbu8ux`wDYj;!F>Uw0{&=-?1-ccGlF? z%+1-Sb=uStWU?99gV-Ak7K0 zeDJ_uVRQ#`yXb?N=*jJ}&Vo_O{kx}hv|CBbn6J#t@JqSq%3yhgST{=h_ySo?Fngb4e|Mm?WboX*1 zym|zsjl``!P_x52O75OGr&6)I{GBw^mB2=t=J4kJd$jt6DXzC}*Nt6;4D+w0b;7jr zW}IFw^ae;U)?-h=p#WF`lY$lnW5`5g&kJ=8z-Yb!Oi<4BPoE6(EuXGRfJ&5+0ZCvp z`Xva4^+H0e=9eK+hI4_pN&qm!FdIe{|D+3)OKVF@lp`IxxJ}dR3!|f>usK5jWfm46 z>P8`PVf0&i&mKj0o`>fnR4felA-C%4#+!JPBEK95CmQ-AjOz#C?E`Ufaen?8c)18n z8Ay?6J>)t)q~M=FHkGEs@cu)>f3hCf!v3E>Z`&F*(gh=ax1xp397SWnL_Kx#Bs|dF z#vF1O{wit@+6R%nC5jrqu8@D$76ruuYs@Pgr6lv}FzqYB>t7cykCP5pQ`WqejW&P$ Fe*l3P6`ueA delta 10446 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 aZzE?M)Ca8;-rgpCt|+g1J6q1=`Tqe3

Timestamp

-
[1] "2025-01-01 17:36:35 UTC"
+
[1] "2025-01-08 18:09:08 UTC"

Session Info

@@ -1608,7 +1608,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1622,7 +1622,7 @@ codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM cowplot 1.1.3 2024-01-22 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1630,7 +1630,7 @@ evaluate 1.0.1 2024-10-10 [1] RSPM farver 2.1.2 2024-05-13 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1643,46 +1643,46 @@ lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1) lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM - mmrm 0.3.14.9001 2025-01-01 [1] https://p~ + mmrm 0.3.14.9001 2025-01-08 [1] https://p~ multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) parallelly 1.41.0 2024-12-18 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.mmrm * 0.3.2.9002 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.mmrm * 0.3.2.9002 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM - TMB 1.9.15 2024-09-09 [1] RSPM + TMB 1.9.16 2025-01-08 [1] CRAN (R 4.4.1) vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) diff --git a/development/graphs/other/brg01.html b/development/graphs/other/brg01.html index 4e29ef389..82a29529f 100644 --- a/development/graphs/other/brg01.html +++ b/development/graphs/other/brg01.html @@ -1465,7 +1465,7 @@

Output

@@ -1534,7 +1534,7 @@ @@ -1599,7 +1599,7 @@ @@ -1661,7 +1661,7 @@ @@ -1719,7 +1719,7 @@ @@ -1804,7 +1804,7 @@ @@ -1870,7 +1870,7 @@ @@ -1935,7 +1935,7 @@ @@ -2039,7 +2039,7 @@ @@ -2109,7 +2109,7 @@ @@ -2150,7 +2150,7 @@

Timestamp

-
[1] "2025-01-01 17:37:29 UTC"
+
[1] "2025-01-08 18:06:46 UTC"

Session Info

@@ -2166,7 +2166,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2180,13 +2180,13 @@ codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM cowplot 1.1.3 2024-01-22 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM farver 2.1.2 2024-05-13 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 * 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -2201,33 +2201,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr * 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -2245,9 +2245,9 @@
diff --git a/development/graphs/other/bwg01.html b/development/graphs/other/bwg01.html index 716af0c2f..dc0c0435c 100644 --- a/development/graphs/other/bwg01.html +++ b/development/graphs/other/bwg01.html @@ -1471,7 +1471,7 @@

Output

@@ -1542,7 +1542,7 @@ @@ -1605,7 +1605,7 @@ @@ -1669,7 +1669,7 @@ @@ -1744,7 +1744,7 @@ @@ -1804,7 +1804,7 @@ @@ -1881,7 +1881,7 @@ @@ -1952,7 +1952,7 @@ @@ -2060,7 +2060,7 @@ @@ -2121,7 +2121,7 @@ @@ -2464,7 +2464,7 @@

Timestamp

-
[1] "2025-01-01 17:38:13 UTC"
+
[1] "2025-01-08 18:05:53 UTC"

Session Info

@@ -2480,7 +2480,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2495,12 +2495,12 @@ cellranger 1.1.0 2016-07-27 [1] RSPM checkmate 2.3.2 2024-07-29 [1] RSPM chromote 0.3.1 2024-08-30 [1] RSPM - class 7.3-23 2025-01-01 [1] CRAN (R 4.4.1) + class 7.3-23 2025-01-01 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM cowplot 1.1.3 2024-01-22 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM data.table 1.16.4 2024-12-06 [1] RSPM DescTools 0.99.58 2024-11-08 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM @@ -2514,7 +2514,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggmosaic * 0.3.3 2021-02-23 [1] RSPM ggplot2 * 3.5.1 2024-04-23 [1] RSPM @@ -2539,14 +2539,14 @@ lmom 3.2 2024-09-30 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM plotly 4.10.4 2024-01-13 [1] RSPM @@ -2557,7 +2557,7 @@ purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM ragg 1.3.3 2024-09-11 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM @@ -2566,7 +2566,7 @@ rmarkdown 2.29 2024-11-04 [1] RSPM rootSolve 1.8.2.4 2023-09-21 [1] RSPM rstudioapi 0.17.1 2024-10-22 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) @@ -2579,16 +2579,16 @@ stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM systemfonts 1.1.0 2024-05-15 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.general * 0.3.0.9061 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.general * 0.3.0.9061 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM textshaping 0.4.1 2024-12-06 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM @@ -2600,7 +2600,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM @@ -2619,9 +2619,9 @@
diff --git a/development/graphs/other/bwg01_files/figure-html/teal-2.png b/development/graphs/other/bwg01_files/figure-html/teal-2.png index 9ebfc8b682d02ba0d15531e3ccae4bb6f04ddec9..b06efc28368a6f51c04027bb058b55cacd2066d1 100644 GIT binary patch delta 8848 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

Output

@@ -1550,7 +1550,7 @@
@@ -1621,7 +1621,7 @@ @@ -1693,7 +1693,7 @@ @@ -1765,7 +1765,7 @@ @@ -1817,7 +1817,7 @@ @@ -2056,7 +2056,7 @@

Timestamp

-
[1] "2025-01-01 17:36:54 UTC"
+
[1] "2025-01-08 18:06:13 UTC"

Session Info

@@ -2072,7 +2072,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2089,7 +2089,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2099,7 +2099,7 @@ fastmap 1.2.0 2024-05-15 [1] RSPM fontawesome 0.5.3 2024-11-16 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 * 3.5.1 2024-04-23 [1] RSPM @@ -2117,16 +2117,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2135,13 +2135,13 @@ purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM ragg 1.3.3 2024-09-11 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2155,17 +2155,17 @@ stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM systemfonts 1.1.0 2024-05-15 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM textshaping 0.4.1 2024-12-06 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) @@ -2177,7 +2177,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2197,9 +2197,9 @@
diff --git a/development/graphs/other/cig01_files/figure-html/teal-2.png b/development/graphs/other/cig01_files/figure-html/teal-2.png index 2edd6d908943be138dc6450768c5bfac27d5dbb3..ce77bb23fb4fcb26b9d1729d91b4c2fcbbad9265 100644 GIT binary patch delta 75854 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%0DbgbO1XSXdS@y| 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

MVpOG>f-Y&dnEBgo79=Z4* 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 diff --git a/development/graphs/other/ippg01.html b/development/graphs/other/ippg01.html index cc80b79c2..4bb24c037 100644 --- a/development/graphs/other/ippg01.html +++ b/development/graphs/other/ippg01.html @@ -1472,7 +1472,7 @@

Output

@@ -1549,7 +1549,7 @@ @@ -1625,7 +1625,7 @@ @@ -1863,7 +1863,7 @@

Timestamp

-
[1] "2025-01-01 17:37:15 UTC"
+
[1] "2025-01-08 18:06:33 UTC"

Session Info

@@ -1879,7 +1879,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1896,7 +1896,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1907,7 +1907,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 * 3.5.1 2024-04-23 [1] RSPM @@ -1925,16 +1925,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1943,13 +1943,13 @@ purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM ragg 1.3.3 2024-09-11 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1963,17 +1963,17 @@ stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM systemfonts 1.1.0 2024-05-15 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM textshaping 0.4.1 2024-12-06 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) @@ -1985,7 +1985,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2005,9 +2005,9 @@
diff --git a/development/graphs/other/ippg01_files/figure-html/teal-2.png b/development/graphs/other/ippg01_files/figure-html/teal-2.png index a41af9def49942748d95e4ef4fb72fb97e1aee89..804e6320c97f5d9c0369ff6b5d073db4db4e3318 100644 GIT binary patch delta 8484 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 SZ)Q%Ilajo;T)yn%7yktio^U+? delta 8708 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 y

Output

@@ -1532,7 +1532,7 @@
@@ -1586,7 +1586,7 @@ @@ -1639,7 +1639,7 @@ @@ -1681,7 +1681,7 @@

Basic Plot

@@ -1747,7 +1747,7 @@ @@ -1803,7 +1803,7 @@ @@ -1859,7 +1859,7 @@ @@ -1916,7 +1916,7 @@ @@ -1964,7 +1964,7 @@

Timestamp

-
[1] "2025-01-01 17:38:32 UTC"
+
[1] "2025-01-08 18:05:32 UTC"

Session Info

@@ -1980,7 +1980,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1993,7 +1993,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2001,7 +2001,7 @@ evaluate 1.0.1 2024-10-10 [1] RSPM farver 2.1.2 2024-05-13 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 * 3.5.1 2024-04-23 [1] RSPM @@ -2018,15 +2018,15 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2034,13 +2034,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) @@ -2048,15 +2048,15 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2064,7 +2064,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2084,9 +2084,9 @@
diff --git a/development/graphs/other/mng01.html b/development/graphs/other/mng01.html index cdd71647b..28f5cb0b3 100644 --- a/development/graphs/other/mng01.html +++ b/development/graphs/other/mng01.html @@ -1471,7 +1471,7 @@

Output

@@ -1533,7 +1533,7 @@ @@ -1587,7 +1587,7 @@ @@ -1642,7 +1642,7 @@ @@ -1696,7 +1696,7 @@ @@ -1749,7 +1749,7 @@ @@ -1802,7 +1802,7 @@ @@ -1858,7 +1858,7 @@ @@ -2065,7 +2065,7 @@

Timestamp

-
[1] "2025-01-01 17:37:48 UTC"
+
[1] "2025-01-08 18:05:14 UTC"

Session Info

@@ -2081,7 +2081,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2099,7 +2099,7 @@ codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM cowplot 1.1.3 2024-01-22 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2110,7 +2110,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats * 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2128,16 +2128,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2146,13 +2146,13 @@ purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM ragg 1.3.3 2024-09-11 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2166,17 +2166,17 @@ stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM systemfonts 1.1.0 2024-05-15 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM textshaping 0.4.1 2024-12-06 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) @@ -2188,7 +2188,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2208,9 +2208,9 @@
diff --git a/development/graphs/other/mng01_files/figure-html/teal-2.png b/development/graphs/other/mng01_files/figure-html/teal-2.png index 7d307b4d66e9c0bbb597266f7d19b3187513da6b..a38091235fa805bdda80adb9fd1c295b7e294b6b 100644 GIT binary patch delta 9466 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 delta 9476 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 xp**_}QR^CF`G

Output

@@ -1542,7 +1542,7 @@
@@ -1616,7 +1616,7 @@ @@ -1640,7 +1640,7 @@

Timestamp

-
[1] "2025-01-01 17:38:58 UTC"
+
[1] "2025-01-08 18:07:02 UTC"

Session Info

@@ -1656,7 +1656,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1668,13 +1668,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM farver 2.1.2 2024-05-13 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 * 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1689,33 +1689,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1735,7 +1735,7 @@
diff --git a/development/graphs/pharmacokinetic/pkcg02.html b/development/graphs/pharmacokinetic/pkcg02.html index a0c1c6e70..3506d5093 100644 --- a/development/graphs/pharmacokinetic/pkcg02.html +++ b/development/graphs/pharmacokinetic/pkcg02.html @@ -1465,7 +1465,7 @@

Output

@@ -1542,7 +1542,7 @@ @@ -1617,7 +1617,7 @@ @@ -1641,7 +1641,7 @@

Timestamp

-
[1] "2025-01-01 17:39:34 UTC"
+
[1] "2025-01-08 18:07:30 UTC"

Session Info

@@ -1657,7 +1657,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1669,13 +1669,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM farver 2.1.2 2024-05-13 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 * 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1690,33 +1690,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1734,9 +1734,9 @@
diff --git a/development/graphs/pharmacokinetic/pkcg03.html b/development/graphs/pharmacokinetic/pkcg03.html index 7c9eaf144..93d788733 100644 --- a/development/graphs/pharmacokinetic/pkcg03.html +++ b/development/graphs/pharmacokinetic/pkcg03.html @@ -1465,7 +1465,7 @@

Output

@@ -1543,7 +1543,7 @@ @@ -1625,7 +1625,7 @@ @@ -1657,7 +1657,7 @@

Timestamp

-
[1] "2025-01-01 17:39:20 UTC"
+
[1] "2025-01-08 18:06:53 UTC"

Session Info

@@ -1673,7 +1673,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1685,14 +1685,14 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM farver 2.1.2 2024-05-13 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 * 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1707,33 +1707,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1751,9 +1751,9 @@
diff --git a/development/graphs/pharmacokinetic/pkpg01.html b/development/graphs/pharmacokinetic/pkpg01.html index 50f35051a..093551989 100644 --- a/development/graphs/pharmacokinetic/pkpg01.html +++ b/development/graphs/pharmacokinetic/pkpg01.html @@ -1465,7 +1465,7 @@

Output

@@ -1551,7 +1551,7 @@ @@ -1650,7 +1650,7 @@ @@ -1694,7 +1694,7 @@

Timestamp

-
[1] "2025-01-01 17:39:27 UTC"
+
[1] "2025-01-08 18:07:43 UTC"

Session Info

@@ -1710,7 +1710,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1722,14 +1722,14 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM farver 2.1.2 2024-05-13 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 * 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1744,33 +1744,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1788,9 +1788,9 @@
diff --git a/development/graphs/pharmacokinetic/pkpg02.html b/development/graphs/pharmacokinetic/pkpg02.html index d387d7ce0..a00f6d7a5 100644 --- a/development/graphs/pharmacokinetic/pkpg02.html +++ b/development/graphs/pharmacokinetic/pkpg02.html @@ -1465,7 +1465,7 @@

Output

@@ -1572,7 +1572,7 @@ @@ -1653,7 +1653,7 @@ @@ -1704,7 +1704,7 @@

Timestamp

-
[1] "2025-01-01 17:39:12 UTC"
+
[1] "2025-01-08 18:07:23 UTC"

Session Info

@@ -1720,7 +1720,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1732,13 +1732,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM farver 2.1.2 2024-05-13 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 * 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1753,34 +1753,34 @@ Matrix 1.7-1 2024-10-18 [1] RSPM mgcv 1.9-1 2023-12-21 [2] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1798,9 +1798,9 @@
diff --git a/development/graphs/pharmacokinetic/pkpg03.html b/development/graphs/pharmacokinetic/pkpg03.html index ef4e7b89d..4a9f8cf1b 100644 --- a/development/graphs/pharmacokinetic/pkpg03.html +++ b/development/graphs/pharmacokinetic/pkpg03.html @@ -1465,7 +1465,7 @@

Output

@@ -1547,7 +1547,7 @@ @@ -1571,7 +1571,7 @@

Timestamp

-
[1] "2025-01-01 17:39:05 UTC"
+
[1] "2025-01-08 18:07:08 UTC"

Session Info

@@ -1587,7 +1587,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1599,13 +1599,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM farver 2.1.2 2024-05-13 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 * 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1620,33 +1620,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1664,9 +1664,9 @@
diff --git a/development/graphs/pharmacokinetic/pkpg04.html b/development/graphs/pharmacokinetic/pkpg04.html index 33effa2dc..452a2a0d1 100644 --- a/development/graphs/pharmacokinetic/pkpg04.html +++ b/development/graphs/pharmacokinetic/pkpg04.html @@ -1465,7 +1465,7 @@

Output

@@ -1548,7 +1548,7 @@ @@ -1573,7 +1573,7 @@

Timestamp

-
[1] "2025-01-01 17:38:41 UTC"
+
[1] "2025-01-08 18:07:37 UTC"

Session Info

@@ -1589,7 +1589,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1601,13 +1601,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM farver 2.1.2 2024-05-13 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 * 3.5.1 2024-04-23 [1] RSPM ggrepel * 0.9.6 2024-09-07 [1] RSPM @@ -1623,34 +1623,34 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1668,7 +1668,7 @@
diff --git a/development/graphs/pharmacokinetic/pkpg04_files/figure-html/plot1-1.svg b/development/graphs/pharmacokinetic/pkpg04_files/figure-html/plot1-1.svg index 97a5342d4..3ce13465a 100644 --- a/development/graphs/pharmacokinetic/pkpg04_files/figure-html/plot1-1.svg +++ b/development/graphs/pharmacokinetic/pkpg04_files/figure-html/plot1-1.svg @@ -450,100 +450,99 @@ - - - + + - - - - - + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - + + + + + @@ -554,43 +553,43 @@ - - - - - - + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + + diff --git a/development/graphs/pharmacokinetic/pkpg06.html b/development/graphs/pharmacokinetic/pkpg06.html index 42043b05b..8a1937cc1 100644 --- a/development/graphs/pharmacokinetic/pkpg06.html +++ b/development/graphs/pharmacokinetic/pkpg06.html @@ -1464,7 +1464,7 @@

Output

@@ -1553,7 +1553,7 @@ @@ -1635,7 +1635,7 @@ @@ -1705,7 +1705,7 @@ @@ -1807,7 +1807,7 @@ @@ -1869,7 +1869,7 @@

Timestamp

-
[1] "2025-01-01 17:38:49 UTC"
+
[1] "2025-01-08 18:07:16 UTC"

Session Info

@@ -1885,7 +1885,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1897,13 +1897,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM farver 2.1.2 2024-05-13 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 * 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1918,33 +1918,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr * 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1962,9 +1962,9 @@
diff --git a/development/listings/ADA/adal02.html b/development/listings/ADA/adal02.html index 6cba8c5a1..3fb9eaf38 100644 --- a/development/listings/ADA/adal02.html +++ b/development/listings/ADA/adal02.html @@ -1465,7 +1465,7 @@

Output

@@ -1573,7 +1573,7 @@ @@ -1674,7 +1674,7 @@

Timestamp

-
[1] "2025-01-01 18:09:33 UTC"
+
[1] "2025-01-08 17:36:39 UTC"

Session Info

@@ -1690,7 +1690,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1700,12 +1700,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1714,16 +1714,16 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1734,7 +1734,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1752,9 +1752,9 @@
diff --git a/development/listings/ECG/egl01.html b/development/listings/ECG/egl01.html index 49281797e..f612f9d68 100644 --- a/development/listings/ECG/egl01.html +++ b/development/listings/ECG/egl01.html @@ -1465,7 +1465,7 @@

Output

@@ -1549,7 +1549,7 @@ @@ -1631,7 +1631,7 @@

Timestamp

-
[1] "2025-01-01 18:09:38 UTC"
+
[1] "2025-01-08 17:37:54 UTC"

Session Info

@@ -1647,7 +1647,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1657,12 +1657,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1671,16 +1671,16 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1691,7 +1691,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1709,9 +1709,9 @@
diff --git a/development/listings/adverse-events/ael01.html b/development/listings/adverse-events/ael01.html index 733c66bf1..8bbf82d20 100644 --- a/development/listings/adverse-events/ael01.html +++ b/development/listings/adverse-events/ael01.html @@ -1465,7 +1465,7 @@

Output

@@ -1534,7 +1534,7 @@ @@ -1567,7 +1567,7 @@

Timestamp

-
[1] "2025-01-01 18:08:35 UTC"
+
[1] "2025-01-08 17:37:32 UTC"

Session Info

@@ -1583,7 +1583,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1593,12 +1593,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1607,15 +1607,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1625,7 +1625,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1643,9 +1643,9 @@
diff --git a/development/listings/adverse-events/ael01_nollt.html b/development/listings/adverse-events/ael01_nollt.html index 1574fb7a3..2d67a4725 100644 --- a/development/listings/adverse-events/ael01_nollt.html +++ b/development/listings/adverse-events/ael01_nollt.html @@ -1465,7 +1465,7 @@

Output

@@ -1534,7 +1534,7 @@ @@ -1566,7 +1566,7 @@

Timestamp

-
[1] "2025-01-01 18:08:31 UTC"
+
[1] "2025-01-08 17:37:15 UTC"

Session Info

@@ -1582,7 +1582,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1592,12 +1592,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1606,15 +1606,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1624,7 +1624,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1642,9 +1642,9 @@
diff --git a/development/listings/adverse-events/ael02.html b/development/listings/adverse-events/ael02.html index 1a7aaf767..767f50c6a 100644 --- a/development/listings/adverse-events/ael02.html +++ b/development/listings/adverse-events/ael02.html @@ -1465,7 +1465,7 @@

Output

@@ -1564,7 +1564,7 @@ @@ -1631,7 +1631,7 @@

Timestamp

-
[1] "2025-01-01 18:08:40 UTC"
+
[1] "2025-01-08 17:37:24 UTC"

Session Info

@@ -1647,7 +1647,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1657,12 +1657,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1671,15 +1671,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1689,7 +1689,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1707,9 +1707,9 @@
diff --git a/development/listings/adverse-events/ael02_ed.html b/development/listings/adverse-events/ael02_ed.html index e6bcde23f..21e758df8 100644 --- a/development/listings/adverse-events/ael02_ed.html +++ b/development/listings/adverse-events/ael02_ed.html @@ -1465,7 +1465,7 @@

Output

@@ -1564,7 +1564,7 @@ @@ -1649,7 +1649,7 @@

Timestamp

-
[1] "2025-01-01 18:08:26 UTC"
+
[1] "2025-01-08 17:37:37 UTC"

Session Info

@@ -1665,7 +1665,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1675,12 +1675,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1690,15 +1690,15 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM lubridate * 1.9.4 2024-12-08 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1709,7 +1709,7 @@ timechange 0.3.0 2024-01-18 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1727,9 +1727,9 @@
diff --git a/development/listings/adverse-events/ael03.html b/development/listings/adverse-events/ael03.html index 6f5177f39..423036f78 100644 --- a/development/listings/adverse-events/ael03.html +++ b/development/listings/adverse-events/ael03.html @@ -1465,7 +1465,7 @@

Output

@@ -1574,7 +1574,7 @@ @@ -1654,7 +1654,7 @@

Timestamp

-
[1] "2025-01-01 18:08:45 UTC"
+
[1] "2025-01-08 17:37:19 UTC"

Session Info

@@ -1670,7 +1670,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1680,12 +1680,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1694,15 +1694,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1712,7 +1712,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1730,9 +1730,9 @@
diff --git a/development/listings/adverse-events/ael04.html b/development/listings/adverse-events/ael04.html index da2ae88f6..cdb89d7ab 100644 --- a/development/listings/adverse-events/ael04.html +++ b/development/listings/adverse-events/ael04.html @@ -1465,7 +1465,7 @@

Output

@@ -1545,7 +1545,7 @@ @@ -1588,7 +1588,7 @@

Timestamp

-
[1] "2025-01-01 18:08:21 UTC"
+
[1] "2025-01-08 17:37:28 UTC"

Session Info

@@ -1604,7 +1604,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1614,12 +1614,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1628,15 +1628,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1646,7 +1646,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1664,9 +1664,9 @@
diff --git a/development/listings/concomitant-medications/cml01.html b/development/listings/concomitant-medications/cml01.html index 32a3f9466..ad0279a4b 100644 --- a/development/listings/concomitant-medications/cml01.html +++ b/development/listings/concomitant-medications/cml01.html @@ -1465,7 +1465,7 @@

Output

@@ -1545,7 +1545,7 @@ @@ -1599,7 +1599,7 @@

Timestamp

-
[1] "2025-01-01 18:08:17 UTC"
+
[1] "2025-01-08 17:37:45 UTC"

Session Info

@@ -1615,7 +1615,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1625,12 +1625,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1639,15 +1639,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1657,7 +1657,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1675,9 +1675,9 @@
diff --git a/development/listings/concomitant-medications/cml02a_gl.html b/development/listings/concomitant-medications/cml02a_gl.html index e436f0885..b42785cf7 100644 --- a/development/listings/concomitant-medications/cml02a_gl.html +++ b/development/listings/concomitant-medications/cml02a_gl.html @@ -1465,7 +1465,7 @@

Output

@@ -1541,7 +1541,7 @@ @@ -1573,7 +1573,7 @@

Timestamp

-
[1] "2025-01-01 18:08:07 UTC"
+
[1] "2025-01-08 17:37:49 UTC"

Session Info

@@ -1589,7 +1589,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1599,12 +1599,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1613,15 +1613,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1631,7 +1631,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1649,9 +1649,9 @@
diff --git a/development/listings/concomitant-medications/cml02b_gl.html b/development/listings/concomitant-medications/cml02b_gl.html index 20fb438de..77cd61c97 100644 --- a/development/listings/concomitant-medications/cml02b_gl.html +++ b/development/listings/concomitant-medications/cml02b_gl.html @@ -1465,7 +1465,7 @@

Output

@@ -1541,7 +1541,7 @@ @@ -1576,7 +1576,7 @@

Timestamp

-
[1] "2025-01-01 18:08:12 UTC"
+
[1] "2025-01-08 17:37:41 UTC"

Session Info

@@ -1592,7 +1592,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1602,12 +1602,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1616,15 +1616,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1634,7 +1634,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1652,9 +1652,9 @@
diff --git a/development/listings/development-safety-update-report/dsur4.html b/development/listings/development-safety-update-report/dsur4.html index 65d286626..ea48796f3 100644 --- a/development/listings/development-safety-update-report/dsur4.html +++ b/development/listings/development-safety-update-report/dsur4.html @@ -1465,7 +1465,7 @@

Output

@@ -1545,7 +1545,7 @@ @@ -1578,7 +1578,7 @@

Timestamp

-
[1] "2025-01-01 18:08:03 UTC"
+
[1] "2025-01-08 17:36:27 UTC"

Session Info

@@ -1594,7 +1594,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1604,12 +1604,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1618,15 +1618,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1636,7 +1636,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1654,9 +1654,9 @@
diff --git a/development/listings/disposition/dsl01.html b/development/listings/disposition/dsl01.html index af35bdb1b..20e180f11 100644 --- a/development/listings/disposition/dsl01.html +++ b/development/listings/disposition/dsl01.html @@ -1465,7 +1465,7 @@

Output

@@ -1545,7 +1545,7 @@ @@ -1587,7 +1587,7 @@

Timestamp

-
[1] "2025-01-01 18:08:54 UTC"
+
[1] "2025-01-08 17:36:35 UTC"

Session Info

@@ -1603,7 +1603,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1613,12 +1613,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1627,15 +1627,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1645,7 +1645,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1663,9 +1663,9 @@
diff --git a/development/listings/disposition/dsl02.html b/development/listings/disposition/dsl02.html index 4ad670240..1154acb27 100644 --- a/development/listings/disposition/dsl02.html +++ b/development/listings/disposition/dsl02.html @@ -1465,7 +1465,7 @@

Output

@@ -1532,7 +1532,7 @@ @@ -1582,7 +1582,7 @@

Timestamp

-
[1] "2025-01-01 18:08:59 UTC"
+
[1] "2025-01-08 17:36:31 UTC"

Session Info

@@ -1598,7 +1598,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1608,12 +1608,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1622,15 +1622,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1640,7 +1640,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1658,9 +1658,9 @@
diff --git a/development/listings/efficacy/oncl01.html b/development/listings/efficacy/oncl01.html index d9bc48e66..ad95a038f 100644 --- a/development/listings/efficacy/oncl01.html +++ b/development/listings/efficacy/oncl01.html @@ -1465,7 +1465,7 @@

Output

@@ -1549,7 +1549,7 @@ @@ -1642,7 +1642,7 @@

Timestamp

-
[1] "2025-01-01 18:07:24 UTC"
+
[1] "2025-01-08 17:38:25 UTC"

Session Info

@@ -1658,7 +1658,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1668,12 +1668,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1682,16 +1682,16 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1702,7 +1702,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1720,9 +1720,9 @@
diff --git a/development/listings/exposure/exl01.html b/development/listings/exposure/exl01.html index 30b743776..1449ea916 100644 --- a/development/listings/exposure/exl01.html +++ b/development/listings/exposure/exl01.html @@ -1465,7 +1465,7 @@

Output

@@ -1544,7 +1544,7 @@ @@ -1586,7 +1586,7 @@

Timestamp

-
[1] "2025-01-01 18:08:50 UTC"
+
[1] "2025-01-08 17:36:44 UTC"

Session Info

@@ -1602,7 +1602,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1612,12 +1612,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1626,15 +1626,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1644,7 +1644,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1662,9 +1662,9 @@
diff --git a/development/listings/lab-results/lbl01.html b/development/listings/lab-results/lbl01.html index 522820fff..2d43c54c0 100644 --- a/development/listings/lab-results/lbl01.html +++ b/development/listings/lab-results/lbl01.html @@ -1465,7 +1465,7 @@

Output

@@ -1549,7 +1549,7 @@ @@ -1615,7 +1615,7 @@

Timestamp

-
[1] "2025-01-01 18:07:39 UTC"
+
[1] "2025-01-08 17:36:53 UTC"

Session Info

@@ -1631,7 +1631,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1641,12 +1641,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1655,16 +1655,16 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1675,7 +1675,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1693,9 +1693,9 @@
diff --git a/development/listings/lab-results/lbl01_rls.html b/development/listings/lab-results/lbl01_rls.html index 8ef88aa6e..50f7d2942 100644 --- a/development/listings/lab-results/lbl01_rls.html +++ b/development/listings/lab-results/lbl01_rls.html @@ -1465,7 +1465,7 @@

Output

@@ -1549,7 +1549,7 @@ @@ -1620,7 +1620,7 @@

Timestamp

-
[1] "2025-01-01 18:07:43 UTC"
+
[1] "2025-01-08 17:37:11 UTC"

Session Info

@@ -1636,7 +1636,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1646,12 +1646,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1660,16 +1660,16 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1680,7 +1680,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1698,9 +1698,9 @@
diff --git a/development/listings/lab-results/lbl02a.html b/development/listings/lab-results/lbl02a.html index b801aee35..e9bd51dc7 100644 --- a/development/listings/lab-results/lbl02a.html +++ b/development/listings/lab-results/lbl02a.html @@ -1465,7 +1465,7 @@

Output

@@ -1549,7 +1549,7 @@ @@ -1615,7 +1615,7 @@

Timestamp

-
[1] "2025-01-01 18:07:54 UTC"
+
[1] "2025-01-08 17:37:02 UTC"

Session Info

@@ -1631,7 +1631,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1641,12 +1641,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1655,15 +1655,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1673,7 +1673,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1691,9 +1691,9 @@
diff --git a/development/listings/lab-results/lbl02a_rls.html b/development/listings/lab-results/lbl02a_rls.html index fbe3cc731..f6b410777 100644 --- a/development/listings/lab-results/lbl02a_rls.html +++ b/development/listings/lab-results/lbl02a_rls.html @@ -1465,7 +1465,7 @@

Output

@@ -1550,7 +1550,7 @@ @@ -1636,7 +1636,7 @@

Timestamp

-
[1] "2025-01-01 18:07:49 UTC"
+
[1] "2025-01-08 17:36:57 UTC"

Session Info

@@ -1652,7 +1652,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1662,12 +1662,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1676,15 +1676,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1694,7 +1694,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1712,9 +1712,9 @@
diff --git a/development/listings/lab-results/lbl02b.html b/development/listings/lab-results/lbl02b.html index d9e7e69b5..bdae8d23f 100644 --- a/development/listings/lab-results/lbl02b.html +++ b/development/listings/lab-results/lbl02b.html @@ -1465,7 +1465,7 @@

Output

@@ -1549,7 +1549,7 @@ @@ -1616,7 +1616,7 @@

Timestamp

-
[1] "2025-01-01 18:07:34 UTC"
+
[1] "2025-01-08 17:37:06 UTC"

Session Info

@@ -1632,7 +1632,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1642,12 +1642,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1656,15 +1656,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1674,7 +1674,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1692,9 +1692,9 @@
diff --git a/development/listings/medical-history/mhl01.html b/development/listings/medical-history/mhl01.html index 5d1b46c66..3f33705f8 100644 --- a/development/listings/medical-history/mhl01.html +++ b/development/listings/medical-history/mhl01.html @@ -1465,7 +1465,7 @@

Output

@@ -1545,7 +1545,7 @@ @@ -1591,7 +1591,7 @@

Timestamp

-
[1] "2025-01-01 18:07:58 UTC"
+
[1] "2025-01-08 17:36:48 UTC"

Session Info

@@ -1607,7 +1607,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1617,12 +1617,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1631,15 +1631,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1649,7 +1649,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1669,7 +1669,7 @@
diff --git a/development/listings/pharmacokinetic/adal01.html b/development/listings/pharmacokinetic/adal01.html index 471e17f8e..29228e827 100644 --- a/development/listings/pharmacokinetic/adal01.html +++ b/development/listings/pharmacokinetic/adal01.html @@ -1465,7 +1465,7 @@

Output

@@ -1571,7 +1571,7 @@ @@ -1687,7 +1687,7 @@

Timestamp

-
[1] "2025-01-01 18:09:13 UTC"
+
[1] "2025-01-08 17:38:16 UTC"

Session Info

@@ -1703,7 +1703,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1713,12 +1713,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1727,16 +1727,16 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data * 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data * 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1747,7 +1747,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1765,9 +1765,9 @@
diff --git a/development/listings/pharmacokinetic/pkcl01.html b/development/listings/pharmacokinetic/pkcl01.html index 83442070c..5e5b93faf 100644 --- a/development/listings/pharmacokinetic/pkcl01.html +++ b/development/listings/pharmacokinetic/pkcl01.html @@ -1465,7 +1465,7 @@

Output

@@ -1589,7 +1589,7 @@

Timestamp

-
[1] "2025-01-01 18:09:23 UTC"
+
[1] "2025-01-08 17:38:03 UTC"

Session Info

@@ -1605,7 +1605,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1615,12 +1615,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1629,15 +1629,15 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1647,7 +1647,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1665,9 +1665,9 @@
diff --git a/development/listings/pharmacokinetic/pkcl02.html b/development/listings/pharmacokinetic/pkcl02.html index 3f8dba269..7ab06b54c 100644 --- a/development/listings/pharmacokinetic/pkcl02.html +++ b/development/listings/pharmacokinetic/pkcl02.html @@ -1465,7 +1465,7 @@

Output

@@ -1552,7 +1552,7 @@ @@ -1623,7 +1623,7 @@

Timestamp

-
[1] "2025-01-01 18:09:03 UTC"
+
[1] "2025-01-08 17:38:07 UTC"

Session Info

@@ -1639,7 +1639,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1649,12 +1649,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1663,16 +1663,16 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1683,7 +1683,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1701,9 +1701,9 @@
diff --git a/development/listings/pharmacokinetic/pkpl01.html b/development/listings/pharmacokinetic/pkpl01.html index b5941a6b1..a57ad3f9d 100644 --- a/development/listings/pharmacokinetic/pkpl01.html +++ b/development/listings/pharmacokinetic/pkpl01.html @@ -1465,7 +1465,7 @@

Output

@@ -1546,7 +1546,7 @@ @@ -1591,7 +1591,7 @@

Timestamp

-
[1] "2025-01-01 18:09:08 UTC"
+
[1] "2025-01-08 17:37:58 UTC"

Session Info

@@ -1607,7 +1607,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1617,12 +1617,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1631,16 +1631,16 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1651,7 +1651,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1669,9 +1669,9 @@
diff --git a/development/listings/pharmacokinetic/pkpl02.html b/development/listings/pharmacokinetic/pkpl02.html index d22bab8d4..3cae03dd2 100644 --- a/development/listings/pharmacokinetic/pkpl02.html +++ b/development/listings/pharmacokinetic/pkpl02.html @@ -1465,7 +1465,7 @@

Output

@@ -1546,7 +1546,7 @@ @@ -1592,7 +1592,7 @@

Timestamp

-
[1] "2025-01-01 18:09:18 UTC"
+
[1] "2025-01-08 17:38:12 UTC"

Session Info

@@ -1608,7 +1608,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1618,12 +1618,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1632,16 +1632,16 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1652,7 +1652,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1670,9 +1670,9 @@
diff --git a/development/listings/pharmacokinetic/pkpl04.html b/development/listings/pharmacokinetic/pkpl04.html index 1b62646bf..830d9339a 100644 --- a/development/listings/pharmacokinetic/pkpl04.html +++ b/development/listings/pharmacokinetic/pkpl04.html @@ -1465,7 +1465,7 @@

Output

@@ -1553,7 +1553,7 @@ @@ -1610,7 +1610,7 @@

Timestamp

-
[1] "2025-01-01 18:09:28 UTC"
+
[1] "2025-01-08 17:38:21 UTC"

Session Info

@@ -1626,7 +1626,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1636,12 +1636,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1650,16 +1650,16 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1670,7 +1670,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1690,7 +1690,7 @@
diff --git a/development/listings/vital-signs/vsl01.html b/development/listings/vital-signs/vsl01.html index d0feb19c4..b30952fb7 100644 --- a/development/listings/vital-signs/vsl01.html +++ b/development/listings/vital-signs/vsl01.html @@ -1465,7 +1465,7 @@

Output

@@ -1552,7 +1552,7 @@ @@ -1667,7 +1667,7 @@

Timestamp

-
[1] "2025-01-01 18:07:29 UTC"
+
[1] "2025-01-08 17:36:22 UTC"

Session Info

@@ -1683,7 +1683,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1693,12 +1693,12 @@ checkmate 2.3.2 2024-07-29 [1] RSPM cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM htmltools 0.5.8.1 2024-04-04 [1] RSPM @@ -1707,16 +1707,16 @@ knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr 2.0.3 2022-03-30 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rlang 1.1.4 2024-06-04 [1] RSPM - rlistings * 0.2.9.9012 2025-01-01 [1] https://p~ + rlistings * 0.2.9.9013 2025-01-08 [1] https://p~ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM @@ -1727,7 +1727,7 @@ tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1745,9 +1745,9 @@
diff --git a/development/repro.html b/development/repro.html index e4ec9f794..b75d6c3c0 100644 --- a/development/repro.html +++ b/development/repro.html @@ -198,7 +198,7 @@

Timestamp

-
[1] "2025-01-01 18:07:19 UTC"
+
[1] "2025-01-08 17:38:29 UTC"

Session Info

@@ -214,14 +214,14 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── package * version date (UTC) lib source cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM @@ -231,7 +231,7 @@ jsonlite 1.8.9 2024-09-20 [1] RSPM knitr 1.49 2024-11-08 [1] RSPM lifecycle 1.0.4 2023-11-07 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM @@ -240,7 +240,7 @@ rmarkdown 2.29 2024-11-04 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library diff --git a/development/search.json b/development/search.json index f50054ccc..ef9e7f580 100644 --- a/development/search.json +++ b/development/search.json @@ -1,1019 +1,928 @@ [ { - "objectID": "index.html", - "href": "index.html", - "title": "TLG Catalog", - "section": "", - "text": "The TLG catalog is a catalog of Tables, Listings, and Graphs for clinical trials generated using NEST packages.\nThis repository provides a comprehensive collection of clinical trials outputs generated using the R language. The target audience is the clinical trials community, including statisticians, data scientists, and other professionals interested in applying R to clinical trials data.\n\n\nEach TLG is represented on a separate article page, typically including the following sections:\n\nSetup and pre-processing of synthetic data.\nSteps to produce the TLG.\nThe output TLG generated by the given code (including any available variants).\nAn interactive application that can alternatively be used to produce and interact with the TLG.\nReproducibility information.\n\nSee the full list of available TLGs on the Index page.\n\n\n\n\nThe full source code of each article can be viewed by clicking on the “Source Code” button at the top of the page and copied using the “Copy to Clipboard” button.\n\n\n\nIndividual code chunks from within the article can also be viewed and copied.\n\n\n\nThe Reproducibility tab contains session information and allows one to install the packages required to properly run the code.\n\n\n\n\n\n\n\n\nThis catalog as well as code examples are licensed under the Apache License, Version 2.0 - see the LICENSE file for details.\n\n\n\nWe welcome contributions big and small to the TLG catalog. Please refer to the Contributing guide for more information on how you can contribute. Use the giscus panels at the bottom of each page to share your feedback & ideas, ask questions, and report issues.\n\n\n\nThis website is built using Quarto and hosted on GitHub Pages. This website is rebuilt and republished daily as well as every time a change is pushed to the repository as part of the CI/CD process.\nThe catalog is rendered using “Stable” and “Development” profiles. The main difference between these two profiles is the package versions used to generate the outputs. The “Stable” profile uses the most recently released versions of all packages, whereas the “Development” profile uses the latest development versions of all NEST packages. This means that the same R code (e.g. foo::bar()) would be run using both the latest released and development package versions (e.g. foo@v1.2.3 on the “Stable” profile and foo@v1.2.3.9123 on the “Development” profile). If your article is affected by API changes between released and development versions, please consider conditional content (checking QUARTO_PROFILE environment variable) and/or if statements on respective package versions to enable the article to work in both profiles.\nAs a part of the CI/CD process, each article’s code is checked for quality, coherence, and readability using tools such as lintr, styler, and spelling. Additionally, regression testing is performed using testthat snapshot testing (see the package component of the repository for more details).\nIf you are adding a new table, listing, or graph in the form a new .qmd file, then you will also need to update the index in the tlg-index.qmd file with the new file name. To do so, run the R code in the generate-index.R file after creating your template.", + "objectID": "graphs/efficacy/fstg02.html#output", + "href": "graphs/efficacy/fstg02.html#output", + "title": "FSTG02", + "section": "Output", + "text": "Output\n\n\nStandard Plot\nPlot Specifying Class Variables and Options for the Treatment Variable\nPlot Selecting Columns and Changing the Alpha Level\nPlot with Fixed Symbol Size\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl1 <- anl\n\ndf <- extract_survival_subgroups(\n variables = list(tte = \"AVAL\", is_event = \"is_event\", arm = \"ARM\", subgroups = c(\"SEX\", \"BMRKR2\")),\n data = anl1\n)\n\nresult <- basic_table() %>%\n tabulate_survival_subgroups(\n df = df,\n vars = c(\"n_tot\", \"n\", \"median\", \"hr\", \"ci\"),\n time_unit = anl1$AVALU[1]\n )\nresult\n\n B: Placebo A: Drug X \nBaseline Risk Factors Total n n Median (Months) n Median (Months) Hazard Ratio 95% Wald CI \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAll Patients 268 134 NA 134 NA 1.00 (0.69, 1.44)\nSex \n F 161 82 NA 79 NA 0.79 (0.49, 1.28)\n M 107 52 NA 55 9.6 1.39 (0.78, 2.47)\nCategorical Level Biomarker 2 \n LOW 95 45 NA 50 9.3 1.14 (0.64, 2.02)\n MEDIUM 93 56 NA 37 NA 0.97 (0.52, 1.82)\n HIGH 80 33 NA 47 NA 0.97 (0.45, 2.12)\n\nCode# Add plot.\nplot <- g_forest(tbl = result)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl2 <- anl %>%\n mutate(\n # Recode levels of arm.\n ARM = forcats::fct_recode(\n ARM,\n \"Placebo\" = \"B: Placebo\",\n \"Drug X\" = \"A: Drug X\"\n ),\n # Reorder levels of `SEX`.\n SEX = forcats::fct_relevel(SEX, \"M\", \"F\"),\n # Reorder levels of `STRATA1`` by frequency.\n STRATA1 = forcats::fct_infreq(STRATA1)\n )\n\ndf <- extract_survival_subgroups(\n variables = list(tte = \"AVAL\", is_event = \"is_event\", arm = \"ARM\", subgroups = c(\"SEX\", \"STRATA1\")),\n data = anl2\n)\n\nresult <- basic_table() %>%\n tabulate_survival_subgroups(\n df = df,\n vars = c(\"n_tot\", \"n\", \"median\", \"hr\", \"ci\"),\n time_unit = anl2$AVALU[1]\n )\nresult\n\n Placebo Drug X \nBaseline Risk Factors Total n n Median (Months) n Median (Months) Hazard Ratio 95% Wald CI \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAll Patients 268 134 NA 134 NA 1.00 (0.69, 1.44)\nSex \n M 107 52 NA 55 9.6 1.39 (0.78, 2.47)\n F 161 82 NA 79 NA 0.79 (0.49, 1.28)\nStratification Factor 1 \n C 94 45 NA 49 NA 0.75 (0.41, 1.38)\n B 92 45 NA 47 NA 1.34 (0.71, 2.54)\n A 82 44 NA 38 NA 1.02 (0.53, 1.97)\n\nCodeplot <- g_forest(tbl = result)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl3 <- anl\n\ndf <- extract_survival_subgroups(\n variables = list(tte = \"AVAL\", is_event = \"is_event\", arm = \"ARM\", subgroups = c(\"SEX\", \"BMRKR2\")),\n control = control_coxph(conf_level = 0.9),\n data = anl3\n)\n\nresult <- basic_table() %>%\n tabulate_survival_subgroups(\n df = df,\n vars = c(\"n_tot\", \"hr\", \"ci\")\n )\nresult\n\n \nBaseline Risk Factors Total n Hazard Ratio 90% Wald CI \n—————————————————————————————————————————————————————————————————————\nAll Patients 268 1.00 (0.74, 1.36)\nSex \n F 161 0.79 (0.53, 1.19)\n M 107 1.39 (0.86, 2.25)\nCategorical Level Biomarker 2 \n LOW 95 1.14 (0.71, 1.84)\n MEDIUM 93 0.97 (0.58, 1.64)\n HIGH 80 0.97 (0.51, 1.87)\n\nCode# Add plot.\nplot <- g_forest(tbl = result)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl4 <- anl\n\ndf <- extract_survival_subgroups(\n variables = list(tte = \"AVAL\", is_event = \"is_event\", arm = \"ARM\", subgroups = c(\"SEX\", \"BMRKR2\")),\n data = anl4\n)\n\nresult <- basic_table() %>%\n tabulate_survival_subgroups(\n df = df,\n vars = c(\"n_tot\", \"n\", \"median\", \"hr\", \"ci\"),\n time_unit = anl4$AVALU[1]\n )\nresult\n\n B: Placebo A: Drug X \nBaseline Risk Factors Total n n Median (Months) n Median (Months) Hazard Ratio 95% Wald CI \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAll Patients 268 134 NA 134 NA 1.00 (0.69, 1.44)\nSex \n F 161 82 NA 79 NA 0.79 (0.49, 1.28)\n M 107 52 NA 55 9.6 1.39 (0.78, 2.47)\nCategorical Level Biomarker 2 \n LOW 95 45 NA 50 9.3 1.14 (0.64, 2.02)\n MEDIUM 93 56 NA 37 NA 0.97 (0.52, 1.82)\n HIGH 80 33 NA 47 NA 0.97 (0.45, 2.12)\n\nCode# Add plot.\nplot <- g_forest(\n tbl = result,\n col_symbol_size = NULL\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(forcats)\nlibrary(nestcolor)\n\npreprocess_adtte <- function(adtte) {\n # Save variable labels before data processing steps.\n adtte_labels <- var_labels(adtte)\n\n adtte <- adtte %>%\n df_explicit_na() %>%\n dplyr::filter(\n PARAMCD == \"OS\",\n ARM %in% c(\"B: Placebo\", \"A: Drug X\"),\n SEX %in% c(\"M\", \"F\")\n ) %>%\n dplyr::mutate(\n # Reorder levels of ARM to display reference arm before treatment arm.\n ARM = droplevels(forcats::fct_relevel(ARM, \"B: Placebo\")),\n SEX = droplevels(SEX),\n is_event = CNSR == 0,\n # Convert time to MONTH\n AVAL = day2month(AVAL),\n AVALU = \"Months\"\n ) %>%\n var_relabel(\n ARM = adtte_labels[\"ARM\"],\n SEX = adtte_labels[\"SEX\"],\n is_event = \"Event Flag\",\n AVAL = adtte_labels[\"AVAL\"],\n AVALU = adtte_labels[\"AVALU\"]\n )\n\n adtte\n}\n\nanl <- random.cdisc.data::cadtte %>%\n preprocess_adtte()", "crumbs": [ - "Introduction" + "Graphs", + "Efficacy", + "FSTG02" ] }, { - "objectID": "index.html#usage", - "href": "index.html#usage", - "title": "TLG Catalog", - "section": "", - "text": "Each TLG is represented on a separate article page, typically including the following sections:\n\nSetup and pre-processing of synthetic data.\nSteps to produce the TLG.\nThe output TLG generated by the given code (including any available variants).\nAn interactive application that can alternatively be used to produce and interact with the TLG.\nReproducibility information.\n\nSee the full list of available TLGs on the Index page.\n\n\n\n\nThe full source code of each article can be viewed by clicking on the “Source Code” button at the top of the page and copied using the “Copy to Clipboard” button.\n\n\n\nIndividual code chunks from within the article can also be viewed and copied.\n\n\n\nThe Reproducibility tab contains session information and allows one to install the packages required to properly run the code.", + "objectID": "graphs/efficacy/fstg02.html#teal-app", + "href": "graphs/efficacy/fstg02.html#teal-app", + "title": "FSTG02", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n library(forcats)\n\n ADSL <- random.cdisc.data::cadsl\n ADSL <- ADSL %>%\n filter(ARM %in% c(\"B: Placebo\", \"A: Drug X\")) %>%\n mutate(ARM = droplevels(fct_relevel(ARM, \"B: Placebo\"))) %>%\n mutate(ARMCD = droplevels(fct_relevel(ARMCD, \"ARM B\")))\n ADSL$RACE <- droplevels(ADSL$RACE)\n\n ADTTE <- random.cdisc.data::cadtte\n adtte_labels <- col_labels(ADTTE)\n\n ADTTE <- ADTTE %>%\n filter(\n PARAMCD == \"OS\",\n ARM %in% c(\"B: Placebo\", \"A: Drug X\"),\n SEX %in% c(\"M\", \"F\")\n ) %>%\n mutate(\n # Reorder levels of ARM to display reference arm before treatment arm.\n ARM = droplevels(fct_relevel(ARM, \"B: Placebo\")),\n SEX = droplevels(SEX),\n is_event = CNSR == 0,\n # Convert time to MONTH\n AVAL = day2month(AVAL),\n AVALU = \"Months\"\n ) %>%\n col_relabel(\n ARM = adtte_labels[\"ARM\"],\n SEX = adtte_labels[\"SEX\"],\n is_event = \"Event Flag\",\n AVAL = adtte_labels[\"AVAL\"],\n AVALU = adtte_labels[\"AVALU\"]\n )\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_forest_tte(\n label = \"Forest Survival\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n subgroup_var = choices_selected(names(ADSL), c(\"SEX\", \"BMRKR2\")),\n paramcd = choices_selected(value_choices(ADTTE, \"PARAMCD\", \"PARAM\"), \"OS\"),\n strata_var = choices_selected(c(\"STRATA1\", \"STRATA2\"), \"STRATA2\"),\n plot_height = c(600, 200, 2000),\n plot_width = c(1500, 200, 5000)\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n library(forcats)\n\n ADSL <- random.cdisc.data::cadsl\n ADSL <- ADSL %>%\n filter(ARM %in% c(\"B: Placebo\", \"A: Drug X\")) %>%\n mutate(ARM = droplevels(fct_relevel(ARM, \"B: Placebo\"))) %>%\n mutate(ARMCD = droplevels(fct_relevel(ARMCD, \"ARM B\")))\n ADSL$RACE <- droplevels(ADSL$RACE)\n\n ADTTE <- random.cdisc.data::cadtte\n adtte_labels <- col_labels(ADTTE)\n\n ADTTE <- ADTTE %>%\n filter(\n PARAMCD == \"OS\",\n ARM %in% c(\"B: Placebo\", \"A: Drug X\"),\n SEX %in% c(\"M\", \"F\")\n ) %>%\n mutate(\n # Reorder levels of ARM to display reference arm before treatment arm.\n ARM = droplevels(fct_relevel(ARM, \"B: Placebo\")),\n SEX = droplevels(SEX),\n is_event = CNSR == 0,\n # Convert time to MONTH\n AVAL = day2month(AVAL),\n AVALU = \"Months\"\n ) %>%\n col_relabel(\n ARM = adtte_labels[\"ARM\"],\n SEX = adtte_labels[\"SEX\"],\n is_event = \"Event Flag\",\n AVAL = adtte_labels[\"AVAL\"],\n AVALU = adtte_labels[\"AVALU\"]\n )\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_forest_tte(\n label = \"Forest Survival\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n subgroup_var = choices_selected(names(ADSL), c(\"SEX\", \"BMRKR2\")),\n paramcd = choices_selected(value_choices(ADTTE, \"PARAMCD\", \"PARAM\"), \"OS\"),\n strata_var = choices_selected(c(\"STRATA1\", \"STRATA2\"), \"STRATA2\"),\n plot_height = c(600, 200, 2000),\n plot_width = c(1500, 200, 5000)\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ - "Introduction" + "Graphs", + "Efficacy", + "FSTG02" ] }, { - "objectID": "index.html#license", - "href": "index.html#license", - "title": "TLG Catalog", - "section": "", - "text": "This catalog as well as code examples are licensed under the Apache License, Version 2.0 - see the LICENSE file for details.", + "objectID": "graphs/efficacy/fstg02.html#reproducibility", + "href": "graphs/efficacy/fstg02.html#reproducibility", + "title": "FSTG02", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:09:54 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats * 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Introduction" + "Graphs", + "Efficacy", + "FSTG02" ] }, { - "objectID": "index.html#contributing", - "href": "index.html#contributing", - "title": "TLG Catalog", - "section": "", - "text": "We welcome contributions big and small to the TLG catalog. Please refer to the Contributing guide for more information on how you can contribute. Use the giscus panels at the bottom of each page to share your feedback & ideas, ask questions, and report issues.", + "objectID": "graphs/efficacy/mmrmg02.html#reproducibility", + "href": "graphs/efficacy/mmrmg02.html#reproducibility", + "title": "MMRMG02", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:09:08 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n mmrm 0.3.14.9001 2025-01-08 [1] https://p~\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n parallelly 1.41.0 2024-12-18 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.mmrm * 0.3.2.9002 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n TMB 1.9.16 2025-01-08 [1] CRAN (R 4.4.1)\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Introduction" + "Graphs", + "Efficacy", + "MMRMG02" ] }, { - "objectID": "index.html#development", - "href": "index.html#development", - "title": "TLG Catalog", - "section": "", - "text": "This website is built using Quarto and hosted on GitHub Pages. This website is rebuilt and republished daily as well as every time a change is pushed to the repository as part of the CI/CD process.\nThe catalog is rendered using “Stable” and “Development” profiles. The main difference between these two profiles is the package versions used to generate the outputs. The “Stable” profile uses the most recently released versions of all packages, whereas the “Development” profile uses the latest development versions of all NEST packages. This means that the same R code (e.g. foo::bar()) would be run using both the latest released and development package versions (e.g. foo@v1.2.3 on the “Stable” profile and foo@v1.2.3.9123 on the “Development” profile). If your article is affected by API changes between released and development versions, please consider conditional content (checking QUARTO_PROFILE environment variable) and/or if statements on respective package versions to enable the article to work in both profiles.\nAs a part of the CI/CD process, each article’s code is checked for quality, coherence, and readability using tools such as lintr, styler, and spelling. Additionally, regression testing is performed using testthat snapshot testing (see the package component of the repository for more details).\nIf you are adding a new table, listing, or graph in the form a new .qmd file, then you will also need to update the index in the tlg-index.qmd file with the new file name. To do so, run the R code in the generate-index.R file after creating your template.", + "objectID": "graphs/efficacy/kmg01.html#output", + "href": "graphs/efficacy/kmg01.html#output", + "title": "KMG01", + "section": "Output", + "text": "Output\n\n\nStandard Plot\nPlot of Failures\nPlot Without Comparative Statistics\nPlot Without Censoring Marks\nPlot Modifying Censoring Marks\nPlot Modifying Options for Statistics, Tie Handling, Stratification, etc.\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_km(\n df = anl,\n variables = variables,\n xlab = \"Time (Days)\",\n ylim = c(0, 1),\n annot_coxph = TRUE\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_km(\n df = anl,\n variables = variables,\n xlab = \"Time (Days)\",\n yval = \"Failure\",\n ylim = c(0, 1),\n font_size = 8,\n annot_coxph = TRUE\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_km(\n df = anl,\n variables = variables,\n xlab = \"Time (Days)\",\n ylim = c(0, 1)\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_km(\n df = anl,\n variables = variables,\n censor_show = FALSE,\n xlab = \"Time (Days)\",\n ylim = c(0, 1),\n annot_coxph = TRUE\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_km(\n df = anl,\n variables = variables,\n pch = 1,\n size = 2,\n xlab = \"Time (Days)\",\n ylim = c(0, 1),\n annot_coxph = TRUE\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevariables$strata <- c(\"STRATA1\", \"STRATA2\")\nplot <- g_km(\n df = anl,\n variables = variables,\n control_surv = control_surv_timepoint(conf_level = 0.8),\n xlab = \"Time (Days)\",\n ylim = c(0, 1),\n annot_coxph = TRUE,\n control_coxph_pw = control_coxph(\n pval_method = \"wald\",\n ties = \"breslow\",\n conf_level = 0.8\n )\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(nestcolor)\n\nadtte <- random.cdisc.data::cadtte\nanl <- adtte %>%\n dplyr::filter(PARAMCD == \"OS\") %>%\n dplyr::mutate(is_event = CNSR == 0)\nvariables <- list(tte = \"AVAL\", is_event = \"is_event\", arm = \"ARMCD\")", "crumbs": [ - "Introduction" + "Graphs", + "Efficacy", + "KMG01" ] }, { - "objectID": "listings/ECG/egl01.html#output", - "href": "listings/ECG/egl01.html#output", - "title": "EGL01", - "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"CRTNPT\", \"AGSXRC\", \"AVISIT\", \"ADY\"),\n disp_cols = names(out),\n main_title = \"Listing of ECG Data: Safety-Evaluable Patients\",\n main_footer = \"Baseline is the patient's last observation prior to initiation of study drug. Abnormalities are flagged as high (H) or low (L) if outside the Roche standard reference range.\" \n)\n\nhead(lsting, 20)\n\nListing of ECG Data: Safety-Evaluable Patients\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Heart Rate Result QT Duration Result RR Duration Result \n Study (beats/min); Heart Rate (msec); QT Duration (msec); RR Duration \nTreatment Center/Subject ID Age/Sex/Race Visit Day Range:(40-100) Change from BL Range:(200-500) Change from BL Range:(600-1500) Change from BL\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/105 38/M/BLACK OR AFRICAN AMERICAN BASELINE 149 66.94 NA 441.78 NA 896.59 NA \n WEEK 1 DAY 8 314 63.18 -3.76 365.68 -76.10 1376.26 479.67 \n WEEK 2 DAY 15 398 57.57 -9.37 355.48 -86.29 799.57 -97.02 \n WEEK 3 DAY 22 470 73.36 6.42 352.45 -89.33 1015.00 118.41 \n WEEK 4 DAY 29 528 53.72 -13.22 388.42 -53.36 1189.29 292.70 \n WEEK 5 DAY 36 535 58.25 -8.69 291.77 -150.01 936.09 39.50 \n BRA-1/134 47/M/WHITE BASELINE 227 46.99 NA 385.29 NA 835.17 NA \n WEEK 1 DAY 8 255 48.38 1.39 453.74 68.46 901.86 66.68 \n WEEK 2 DAY 15 269 35.40/L -11.59 413.54 28.26 892.01 56.84 \n WEEK 3 DAY 22 357 60.50 13.51 394.23 8.95 490.18/L -344.99 \n WEEK 4 DAY 29 436 82.28 35.29 398.29 13.00 757.96 -77.21 \n WEEK 5 DAY 36 440 38.89/L -8.10 339.38 -45.91 880.26 45.08 \n BRA-1/42 36/M/BLACK OR AFRICAN AMERICAN BASELINE 477 56.19 NA 190.94/L NA 1276.65 NA \n WEEK 1 DAY 8 534 85.24 29.05 483.71 292.77 735.11 -541.54 \n WEEK 2 DAY 15 550 55.53 -0.66 386.60 195.66 1092.71 -183.94 \n WEEK 3 DAY 22 569 65.37 9.18 311.08 120.14 1227.15 -49.50 \n WEEK 4 DAY 29 608 65.13 8.93 329.78 138.83 250.18/L -1026.47 \n WEEK 5 DAY 36 675 49.03 -7.16 470.67 279.73 1321.21 44.56 \n BRA-1/93 34/F/ASIAN BASELINE 73 72.12 NA 306.64 NA 1324.80 NA \n WEEK 1 DAY 8 207 66.88 -5.24 190.50/L -116.14 1495.37 170.58 \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nBaseline is the patient's last observation prior to initiation of study drug. Abnormalities are flagged as high (H) or low (L) if outside the Roche standard reference range.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadeg <- random.cdisc.data::cadeg\n\nget_param_unit_range <- function(dataset) {\n u_rng <- lapply(unique(dataset$PARAMCD), function(p) {\n dat <- dataset %>% filter(PARAMCD == p)\n list(\n unit = unique(dat$AVALU),\n range = paste0(unique(dat$ANRLO), \"-\", unique(dat$ANRHI))\n )\n })\n names(u_rng) <- unique(dataset$PARAMCD)\n u_rng\n}\n\neg_u_rng <- get_param_unit_range(adeg)\n\nadeg_sub <- adeg %>%\n filter(!is.na(AVAL) & SAFFL == \"Y\" & ANL01FL == \"Y\" & !is.na(EGSEQ) & PARAMCD != \"ECGINTP\") %>%\n mutate(\n CRTNPT = paste(SITEID, sub(\"^.*-([[:alnum:]]+)$\", \"\\\\1\", SUBJID), sep = \"/\"),\n AGSXRC = paste(AGE, SEX, RACE, sep = \"/\"),\n AVAL = format(round(AVAL, 2), nsmall = 2),\n AVAL_ANRIND = ifelse(ANRIND %in% c(\"NORMAL\", \"\"), AVAL, paste(AVAL, substr(ANRIND, 1, 1), sep = \"/\")),\n CHG = format(round(CHG, 2), nsmall = 2)\n )\n\nanl_eg <- adeg_sub %>%\n select(SUBJID, CRTNPT, AGSXRC, TRT01A, PARAMCD, AVAL_ANRIND, CHG, ADY, AVISIT, ADTM) %>%\n tidyr::pivot_wider(\n id_cols = c(SUBJID, CRTNPT, AGSXRC, TRT01A, ADY, AVISIT, ADTM),\n names_from = PARAMCD,\n values_from = c(AVAL_ANRIND, CHG)\n )\n\nout <- anl_eg %>%\n select(\n CRTNPT,\n AGSXRC,\n TRT01A,\n AVISIT,\n ADY,\n AVAL_ANRIND_HR,\n CHG_HR,\n AVAL_ANRIND_QT,\n CHG_QT,\n AVAL_ANRIND_RR,\n CHG_RR\n ) %>%\n var_relabel(\n CRTNPT = \"Center/Subject ID\",\n AGSXRC = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n AVISIT = \"Visit\",\n ADY = \"Study\\nDay\",\n AVAL_ANRIND_HR = paste0(\"Heart Rate Result\\n(\", eg_u_rng$HR$unit, \");\\nRange:(\", eg_u_rng$HR$range, \")\"),\n CHG_HR = \"Heart Rate\\nChange from BL\",\n AVAL_ANRIND_QT = paste0(\"QT Duration Result\\n(\", eg_u_rng$QT$unit, \");\\nRange:(\", eg_u_rng$QT$range, \")\"),\n CHG_QT = \"QT Duration\\nChange from BL\",\n AVAL_ANRIND_RR = paste0(\"RR Duration Result\\n(\", eg_u_rng$RR$unit, \");\\nRange:(\", eg_u_rng$RR$range, \")\"),\n CHG_RR = \"RR Duration\\nChange from BL\"\n )", + "objectID": "graphs/efficacy/kmg01.html#teal-app", + "href": "graphs/efficacy/kmg01.html#teal-app", + "title": "KMG01", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_km(\n label = \"KM PLOT\",\n plot_height = c(600, 100, 2000),\n dataname = \"ADTTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"),\n \"OS\"\n ),\n arm_ref_comp = arm_ref_comp,\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n \"SEX\"\n ),\n facet_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n NULL\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_km(\n label = \"KM PLOT\",\n plot_height = c(600, 100, 2000),\n dataname = \"ADTTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"),\n \"OS\"\n ),\n arm_ref_comp = arm_ref_comp,\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n \"SEX\"\n ),\n facet_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n NULL\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ - "Listings", - "ECG", - "EGL01" + "Graphs", + "Efficacy", + "KMG01" ] }, { - "objectID": "listings/ECG/egl01.html#reproducibility", - "href": "listings/ECG/egl01.html#reproducibility", - "title": "EGL01", + "objectID": "graphs/efficacy/kmg01.html#reproducibility", + "href": "graphs/efficacy/kmg01.html#reproducibility", + "title": "KMG01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:09:38 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:08:05 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", - "ECG", - "EGL01" + "Graphs", + "Efficacy", + "KMG01" ] }, { - "objectID": "listings/pharmacokinetic/pkpl04.html#output", - "href": "listings/pharmacokinetic/pkpl04.html#output", - "title": "PKPL04", + "objectID": "graphs/pharmacokinetic/pkpg04.html#output", + "href": "graphs/pharmacokinetic/pkpg04.html#output", + "title": "PKPG04", "section": "Output", - "text": "Output\n\n\nStandard Listing - CYCLE 1 DAY 1\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = \"USUBJID\",\n disp_cols = names(out),\n main_title = paste0(\n \"Listing of Individual \", drug_a, \" \", paste(unique(adpp_x$PARAM), collapse = \" and \"), \" Ratios following \",\n unique(adpp_x$REGIMEN), \" \", paste(drug_a, drug_b, sep = \" or \"), \", PK Population\\nProtocol: xxnnnnn\",\n \"\\nVisit: \", unique(adpp_x$AVISIT)\n ),\n subtitles = paste0(\"\\nAnalytes: \", paste(drug_a, drug_b, sep = \" and \"))\n)\n\nhead(lsting, 20)\n\nListing of Individual Plasma Drug X AUC Infinity Obs and Max Conc Ratios following BID Plasma Drug X or Plasma Drug Y, PK Population\nProtocol: xxnnnnn\nVisit: CYCLE 1 DAY 1\n\nAnalytes: Plasma Drug X and Plasma Drug Y\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n AUC Infinity Obs (day*ug/mL) AUC Infinity Obs (day*ug/mL) AUC Infinity Obs (day*ug/mL) Max Conc (ug/mL) Max Conc (ug/mL) Max Conc (ug/mL) \n Subject ID Plasma Drug X Plasma Drug Y Plasma Drug X/Plasma Drug Y Plasma Drug X Plasma Drug Y Plasma Drug X/Plasma Drug Y\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAB12345-BRA-1-id-105 246.349321001289 NA NA 31.2264481880236 NA NA \nAB12345-BRA-1-id-134 248.519038520728 NA NA 21.7795763901966 NA NA \nAB12345-BRA-1-id-141 204.038850147211 191.797779791421 1.06382279486812 29.5409649407056 38.8911230490524 0.759581174949522 \nAB12345-BRA-1-id-265 196.360864588266 218.652833415662 0.898048570973609 35.6328283094637 34.2215467219396 1.04123956170044 \n AB12345-BRA-1-id-42 210.528307366678 NA NA 26.7845825535397 NA NA \n AB12345-BRA-1-id-93 160.406798051843 NA NA 17.5296885232566 NA NA \nAB12345-BRA-11-id-171 217.543269983548 180.798322952882 1.20323721166508 30.3782220474834 31.615072576154 0.960877820992148 \nAB12345-BRA-11-id-217 272.094354596647 NA NA 34.2812274648873 NA NA \nAB12345-BRA-11-id-237 148.094218281784 193.694022424355 0.764578154907287 32.9103242471385 38.7385450224575 0.849549827647366 \nAB12345-BRA-11-id-321 206.178847103577 216.464946980475 0.95248145244585 33.0064256549217 28.4783979285037 1.1589986816599 \nAB12345-BRA-11-id-345 228.51025073098 NA NA 39.7523164840323 NA NA \nAB12345-BRA-11-id-397 201.536920713046 NA NA 36.5841424116449 NA NA \nAB12345-BRA-11-id-50 189.012389008811 NA NA 21.1977400008473 NA NA \n AB12345-BRA-11-id-9 235.477941027941 207.851453783084 1.13291457308587 27.1559637630099 28.2923295654501 0.959834844995305 \nAB12345-BRA-13-id-177 185.956676853099 NA NA 31.0405525087113 NA NA \nAB12345-BRA-14-id-120 209.878908685802 301.584778421544 0.695920098435608 31.8076450080362 22.9229189133965 1.38759139393227 \nAB12345-BRA-14-id-23 270.799396057463 NA NA 29.2804222629517 NA NA \nAB12345-BRA-15-id-36 183.877364155027 NA NA 37.9405096212457 NA NA \nAB12345-BRA-2-id-296 216.092875093089 NA NA 27.3509307000219 NA NA \nAB12345-BRA-4-id-368 203.23438144437 149.30280248041 1.36122281744199 38.3952821076341 30.8121148640987 1.24610992387189 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadpp <- random.cdisc.data::cadpp\n\nvisit <- \"CYCLE 1 DAY 1\"\ndrug_a <- \"Plasma Drug X\" # numerator drug\ndrug_b <- \"Plasma Drug Y\" # denominator drug\n\nadpp_x <- adpp %>%\n filter(\n AVISIT == visit,\n PPCAT %in% c(drug_a, drug_b),\n PARAMCD %in% c(\"CMAX\", \"AUCIFO\")\n ) %>%\n mutate(\n PARAM_U = paste0(PARAM, \" (\", AVALU, \")\")\n )\n\nadpp_ratio <- adpp_x %>%\n tidyr::pivot_wider(\n id_cols = c(USUBJID, PARAM_U),\n names_from = PPCAT,\n values_from = AVAL\n )\n\nadpp_ratio[, paste0(drug_a, \"/\", drug_b)] <- as.numeric(unlist(adpp_ratio[, drug_a] / adpp_ratio[, drug_b]))\n\nout <- adpp_ratio %>%\n tidyr::pivot_wider(\n id_cols = USUBJID,\n names_from = PARAM_U,\n names_glue = \"{PARAM_U}\\n{.value}\",\n values_from = c(all_of(drug_a), all_of(drug_b), paste0(drug_a, \"/\", drug_b))\n ) %>%\n select(names(.)[c(1:2, 4, 6, 3, 5, 7)])\n\nvar_labels(out) <- names(out)\nout <- out %>% var_relabel(USUBJID = \"Subject ID\")", + "text": "Output\n\n\nPlot of CMAX by Visit\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# filtered parameter\nadpp <- adpp %>% filter(toupper(PARAMCD) == \"CMAX\" & toupper(PPSPEC) == \"PLASMA\")\n\nuse_title <- paste0(\"Boxplot of \", as.character(unique(adpp$PARAM)), \" by Visit\")\nuse_subtitle <- paste0(\n \"Analyte:\\nPK Parameter: \",\n as.character(unique(adpp$PARAM)),\n \" (\",\n as.character(unique(adpp$AVALU)),\n \")\"\n)\nuse_footnote <- \"Program: \\nOutput:\"\n\np <- ggplot(adpp, aes(x = AVISIT, y = AVAL, fill = ACTARM)) +\n geom_boxplot(outlier.size = 2) +\n stat_boxplot(geom = \"errorbar\") +\n stat_summary(geom = \"point\", fun = \"mean\", col = \"black\", size = 5, shape = 8, position = position_dodge(0.75)) +\n geom_text_repel(\n data = . %>% dplyr::group_by(AVISIT, ACTARM) %>% dplyr::filter(AVAL %in% boxplot.stats(AVAL)$out),\n aes(x = AVISIT, y = AVAL, label = SUBJID, color = ACTARM),\n size = 3, hjust = -0.2, position = position_dodge(0.75)\n ) +\n labs(\n title = use_title,\n subtitle = use_subtitle,\n caption = use_footnote,\n x = \"Visit\",\n y = paste0(as.character(unique(adpp$PARAM)), \" (\", as.character(unique(adpp$AVALU)), \")\")\n ) +\n theme(plot.caption = element_text(hjust = 0)) +\n theme_nest()\n\nplot <- p + geom_point(aes(fill = ACTARM), size = 2, shape = 21, position = position_dodge(0.75))\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(ggrepel)\nlibrary(nestcolor)\n\nadpp <- random.cdisc.data::cadpp", "crumbs": [ - "Listings", + "Graphs", "Pharmacokinetic", - "PKPL04" + "PKPG04" ] }, { - "objectID": "listings/pharmacokinetic/pkpl04.html#reproducibility", - "href": "listings/pharmacokinetic/pkpl04.html#reproducibility", - "title": "PKPL04", + "objectID": "graphs/pharmacokinetic/pkpg04.html#reproducibility", + "href": "graphs/pharmacokinetic/pkpg04.html#reproducibility", + "title": "PKPG04", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:09:28 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:07:37 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n ggrepel * 0.9.6 2024-09-07 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", + "Graphs", "Pharmacokinetic", - "PKPL04" + "PKPG04" ] }, { - "objectID": "listings/pharmacokinetic/pkpl02.html#output", - "href": "listings/pharmacokinetic/pkpl02.html#output", - "title": "PKPL02", + "objectID": "graphs/pharmacokinetic/pkpg02.html#output", + "href": "graphs/pharmacokinetic/pkpg02.html#output", + "title": "PKPG02", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"USUBJID\", \"AVISIT\"),\n disp_cols = names(out),\n main_title = paste(\"Listing of\", drug_a, spec, \"PK Parameters, PK Population\\nProtocol: xxnnnnn\"),\n subtitles = paste(\"Analyte:\", drug_a)\n)\n\nhead(lsting, 20)\n\nListing of Plasma Drug X Urine PK Parameters, PK Population\nProtocol: xxnnnnn\nAnalyte: Plasma Drug X\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Group Subject ID Visit Renal CL (L/hr) Renal CL Norm by Dose (L/hr/mg) Amt Rec from T1 to T2 (mg) Pct Rec from T1 to T2 (%)\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X AB12345-BRA-1-id-105 SCREENING 0.0538423152160391 0.00441769893771616 2.15210785813109 17.8220657702531 \n CYCLE 1 DAY 1 0.0480828455497337 0.00418360874479016 1.77968465488986 13.4821873677008 \n CYCLE 1 DAY 2 0.0524191320174391 0.00574562025709617 1.7751362634173 11.7748899262287 \n AB12345-BRA-1-id-134 SCREENING 0.054828756388858 0.00489378524965625 1.69069405572207 14.6782255303037 \n CYCLE 1 DAY 1 0.0463628883891636 0.00281388401660215 1.03364773182262 15.2049132671477 \n CYCLE 1 DAY 2 0.0542853013687975 0.00480239019141706 2.07978470495693 16.6499332185177 \n AB12345-BRA-1-id-42 SCREENING 0.0479776607513692 0.00620670551445586 1.49259200502984 12.4632371401908 \n CYCLE 1 DAY 1 0.060136833920038 0.00423749524975822 2.002399829348 16.1228873656652 \n CYCLE 1 DAY 2 0.0222050225259149 0.0041513339034891 1.65173021070619 10.129985981426 \n AB12345-BRA-1-id-93 SCREENING 0.0429283028076499 0.00450841008626937 0.882348047230192 19.8088728992851 \n CYCLE 1 DAY 1 0.0343747382858835 0.00495342578722049 1.73500915591676 14.8733500411057 \n CYCLE 1 DAY 2 0.0474831008867497 0.00415970555107753 1.30298887256052 14.9616973312841 \n AB12345-BRA-11-id-217 SCREENING 0.0524432563610182 0.00439177770746837 1.16344390767412 16.584779611686 \n CYCLE 1 DAY 1 0.0411628011374518 0.00567801310981526 1.11763922430636 19.3000982041101 \n CYCLE 1 DAY 2 0.0672581292323284 0.00400060865194939 1.45655867480937 10.1596117673893 \n AB12345-BRA-11-id-345 SCREENING 0.044070189259969 0.00561835429596993 1.43739076299198 15.4875095868721 \n CYCLE 1 DAY 1 0.0362275034574886 0.0038765297501434 0.96604915921 17.1567306808389 \n CYCLE 1 DAY 2 0.0416331541840018 0.00462187415243145 1.27070193721417 19.2547757988484 \n AB12345-BRA-11-id-397 SCREENING 0.0379747899730378 0.0047876948377162 1.67729762147252 11.6015615292251 \n CYCLE 1 DAY 1 0.0430467407701829 0.00463308440642305 1.1695965192594 12.5511219923965 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\ndrug_a <- \"Plasma Drug X\"\nspec <- \"Urine\"\n\nadpp <- random.cdisc.data::cadpp\nadpp_x <- adpp %>% filter(\n PPCAT == drug_a,\n PPSPEC == spec\n)\n\nout <- adpp_x %>%\n mutate(PARAM = paste0(PARAM, \" (\", AVALU, \")\")) %>%\n select(TRT01A, USUBJID, AVISIT, PARAM, AVAL) %>%\n unique() %>%\n tidyr::pivot_wider(\n id_cols = c(TRT01A, USUBJID, AVISIT),\n names_from = PARAM,\n values_from = AVAL\n )\n\nvar_labels(out) <- names(out)\nout <- out %>% var_relabel(\n TRT01A = \"Treatment Group\",\n USUBJID = \"Subject ID\",\n AVISIT = \"Visit\"\n)", + "text": "Output\n\n\nSummary of Pharmacokinetic Parameters – Plasma\nSummary of Plasma Pharmacokinetic Parameters with Median Points\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# calculate Summary Statistics (mean and sd) for each group\nSummaryStat <- adpp_adex %>% \n group_by(Dose = as.factor(Dose)) %>%\n summarise(AUCsd = sd(AUCinf), meanAUC = mean(AUCinf))\nSummaryStat$Dose <- as.numeric(as.character(SummaryStat$Dose)) \n\n# generate linear model\nmod1 <- lm(log(AUCinf) ~ log(Dose), adpp_adex)\n\n# obtain linear model coefficient values\ncf <- round(coef(mod1), 2)\n\n# generate linear model equation\neq <- paste0(\n \"y = \", cf[1],\n ifelse(sign(cf[2]) == 1, \" + \", \" - \"), abs(cf[2]), \" x , \",\n \"R²\",\n \" = \",\n signif(summary(mod1)$adj.r.squared, 3)\n)\n\nplot <- ggplot(adpp_adex, aes(x = .data[[x_var]], y = .data[[y_var]])) +\n annotate(geom = \"text\", x = min(adpp_adex[[x_var]]), y = max(adpp_adex[[y_var]]), label = eq, hjust = 0.1) +\n geom_point(size = 1, aes(color = factor(`count`))) +\n scale_x_continuous(\n name = \"Dose (mg/mL)\",\n breaks = unique(adpp_adex$Dose)\n ) +\n scale_y_continuous(\n name = paste(y_var, adpp_a$AVALU),\n transform = \"log\",\n breaks = exp(ceiling(seq(\n from = min(log(adpp_adex$AUCinf)), to = max(log(adpp_adex$AUCinf)),\n by = 1\n ))),\n labels = as.character(ceiling(seq(\n from = min(log(adpp_adex$AUCinf)),\n to = max(log(adpp_adex$AUCinf)), by = 1\n )))\n ) +\n geom_smooth(method = \"lm\", formula = y ~ x, se = FALSE, color = \"black\", linewidth = 0.5) +\n # Display error bars for each dosing group (this will only appear if the sd is less than the mean)\n geom_errorbar(\n data = SummaryStat,\n aes(x = `Dose`, y = `meanAUC`, ymin = `meanAUC` - `AUCsd`, ymax = `meanAUC` + AUCsd),\n width = .05,\n position = position_dodge(.1)\n ) +\n geom_point(data = SummaryStat, aes(x = Dose, y = meanAUC, size = 1), shape = 2, show.legend = FALSE) +\n ggtitle(paste(\n \"Dose-Proportionality Plot of Serum\", as.character(unique(adex$TRT01P)),\n y_var, \"in\", adpp_a$AVALU\n ), subtitle = \"Summary of serum PK parameters by treatment\") +\n labs(color = \"Treatment Arm\") +\n theme_nest()\n\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# calculate median for each group if preferred\nSummaryStat <- adpp_adex %>% \n group_by(Dose = as.factor(Dose)) %>%\n summarise(medAUC = median(AUCinf))\nSummaryStat$Dose <- as.numeric(as.character(SummaryStat$Dose)) \n\nplot <- ggplot(adpp_adex, aes(x = .data[[x_var]], y = .data[[y_var]])) +\n annotate(geom = \"text\", x = min(adpp_adex[[x_var]]), y = max(adpp_adex[[y_var]]), label = eq, hjust = 0.1) +\n geom_point(size = 1, aes(color = factor(`count`))) +\n geom_smooth(method = \"lm\", formula = y ~ x, se = FALSE, color = \"black\", linewidth = 0.5) +\n geom_point(data = SummaryStat, aes(x = Dose, y = medAUC, size = 1), shape = 2, show.legend = FALSE) +\n ggtitle(\n paste(\n \"Dose-Proportionality Plot of Serum\",\n as.character(unique(adex$TRT01P)),\n y_var,\n \"in\",\n adpp_a$AVALU\n ),\n subtitle = \"Summary of serum PK parameters by treatment\"\n ) +\n labs(color = \"Treatment Arm\") +\n scale_y_continuous(\n name = paste(y_var, adpp_a$AVALU),\n transform = \"log\",\n breaks = exp(ceiling(seq(from = min(log(adpp_adex$AUCinf)), to = max(log(adpp_adex$AUCinf)), by = 1))),\n labels = as.character(ceiling(seq(from = min(log(adpp_adex$AUCinf)), to = max(log(adpp_adex$AUCinf)), by = 1)))\n ) +\n scale_x_continuous(\n name = \"Dose (mg/mL)\",\n breaks = unique(adpp_adex$Dose)\n ) +\n theme_nest()\n\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\n\n# need adex for dose info and adpp for AUC max info\nadex <- random.cdisc.data::cadex\nadpp <- random.cdisc.data::cadpp\n\nadpp_a <- adpp %>%\n filter(\n PPSPEC == \"Plasma\",\n AVISITN == \"1\",\n PARAMCD == \"AUCIFO\"\n ) %>%\n mutate(AUCinf = AVAL)\n\nadex_a <- adex %>%\n filter(\n AVISITN == \"1\",\n PARAMCD == \"DOSE\"\n ) %>%\n mutate(Dose = AVAL) %>%\n select(USUBJID, Dose)\n\n# join the dose information to the adpp table\nadpp_adex <- left_join(adpp_a, adex_a, by = \"USUBJID\") %>%\n group_by(`ARM`) %>%\n mutate(count = paste0(`ARM`, \" (\", n(), \")\"))\n\n# set x and y variable names\nx_var <- \"Dose\"\ny_var <- \"AUCinf\"", "crumbs": [ - "Listings", + "Graphs", "Pharmacokinetic", - "PKPL02" + "PKPG02" ] }, { - "objectID": "listings/pharmacokinetic/pkpl02.html#reproducibility", - "href": "listings/pharmacokinetic/pkpl02.html#reproducibility", - "title": "PKPL02", + "objectID": "graphs/pharmacokinetic/pkpg02.html#reproducibility", + "href": "graphs/pharmacokinetic/pkpg02.html#reproducibility", + "title": "PKPG02", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:09:18 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:07:23 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n mgcv 1.9-1 2023-12-21 [2] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", + "Graphs", "Pharmacokinetic", - "PKPL02" + "PKPG02" ] }, { - "objectID": "listings/pharmacokinetic/pkpl01.html#output", - "href": "listings/pharmacokinetic/pkpl01.html#output", - "title": "PKPL01", + "objectID": "graphs/pharmacokinetic/pkpg03.html#output", + "href": "graphs/pharmacokinetic/pkpg03.html#output", + "title": "PKPG03", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"USUBJID\", \"AVISIT\"),\n disp_cols = names(out),\n main_title = paste(\"Listing of\", drug_a, spec, \"PK Parameters, PK Population\\nProtocol: xxnnnnn\"),\n subtitles = paste(\"Analyte:\", drug_a)\n)\n\nhead(lsting, 20)\n\nListing of Plasma Drug X Plasma PK Parameters, PK Population\nProtocol: xxnnnnn\nAnalyte: Plasma Drug X\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Group Subject ID Visit AUC Infinity Obs (day*ug/mL) Max Conc (ug/mL) Total CL Obs (ml/day/kg)\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X AB12345-BRA-1-id-105 SCREENING 145.191684898102 35.5067335878638 5.1567601025515 \n CYCLE 1 DAY 1 246.349321001289 31.2264481880236 4.41386730113941 \n CYCLE 1 DAY 2 225.443483077171 43.4987268488453 4.81490455551286 \n AB12345-BRA-1-id-134 SCREENING 157.461703380688 32.1171292884992 6.0374125711965 \n CYCLE 1 DAY 1 248.519038520728 21.7795763901966 4.561839813278 \n CYCLE 1 DAY 2 230.794839837734 21.0627132276049 6.95200595313275 \n AB12345-BRA-1-id-42 SCREENING 194.224015921831 20.4565798423567 6.33709739029277 \n CYCLE 1 DAY 1 210.528307366678 26.7845825535397 3.50776680376268 \n CYCLE 1 DAY 2 167.592869235882 34.8276545020143 4.11969088323673 \n AB12345-BRA-1-id-93 SCREENING 186.75868084484 27.3983170052516 3.40495133575408 \n CYCLE 1 DAY 1 160.406798051843 17.5296885232566 3.8508725098954 \n CYCLE 1 DAY 2 252.04512291352 32.4903879259459 6.21586252565961 \n AB12345-BRA-11-id-217 SCREENING 215.367414313054 20.8879942219526 6.55883385955605 \n CYCLE 1 DAY 1 272.094354596647 34.2812274648873 5.04441608634882 \n CYCLE 1 DAY 2 174.183265394136 23.04243406023 4.07416508597243 \n AB12345-BRA-11-id-345 SCREENING 235.746948097021 26.5740342881269 5.52059967823211 \n CYCLE 1 DAY 1 228.51025073098 39.7523164840323 6.32996327499752 \n CYCLE 1 DAY 2 120.712762389698 24.37143486359 5.02620823564574 \n AB12345-BRA-11-id-397 SCREENING 165.925716319045 21.8770819414152 6.3713157196375 \n CYCLE 1 DAY 1 201.536920713046 36.5841424116449 4.32440907316618 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\ndrug_a <- \"Plasma Drug X\"\nspec <- \"Plasma\"\n\nadpp <- random.cdisc.data::cadpp\nadpp_x <- adpp %>% filter(\n PPCAT == drug_a,\n PPSPEC == spec\n)\n\nout <- adpp_x %>%\n mutate(PARAM = paste0(PARAM, \" (\", AVALU, \")\")) %>%\n select(TRT01A, USUBJID, AVISIT, PARAM, AVAL) %>%\n tidyr::pivot_wider(\n id_cols = c(TRT01A, USUBJID, AVISIT),\n names_from = PARAM,\n values_from = AVAL\n )\n\nvar_labels(out) <- names(out)\nout <- out %>% var_relabel(\n TRT01A = \"Treatment Group\",\n USUBJID = \"Subject ID\",\n AVISIT = \"Visit\"\n)", + "text": "Output\n\n\nPlot of CMAX by Visit\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# filtered parameter\nadpp <- adpp %>% filter(PARAMCD == \"CMAX\", PPSPEC == \"Plasma\")\n\nuse_title <- paste0(\"Boxplot of \", as.character(unique(adpp$PARAM)), \" by Visit\")\nuse_subtitle <- paste0(\n \"Analyte:\\nPK Parameter: \",\n as.character(unique(adpp$PARAM)),\n \" (\",\n as.character(unique(adpp$AVALU)),\n \")\"\n)\nuse_footnote <- \"Program: \\nOutput:\"\n\nplot <- ggplot(adpp, aes(x = AVISIT, y = AVAL, fill = ACTARM)) +\n geom_boxplot(outlier.size = 2) +\n stat_boxplot(geom = \"errorbar\") +\n stat_summary(geom = \"point\", fun = \"mean\", col = \"black\", size = 5, shape = 8, position = position_dodge(0.75)) +\n geom_text(\n data = . %>% dplyr::group_by(AVISIT, ACTARM) %>% dplyr::filter(AVAL %in% boxplot.stats(AVAL)$out),\n aes(x = AVISIT, y = AVAL, label = SUBJID, color = ACTARM),\n size = 3, hjust = -0.2, position = position_dodge(0.75)\n ) +\n labs(\n title = use_title,\n subtitle = use_subtitle,\n caption = use_footnote,\n x = \"Visit\",\n y = paste0(as.character(unique(adpp$PARAM)), \" (\", as.character(unique(adpp$AVALU)), \")\")\n ) +\n theme(plot.caption = element_text(hjust = 0)) +\n theme_nest()\n\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\n\nadpp <- random.cdisc.data::cadpp", "crumbs": [ - "Listings", + "Graphs", "Pharmacokinetic", - "PKPL01" + "PKPG03" ] }, { - "objectID": "listings/pharmacokinetic/pkpl01.html#reproducibility", - "href": "listings/pharmacokinetic/pkpl01.html#reproducibility", - "title": "PKPL01", + "objectID": "graphs/pharmacokinetic/pkpg03.html#reproducibility", + "href": "graphs/pharmacokinetic/pkpg03.html#reproducibility", + "title": "PKPG03", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:09:08 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:07:08 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", + "Graphs", "Pharmacokinetic", - "PKPL01" + "PKPG03" ] }, { - "objectID": "listings/disposition/dsl02.html#output", - "href": "listings/disposition/dsl02.html#output", - "title": "DSL02", + "objectID": "graphs/pharmacokinetic/pkcg03.html#output", + "href": "graphs/pharmacokinetic/pkcg03.html#output", + "title": "PKCG03", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = \"TRT01A\",\n disp_cols = names(out),\n main_title = \"Listing of Patients Who Discontinued Early from Study\"\n)\n\nhead(lsting, 20)\n\nListing of Patients Who Discontinued Early from Study\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Day of Study \n Discontinuation Day of Study \n Date of First Day of Last Relative to First Discontinuation \n Study Drug Study Drug Study Drug Relative to Reason for \n Treatment Center/Patient ID Age/Sex/Race Administration Administration Administration Randomization Discontinuation \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X CHN-1/id-62 36/F/WHITE 2020-11-22 455 454 455 DEATH \n B: Placebo CHN-9/id-11 28/F/NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 2021-01-27 388 387 388 DEATH \nC: Combination USA-11/id-136 38/F/ASIAN 2019-10-02 865 864 868 DEATH \n USA-11/id-100 40/F/ASIAN 2020-03-10 705 705 707 LACK OF EFFICACY\n CHN-11/id-91 44/M/BLACK OR AFRICAN AMERICAN 2020-05-29 625 625 626 DEATH \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadsl <- random.cdisc.data::cadsl\n\nout <- adsl %>%\n filter(AEWITHFL == \"Y\") %>%\n mutate(\n ID = paste(SITEID, SUBJID, sep = \"/\"),\n ASR = paste(AGE, SEX, RACE, sep = \"/\"),\n DISCONT = ifelse(!is.na(DCSREAS) & EOSSTT != \"COMPLETED\", \"Yes\", \"No\"),\n SSADTM = as.POSIXct(\n strftime(TRTSDTM, format = \"%Y-%m-%d %H:%M:%S\"),\n format = \"%Y-%m-%d\",\n tz = \"UTC\"\n ),\n SSAEDY = as.numeric(ceiling(difftime(EOSDT, SSADTM, units = \"days\"))),\n RANDEDY = as.numeric(ceiling(difftime(EOSDT, RANDDT, units = \"days\"))),\n ) %>%\n filter(DISCONT == \"Yes\") %>%\n select(ID, ASR, TRT01A, SSADTM, EOSDY, SSAEDY, RANDEDY, DCSREAS)\n\nvar_labels(out) <- c(\n ID = \"Center/Patient ID\",\n ASR = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n SSADTM = \"Date of First\\nStudy Drug\\nAdministration\",\n EOSDY = \"Day of Last\\nStudy Drug\\nAdministration\",\n SSAEDY = \"Day of Study\\nDiscontinuation\\nRelative to First\\nStudy Drug\\nAdministration\",\n RANDEDY = \"Day of Study\\nDiscontinuation\\nRelative to\\nRandomization\",\n DCSREAS = \"Reason for\\nDiscontinuation\"\n)", + "text": "Output\n\n\nPlot in Linear Scale\nPlot in Log Scale\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeuse_title <- \"Plot of Mean (+/- SD) Plasma Concentrations Over Time by Treatment, \\nPK Evaluable Patients\"\nuse_subtitle <- \"Analyte:\"\nuse_footnote <- \"Program: \\nOutput:\"\n\nresult <- g_lineplot(\n df = adpc,\n variables = control_lineplot_vars(\n x = \"NFRLT\",\n y = \"AVAL\",\n group_var = \"ARM\",\n paramcd = \"PARAM\",\n y_unit = \"AVALU\",\n subject_var = \"USUBJID\"\n ),\n alt_counts_df = adsl_f,\n y_lab = \"Concentration\",\n y_lab_add_paramcd = FALSE,\n y_lab_add_unit = TRUE,\n interval = \"mean_sdi\",\n whiskers = c(\"mean_sdi_lwr\", \"mean_sdi_upr\"),\n title = use_title,\n subtitle = use_subtitle,\n caption = use_footnote,\n ggtheme = theme_nest()\n)\n\nplot <- result + theme(plot.caption = element_text(hjust = 0))\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeuse_title <- \"Plot of Mean (+/- SD) Log-Scale Plasma Concentrations Over Time by Treatment, \\nPK Evaluable Patients\"\nuse_subtitle <- \"Analyte:\"\nuse_footnote <- \"Program: \\nOutput:\"\n\nadpc <- adpc %>%\n mutate(avalog = ifelse(AVAL != 0, AVAL, 0.001))\n\nresult <- g_lineplot(\n df = adpc,\n variables = control_lineplot_vars(\n x = \"NFRLT\",\n y = \"avalog\",\n group_var = \"ARM\",\n paramcd = \"PARAM\",\n y_unit = \"AVALU\",\n subject_var = \"USUBJID\"\n ),\n alt_counts_df = adsl_f,\n y_lab = \"Concentration\",\n y_lab_add_paramcd = FALSE,\n y_lab_add_unit = TRUE,\n interval = \"mean_sdi\",\n whiskers = c(\"mean_sdi_lwr\", \"mean_sdi_upr\"),\n title = use_title,\n subtitle = use_subtitle,\n caption = use_footnote,\n ggtheme = theme_nest()\n)\n\nplot <- result + theme(plot.caption = element_text(hjust = 0)) +\n ggplot2::scale_y_log10(breaks = c(0.001, 0.01, 0.1, 1, 10), labels = c(0.001, 0.01, 0.1, 1, 10))\n\nScale for y is already present.\nAdding another scale for y, which will replace the existing scale.\n\nCodeplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\n\nadsl_f <- random.cdisc.data::cadsl %>%\n filter(SAFFL == \"Y\" & ARM != \"B: Placebo\") %>%\n df_explicit_na()\n\nadpc <- random.cdisc.data::cadpc %>%\n mutate(Patient_ID = sub(\".*id-\", \"\", USUBJID)) %>%\n filter(PARAM == \"Plasma Drug X\") %>%\n droplevels() %>%\n df_explicit_na()", "crumbs": [ - "Listings", - "Disposition", - "DSL02" + "Graphs", + "Pharmacokinetic", + "PKCG03" ] }, { - "objectID": "listings/disposition/dsl02.html#reproducibility", - "href": "listings/disposition/dsl02.html#reproducibility", - "title": "DSL02", + "objectID": "graphs/pharmacokinetic/pkcg03.html#reproducibility", + "href": "graphs/pharmacokinetic/pkcg03.html#reproducibility", + "title": "PKCG03", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:08:59 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:06:53 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", - "Disposition", - "DSL02" + "Graphs", + "Pharmacokinetic", + "PKCG03" ] }, { - "objectID": "listings/exposure/exl01.html#output", - "href": "listings/exposure/exl01.html#output", - "title": "EXL01", - "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"CRTNPT\", \"AVISIT\"),\n disp_cols = names(out),\n main_title = \"Listing of Exposure to Study Drug\"\n)\n\nhead(lsting, 20)\n\nListing of Exposure to Study Drug\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Study Day Study Day \nTreatment Center/Subject ID Visit From To Dose Unit Frequency Route \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-105 SCREENING -1 -1 960 mg ONCE INTRAVENOUS \n BASELINE 1 1 960 mg ONCE INTRAVENOUS \n WEEK 1 DAY 8 8 8 720 mg ONCE SUBCUTANEOUS\n WEEK 2 DAY 15 15 15 480 mg ONCE INTRAVENOUS \n WEEK 3 DAY 22 22 22 480 mg ONCE INTRAVENOUS \n WEEK 4 DAY 29 29 29 720 mg ONCE INTRAVENOUS \n WEEK 5 DAY 36 36 36 720 mg ONCE INTRAVENOUS \n BRA-1/id-134 SCREENING -1 -1 960 mg ONCE INTRAVENOUS \n BASELINE 1 1 720 mg ONCE INTRAVENOUS \n WEEK 1 DAY 8 8 8 720 mg ONCE INTRAVENOUS \n WEEK 2 DAY 15 15 15 960 mg ONCE INTRAVENOUS \n WEEK 3 DAY 22 22 22 720 mg ONCE INTRAVENOUS \n WEEK 4 DAY 29 29 29 960 mg ONCE INTRAVENOUS \n WEEK 5 DAY 36 36 36 960 mg ONCE INTRAVENOUS \n BRA-1/id-42 SCREENING -1 -1 960 mg ONCE INTRAVENOUS \n BASELINE 1 1 960 mg ONCE INTRAVENOUS \n WEEK 1 DAY 8 8 8 720 mg ONCE SUBCUTANEOUS\n WEEK 2 DAY 15 15 15 720 mg ONCE INTRAVENOUS \n WEEK 3 DAY 22 22 22 720 mg ONCE INTRAVENOUS \n WEEK 4 DAY 29 29 29 480 mg ONCE INTRAVENOUS \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadex <- random.cdisc.data::cadex\n\nout <- adex %>%\n filter(PARAMCD == \"DOSE\" & !is.na(AVAL) & SAFFL == \"Y\") %>%\n mutate(\n CRTNPT = paste(SITEID, SUBJID, sep = \"/\")\n ) %>%\n arrange(CRTNPT, AVISIT) %>%\n select(CRTNPT, AVISIT, EXSTDY, EXENDY, TRT01A, AVAL, AVALU, EXDOSFRQ, EXROUTE)\n\nvar_labels(out) <- c(\n CRTNPT = \"Center/Subject ID\",\n AVISIT = \"Visit\",\n EXSTDY = \"Study Day\\nFrom\",\n EXENDY = \"Study Day\\nTo\",\n TRT01A = \"Treatment\",\n AVAL = \"Dose\",\n AVALU = \"Unit\",\n EXDOSFRQ = \"Frequency\",\n EXROUTE = \"Route\"\n)", + "objectID": "graphs/other/ippg01.html", + "href": "graphs/other/ippg01.html", + "title": "IPPG01", + "section": "", + "text": "For illustration purposes, we will subset the adlb dataset for safety population in treatment arm A and a specific lab parameter (ALT).", "crumbs": [ - "Listings", - "Exposure", - "EXL01" + "Graphs", + "Other", + "IPPG01" ] }, { - "objectID": "listings/exposure/exl01.html#reproducibility", - "href": "listings/exposure/exl01.html#reproducibility", - "title": "EXL01", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:08:50 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "graphs/other/ippg01.html#output", + "href": "graphs/other/ippg01.html#output", + "title": "IPPG01", + "section": "Output", + "text": "Output\n\n\nStandard Plot\nPlot with Patient Baselines as Reference\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nThe user can select different plotting_choices depending on their preference. To demonstrate, separate plots are produced with a maximum of 3 observations each.\n\nCodeplots <- g_ipp(\n df = adlb_f,\n xvar = \"AVISIT\",\n yvar = \"AVAL\",\n xlab = \"Visit\",\n ylab = \"SGOT/ALT (U/L)\",\n id_var = \"Patient_ID\",\n title = \"Individual Patient Plots\",\n subtitle = \"Treatment Arm A\",\n plotting_choices = \"split_by_max_obs\",\n max_obs_per_plot = 3\n)\nplots\n\n[[1]]\n\n\n\n\n\n\n\n\n\n[[2]]\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nHere, patients’ individual baseline values will be shown for reference. Note that users can provide their own custom theme to the function via the ggtheme argument.\n\nCodeplots <- g_ipp(\n df = adlb_f,\n xvar = \"AVISIT\",\n yvar = \"AVAL\",\n xlab = \"Visit\",\n ylab = \"SGOT/ALT (U/L)\",\n id_var = \"Patient_ID\",\n title = \"Individual Patient Plots\",\n subtitle = \"Treatment Arm A\",\n add_baseline_hline = TRUE,\n yvar_baseline = \"BASE\",\n ggtheme = theme_minimal(),\n plotting_choices = \"split_by_max_obs\",\n max_obs_per_plot = 3\n)\nplots\n\n[[1]]\n\n\n\n\n\n\n\n\n\n[[2]]\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\n\n# use small sample size\nadsl <- random.cdisc.data::cadsl %>% slice(1:15)\nadlb <- random.cdisc.data::cadlb %>% filter(USUBJID %in% adsl$USUBJID)\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadlb <- df_explicit_na(adlb)\n\nadlb_f <- adlb %>%\n filter(\n SAFFL == \"Y\",\n PARAMCD == \"ALT\",\n AVISIT != \"SCREENING\",\n ARMCD == \"ARM A\"\n ) %>%\n mutate(Patient_ID = sub(\".*id-\", \"\", USUBJID))", "crumbs": [ - "Listings", - "Exposure", - "EXL01" + "Graphs", + "Other", + "IPPG01" ] }, { - "objectID": "listings/adverse-events/ael02.html#output", - "href": "listings/adverse-events/ael02.html#output", - "title": "AEL02", - "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"CPID\", \"ASR\"),\n disp_cols = names(out),\n main_title = \"Listing of Adverse Events\",\n main_footer = \"\n(1) Outcome: 1 = fatal; 2 = not recovered/not resolved; 3 = recovered/resolved;\n 4 = recovered/resolved with sequelae; 5 = recovering/resolving; 6 = unknown.\n(2) Action taken with study drug: 1 = dose increased; 2 = dose not changed;\n 3 = dose reduced; 4 = drug interrupted; 5 = drug withdrawn; 6 = not applicable;\n 7 = unknown.\n* Study day derived from imputed onset date.\n** Duration derived from imputed onset date and/or end date.\"\n)\n\nhead(lsting, 20)\n\nListing of Adverse Events\n\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Date of \n Adverse First Study Study AE Most Caused by Action\n Event MedDRA Drug Day of Duration Extreme Study Outcome Treatment Taken \nTreatment Center/Patient ID Age/Sex/Race Preferred Term Administration Onset in Days Serious Intensity Drug (1) for AE (2) \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-134 47/M/WHITE dcd B.2.1.2.1 04NOV2020 162 173 No MODERATE No 5 Yes 2 \n dcd D.1.1.4.2 04NOV2020 196 166 No MODERATE No 5 No 2 \n dcd A.1.1.1.2 04NOV2020 321 149 Yes MODERATE No 5 Yes 2 \n dcd A.1.1.1.2 04NOV2020 393 43 Yes MODERATE No 5 No 5 \n BRA-1/id-42 36/M/BLACK OR AFRICAN AMERICAN dcd C.2.1.2.1 01JAN2020 39 506 No MODERATE Yes 2 No 6 \n dcd D.1.1.1.1 01JAN2020 64 630 Yes SEVERE Yes 1 No 6 \n dcd C.2.1.2.1 01JAN2020 95 306 No MODERATE Yes 5 No 2 \n dcd A.1.1.1.2 01JAN2020 160 259 Yes MODERATE No 2 Yes 2 \n dcd B.2.2.3.1 01JAN2020 292 50 Yes MILD No 3 No 2 \n dcd A.1.1.1.2 01JAN2020 459 195 Yes MODERATE No 5 Yes 2 \n dcd B.1.1.1.1 01JAN2020 470 131 Yes SEVERE Yes 1 No 6 \n dcd A.1.1.1.2 01JAN2020 475 113 Yes MODERATE No 4 Yes 2 \n dcd C.1.1.1.3 01JAN2020 496 162 No SEVERE Yes 5 Yes 2 \n dcd B.1.1.1.1 01JAN2020 641 15 Yes SEVERE Yes 1 Yes 6 \n BRA-1/id-93 34/F/ASIAN dcd D.1.1.4.2 20JUN2020 44 47 No MODERATE No 5 Yes 2 \n dcd D.2.1.5.3 20JUN2020 79 300 No MILD Yes 5 No 3 \n dcd A.1.1.1.1 20JUN2020 136 78 No MILD No 3 Yes 2 \n dcd D.2.1.5.3 20JUN2020 260 305 No MILD Yes 5 No 2 \n dcd C.1.1.1.3 20JUN2020 281 106 No SEVERE Yes 5 Yes 2 \n dcd D.1.1.1.1 20JUN2020 316 250 Yes SEVERE Yes 1 No 6 \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n\n(1) Outcome: 1 = fatal; 2 = not recovered/not resolved; 3 = recovered/resolved;\n 4 = recovered/resolved with sequelae; 5 = recovering/resolving; 6 = unknown.\n(2) Action taken with study drug: 1 = dose increased; 2 = dose not changed;\n 3 = dose reduced; 4 = drug interrupted; 5 = drug withdrawn; 6 = not applicable;\n 7 = unknown.\n* Study day derived from imputed onset date.\n** Duration derived from imputed onset date and/or end date.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadae <- random.cdisc.data::cadae\n\nout <- adae %>%\n mutate(\n CPID = paste(SITEID, SUBJID, sep = \"/\"),\n ASR = paste(AGE, SEX, RACE, sep = \"/\"),\n Date_First = toupper(format(as.Date(TRTSDTM), \"%d%b%Y\")),\n Duration = AENDY - ASTDY + 1,\n Serious = ifelse(AESER == \"Y\", \"Yes\", ifelse(AESER == \"N\", \"No\", \"\")),\n Related = ifelse(AEREL == \"Y\", \"Yes\", ifelse(AEREL == \"N\", \"No\", \"\")),\n Outcome = case_when(\n AEOUT == \"FATAL\" ~ 1,\n AEOUT == \"NOT RECOVERED/NOT RESOLVED\" ~ 2,\n AEOUT == \"RECOVERED/RESOLVED\" ~ 3,\n AEOUT == \"RECOVERED/RESOLVED WITH SEQUELAE\" ~ 4,\n AEOUT == \"RECOVERING/RESOLVING\" ~ 5,\n AEOUT == \"UNKNOWN\" ~ 6\n ),\n Treated = ifelse(AECONTRT == \"Y\", \"Yes\", ifelse(AECONTRT == \"N\", \"No\", \"\")),\n Action = case_when(\n AEACN == \"DOSE INCREASED\" ~ 1,\n AEACN == \"DOSE NOT CHANGED\" ~ 2,\n AEACN == \"DOSE REDUCED\" | AEACN == \"DOSE RATE REDUCED\" ~ 3,\n AEACN == \"DRUG INTERRUPTED\" ~ 4,\n AEACN == \"DRUG WITHDRAWN\" ~ 5,\n AEACN == \"NOT APPLICABLE\" | AEACN == \"NOT EVALUABLE\" ~ 6,\n AEACN == \"UNKNOWN\" ~ 7\n )\n ) %>%\n select(CPID, ASR, TRT01A, AEDECOD, Date_First, ASTDY, Duration, Serious, AESEV, Related, Outcome, Treated, Action)\n\nvar_labels(out) <- c(\n CPID = \"Center/Patient ID\",\n ASR = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n AEDECOD = \"Adverse\\nEvent MedDRA\\nPreferred Term\",\n Date_First = \"Date of\\nFirst Study\\nDrug\\nAdministration\",\n ASTDY = \"Study\\nDay of\\nOnset\",\n Duration = \"AE\\nDuration\\nin Days\",\n Serious = \"Serious\",\n AESEV = \"Most\\nExtreme\\nIntensity\",\n Related = \"Caused by\\nStudy\\nDrug\",\n Outcome = \"Outcome\\n(1)\",\n Treated = \"Treatment\\nfor AE\",\n Action = \"Action\\nTaken\\n(2)\"\n)", + "objectID": "graphs/other/ippg01.html#teal-app", + "href": "graphs/other/ippg01.html#teal-app", + "title": "IPPG01", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n # use small sample size\n ADSL <- random.cdisc.data::cadsl %>% slice(1:15)\n ADLB <- random.cdisc.data::cadlb %>% filter(USUBJID %in% ADSL$USUBJID)\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADLB <- df_explicit_na(ADLB) %>%\n filter(AVISIT != \"SCREENING\")\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_ipp(\n label = \"Individual Patient Plot\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n value_choices(ADLB, c(\"ARMCD\")),\n \"ARM A\"\n ),\n paramcd = choices_selected(\n value_choices(ADLB, \"PARAMCD\"),\n \"ALT\"\n ),\n aval_var = choices_selected(\n variable_choices(ADLB, c(\"AVAL\")),\n \"AVAL\"\n ),\n avalu_var = choices_selected(\n variable_choices(ADLB, c(\"AVALU\")),\n \"AVALU\",\n fixed = TRUE\n ),\n id_var = choices_selected(\n variable_choices(ADLB, c(\"USUBJID\")),\n \"USUBJID\",\n fixed = TRUE\n ),\n visit_var = choices_selected(\n variable_choices(ADLB, c(\"AVISIT\")),\n \"AVISIT\"\n ),\n baseline_var = choices_selected(\n variable_choices(ADLB, c(\"BASE\")),\n \"BASE\",\n fixed = TRUE\n ),\n add_baseline_hline = FALSE,\n separate_by_obs = FALSE\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n # use small sample size\n ADSL <- random.cdisc.data::cadsl %>% slice(1:15)\n ADLB <- random.cdisc.data::cadlb %>% filter(USUBJID %in% ADSL$USUBJID)\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADLB <- df_explicit_na(ADLB) %>%\n filter(AVISIT != \"SCREENING\")\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_ipp(\n label = \"Individual Patient Plot\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n value_choices(ADLB, c(\"ARMCD\")),\n \"ARM A\"\n ),\n paramcd = choices_selected(\n value_choices(ADLB, \"PARAMCD\"),\n \"ALT\"\n ),\n aval_var = choices_selected(\n variable_choices(ADLB, c(\"AVAL\")),\n \"AVAL\"\n ),\n avalu_var = choices_selected(\n variable_choices(ADLB, c(\"AVALU\")),\n \"AVALU\",\n fixed = TRUE\n ),\n id_var = choices_selected(\n variable_choices(ADLB, c(\"USUBJID\")),\n \"USUBJID\",\n fixed = TRUE\n ),\n visit_var = choices_selected(\n variable_choices(ADLB, c(\"AVISIT\")),\n \"AVISIT\"\n ),\n baseline_var = choices_selected(\n variable_choices(ADLB, c(\"BASE\")),\n \"BASE\",\n fixed = TRUE\n ),\n add_baseline_hline = FALSE,\n separate_by_obs = FALSE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ - "Listings", - "Adverse Events", - "AEL02" + "Graphs", + "Other", + "IPPG01" ] }, { - "objectID": "listings/adverse-events/ael02.html#reproducibility", - "href": "listings/adverse-events/ael02.html#reproducibility", - "title": "AEL02", + "objectID": "graphs/other/ippg01.html#reproducibility", + "href": "graphs/other/ippg01.html#reproducibility", + "title": "IPPG01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:08:40 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:06:33 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", - "Adverse Events", - "AEL02" + "Graphs", + "Other", + "IPPG01" ] }, { - "objectID": "listings/adverse-events/ael01_nollt.html#output", - "href": "listings/adverse-events/ael01_nollt.html#output", - "title": "AEL01_NOLLT", + "objectID": "graphs/other/bwg01.html#output", + "href": "graphs/other/bwg01.html#output", + "title": "BWG01", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"AESOC\", \"AEDECOD\"),\n disp_cols = names(out),\n main_title = \"Listing of Preferred Terms and Investigator-Specified Adverse Event Terms\"\n)\n\nhead(lsting, 20)\n\nListing of Preferred Terms and Investigator-Specified Adverse Event Terms\n\n——————————————————————————————————————————————————————————————————————————\n Investigator-Specified\nMedDRA System Organ Class MedDRA Preferred Term Adverse Event Term \n——————————————————————————————————————————————————————————————————————————\n cl A dcd A.1.1.1.1 trm A.1.1.1.1 \n dcd A.1.1.1.2 trm A.1.1.1.2 \n cl B dcd B.1.1.1.1 trm B.1.1.1.1 \n dcd B.2.1.2.1 trm B.2.1.2.1 \n dcd B.2.2.3.1 trm B.2.2.3.1 \n cl C dcd C.1.1.1.3 trm C.1.1.1.3 \n dcd C.2.1.2.1 trm C.2.1.2.1 \n cl D dcd D.1.1.1.1 trm D.1.1.1.1 \n dcd D.1.1.4.2 trm D.1.1.4.2 \n dcd D.2.1.5.3 trm D.2.1.5.3 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadae <- random.cdisc.data::cadae\n\nout <- adae %>%\n select(AESOC, AEDECOD, AETERM) %>%\n unique()\n\nvar_labels(out) <- c(\n AESOC = \"MedDRA System Organ Class\",\n AEDECOD = \"MedDRA Preferred Term\",\n AETERM = \"Investigator-Specified\\nAdverse Event Term\"\n)", + "text": "Output\n\n\nStandard Plot\nPlot Changing Whiskers\nPlot Adding Outliers\nPlot Specifying Marker for Outliers and Adding Patient ID\nPlot Specifying Marker for Mean\nPlot by Treatment and Timepoint\nPlot by Timepoint and Treatment\nPlot with Table Section\nPlot with Number of Patients only in Table Section\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodebp_1 <- ggplot(adlb, aes(x = ARMCD, y = AVAL)) +\n stat_summary(geom = \"boxplot\", fun.data = five_num, fill = fc, color = oc) +\n stat_summary(geom = \"point\", fun = mean, size = 3, shape = 8) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n subtitle = paste(\"Visit:\", adlb$AVISIT[1]),\n caption = \"The whiskers extend to the minimum and maximum values.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\nplot <- bp_annos(bp_1, oc)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodebp_3 <- ggplot(adlb, aes(x = ARMCD, y = AVAL)) +\n stat_summary(\n geom = \"boxplot\", fun.data = five_num,\n fun.args = list(probs = c(0.05, 0.25, 0.5, 0.75, 0.95)), fill = fc, color = oc\n ) +\n stat_summary(geom = \"point\", fun = mean, size = 3, shape = 8) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n subtitle = paste(\"Visit:\", adlb$AVISIT[1]),\n caption = \"The whiskers extend to the 5th and 95th percentile. Values outside the whiskers have not been plotted.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\nplot <- bp_annos(bp_3, oc)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodebp_4 <- ggplot(adlb, aes(x = ARMCD, y = AVAL)) +\n stat_summary(\n geom = \"boxplot\", fun.data = five_num,\n fun.args = list(probs = c(0.05, 0.25, 0.5, 0.75, 0.95)), fill = fc, color = oc\n ) +\n stat_summary(geom = \"point\", fun = get_outliers, shape = 1) +\n stat_summary(geom = \"point\", fun = mean, size = 3, shape = 8) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n subtitle = paste(\"Visit:\", adlb$AVISIT[1]),\n caption = \"The whiskers extend to the 5th and 95th percentile.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\nplot <- bp_annos(bp_4, oc)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_o <- adlb %>%\n group_by(ARMCD) %>%\n mutate(OUTLIER = AVAL < quantile(AVAL, 0.01) | AVAL > quantile(AVAL, 0.99)) %>%\n filter(OUTLIER == TRUE) %>%\n select(ARMCD, AVAL, USUBJID)\n# Next step may be study-specific: shorten USUBJID to make annotation labels\n# next 2 lines of code split USUBJID by \"-\" and take the last syllable as ID\nn_split <- max(vapply(strsplit(adlb_o$USUBJID, \"-\"), length, numeric(1)))\nadlb_o$ID <- vapply(strsplit(adlb_o$USUBJID, \"-\"), `[[`, n_split, FUN.VALUE = \"a\")\n\nbp_5 <- ggplot(adlb, aes(x = ARMCD, y = AVAL)) +\n stat_summary(\n geom = \"boxplot\", fun.data = five_num,\n fun.args = list(probs = c(0.01, 0.25, 0.5, 0.75, 0.99)), fill = fc, color = oc\n ) +\n stat_summary(geom = \"point\", fun = mean, size = 3, shape = 8) +\n geom_point(data = adlb_o, aes(x = ARMCD, y = AVAL), shape = 1) +\n geom_text(data = adlb_o, aes(x = ARMCD, y = AVAL, label = ID), size = 3, hjust = -0.2) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n subtitle = paste(\"Visit:\", adlb$AVISIT[1]),\n caption = \"The whiskers extend to the largest and smallest observed value within 1.5*IQR.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\nplot <- bp_annos(bp_5, oc)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodebp_6 <- ggplot(adlb, aes(x = ARMCD, y = AVAL)) +\n geom_boxplot(fill = fc, color = oc) +\n stat_summary(geom = \"point\", fun = mean, size = 3, shape = 5) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n subtitle = paste(\"Visit:\", adlb$AVISIT[1]),\n caption = \"The whiskers extend to the minimum and maximum values.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\nplot <- bp_annos(bp_6, oc)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\nadlb_v <- adlb %>%\n filter(PARAMCD == \"ALT\" & AVISIT %in% c(\"WEEK 1 DAY 8\", \"WEEK 2 DAY 15\", \"WEEK 3 DAY 22\", \"WEEK 4 DAY 29\"))\n\nbp_7 <- ggplot(adlb_v, aes(x = AVISIT, y = AVAL)) +\n stat_summary(\n geom = \"boxplot\",\n fun.data = five_num,\n position = position_dodge2(.5),\n aes(fill = ARMCD, color = ARMCD)\n ) +\n stat_summary(\n geom = \"point\",\n fun = mean,\n aes(group = ARMCD),\n size = 3,\n shape = 8,\n position = position_dodge2(1)\n ) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n caption = \"The whiskers extend to the minimum and maximum values.\",\n x = \"Visit\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\nplot <- bp_annos(bp_7, oc, 2)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodebp_8 <- ggplot(adlb_v, aes(x = ARMCD, y = AVAL)) +\n stat_summary(\n geom = \"boxplot\",\n fun.data = five_num,\n position = position_dodge2(width = .5),\n aes(fill = AVISIT, color = AVISIT)\n ) +\n stat_summary(\n geom = \"point\",\n fun = mean,\n aes(group = AVISIT),\n size = 3,\n shape = 8,\n position = position_dodge2(1)\n ) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n caption = \"The whiskers extend to the minimum and maximum values.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\nplot <- bp_annos(bp_8, oc, 2)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Make wide dataset with summary statistics\nadlb_wide <- adlb %>%\n group_by(ARMCD) %>%\n summarise(\n n = n(),\n mean = round(mean(AVAL), 1),\n median = round(median(AVAL), 1),\n median_ci = paste(round(DescTools::MedianCI(AVAL)[1:2], 1), collapse = \" - \"),\n q1_q3 = paste(round(quantile(AVAL, c(0.25, 0.75)), 1), collapse = \" - \"),\n min_max = paste0(round(min(AVAL), 1), \"-\", max(round(AVAL, 2)))\n )\n\n# Make long dataset\nadlb_long <- tidyr::gather(adlb_wide, key = type, value = stat, n:min_max)\nadlb_long <- adlb_long %>% mutate(\n type_lbl = case_when(\n type == \"n\" ~ \"n\",\n type == \"mean\" ~ \"Mean\",\n type == \"median\" ~ \"Median\",\n type == \"median_ci\" ~ \"95% CI for Median\",\n type == \"q1_q3\" ~ \"25% and 75%-ile\",\n type == \"min_max\" ~ \"Min - Max\"\n )\n)\nadlb_long$type_lbl <- factor(adlb_long$type_lbl,\n levels = c(\"Min - Max\", \"25% and 75%-ile\", \"95% CI for Median\", \"Median\", \"Mean\", \"n\")\n)\n\nbp_9 <- ggplot(adlb, aes(x = ARMCD, y = AVAL)) +\n stat_summary(geom = \"boxplot\", fun.data = five_num, fill = fc, color = oc) +\n stat_summary(geom = \"point\", fun = mean, size = 3, shape = 8) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n subtitle = paste(\"Visit:\", adlb$AVISIT[1]),\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\ntbl_theme <- theme(\n panel.border = element_blank(),\n panel.grid.major = element_blank(),\n panel.grid.minor = element_blank(),\n axis.ticks = element_blank(),\n axis.title = element_blank(),\n axis.text.y = element_text(face = \"plain\"),\n axis.text.x = element_blank()\n)\n\ntbl_1 <- ggplot(adlb_long, aes(x = ARMCD, y = type_lbl, label = stat), vjust = 10) +\n geom_text(size = 3) +\n scale_y_discrete(labels = levels(adlb_long$type_lbl)) +\n theme_bw() +\n tbl_theme +\n labs(caption = \"The whiskers extend to the minimum and maximum values.\") +\n theme_bp\n\nplot <- cowplot::plot_grid(bp_annos(bp_9, oc), tbl_1,\n rel_heights = c(4, 2),\n ncol = 1, nrow = 2, align = \"v\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodetbl_2 <- adlb_long %>%\n filter(type == \"n\") %>%\n ggplot(aes(x = ARMCD, y = type_lbl, label = stat)) +\n geom_text(size = 3) +\n scale_y_discrete(labels = \"n\") +\n theme_bw() +\n tbl_theme +\n labs(caption = \"The whiskers extend to the minimum and maximum values.\") +\n theme_bp\n\nplot <- cowplot::plot_grid(bp_annos(bp_9, oc), tbl_2,\n rel_heights = c(6, 1),\n ncol = 1, nrow = 2, align = \"v\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\n\nadlb <- random.cdisc.data::cadlb\nadlb <- adlb %>% filter(PARAMCD == \"ALT\" & AVISIT == \"WEEK 2 DAY 15\")\n\n# Definition of boxplot boundaries and whiskers\nfive_num <- function(x, probs = c(0, 0.25, 0.5, 0.75, 1)) {\n r <- quantile(x, probs)\n names(r) <- c(\"ymin\", \"lower\", \"middle\", \"upper\", \"ymax\")\n r\n}\n\n# get outliers based on quantile\n# for outliers based on IQR see coef in geom_boxplot\nget_outliers <- function(x, probs = c(0.05, 0.95)) {\n r <- subset(x, x < quantile(x, probs[1]) | quantile(x, probs[2]) < x)\n if (!is.null(x)) {\n x_names <- subset(names(x), x < quantile(x, probs[1]) | quantile(x, probs[2]) < x)\n names(r) <- x_names\n }\n r\n}\n\n# create theme used for all plots\ntheme_bp <- theme(\n plot.title = element_text(hjust = 0),\n plot.subtitle = element_text(hjust = 0),\n plot.caption = element_text(hjust = 0),\n panel.background = element_rect(fill = \"white\", color = \"grey50\")\n)\n\n# assign fill color and outline color\nfc <- \"#eaeef5\"\noc <- getOption(\"ggplot2.discrete.fill\")[1]\n\n# get plot metadata data to derive coordinates for adding annotations\nbp_annos <- function(bp, color, annos = 1) {\n bp_mdat <- ggplot_build(bp)$data[[1]]\n if (annos == 1) {\n bp <- bp +\n geom_segment(data = bp_mdat, aes(\n x = xmin + (xmax - xmin) / 4, xend = xmax - (xmax - xmin) / 4,\n y = ymax, yend = ymax\n ), linewidth = .5, color = color) +\n geom_segment(data = bp_mdat, aes(\n x = xmin + (xmax - xmin) / 4, xend = xmax - (xmax - xmin) / 4,\n y = ymin, yend = ymin\n ), linewidth = .5, color = color)\n } else {\n bp <- bp +\n geom_segment(data = bp_mdat, aes(\n x = xmin + (xmax - xmin) / 4, xend = xmax - (xmax - xmin) / 4,\n y = ymax, yend = ymax\n ), linewidth = .5, color = color) +\n geom_segment(data = bp_mdat, aes(\n x = xmin + (xmax - xmin) / 4, xend = xmax - (xmax - xmin) / 4,\n y = ymin, yend = ymin\n ), linewidth = .5, color = color) +\n geom_segment(data = bp_mdat, aes(\n x = xmin, xend = xmax,\n y = middle, yend = middle\n ), colour = color, linewidth = .5)\n }\n return(bp)\n}", "crumbs": [ - "Listings", - "Adverse Events", - "AEL01_NOLLT" - ] - }, - { - "objectID": "listings/adverse-events/ael01_nollt.html#reproducibility", - "href": "listings/adverse-events/ael01_nollt.html#reproducibility", - "title": "AEL01_NOLLT", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:08:31 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", - "crumbs": [ - "Listings", - "Adverse Events", - "AEL01_NOLLT" + "Graphs", + "Other", + "BWG01" ] }, { - "objectID": "listings/adverse-events/ael04.html#output", - "href": "listings/adverse-events/ael04.html#output", - "title": "AEL04", - "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"ID\"),\n disp_cols = names(out),\n main_title = \"Listing of Patient Deaths\"\n)\n\nhead(lsting, 20)\n\nListing of Patient Deaths\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Date of First Day of Last \n Study Drug Study Drug Day of Autopsy \nTreatment Center/Patient ID Age/Sex/Race Administration Administration Death Cause of Death Performed?\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-134 47/M/WHITE 04NOV2020 473 496 ADVERSE EVENT Yes \n BRA-1/id-93 34/F/ASIAN 20JUN2020 610 657 ADVERSE EVENT Yes \n BRA-11/id-217 43/M/ASIAN 28SEP2019 871 893 ADVERSE EVENT Yes \n BRA-15/id-36 38/F/ASIAN 08JAN2020 767 812 DISEASE PROGRESSION Yes \n CAN-11/id-139 31/M/ASIAN 15SEP2020 519 563 ADVERSE EVENT Yes \n CHN-1/id-123 27/F/ASIAN 28JAN2020 750 750 DISEASE PROGRESSION Yes \n CHN-1/id-199 27/M/BLACK OR AFRICAN AMERICAN 08JAN2020 773 779 DISEASE PROGRESSION Yes \n CHN-1/id-235 39/M/ASIAN 13JUL2019 950 968 ADVERSE EVENT Yes \n CHN-1/id-62 36/F/WHITE 22NOV2020 455 497 ADVERSE EVENT Yes \n CHN-12/id-258 45/M/WHITE 01MAR2020 721 756 SUICIDE No \n CHN-15/id-14 38/F/BLACK OR AFRICAN AMERICAN 29SEP2019 871 919 DISEASE PROGRESSION Yes \n CHN-17/id-182 37/M/BLACK OR AFRICAN AMERICAN 18SEP2019 879 902 LOST TO FOLLOW UP NA \n CHN-17/id-92 29/M/ASIAN 01MAR2020 720 721 LOST TO FOLLOW UP NA \n CHN-2/id-22 29/M/ASIAN 15JAN2021 393 409 MISSING NA \n CHN-2/id-223 29/F/ASIAN 18NOV2020 453 468 DISEASE PROGRESSION Yes \n CHN-2/id-272 41/F/ASIAN 11JAN2020 768 773 DISEASE PROGRESSION Yes \n CHN-2/id-274 40/F/ASIAN 14OCT2019 860 890 SUICIDE No \n CHN-3/id-128 32/M/ASIAN 24FEB2019 1084 1105 ADVERSE EVENT Yes \n CHN-5/id-108 28/F/BLACK OR AFRICAN AMERICAN 11SEP2019 886 935 MISSING NA \n CHN-6/id-30 29/M/ASIAN 24AUG2020 539 578 Post-study reporting of death No \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadsl <- random.cdisc.data::cadsl\n\nout <- adsl %>%\n filter(!is.na(DTHADY)) %>%\n mutate(\n ID = paste(SITEID, SUBJID, sep = \"/\"),\n AGSXRC = paste(AGE, SEX, RACE, sep = \"/\"),\n TRTSD = toupper(format(as.Date(TRTSDTM), \"%d%b%Y\"))\n ) %>%\n arrange(SUBJID) %>%\n select(ID, AGSXRC, TRT01A, TRTSD, EOSDY, DTHADY, DTHCAUS, ADTHAUT)\n\nvar_labels(out) <- c(\n ID = \"Center/Patient ID\",\n AGSXRC = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n TRTSD = \"Date of First\\nStudy Drug\\nAdministration\",\n EOSDY = \"Day of Last\\nStudy Drug\\nAdministration\",\n DTHADY = \"Day of\\nDeath\",\n DTHCAUS = \"Cause of Death\",\n ADTHAUT = \"Autopsy\\nPerformed?\"\n)", + "objectID": "graphs/other/bwg01.html#teal-app", + "href": "graphs/other/bwg01.html#teal-app", + "title": "BWG01", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.general)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(tern)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n\n # If PARAMCD and AVISIT are not factors, convert to factors\n # Also fill in missing values with \"<Missing>\"\n ADLB <- ADLB %>%\n df_explicit_na(\n omit_columns = setdiff(names(ADLB), c(\"PARAMCD\", \"AVISIT\")),\n char_as_factor = TRUE\n )\n\n # If statment below fails, pre-process ADLB to be one record per\n # study, subject, param and visit eg. filter with ANLFL = 'Y'\n stopifnot(nrow(ADLB) == nrow(unique(ADLB[, c(\"STUDYID\", \"USUBJID\", \"PARAMCD\", \"AVISIT\")])))\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_bivariate(\n x = data_extract_spec(\n dataname = \"ADSL\",\n select = select_spec(\n label = \"Select variable:\",\n choices = names(ADSL),\n selected = \"ARMCD\",\n fixed = FALSE\n )\n ),\n y = data_extract_spec(\n dataname = \"ADLB\",\n filter = list(\n filter_spec(\n vars = c(\"PARAMCD\"),\n choices = levels(ADLB$PARAMCD),\n selected = levels(ADLB$PARAMCD)[1],\n multiple = FALSE,\n label = \"Choose lab parameter\"\n ),\n filter_spec(\n vars = c(\"AVISIT\"),\n choices = levels(ADLB$AVISIT),\n selected = levels(ADLB$AVISIT)[1],\n multiple = FALSE,\n label = \"Choose visit\"\n )\n ),\n select = select_spec(\n label = \"Select variable:\",\n choices = names(ADLB),\n selected = \"AVAL\",\n multiple = FALSE,\n fixed = TRUE\n )\n ),\n row_facet = data_extract_spec(\n dataname = \"ADLB\",\n select = select_spec(\n label = \"Select variables:\",\n choices = names(ADLB),\n selected = NULL,\n multiple = FALSE,\n fixed = FALSE\n )\n ),\n col_facet = data_extract_spec(\n dataname = \"ADLB\",\n select = select_spec(\n label = \"Select variables:\",\n choices = names(ADLB),\n selected = NULL,\n multiple = FALSE,\n fixed = FALSE\n )\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\nWarning: Removed 8000 rows containing non-finite outside the scale range\n(`stat_boxplot()`).\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.general)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(tern)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n\n # If PARAMCD and AVISIT are not factors, convert to factors\n # Also fill in missing values with \"<Missing>\"\n ADLB <- ADLB %>%\n df_explicit_na(\n omit_columns = setdiff(names(ADLB), c(\"PARAMCD\", \"AVISIT\")),\n char_as_factor = TRUE\n )\n\n # If statment below fails, pre-process ADLB to be one record per\n # study, subject, param and visit eg. filter with ANLFL = 'Y'\n stopifnot(nrow(ADLB) == nrow(unique(ADLB[, c(\"STUDYID\", \"USUBJID\", \"PARAMCD\", \"AVISIT\")])))\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_bivariate(\n x = data_extract_spec(\n dataname = \"ADSL\",\n select = select_spec(\n label = \"Select variable:\",\n choices = names(ADSL),\n selected = \"ARMCD\",\n fixed = FALSE\n )\n ),\n y = data_extract_spec(\n dataname = \"ADLB\",\n filter = list(\n filter_spec(\n vars = c(\"PARAMCD\"),\n choices = levels(ADLB$PARAMCD),\n selected = levels(ADLB$PARAMCD)[1],\n multiple = FALSE,\n label = \"Choose lab parameter\"\n ),\n filter_spec(\n vars = c(\"AVISIT\"),\n choices = levels(ADLB$AVISIT),\n selected = levels(ADLB$AVISIT)[1],\n multiple = FALSE,\n label = \"Choose visit\"\n )\n ),\n select = select_spec(\n label = \"Select variable:\",\n choices = names(ADLB),\n selected = \"AVAL\",\n multiple = FALSE,\n fixed = TRUE\n )\n ),\n row_facet = data_extract_spec(\n dataname = \"ADLB\",\n select = select_spec(\n label = \"Select variables:\",\n choices = names(ADLB),\n selected = NULL,\n multiple = FALSE,\n fixed = FALSE\n )\n ),\n col_facet = data_extract_spec(\n dataname = \"ADLB\",\n select = select_spec(\n label = \"Select variables:\",\n choices = names(ADLB),\n selected = NULL,\n multiple = FALSE,\n fixed = FALSE\n )\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ - "Listings", - "Adverse Events", - "AEL04" + "Graphs", + "Other", + "BWG01" ] }, { - "objectID": "listings/adverse-events/ael04.html#reproducibility", - "href": "listings/adverse-events/ael04.html#reproducibility", - "title": "AEL04", + "objectID": "graphs/other/bwg01.html#reproducibility", + "href": "graphs/other/bwg01.html#reproducibility", + "title": "BWG01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:08:21 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:05:53 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n boot 1.3-31 2024-08-28 [2] CRAN (R 4.4.1)\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n cellranger 1.1.0 2016-07-27 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n class 7.3-23 2025-01-01 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n DescTools 0.99.58 2024-11-08 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n e1071 1.7-16 2024-09-16 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n Exact 3.3 2024-07-21 [1] RSPM\n expm 1.0-0 2024-08-19 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggmosaic * 0.3.3 2021-02-23 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n ggrepel 0.9.6 2024-09-07 [1] RSPM\n gld 2.6.6 2022-10-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n haven 2.5.4 2023-11-30 [1] RSPM\n hms 1.1.3 2023-03-21 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n lmom 3.2 2024-09-30 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n proxy 0.4-27 2022-06-09 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n readxl 1.4.3 2023-07-06 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rootSolve 1.8.2.4 2023-09-21 [1] RSPM\n rstudioapi 0.17.1 2024-10-22 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.general * 0.3.0.9061 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", - "Adverse Events", - "AEL04" + "Graphs", + "Other", + "BWG01" ] }, { - "objectID": "listings/concomitant-medications/cml02b_gl.html#output", - "href": "listings/concomitant-medications/cml02b_gl.html#output", - "title": "CML02B_GL", + "objectID": "graphs/other/mng01.html#output", + "href": "graphs/other/mng01.html#output", + "title": "MNG01", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"ATC1\", \"ATC2\", \"ATC3\", \"ATC4\"),\n disp_cols = names(out),\n main_title = \"Listing of Concomitant Medication Class, Preferred Name, and Investigator-Specified Terms\"\n)\n\nhead(lsting, 20)\n\nListing of Concomitant Medication Class, Preferred Name, and Investigator-Specified Terms\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Investigator-Specified\nATC Class Level 1 ATC Class Level 2 ATC Class Level 3 ATC Class Level 4 WHODrug Preferred Name Treatment Term \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n ATCCLAS1 A ATCCLAS2 A ATCCLAS3 A ATCCLAS4 A medname A_2/3 A_2/3 \n medname A_3/3 A_3/3 \n medname A_1/3 A_1/3 \n ATCCLAS1 A p2 ATCCLAS2 A p2 ATCCLAS3 A p2 ATCCLAS4 A p2 medname A_3/3 A_3/3 \n ATCCLAS1 B ATCCLAS2 B ATCCLAS3 B ATCCLAS4 B medname B_1/4 B_1/4 \n medname B_4/4 B_4/4 \n medname B_2/4 B_2/4 \n medname B_3/4 B_3/4 \n ATCCLAS1 B p2 ATCCLAS2 B p2 ATCCLAS3 B p2 ATCCLAS4 B p2 medname B_1/4 B_1/4 \n medname B_2/4 B_2/4 \n ATCCLAS1 B p3 ATCCLAS2 B p3 ATCCLAS3 B p3 ATCCLAS4 B p3 medname B_1/4 B_1/4 \n medname B_2/4 B_2/4 \n ATCCLAS1 C ATCCLAS2 C ATCCLAS3 C ATCCLAS4 C medname C_1/2 C_1/2 \n medname C_2/2 C_2/2 \n ATCCLAS1 C p2 ATCCLAS2 C p2 ATCCLAS3 C p2 ATCCLAS4 C p2 medname C_1/2 C_1/2 \n medname C_2/2 C_2/2 \n ATCCLAS1 C p3 ATCCLAS2 C p3 ATCCLAS3 C p3 ATCCLAS4 C p3 medname C_2/2 C_2/2 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadcm <- random.cdisc.data::cadcm\n\nout <- adcm %>%\n select(ATC1, ATC2, ATC3, ATC4, CMDECOD, CMTRT) %>%\n unique()\n\nvar_labels(out) <- c(\n ATC1 = \"ATC Class Level 1\",\n ATC2 = \"ATC Class Level 2\",\n ATC3 = \"ATC Class Level 3\",\n ATC4 = \"ATC Class Level 4\",\n CMDECOD = \"WHODrug Preferred Name\",\n CMTRT = \"Investigator-Specified\\nTreatment Term\"\n)", + "text": "Output\n\n\nPlot of Mean and CI\nPlot of Mean and CIs of Change from Baseline (Changing the Input Analysis Data Set and Analysis Variable)\nPlot of Mean (+/-SD) (Changing the Statistics)\nPlot of Mean and CI (Modify Alpha Level)\nPlot of Mean and CI (with Number of Patients only in Table Section)\nPlot of Mean and CI (with Table Section)\nPlot of Median and CI (Visits Condensed in Table Section)\nPlot of Mean and Upper Confidence Limit\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_lineplot(\n df = adlb_f,\n alt_counts_df = adsl_f,\n subtitle = \"Laboratory Test:\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_lineplot(\n df = advs_f,\n alt_counts_df = adsl_f,\n variables = control_lineplot_vars(y = \"CHG\"),\n title = \"Plot of Mean and 95% Confidence Intervals of Change from Baseline by Visit\",\n subtitle = \"Assessment:\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_lineplot(\n df = adlb_f,\n alt_counts_df = adsl_f,\n interval = \"mean_sdi\",\n whiskers = c(\"mean_sdi_lwr\", \"mean_sdi_upr\"),\n title = \"Plot of Mean (+/-SD)\",\n subtitle = \"Laboratory Test:\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_lineplot(\n df = adlb_f,\n alt_counts_df = adsl_f,\n control = control_analyze_vars(conf_level = 0.80),\n title = \"Plot of Mean and 80% Confidence Limits by Visit\",\n subtitle = \"Laboratory Test:\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_lineplot(\n df = adlb_f,\n alt_counts_df = adsl_f,\n table = \"n\",\n subtitle = \"Laboratory Test:\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_lineplot(\n df = adlb_f,\n alt_counts_df = adsl_f,\n table = c(\"n\", \"mean\", \"mean_ci\"),\n subtitle = \"Laboratory Test:\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThis option is not supported.\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_lineplot(\n df = adlb_f,\n alt_counts_df = adsl_f,\n whiskers = \"mean_ci_upr\",\n subtitle = \"Laboratory Test:\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(nestcolor)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\nadvs <- random.cdisc.data::cadvs\n\nadsl_f <- adsl %>%\n filter(SAFFL == \"Y\") %>%\n df_explicit_na()\n\nadlb_f <- adlb %>%\n mutate(AVISIT = forcats::fct_reorder(AVISIT, AVISITN, min)) %>%\n dplyr::filter(\n SAFFL == \"Y\",\n ANL01FL == \"Y\",\n ONTRTFL == \"Y\",\n PARAMCD == \"ALT\",\n AVISIT != \"SCREENING\"\n ) %>%\n droplevels() %>%\n df_explicit_na()\n\nadvs_f <- advs %>%\n mutate(AVISIT = forcats::fct_reorder(AVISIT, AVISITN, min)) %>%\n dplyr::filter(\n SAFFL == \"Y\",\n ONTRTFL == \"Y\",\n PARAMCD == \"DIABP\",\n AVISIT != \"SCREENING\"\n ) %>%\n droplevels() %>%\n df_explicit_na()", "crumbs": [ - "Listings", - "Concomitant Medications", - "CML02B_GL" + "Graphs", + "Other", + "MNG01" ] }, { - "objectID": "listings/concomitant-medications/cml02b_gl.html#reproducibility", - "href": "listings/concomitant-medications/cml02b_gl.html#reproducibility", - "title": "CML02B_GL", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:08:12 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "graphs/other/mng01.html#teal-app", + "href": "graphs/other/mng01.html#teal-app", + "title": "MNG01", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n library(forcats)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb %>%\n mutate(AVISIT = fct_reorder(AVISIT, AVISITN, min))\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_lineplot(\n label = \"LINE PLOT\",\n dataname = \"ADLB\",\n strata = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n y = choices_selected(\n variable_choices(ADLB, c(\"AVAL\", \"BASE\", \"CHG\", \"PCHG\")),\n \"AVAL\"\n ),\n param = choices_selected(\n value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n \"ALT\"\n )\n )\n )\n)\n\nWarning: The `strata` argument of `tm_g_lineplot()` is deprecated as of\nteal.modules.clinical 0.9.1. Please use the `group_var` argument instead.\n\nCodeshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n library(forcats)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb %>%\n mutate(AVISIT = fct_reorder(AVISIT, AVISITN, min))\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_lineplot(\n label = \"LINE PLOT\",\n dataname = \"ADLB\",\n strata = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n y = choices_selected(\n variable_choices(ADLB, c(\"AVAL\", \"BASE\", \"CHG\", \"PCHG\")),\n \"AVAL\"\n ),\n param = choices_selected(\n value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n \"ALT\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ - "Listings", - "Concomitant Medications", - "CML02B_GL" + "Graphs", + "Other", + "MNG01" ] }, { - "objectID": "listings/development-safety-update-report/dsur4.html#output", - "href": "listings/development-safety-update-report/dsur4.html#output", - "title": "DSUR4", - "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"ARM\"),\n disp_cols = names(out),\n main_title = \"Listing of Patients Who Died During Reporting Period\",\n subtitles = paste(\"Number of patient deaths during reporting period =\", death_num)\n)\n\nhead(lsting, 20)\n\nListing of Patients Who Died During Reporting Period\nNumber of patient deaths during reporting period = 70\n\n———————————————————————————————————————————————————————————————————\nTreatment Group Center/Patient ID Cause of Death \n———————————————————————————————————————————————————————————————————\n A: Drug X CHN-3/id-128 ADVERSE EVENT \n RUS-1/id-52 DISEASE PROGRESSION \n CHN-1/id-235 ADVERSE EVENT \n CHN-5/id-108 MISSING \n CHN-17/id-182 LOST TO FOLLOW UP \n BRA-11/id-217 ADVERSE EVENT \n CHN-15/id-14 DISEASE PROGRESSION \n CHN-2/id-274 SUICIDE \n USA-11/id-339 UNKNOWN \n BRA-15/id-36 DISEASE PROGRESSION \n CHN-1/id-199 DISEASE PROGRESSION \n CHN-2/id-272 DISEASE PROGRESSION \n CHN-1/id-123 DISEASE PROGRESSION \n CHN-12/id-258 SUICIDE \n CHN-17/id-92 LOST TO FOLLOW UP \n NGA-1/id-46 DISEASE PROGRESSION \n BRA-1/id-93 ADVERSE EVENT \n CHN-6/id-30 Post-study reporting of death\n CAN-11/id-139 ADVERSE EVENT \n GBR-1/id-319 ADVERSE EVENT \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadsl <- random.cdisc.data::cadsl\n\nout <- adsl %>%\n filter(DTHFL == \"Y\") %>%\n mutate(ID = paste(SITEID, SUBJID, sep = \"/\")) %>%\n select(ARM, ID, DTHCAUS)\ndeath_num <- length(unique(out$ID))\nvar_labels(out) <- c(\n ARM = \"Treatment Group\",\n ID = \"Center/Patient ID\",\n DTHCAUS = \"Cause of Death\"\n)", + "objectID": "graphs/other/mng01.html#reproducibility", + "href": "graphs/other/mng01.html#reproducibility", + "title": "MNG01", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:05:14 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats * 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", - "Development Safety Update Report", - "DSUR4" + "Graphs", + "Other", + "MNG01" ] }, { - "objectID": "listings/development-safety-update-report/dsur4.html#reproducibility", - "href": "listings/development-safety-update-report/dsur4.html#reproducibility", - "title": "DSUR4", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:08:03 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "index.html", + "href": "index.html", + "title": "TLG Catalog", + "section": "", + "text": "The TLG catalog is a catalog of Tables, Listings, and Graphs for clinical trials generated using NEST packages.\nThis repository provides a comprehensive collection of clinical trials outputs generated using the R language. The target audience is the clinical trials community, including statisticians, data scientists, and other professionals interested in applying R to clinical trials data.\n\n\nEach TLG is represented on a separate article page, typically including the following sections:\n\nSetup and pre-processing of synthetic data.\nSteps to produce the TLG.\nThe output TLG generated by the given code (including any available variants).\nAn interactive application that can alternatively be used to produce and interact with the TLG.\nReproducibility information.\n\nSee the full list of available TLGs on the Index page.\n\n\n\n\nThe full source code of each article can be viewed by clicking on the “Source Code” button at the top of the page and copied using the “Copy to Clipboard” button.\n\n\n\nIndividual code chunks from within the article can also be viewed and copied.\n\n\n\nThe Reproducibility tab contains session information and allows one to install the packages required to properly run the code.\n\n\n\n\n\n\n\n\nThis catalog as well as code examples are licensed under the Apache License, Version 2.0 - see the LICENSE file for details.\n\n\n\nWe welcome contributions big and small to the TLG catalog. Please refer to the Contributing guide for more information on how you can contribute. Use the giscus panels at the bottom of each page to share your feedback & ideas, ask questions, and report issues.\n\n\n\nThis website is built using Quarto and hosted on GitHub Pages. This website is rebuilt and republished daily as well as every time a change is pushed to the repository as part of the CI/CD process.\nThe catalog is rendered using “Stable” and “Development” profiles. The main difference between these two profiles is the package versions used to generate the outputs. The “Stable” profile uses the most recently released versions of all packages, whereas the “Development” profile uses the latest development versions of all NEST packages. This means that the same R code (e.g. foo::bar()) would be run using both the latest released and development package versions (e.g. foo@v1.2.3 on the “Stable” profile and foo@v1.2.3.9123 on the “Development” profile). If your article is affected by API changes between released and development versions, please consider conditional content (checking QUARTO_PROFILE environment variable) and/or if statements on respective package versions to enable the article to work in both profiles.\nAs a part of the CI/CD process, each article’s code is checked for quality, coherence, and readability using tools such as lintr, styler, and spelling. Additionally, regression testing is performed using testthat snapshot testing (see the package component of the repository for more details).\nIf you are adding a new table, listing, or graph in the form a new .qmd file, then you will also need to update the index in the tlg-index.qmd file with the new file name. To do so, run the R code in the generate-index.R file after creating your template.", "crumbs": [ - "Listings", - "Development Safety Update Report", - "DSUR4" + "Introduction" ] }, { - "objectID": "listings/lab-results/lbl02a.html#output", - "href": "listings/lab-results/lbl02a.html#output", - "title": "LBL02A", - "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"LBTEST_U\", \"CPID\"),\n disp_cols = names(out),\n main_title = \"Listing of Laboratory Abnormalities Defined by NCI CTCAE Grade >= 1\",\n main_footer = \"NCI CTCAE grade is displayed as abnormal high (H) or low (L) followed by the grade.\"\n)\n\nhead(lsting, 20)\n\nListing of Laboratory Abnormalities Defined by NCI CTCAE Grade >= 1\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Days Since NCI \n Study Last Dose of Lab Normal CTCAE\nTreatment Lab Test (Unit) Center/Patient ID Day Date Study Drug Result Range Grade\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X Alanine Aminotransferase Measurement (U/L) BRA-1/id-105 80 27MAY2020 0 4.3 7.0 - 55.0 L4 \n 398 10APR2021 318 3.7 7.0 - 55.0 L3 \n BRA-1/id-93 207 13JAN2021 0 6.1 7.0 - 55.0 L1 \n BRA-11/id-397 326 19MAY2021 0 1.5 7.0 - 55.0 L1 \n BRA-14/id-23 594 22JUN2021 0 0.6 7.0 - 55.0 L1 \n BRA-2/id-296 281 30OCT2021 0 2.6 7.0 - 55.0 L1 \n 734 26JAN2023 453 3.9 7.0 - 55.0 L1 \n CAN-1/id-18 465 12APR2022 0 1.8 7.0 - 55.0 L2 \n CHN-1/id-133 127 13DEC2020 0 5.6 7.0 - 55.0 L2 \n 197 21FEB2021 70 1.2 7.0 - 55.0 L4 \n CHN-1/id-199 277 11OCT2020 0 5.3 7.0 - 55.0 L4 \n 672 10NOV2021 395 6.8 7.0 - 55.0 L2 \n CHN-1/id-235 348 25JUN2020 0 3.0 7.0 - 55.0 L3 \n 381 28JUL2020 33 4.7 7.0 - 55.0 L1 \n CHN-1/id-26 905 07JAN2023 0 1.1 7.0 - 55.0 L1 \n CHN-1/id-275 364 01JUN2021 0 5.1 7.0 - 55.0 L2 \n CHN-1/id-277 483 12MAY2022 0 1.1 7.0 - 55.0 L4 \n CHN-1/id-287 182 23MAY2020 0 5.9 7.0 - 55.0 L2 \n 191 01JUN2020 9 5.3 7.0 - 55.0 L3 \n 515 21APR2021 324 2.9 7.0 - 55.0 L4 \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nNCI CTCAE grade is displayed as abnormal high (H) or low (L) followed by the grade.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadlb <- random.cdisc.data::cadlb\n\nadlb_x <- adlb %>%\n filter(\n ANRIND %in% c(\"LOW\", \"HIGH\"),\n !ATOXGR %in% c(\"0\", \"\"),\n LBTEST != \"\"\n ) %>%\n mutate(\n LBTEST_U = paste0(LBTEST, \" (\", AVALU, \")\"),\n CPID = paste(SITEID, SUBJID, sep = \"/\"),\n ADTM = toupper(format(as.Date(ADTM), \"%d%b%Y\")),\n AVAL = format(round(AVAL, 1), nsmall = 1),\n LBNRNG = paste(format(round(ANRLO, 1), nsmall = 1), format(round(ANRHI, 1), nsmall = 1), sep = \" - \"),\n ANRIND_GR = factor(\n case_when(\n ANRIND == \"LOW\" ~ paste0(\"L\", sub(\"-\", \"\", ATOXGR)),\n ANRIND == \"HIGH\" ~ paste0(\"H\", ATOXGR)\n )\n )\n ) %>%\n select(LBTEST_U, TRT01A, CPID, ADY, ADTM, AVAL, ADY, LBNRNG, ANRIND_GR) %>%\n unique() %>%\n arrange(CPID, ADY) %>%\n group_by(LBTEST_U, CPID) %>%\n mutate(DLD = ADY - lag(ADY)) %>%\n ungroup() %>%\n mutate(DLD = ifelse(is.na(DLD), 0, DLD))\n\nout <- adlb_x %>%\n select(LBTEST_U, TRT01A, CPID, ADY, ADTM, DLD, AVAL, LBNRNG, ANRIND_GR)\n\nvar_labels(out) <- names(out)\nout <- out %>%\n var_relabel(\n LBTEST_U = \"Lab Test (Unit)\",\n TRT01A = \"Treatment\",\n CPID = \"Center/Patient ID\",\n ADY = \"Study\\nDay\",\n ADTM = \"Date\",\n DLD = \"Days Since\\nLast Dose of\\nStudy Drug\",\n AVAL = \"Result\",\n LBNRNG = \"Lab Normal\\nRange\",\n ANRIND_GR = \"NCI\\nCTCAE\\nGrade\"\n )", + "objectID": "index.html#usage", + "href": "index.html#usage", + "title": "TLG Catalog", + "section": "", + "text": "Each TLG is represented on a separate article page, typically including the following sections:\n\nSetup and pre-processing of synthetic data.\nSteps to produce the TLG.\nThe output TLG generated by the given code (including any available variants).\nAn interactive application that can alternatively be used to produce and interact with the TLG.\nReproducibility information.\n\nSee the full list of available TLGs on the Index page.\n\n\n\n\nThe full source code of each article can be viewed by clicking on the “Source Code” button at the top of the page and copied using the “Copy to Clipboard” button.\n\n\n\nIndividual code chunks from within the article can also be viewed and copied.\n\n\n\nThe Reproducibility tab contains session information and allows one to install the packages required to properly run the code.", "crumbs": [ - "Listings", - "Lab Results", - "LBL02A" + "Introduction" ] }, { - "objectID": "listings/lab-results/lbl02a.html#reproducibility", - "href": "listings/lab-results/lbl02a.html#reproducibility", - "title": "LBL02A", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:07:54 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "index.html#license", + "href": "index.html#license", + "title": "TLG Catalog", + "section": "", + "text": "This catalog as well as code examples are licensed under the Apache License, Version 2.0 - see the LICENSE file for details.", "crumbs": [ - "Listings", - "Lab Results", - "LBL02A" + "Introduction" ] }, { - "objectID": "listings/lab-results/lbl01_rls.html#output", - "href": "listings/lab-results/lbl01_rls.html#output", - "title": "LBL01_RLS", - "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"CPID\"),\n disp_cols = names(out),\n main_title = \"Listing of Laboratory Test Results Using Roche Safety Lab Standardization\",\n main_footer = \"Abnormalities are flagged as high (H) or low (L) if outside the Roche standard reference range; high high (HH) or low low (LL) if outside the Roche marked reference range with a clinically relevant change from baseline. \" \n)\n\nhead(lsting, 20)\n\nListing of Laboratory Test Results Using Roche Safety Lab Standardization\n\n————————————————————————————————————————————————————————————————————————————————————————\n Days Since \n Study Last Dose of ALT CRP IGA \nTreatment Center/Patient ID Day Study Drug (U/L) (mg/L) (g/L) \n————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-105 80 NA 4.30 / L 9.09 2.84 \n 149 69 24.70 9.15 2.93 \n 314 165 24.87 10.89 / H 2.66 \n 398 84 3.67 / L 8.14 2.86 \n 470 72 18.55 10.59 / H 2.88 \n 528 58 7.73 10.09 / H 2.93 \n 535 7 23.51 9.20 2.88 \n BRA-1/id-134 225 NA 7.37 10.46 / H 2.86 \n 227 2 16.42 7.43 / L 2.76 \n 255 28 11.16 9.41 2.75 \n 269 14 15.89 10.02 / H 2.84 \n 357 88 24.35 8.01 2.86 \n 436 79 16.03 8.51 2.98 \n 440 4 17.21 7.63 / L 2.78 \n BRA-1/id-42 176 NA 16.56 8.88 2.75 \n 477 301 16.49 8.11 2.95 \n 534 57 18.71 8.78 2.95 \n 550 16 11.44 9.53 2.99 \n 569 19 21.66 10.32 / H 3.00 / H\n 608 39 24.61 7.95 / L 2.78 \n————————————————————————————————————————————————————————————————————————————————————————\n\nAbnormalities are flagged as high (H) or low (L) if outside the Roche standard reference range; high high (HH) or low low (LL) if outside the Roche marked reference range with a clinically relevant change from baseline. \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadlb <- random.cdisc.data::cadlb %>%\n filter(!is.na(AVAL))\n\nadlb_x <- adlb %>%\n mutate(ANRIND = factor(\n case_when(\n ANRIND == \"LOW\" & AVAL > stats::quantile(adlb$AVAL, probs = c(0.1)) ~ \"L\",\n ANRIND == \"HIGH\" & AVAL < stats::quantile(adlb$AVAL, probs = c(0.9)) ~ \"H\",\n ANRIND == \"LOW\" & AVAL <= stats::quantile(adlb$AVAL, probs = c(0.1)) ~ \"LL\",\n ANRIND == \"HIGH\" & AVAL >= stats::quantile(adlb$AVAL, probs = c(0.9)) ~ \"HH\",\n TRUE ~ as.character(ANRIND)\n ),\n levels = c(\"\", \"H\", \"HH\", \"L\", \"LL\", \"NORMAL\")\n ))\n\nadlb_x <- adlb_x %>%\n filter(!is.na(LBSEQ) & !is.na(ADY) & ANRIND != \"\") %>%\n mutate(\n CPID = paste(SITEID, SUBJID, sep = \"/\"),\n PARAM_U = paste0(PARAMCD, \"\\n(\", AVALU, \")\"),\n AVALC = as.character(format(round(AVAL, 2), nsmall = 2))\n ) %>%\n mutate(AVAL_GR = ifelse(\n !ANRIND %in% c(\"H\", \"HH\", \"L\", \"LL\"),\n AVALC,\n paste(AVALC, ANRIND, sep = \" / \")\n )) %>%\n select(CPID, TRT01A, ADY, LBSEQ, PARAM_U, AVAL_GR) %>%\n unique()\n\nout <- adlb_x %>%\n arrange(CPID, ADY, PARAM_U, LBSEQ) %>%\n tidyr::pivot_wider(\n id_cols = c(TRT01A, CPID, ADY),\n names_from = PARAM_U,\n values_from = AVAL_GR\n ) %>%\n group_by(CPID) %>%\n mutate(DLD = ADY - lag(ADY)) %>%\n ungroup() %>%\n select(CPID, TRT01A, ADY, DLD, unique(adlb_x$PARAM_U))\n\nvar_labels(out) <- names(out)\nout <- out %>%\n var_relabel(\n TRT01A = \"Treatment\",\n CPID = \"Center/Patient ID\",\n ADY = \"Study\\nDay\",\n DLD = \"Days Since\\nLast Dose of\\nStudy Drug\"\n )", + "objectID": "index.html#contributing", + "href": "index.html#contributing", + "title": "TLG Catalog", + "section": "", + "text": "We welcome contributions big and small to the TLG catalog. Please refer to the Contributing guide for more information on how you can contribute. Use the giscus panels at the bottom of each page to share your feedback & ideas, ask questions, and report issues.", "crumbs": [ - "Listings", - "Lab Results", - "LBL01_RLS" + "Introduction" ] }, { - "objectID": "listings/lab-results/lbl01_rls.html#reproducibility", - "href": "listings/lab-results/lbl01_rls.html#reproducibility", - "title": "LBL01_RLS", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:07:43 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "index.html#development", + "href": "index.html#development", + "title": "TLG Catalog", + "section": "", + "text": "This website is built using Quarto and hosted on GitHub Pages. This website is rebuilt and republished daily as well as every time a change is pushed to the repository as part of the CI/CD process.\nThe catalog is rendered using “Stable” and “Development” profiles. The main difference between these two profiles is the package versions used to generate the outputs. The “Stable” profile uses the most recently released versions of all packages, whereas the “Development” profile uses the latest development versions of all NEST packages. This means that the same R code (e.g. foo::bar()) would be run using both the latest released and development package versions (e.g. foo@v1.2.3 on the “Stable” profile and foo@v1.2.3.9123 on the “Development” profile). If your article is affected by API changes between released and development versions, please consider conditional content (checking QUARTO_PROFILE environment variable) and/or if statements on respective package versions to enable the article to work in both profiles.\nAs a part of the CI/CD process, each article’s code is checked for quality, coherence, and readability using tools such as lintr, styler, and spelling. Additionally, regression testing is performed using testthat snapshot testing (see the package component of the repository for more details).\nIf you are adding a new table, listing, or graph in the form a new .qmd file, then you will also need to update the index in the tlg-index.qmd file with the new file name. To do so, run the R code in the generate-index.R file after creating your template.", "crumbs": [ - "Listings", - "Lab Results", - "LBL01_RLS" + "Introduction" ] }, { - "objectID": "listings/lab-results/lbl02b.html#output", - "href": "listings/lab-results/lbl02b.html#output", - "title": "LBL02B", - "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"LBTEST\", \"CPID\"),\n disp_cols = names(out),\n main_title = \"Listing of Laboratory Abnormalities Defined by NCI CTCAE Grade >= 2\",\n main_footer = \"NCI CTCAE grade is displayed as abnormal high (H) or low (L) followed by the grade.\"\n)\n\nhead(lsting, 20)\n\nListing of Laboratory Abnormalities Defined by NCI CTCAE Grade >= 2\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Days Since NCI \n Study Last Dose of Lab Normal CTCAE\nTreatment Lab Test Center/Patient ID Day Date Study Drug Result Unit Range Grade\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X Alanine Aminotransferase Measurement BRA-1/id-105 80 27MAY2020 0 4.3 U/L 7.0 - 55.0 L4 \n 398 10APR2021 318 3.7 U/L 7.0 - 55.0 L3 \n CAN-1/id-18 465 12APR2022 0 1.8 U/L 7.0 - 55.0 L2 \n CHN-1/id-133 127 13DEC2020 0 5.6 U/L 7.0 - 55.0 L2 \n 197 21FEB2021 70 1.2 U/L 7.0 - 55.0 L4 \n CHN-1/id-199 277 11OCT2020 0 5.3 U/L 7.0 - 55.0 L4 \n 672 10NOV2021 395 6.8 U/L 7.0 - 55.0 L2 \n CHN-1/id-235 348 25JUN2020 0 3.0 U/L 7.0 - 55.0 L3 \n CHN-1/id-275 364 01JUN2021 0 5.1 U/L 7.0 - 55.0 L2 \n CHN-1/id-277 483 12MAY2022 0 1.1 U/L 7.0 - 55.0 L4 \n CHN-1/id-287 182 23MAY2020 0 5.9 U/L 7.0 - 55.0 L2 \n 191 01JUN2020 9 5.3 U/L 7.0 - 55.0 L3 \n 515 21APR2021 324 2.9 U/L 7.0 - 55.0 L4 \n CHN-1/id-315 289 05JUN2020 0 4.6 U/L 7.0 - 55.0 L4 \n 599 11APR2021 310 5.2 U/L 7.0 - 55.0 L4 \n CHN-1/id-316 971 14MAY2023 0 3.6 U/L 7.0 - 55.0 L4 \n CHN-1/id-360 689 01APR2022 0 4.7 U/L 7.0 - 55.0 L2 \n CHN-1/id-371 81 01MAY2021 0 5.9 U/L 7.0 - 55.0 L2 \n CHN-1/id-47 236 11SEP2020 0 4.4 U/L 7.0 - 55.0 L3 \n CHN-1/id-53 98 13FEB2020 0 6.4 U/L 7.0 - 55.0 L2 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nNCI CTCAE grade is displayed as abnormal high (H) or low (L) followed by the grade.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadlb <- random.cdisc.data::cadlb\n\nadlb_x <- adlb %>%\n filter(\n !sub(\"-\", \"\", ATOXGR) %in% c(\"\", \"0\", \"1\"),\n LBTEST != \"\",\n !is.na(ADY),\n !ANRIND %in% c(\"\", \"NORMAL\")\n ) %>%\n mutate(\n CPID = paste(SITEID, SUBJID, sep = \"/\"),\n ADTM = toupper(format(as.Date(ADTM), \"%d%b%Y\")),\n AVAL = format(round(AVAL, 1), nsmall = 1),\n LBNRNG = paste(format(round(ANRLO, 1), nsmall = 1), format(round(ANRHI, 1), nsmall = 1), sep = \" - \"),\n ANRIND_GR = factor(\n case_when(\n ANRIND == \"LOW\" ~ paste0(\"L\", sub(\"-\", \"\", ATOXGR)),\n ANRIND == \"HIGH\" ~ paste0(\"H\", ATOXGR)\n )\n )\n ) %>%\n select(LBTEST, TRT01A, CPID, ADY, ADTM, AVAL, AVALU, LBNRNG, ANRIND_GR) %>%\n unique() %>%\n arrange(CPID, ADY) %>%\n group_by(LBTEST, CPID) %>%\n mutate(DLD = ADY - lag(ADY)) %>%\n ungroup() %>%\n mutate(DLD = ifelse(is.na(DLD), 0, DLD))\n\nout <- adlb_x %>%\n select(LBTEST, TRT01A, CPID, ADY, ADTM, DLD, AVAL, AVALU, LBNRNG, ANRIND_GR)\n\nvar_labels(out) <- names(out)\nout <- out %>%\n var_relabel(\n LBTEST = \"Lab Test\",\n TRT01A = \"Treatment\",\n CPID = \"Center/Patient ID\",\n ADY = \"Study\\nDay\",\n ADTM = \"Date\",\n DLD = \"Days Since\\nLast Dose of\\nStudy Drug\",\n AVAL = \"Result\",\n AVALU = \"Unit\",\n LBNRNG = \"Lab Normal\\nRange\",\n ANRIND_GR = \"NCI\\nCTCAE\\nGrade\"\n )", + "objectID": "tables/efficacy/mmrmt01.html#teal-app", + "href": "tables/efficacy/mmrmt01.html#teal-app", + "title": "MMRMT01", + "section": "\nteal App", + "text": "teal App\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs %>%\n filter(ABLFL != \"Y\" & ABLFL2 != \"Y\") %>%\n filter(AVISIT %in% c(\"WEEK 1 DAY 8\", \"WEEK 2 DAY 15\", \"WEEK 3 DAY 22\")) %>%\n mutate(\n AVISIT = as.factor(AVISIT),\n AVISITN = rank(AVISITN) %>%\n as.factor() %>%\n as.numeric() %>%\n as.factor() # making consecutive numeric factor\n )\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADQS <- data[[\"ADQS\"]]\narm_ref_comp <- list(\n ARMCD = list(\n ref = \"ARM A\",\n comp = c(\"ARM B\", \"ARM C\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_a_mmrm(\n label = \"MMRM\",\n dataname = \"ADQS\",\n aval_var = choices_selected(c(\"AVAL\", \"CHG\"), \"CHG\"),\n id_var = choices_selected(c(\"USUBJID\", \"SUBJID\"), \"USUBJID\"),\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARMCD\"),\n visit_var = choices_selected(c(\"AVISIT\", \"AVISITN\"), \"AVISIT\"),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = \"FKSI-FWB\"\n ),\n cov_var = choices_selected(c(\"BASE\", \"AGE\", \"SEX\", \"BASE:AVISIT\"), NULL),\n conf_level = choices_selected(c(0.95, 0.9, 0.8), 0.95)\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ - "Listings", - "Lab Results", - "LBL02B" + "Tables", + "Efficacy", + "MMRMT01" ] }, { - "objectID": "listings/lab-results/lbl02b.html#reproducibility", - "href": "listings/lab-results/lbl02b.html#reproducibility", - "title": "LBL02B", + "objectID": "tables/efficacy/mmrmt01.html#reproducibility", + "href": "tables/efficacy/mmrmt01.html#reproducibility", + "title": "MMRMT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:07:34 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:04:37 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom * 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n mmrm 0.3.14.9001 2025-01-08 [1] https://p~\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n parallelly 1.41.0 2024-12-18 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n tern.mmrm * 0.3.2.9002 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n TMB 1.9.16 2025-01-08 [1] CRAN (R 4.4.1)\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", - "Lab Results", - "LBL02B" + "Tables", + "Efficacy", + "MMRMT01" ] }, { - "objectID": "listings/efficacy/oncl01.html#output", - "href": "listings/efficacy/oncl01.html#output", - "title": "ONCL01", + "objectID": "tables/efficacy/onct05.html#output", + "href": "tables/efficacy/onct05.html#output", + "title": "ONCT05", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"ID\"),\n disp_cols = names(out),\n main_title = \"Listing of Individual Efficacy Data\",\n main_footer = \"PFS = Progression Free Survival\"\n)\n\nhead(lsting, 20)\n\nListing of Individual Efficacy Data\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Best Confirmed Investigator Duration of \n Number of Doses Overall Response End Of Induction Overall Survival PFS Triggering Event Confirmed Response\nTreatment Center/Patient ID Received by Investigator Response (days) (days) for PFS (days) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-105 7 CR CR 402.6 235.7 Disease Progression 119.6 \n 7 CR CR 402.6 235.7 NA 119.6 \n 7 CR CR 402.6 235.7 NA 119.6 \n BRA-1/id-134 7 CR CR 90.1 90.1 Death 90.1 \n 7 CR CR 90.1 90.1 Death 90.1 \n 7 CR CR 90.1 90.1 Death 90.1 \n BRA-1/id-42 7 PR PR 407.0 204.6 Disease Progression 193.9 \n 7 PR PR 407.0 204.6 NA 193.9 \n 7 PR PR 407.0 204.6 NA 193.9 \n BRA-1/id-93 7 CR PD 316.0 255.7 NA 140.3 \n 7 CR PD 316.0 255.7 NA 140.3 \n 7 CR PD 316.0 255.7 NA 140.3 \n BRA-11/id-217 7 CR CR 293.0 293.0 Disease Progression 153.2 \n 7 CR CR 293.0 293.0 Death 153.2 \n 7 CR CR 293.0 293.0 Death 153.2 \n BRA-11/id-345 7 CR CR 305.5 272.6 NA 150.6 \n 7 CR CR 305.5 272.6 NA 150.6 \n 7 CR CR 305.5 272.6 NA 150.6 \n BRA-11/id-397 7 PR PR 138.7 138.7 Death 138.7 \n 7 PR PR 138.7 138.7 Death 138.7 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nPFS = Progression Free Survival\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadrs <- random.cdisc.data::cadrs\nadtte <- random.cdisc.data::cadtte\nadex <- random.cdisc.data::cadex\n\nout_ex <- adex %>%\n filter(PARAMCD == \"TNDOSE\") %>%\n mutate(ID = paste(SITEID, SUBJID, sep = \"/\")) %>%\n select(ID, AVAL)\n\nout_rs <- adrs %>%\n filter(PARAM %in% c(\"Investigator End Of Induction Response\", \"Best Confirmed Overall Response by Investigator\")) %>%\n mutate(ID = paste(SITEID, SUBJID, sep = \"/\")) %>%\n select(ID, AVALC, PARAM) %>%\n tidyr::pivot_wider(\n id_cols = ID,\n names_from = PARAM,\n values_from = AVALC\n ) %>%\n right_join(out_ex, ., by = \"ID\", multiple = \"all\")\n\nadtte_flt <- adtte %>%\n filter(PARAMCD %in% c(\"OS\", \"PFS\", \"CRSD\")) %>%\n mutate(\n PARAM = paste(PARAM, paste0(\"(\", AVALU, \")\"), sep = \" \"), ID = paste(SITEID, SUBJID, sep = \"/\"),\n trigeventpfs = ifelse(CNSR == 0, EVNTDESC, NA)\n )\n\n# Select triggering event variable\nout_trg <- adtte_flt %>%\n select(ID, trigeventpfs)\n\nout_tte <- adtte_flt %>%\n select(ID, TRT01A, PARAM, AVAL, trigeventpfs) %>%\n tidyr::pivot_wider(\n id_cols = c(ID, TRT01A),\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n mutate_at(\n c(\"Overall Survival (DAYS)\", \"Progression Free Survival (DAYS)\", \"Duration of Confirmed Response (DAYS)\"),\n function(x) format(round(x, 1), nsmall = 1)\n ) %>%\n select(\n ID,\n TRT01A,\n `Overall Survival (DAYS)`,\n `Progression Free Survival (DAYS)`,\n `Duration of Confirmed Response (DAYS)`\n ) %>%\n right_join(out_trg, ., by = \"ID\", multiple = \"all\")\n\nout <- out_tte %>%\n right_join(out_rs, ., by = \"ID\", multiple = \"all\") %>%\n select(\n \"ID\", \"TRT01A\", \"AVAL\", \"Best Confirmed Overall Response by Investigator\",\n \"Investigator End Of Induction Response\", \"Overall Survival (DAYS)\", \"Progression Free Survival (DAYS)\",\n \"trigeventpfs\", \"Duration of Confirmed Response (DAYS)\"\n )\n\nvar_labels(out) <- names(out)\nout <- out %>%\n var_relabel(\n ID = \"Center/Patient ID\",\n TRT01A = \"Treatment\",\n AVAL = \"Number of Doses\\nReceived\",\n `Best Confirmed Overall Response by Investigator` = \"Best Confirmed\\nOverall Response\\nby Investigator\",\n `Investigator End Of Induction Response` = \"Investigator\\nEnd Of Induction\\nResponse\",\n trigeventpfs = \"Triggering Event\\n for PFS\",\n `Overall Survival (DAYS)` = \"Overall Survival\\n(days)\",\n `Progression Free Survival (DAYS)` = \"PFS\\n(days)\",\n `Duration of Confirmed Response (DAYS)` = \"Duration of\\nConfirmed Response\\n(days)\"\n )", + "text": "Output\n\n\nStandard Table\nTable Specifying Class Variables\nTable Selecting Columns and Changing the Alpha Level\nTable Setting Values Indicating Response\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodedf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"rsp\",\n arm = \"ARM\",\n subgroups = c(\"SEX\", \"STRATA2\")\n ),\n data = anl\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\"))\n\nresult\n\n B: Placebo A: Drug X \nBaseline Risk Factors Total n n Responders Response (%) n Responders Response (%) Odds Ratio 95% CI \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAll Patients 268 134 84 62.7% 134 100 74.6% 1.75 (1.04, 2.95)\nSex \n F 161 82 48 58.5% 79 61 77.2% 2.40 (1.21, 4.76)\n M 107 52 36 69.2% 55 39 70.9% 1.08 (0.47, 2.48)\nStratification Factor 2 \n S1 140 67 38 56.7% 73 56 76.7% 2.51 (1.22, 5.20)\n S2 128 67 46 68.7% 61 44 72.1% 1.18 (0.55, 2.53)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nHere, the levels of subgroup variables SEX and STRATA1 are reordered. STRATA1 is reordered by frequency.\n\nCodeanl_reorder <- anl %>%\n mutate(\n SEX = forcats::fct_relevel(SEX, \"M\", \"F\"),\n STRATA1 = forcats::fct_infreq(STRATA1)\n )\n\ndf <- extract_rsp_subgroups(\n variables = list(rsp = \"rsp\", arm = \"ARM\", subgroups = c(\"SEX\", \"STRATA1\")),\n data = anl_reorder\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\"))\n\nresult\n\n B: Placebo A: Drug X \nBaseline Risk Factors Total n n Responders Response (%) n Responders Response (%) Odds Ratio 95% CI \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAll Patients 268 134 84 62.7% 134 100 74.6% 1.75 (1.04, 2.95)\nSex \n M 107 52 36 69.2% 55 39 70.9% 1.08 (0.47, 2.48)\n F 161 82 48 58.5% 79 61 77.2% 2.40 (1.21, 4.76)\nStratification Factor 1 \n C 94 45 33 73.3% 49 37 75.5% 1.12 (0.44, 2.83)\n B 92 45 26 57.8% 47 32 68.1% 1.56 (0.66, 3.66)\n A 82 44 25 56.8% 38 31 81.6% 3.37 (1.22, 9.28)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodedf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"rsp\",\n arm = \"ARM\",\n subgroups = c(\"SEX\", \"STRATA2\")\n ),\n data = anl,\n conf_level = 0.9,\n method = \"chisq\"\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\", \"pval\"))\n\nresult\n\n B: Placebo A: Drug X \nBaseline Risk Factors Total n n Responders Response (%) n Responders Response (%) Odds Ratio 90% CI p-value (Chi-Squared Test)\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAll Patients 268 134 84 62.7% 134 100 74.6% 1.75 (1.13, 2.72) 0.0351 \nSex \n F 161 82 48 58.5% 79 61 77.2% 2.40 (1.35, 4.27) 0.0113 \n M 107 52 36 69.2% 55 39 70.9% 1.08 (0.54, 2.17) 0.8497 \nStratification Factor 2 \n S1 140 67 38 56.7% 73 56 76.7% 2.51 (1.37, 4.63) 0.0119 \n S2 128 67 46 68.7% 61 44 72.1% 1.18 (0.62, 2.24) 0.6674 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nCreate a new variable new_rsp in anl data that uses new criteria for responder.\n\nCodeanl_new <- anl %>%\n mutate(new_rsp = AVALC == \"CR\")\n\ndf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"new_rsp\",\n arm = \"ARM\",\n subgroups = c(\"SEX\", \"STRATA2\")\n ),\n data = anl_new\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\"))\n\nresult\n\n B: Placebo A: Drug X \nBaseline Risk Factors Total n n Responders Response (%) n Responders Response (%) Odds Ratio 95% CI \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAll Patients 268 134 47 35.1% 134 60 44.8% 1.50 (0.92, 2.45)\nSex \n F 161 82 25 30.5% 79 39 49.4% 2.22 (1.17, 4.24)\n M 107 52 22 42.3% 55 21 38.2% 0.84 (0.39, 1.83)\nStratification Factor 2 \n S1 140 67 21 31.3% 73 31 42.5% 1.62 (0.81, 3.24)\n S2 128 67 26 38.8% 61 29 47.5% 1.43 (0.71, 2.89)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadrs <- random.cdisc.data::cadrs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadrs <- df_explicit_na(adrs)\n\nadsl <- adsl %>%\n select(STUDYID, USUBJID, ARM, SEX, RACE, STRATA1, STRATA2)\n\nadrs <- adrs %>%\n filter(PARAMCD == \"INVET\") %>%\n select(STUDYID, USUBJID, PARAMCD, AVALC)\n\nanl <- inner_join(adsl, adrs, by = c(\"STUDYID\", \"USUBJID\"))\nanl_labels <- var_labels(anl)\n\nanl <- anl %>%\n filter(ARM %in% c(\"A: Drug X\", \"B: Placebo\")) %>%\n mutate(\n # Reorder levels of factor to make the placebo group the reference arm.\n ARM = relevel(ARM, ref = \"B: Placebo\") %>%\n droplevels()\n ) %>%\n droplevels() %>%\n mutate(rsp = AVALC %in% c(\"CR\", \"PR\"))\n\nvar_labels(anl) <- c(anl_labels, rsp = \"Is Response\")", "crumbs": [ - "Listings", + "Tables", "Efficacy", - "ONCL01" + "ONCT05" ] }, { - "objectID": "listings/efficacy/oncl01.html#reproducibility", - "href": "listings/efficacy/oncl01.html#reproducibility", - "title": "ONCL01", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:07:24 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/efficacy/onct05.html#teal-app", + "href": "tables/efficacy/onct05.html#teal-app", + "title": "ONCT05", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCode# Use table, embedded in response forest plot module.\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADRS <- df_explicit_na(ADRS)\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_forest_rsp(\n label = \"Forest Response\",\n dataname = \"ADRS\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n \"ARMCD\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n \"BESRSPI\"\n ),\n subgroup_var = choices_selected(\n variable_choices(ADSL, names(ADSL)),\n c(\"SEX\")\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"STRATA1\", \"STRATA2\")),\n \"STRATA2\"\n ),\n plot_height = c(600L, 200L, 2000L)\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\n# Use table, embedded in response forest plot module.\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADRS <- df_explicit_na(ADRS)\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_forest_rsp(\n label = \"Forest Response\",\n dataname = \"ADRS\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n \"ARMCD\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n \"BESRSPI\"\n ),\n subgroup_var = choices_selected(\n variable_choices(ADSL, names(ADSL)),\n c(\"SEX\")\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"STRATA1\", \"STRATA2\")),\n \"STRATA2\"\n ),\n plot_height = c(600L, 200L, 2000L)\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ - "Listings", + "Tables", "Efficacy", - "ONCL01" + "ONCT05" ] }, { - "objectID": "repro.html#reproducibility", - "href": "repro.html#reproducibility", - "title": "", + "objectID": "tables/efficacy/onct05.html#reproducibility", + "href": "tables/efficacy/onct05.html#reproducibility", + "title": "ONCT05", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:07:19 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload" - }, - { - "objectID": "tables/ECG/egt04.html#output", - "href": "tables/ECG/egt04.html#output", - "title": "EGT04", - "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\nThe EGT04 template consists of a stacked list of contingency tables, one per group. For each group, the n’s across all cells must add up to the group N in the analysis, and percentages are calculated using N as the denominator.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table() %>%\n split_cols_by(\"postbaseline_label\") %>%\n split_cols_by(\"AVALC\") %>%\n split_rows_by(\"ARM\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adeg_f$ARM)) %>%\n add_rowcounts() %>%\n analyze_vars(\n \"BASEC\",\n denom = \"N_row\",\n .stats = \"count_fraction\",\n na.rm = FALSE\n ) %>%\n append_varlabels(adeg_f, c(\"BASEC\"), indent = 1L)\n\nresult <- build_table(lyt, adeg_f)\nresult\n\nDescription of Planned Arm Post-Baseline \n Baseline Normal Abnormal Missing \n———————————————————————————————————————————————————————————————\nA: Drug X (N=134) \n Normal 20 (14.9%) 81 (60.4%) 1 (0.7%)\n Abnormal 11 (8.2%) 19 (14.2%) 0 \n Missing 0 1 (0.7%) 1 (0.7%)\nB: Placebo (N=134) \n Normal 18 (13.4%) 81 (60.4%) 2 (1.5%)\n Abnormal 3 (2.2%) 28 (20.9%) 0 \n Missing 0 2 (1.5%) 0 \nC: Combination (N=132) \n Normal 26 (19.7%) 69 (52.3%) 1 (0.8%)\n Abnormal 6 (4.5%) 29 (22%) 0 \n Missing 1 (0.8%) 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nFor the EGT04 template, data imputation should be avoided, and missing data explicit and accounted for, so the contingency table sum adds up to the group N. For illustration purposes, missing data are added to the example dataset.\n\nCodelibrary(tern)\nlibrary(dplyr)\nset.seed(123)\n\nadsl <- random.cdisc.data::cadsl\nadeg <- random.cdisc.data::cadeg\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadeg <- df_explicit_na(adeg, omit_columns = c(\"AVALC\", \"BASEC\"))\n\nadeg_labels <- var_labels(adeg)\n\nadeg_f <- subset(\n adeg,\n PARAMCD == \"ECGINTP\" & # Analysis in terms of \"NORMAL\"/\"ABNORMAL\" (AVALC)\n SAFFL == \"Y\" & # \"Safety Population Flag\"\n ONTRTFL == \"Y\" & # \"On Treatment Record Flag\"\n WORS02FL == \"Y\" # \"Worst Post-Baseline Observation\"\n)\n\nadeg_f$AVALC[sample(seq_len(nrow(adeg_f)), size = 5)] <- \"Missing\"\nadeg_f$BASEC[sample(seq_len(nrow(adeg_f)), size = 5)] <- \"Missing\"\nadeg_f$AVALC <- factor(\n adeg_f$AVALC,\n levels = c(\"NORMAL\", \"ABNORMAL\", \"Missing\"),\n labels = c(\"Normal\", \"Abnormal\", \"Missing\")\n)\nadeg_f$BASEC <- factor(\n adeg_f$BASEC,\n levels = c(\"NORMAL\", \"ABNORMAL\", \"Missing\"),\n labels = c(\"Normal\", \"Abnormal\", \"Missing\")\n)\n\nvar_labels(adeg_f) <- adeg_labels\nadeg_f <- adeg_f %>%\n var_relabel(BASEC = \"Baseline\")\n\n# Temprary solution for over arching column\nadeg_f <- adeg_f %>% mutate(postbaseline_label = \"Post-Baseline\")", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:03:47 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "ECG", - "EGT04" + "Efficacy", + "ONCT05" ] }, { - "objectID": "tables/ECG/egt04.html#reproducibility", - "href": "tables/ECG/egt04.html#reproducibility", - "title": "EGT04", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:07:14 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/efficacy/dort01.html#output", + "href": "tables/efficacy/dort01.html#output", + "title": "DORT01", + "section": "Output", + "text": "Output\n\n\nStandard Table\nTable Selecting Sections to Display\nTable Modifying Analysis Details like Conf. Type and Alpha Level\nTable Modifying Time Point for the “XX Months duration” Analysis\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n count_values(\n vars = \"USUBJID\",\n values = unique(adtte$USUBJID),\n .labels = \"Responders\",\n .stats = \"count\"\n ) %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders with subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n show_labels = \"hidden\",\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Responders with subsequent event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 2L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders without subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Duration of response (Months)\",\n is_event = \"is_event\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months duration\",\n is_event = \"is_event\",\n time_point = 12\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table(prune_func = prune_zeros_only)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————\nResponders 68 73 62 \n Responders with subsequent event (%) 46 (67.6%) 39 (53.4%) 32 (51.6%) \n Earliest contributing event \n Death 26 24 16 \n Disease Progression 20 15 16 \n Responders without subsequent event (%) 22 (32.4%) 34 (46.6%) 30 (48.4%) \nDuration of response (Months) \n Median 5.3 6.2 5.3 \n 95% CI (4.6, 5.8) (5.4, 6.3) (4.6, 5.8) \n 25% and 75%-ile 3.8, 6.3 4.6, 6.4 4.0, 6.1 \n Range 0.5 to 6.4 0.9 to 6.5 0.6 to 6.6 \n12 Months duration \n Patients remaining at risk NA NA NA \n Event Free Rate (%) NA NA NA \n 95% CI NA NA NA \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n count_values(\n vars = \"USUBJID\",\n values = unique(adtte$USUBJID),\n .labels = \"Responders\",\n .stats = \"count\"\n ) %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders with subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n show_labels = \"hidden\",\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Responders with subsequent event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 2L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders without subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Duration of response (Months)\",\n is_event = \"is_event\",\n table_names = \"surv_time\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = c(\"Unstratified Analysis\"),\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"cox_pair\"\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table(prune_func = prune_zeros_only)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————\nResponders 68 73 62 \n Responders with subsequent event (%) 46 (67.6%) 39 (53.4%) 32 (51.6%) \n Earliest contributing event \n Death 26 24 16 \n Disease Progression 20 15 16 \n Responders without subsequent event (%) 22 (32.4%) 34 (46.6%) 30 (48.4%) \nDuration of response (Months) \n Median 5.3 6.2 5.3 \n 95% CI (4.6, 5.8) (5.4, 6.3) (4.6, 5.8) \n 25% and 75%-ile 3.8, 6.3 4.6, 6.4 4.0, 6.1 \n Range 0.5 to 6.4 0.9 to 6.5 0.6 to 6.6 \nUnstratified Analysis \n p-value (log-rank) 0.0223 0.6659 \n Hazard Ratio 0.60 0.90 \n 95% CI (0.39, 0.93) (0.57, 1.44) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n count_values(\n vars = \"USUBJID\",\n values = unique(adtte$USUBJID),\n .labels = \"Responders\",\n .stats = \"count\"\n ) %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders with subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n show_labels = \"hidden\",\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Responders with subsequent event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 2L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders without subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Duration of response (Months)\",\n is_event = \"is_event\",\n control = control_surv_time(conf_level = 0.90, conf_type = \"log-log\")\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months duration\",\n is_event = \"is_event\",\n time_point = 12,\n control = control_surv_timepoint(conf_level = 0.975)\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table(prune_func = prune_zeros_only)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————\nResponders 68 73 62 \n Responders with subsequent event (%) 46 (67.6%) 39 (53.4%) 32 (51.6%) \n Earliest contributing event \n Death 26 24 16 \n Disease Progression 20 15 16 \n Responders without subsequent event (%) 22 (32.4%) 34 (46.6%) 30 (48.4%) \nDuration of response (Months) \n Median 5.3 6.2 5.3 \n 90% CI (4.6, 5.8) (5.5, 6.3) (4.6, 5.7) \n 25% and 75%-ile 3.8, 6.3 4.6, 6.4 4.0, 6.1 \n Range 0.5 to 6.4 0.9 to 6.5 0.6 to 6.6 \n12 Months duration \n Patients remaining at risk NA NA NA \n Event Free Rate (%) NA NA NA \n 97.5% CI NA NA NA \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n count_values(\n vars = \"USUBJID\",\n values = unique(adtte$USUBJID),\n .labels = \"Responders\",\n .stats = \"count\"\n ) %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders with subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n show_labels = \"hidden\",\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Responders with subsequent event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 2L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders without subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Duration of response (Months)\",\n is_event = \"is_event\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months duration\",\n is_event = \"is_event\",\n time_point = 6\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table(prune_func = prune_zeros_only)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————————\nResponders 68 73 62 \n Responders with subsequent event (%) 46 (67.6%) 39 (53.4%) 32 (51.6%) \n Earliest contributing event \n Death 26 24 16 \n Disease Progression 20 15 16 \n Responders without subsequent event (%) 22 (32.4%) 34 (46.6%) 30 (48.4%) \nDuration of response (Months) \n Median 5.3 6.2 5.3 \n 95% CI (4.6, 5.8) (5.4, 6.3) (4.6, 5.8) \n 25% and 75%-ile 3.8, 6.3 4.6, 6.4 4.0, 6.1 \n Range 0.5 to 6.4 0.9 to 6.5 0.6 to 6.6 \n6 Months duration \n Patients remaining at risk 10 18 7 \n Event Free Rate (%) 33.46 50.23 30.56 \n 95% CI (20.88, 46.05) (36.54, 63.92) (13.56, 47.57)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadtte <- random.cdisc.data::cadtte\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadtte <- df_explicit_na(adtte)\n\nadtte_f <- adtte %>%\n filter(PARAMCD == \"CRSD\" & BMEASIFL == \"Y\") %>%\n dplyr::mutate(\n AVAL = day2month(AVAL),\n is_event = CNSR == 0,\n is_not_event = CNSR == 1,\n EVNT1 = factor(\n case_when(\n is_event == TRUE ~ \"Responders with subsequent event (%)\",\n is_event == FALSE ~ \"Responders without subsequent event (%)\"\n ),\n levels = c(\"Responders with subsequent event (%)\", \"Responders without subsequent event (%)\")\n ),\n EVNTDESC = factor(EVNTDESC)\n )", "crumbs": [ "Tables", - "ECG", - "EGT04" + "Efficacy", + "DORT01" ] }, { - "objectID": "tables/ECG/egt01.html#output", - "href": "tables/ECG/egt01.html#output", - "title": "EGT01", - "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nafun <- function(x, .var, .spl_context, ...) {\n n_fun <- sum(!is.na(x), na.rm = TRUE)\n if (n_fun == 0) {\n mean_sd_fun <- c(NA, NA)\n median_fun <- NA\n min_max_fun <- c(NA, NA)\n } else {\n mean_sd_fun <- c(mean(x, na.rm = TRUE), sd(x, na.rm = TRUE))\n median_fun <- median(x, na.rm = TRUE)\n min_max_fun <- c(min(x), max(x))\n }\n is_chg <- .var == \"CHG\"\n is_baseline <- .spl_context$value[which(.spl_context$split == \"AVISIT\")] == \"BASELINE\"\n if (is_baseline && is_chg) n_fun <- mean_sd_fun <- median_fun <- min_max_fun <- NULL\n\n in_rows(\n \"n\" = n_fun,\n \"Mean (SD)\" = mean_sd_fun,\n \"Median\" = median_fun,\n \"Min - Max\" = min_max_fun,\n .formats = list(\"n\" = \"xx\", \"Mean (SD)\" = \"xx.xx (xx.xx)\", \"Median\" = \"xx.xx\", \"Min - Max\" = \"xx.xx - xx.xx\"),\n .format_na_strs = list(\"n\" = \"NE\", \"Mean (SD)\" = \"NE (NE)\", \"Median\" = \"NE\", \"Min - Max\" = \"NE - NE\")\n )\n}\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\"PARAM\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adeg_f$PARAM)) %>%\n split_rows_by(\"AVISIT\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adeg_f$AVISIT)) %>%\n split_cols_by_multivar(\n vars = c(\"AVAL\", \"CHG\"),\n varlabels = c(\"Value at Visit\", \"Change from\\nBaseline\")\n ) %>%\n analyze_colvars(afun = afun)\n\nresult <- build_table(lyt, adeg_f, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination \n Change from Change from Change from \nParameter Value at Visit Baseline Value at Visit Baseline Value at Visit Baseline \n Analysis Visit (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nHeart Rate \n BASELINE \n n 134 134 132 \n Mean (SD) 71.45 (17.93) 69.83 (20.72) 69.34 (20.95) \n Median 72.70 73.35 71.96 \n Min - Max 9.09 - 106.91 13.49 - 115.52 11.63 - 115.49 \n WEEK 1 DAY 8 \n n 134 134 134 134 132 132 \n Mean (SD) 70.19 (20.27) -1.26 (25.97) 69.43 (20.80) -0.40 (29.73) 68.65 (18.06) -0.69 (27.81) \n Median 70.70 -2.20 70.46 -0.52 68.57 -0.76 \n Min - Max 8.53 - 127.50 -50.97 - 89.16 16.85 - 129.14 -68.18 - 88.38 16.87 - 115.60 -68.25 - 67.20 \n WEEK 2 DAY 15 \n n 134 134 134 134 132 132 \n Mean (SD) 70.32 (19.56) -1.13 (26.26) 71.11 (20.56) 1.28 (31.35) 69.19 (18.06) -0.15 (28.61) \n Median 70.88 -1.10 72.52 -0.31 69.30 -1.55 \n Min - Max 17.14 - 116.32 -85.03 - 67.52 9.22 - 120.54 -73.07 - 81.44 29.62 - 120.50 -67.75 - 66.29 \n WEEK 3 DAY 22 \n n 134 134 134 134 132 132 \n Mean (SD) 68.25 (20.17) -3.20 (28.66) 68.95 (20.56) -0.88 (30.14) 70.88 (20.28) 1.54 (27.28) \n Median 68.79 -2.17 67.80 1.19 70.12 0.14 \n Min - Max 13.33 - 131.73 -81.20 - 72.57 23.98 - 130.41 -73.03 - 103.31 20.91 - 116.79 -64.51 - 72.52 \n WEEK 4 DAY 29 \n n 134 134 134 134 132 132 \n Mean (SD) 70.06 (18.41) -1.38 (26.59) 71.60 (20.34) 1.77 (30.26) 71.02 (20.59) 1.68 (29.60) \n Median 69.33 -4.54 72.21 -0.88 70.52 3.81 \n Min - Max 22.30 - 116.51 -58.07 - 77.32 17.53 - 129.06 -64.32 - 85.34 10.35 - 117.30 -65.91 - 105.67 \n WEEK 5 DAY 36 \n n 134 134 134 134 132 132 \n Mean (SD) 66.41 (19.74) -5.04 (27.11) 71.25 (18.92) 1.42 (27.08) 71.26 (18.56) 1.92 (29.59) \n Median 65.40 -6.83 70.86 0.64 73.29 1.74 \n Min - Max 23.89 - 110.38 -73.26 - 57.24 25.86 - 125.73 -71.15 - 67.37 23.89 - 117.19 -58.23 - 68.86 \nQT Duration \n BASELINE \n n 134 134 132 \n Mean (SD) 336.83 (117.96) 351.00 (98.44) 352.60 (105.11) \n Median 344.41 351.48 347.96 \n Min - Max 86.98 - 665.40 98.90 - 641.92 105.68 - 628.14 \n WEEK 1 DAY 8 \n n 134 134 134 134 132 132 \n Mean (SD) 342.57 (101.09) 5.74 (159.94) 363.95 (102.34) 12.94 (140.73) 359.42 (105.16) 6.83 (147.13) \n Median 347.26 -1.78 356.54 13.73 363.84 8.69 \n Min - Max 91.63 - 591.42 -346.44 - 452.75 114.92 - 656.45 -317.53 - 416.35 51.91 - 611.88 -473.19 - 358.00 \n WEEK 2 DAY 15 \n n 134 134 134 134 132 132 \n Mean (SD) 353.24 (93.93) 16.41 (162.10) 345.93 (96.78) -5.08 (152.51) 335.69 (98.61) -16.91 (138.45) \n Median 351.10 16.72 346.83 -9.68 320.96 -22.27 \n Min - Max 138.01 - 587.30 -414.07 - 389.16 146.42 - 556.07 -440.28 - 364.76 104.91 - 562.34 -326.55 - 325.27 \n WEEK 3 DAY 22 \n n 134 134 134 134 132 132 \n Mean (SD) 370.12 (101.57) 33.28 (152.78) 343.41 (102.58) -7.59 (138.80) 346.95 (94.96) -5.65 (144.65) \n Median 378.21 39.59 335.12 -15.89 352.15 9.11 \n Min - Max 118.14 - 615.18 -391.72 - 520.09 63.37 - 566.51 -311.28 - 293.76 126.09 - 580.81 -412.11 - 410.01 \n WEEK 4 DAY 29 \n n 134 134 134 134 132 132 \n Mean (SD) 345.77 (95.97) 8.94 (145.65) 354.38 (108.29) 3.37 (142.39) 341.36 (106.75) -11.24 (145.65) \n Median 340.13 5.58 346.70 -17.13 352.30 -11.87 \n Min - Max 110.12 - 616.58 -393.34 - 456.04 80.82 - 687.69 -439.90 - 364.80 4.95 - 570.61 -480.94 - 330.67 \n WEEK 5 DAY 36 \n n 134 134 134 134 132 132 \n Mean (SD) 358.90 (97.69) 22.07 (155.68) 338.65 (99.26) -12.36 (130.46) 349.30 (95.77) -3.30 (136.00) \n Median 351.96 5.89 344.17 0.40 350.32 12.68 \n Min - Max 88.38 - 661.12 -353.30 - 539.84 31.25 - 563.90 -338.85 - 352.75 119.02 - 581.83 -311.45 - 295.53 \nRR Duration \n BASELINE \n n 134 134 132 \n Mean (SD) 1028.42 (286.38) 1027.48 (324.00) 1074.62 (277.33) \n Median 1041.86 1047.27 1080.87 \n Min - Max 34.33 - 1783.71 5.29 - 1877.19 289.60 - 1617.06 \n WEEK 1 DAY 8 \n n 134 134 134 134 132 132 \n Mean (SD) 990.15 (318.74) -38.26 (446.40) 1061.59 (269.14) 34.10 (401.76) 1039.64 (284.39) -34.98 (406.04) \n Median 963.88 -86.50 1061.50 66.91 1014.78 -97.83 \n Min - Max 110.82 - 2014.56 -1014.82 - 1389.40 276.83 - 1711.99 -942.16 - 993.82 498.21 - 1937.47 -958.61 - 908.90 \n WEEK 2 DAY 15 \n n 134 134 134 134 132 132 \n Mean (SD) 1013.37 (304.13) -15.05 (425.81) 1109.40 (318.23) 81.92 (453.11) 1045.21 (277.51) -29.41 (380.84) \n Median 1040.69 40.49 1117.76 69.27 1034.64 -15.33 \n Min - Max 164.19 - 1677.10 -1216.10 - 1053.15 160.73 - 2048.73 -1127.10 - 1148.61 252.84 - 1722.33 -859.27 - 871.54 \n WEEK 3 DAY 22 \n n 134 134 134 134 132 132 \n Mean (SD) 1013.99 (304.99) -14.43 (406.53) 1118.35 (296.53) 90.86 (409.57) 1036.59 (268.52) -38.03 (421.48) \n Median 1027.23 -50.54 1134.60 52.03 1030.72 -60.72 \n Min - Max 357.04 - 1798.65 -882.94 - 1080.26 97.14 - 1825.43 -887.06 - 1166.15 446.02 - 1713.38 -984.79 - 902.37 \n WEEK 4 DAY 29 \n n 134 134 134 134 132 132 \n Mean (SD) 1033.31 (313.92) 4.89 (483.15) 1079.76 (298.94) 52.28 (429.25) 1027.55 (295.86) -47.07 (378.23) \n Median 1050.40 5.60 1051.61 69.55 1023.36 -49.52 \n Min - Max 54.33 - 1979.43 -1345.93 - 1195.41 347.94 - 1762.04 -826.43 - 1191.83 341.62 - 2144.86 -1002.03 - 1048.66\n WEEK 5 DAY 36 \n n 134 134 134 134 132 132 \n Mean (SD) 1072.33 (282.90) 43.92 (379.05) 1058.45 (271.01) 30.97 (436.03) 1029.04 (271.21) -45.58 (405.53) \n Median 1067.33 55.87 1068.95 33.61 1065.26 -34.40 \n Min - Max 352.97 - 2000.56 -1028.79 - 1418.57 208.83 - 1794.73 -978.97 - 1365.13 436.28 - 1794.07 -962.18 - 1329.88 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\n# Data should be filtered for the studied Parameter (`PARAM`) and the\n# Analysis Visit (`AVISIT`). According to the GDSR template, the values for\n# the `AVISIT` reported in the EGT01 standard may be:\n# 'POST-BASELINE MAXIMUM', 'POST-BASELINE MINIMUM', 'POST-BASELINE LAST'.\n\nadsl <- random.cdisc.data::cadsl\nadeg <- random.cdisc.data::cadeg\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadeg <- df_explicit_na(adeg)\n\nadeg_f <- adeg %>%\n filter(ANL01FL == \"Y\") %>%\n filter(PARAM %in% c(\"Heart Rate\", \"QT Duration\", \"RR Duration\"))", + "objectID": "tables/efficacy/dort01.html#teal-app", + "href": "tables/efficacy/dort01.html#teal-app", + "title": "DORT01", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADTTE <- df_explicit_na(ADTTE)\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To Event Table\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"),\n \"CRSD\"\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n \"SEX\"\n ),\n time_points = choices_selected(c(6, 8), 6),\n event_desc_var = choices_selected(\n variable_choices(ADTTE, \"EVNTDESC\"),\n \"EVNTDESC\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADTTE <- df_explicit_na(ADTTE)\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To Event Table\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"),\n \"CRSD\"\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n \"SEX\"\n ),\n time_points = choices_selected(c(6, 8), 6),\n event_desc_var = choices_selected(\n variable_choices(ADTTE, \"EVNTDESC\"),\n \"EVNTDESC\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "ECG", - "EGT01" + "Efficacy", + "DORT01" ] }, { - "objectID": "tables/ECG/egt01.html#teal-app", - "href": "tables/ECG/egt01.html#teal-app", - "title": "EGT01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADEG <- df_explicit_na(ADEG)\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"ECG Results and Change from Baseline by Visit\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"AVAL\", \"CHG\")),\n selected = c(\"AVAL\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADEG, \"PARAMCD\", \"PARAM\"),\n selected = \"HR\"\n ),\n parallel_vars = TRUE\n )\n ),\n filter = teal_slices(teal_slice(\"ADEG\", \"AVAL\", selected = NULL))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADEG <- df_explicit_na(ADEG)\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"ECG Results and Change from Baseline by Visit\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"AVAL\", \"CHG\")),\n selected = c(\"AVAL\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADEG, \"PARAMCD\", \"PARAM\"),\n selected = \"HR\"\n ),\n parallel_vars = TRUE\n )\n ),\n filter = teal_slices(teal_slice(\"ADEG\", \"AVAL\", selected = NULL))\n)\n\nshinyApp(app$ui, app$server)", - "crumbs": [ - "Tables", - "ECG", - "EGT01" - ] - }, - { - "objectID": "tables/ECG/egt01.html#reproducibility", - "href": "tables/ECG/egt01.html#reproducibility", - "title": "EGT01", + "objectID": "tables/efficacy/dort01.html#reproducibility", + "href": "tables/efficacy/dort01.html#reproducibility", + "title": "DORT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:06:39 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:01:59 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "ECG", - "EGT01" + "Efficacy", + "DORT01" ] }, { - "objectID": "tables/ECG/egt02.html#output", - "href": "tables/ECG/egt02.html#output", - "title": "EGT02", + "objectID": "tables/efficacy/ratet01.html#output", + "href": "tables/efficacy/ratet01.html#output", + "title": "RATET01", "section": "Output", - "text": "Output\n\n\nECG Abnormalities Regardless of Abnormality at Baseline\nECG Abnormalities Among Subjects Without Abnormality at Baseline\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adeg_f$PARAM)\n ) %>%\n count_abnormal(\"ANRIND\", abnormal = list(Low = \"LOW\", High = \"HIGH\"), exclude_base_abn = FALSE) %>%\n append_varlabels(adeg_f, \"ANRIND\", indent = 1L)\n\nresult <- build_table(lyt = lyt, df = adeg_f, alt_counts_df = adsl)\nresult\n\nAssessment A: Drug X B: Placebo C: Combination\n Abnormality (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————\nHeart Rate \n Low 40/134 (29.9%) 43/134 (32.1%) 37/132 (28%) \n High 39/134 (29.1%) 45/134 (33.6%) 36/132 (27.3%)\nQT Duration \n Low 33/134 (24.6%) 44/134 (32.8%) 47/132 (35.6%)\n High 30/134 (22.4%) 42/134 (31.3%) 34/132 (25.8%)\nRR Duration \n Low 45/134 (33.6%) 26/134 (19.4%) 38/132 (28.8%)\n High 29/134 (21.6%) 49/134 (36.6%) 27/132 (20.5%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adeg_f$PARAM)\n ) %>%\n count_abnormal(\"ANRIND\", abnormal = list(Low = \"LOW\", High = \"HIGH\"), exclude_base_abn = TRUE) %>%\n append_varlabels(adeg_f, \"ANRIND\", indent = 1L)\n\nresult <- build_table(lyt = lyt, df = adeg_f, alt_counts_df = adsl)\nresult\n\nAssessment A: Drug X B: Placebo C: Combination\n Abnormality (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————\nHeart Rate \n Low 39/128 (30.5%) 42/124 (33.9%) 33/117 (28.2%)\n High 37/127 (29.1%) 43/129 (33.3%) 31/122 (25.4%)\nQT Duration \n Low 29/113 (25.7%) 42/126 (33.3%) 43/124 (34.7%)\n High 30/125 (24%) 40/130 (30.8%) 30/119 (25.2%)\nRR Duration \n Low 45/129 (34.9%) 26/123 (21.1%) 37/126 (29.4%)\n High 27/127 (21.3%) 43/122 (35.2%) 25/125 (20%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadeg <- random.cdisc.data::cadeg\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadeg <- df_explicit_na(adeg)\n\n# Note: We keep only post-baseline for analysis.\nadeg_f <- adeg %>%\n filter(ONTRTFL == \"Y\") %>%\n filter(PARAM %in% c(\"Heart Rate\", \"QT Duration\", \"RR Duration\")) %>%\n filter(ANRIND != \"<Missing>\") %>%\n var_relabel(\n PARAM = \"Assessment\",\n ANRIND = \"Abnormality\"\n )", + "text": "Output\nThis example will focus on data from a single visit “WEEK 1 DAY 8” and a single endpoint “FKSI-FWB”. Only evaluable populations will be analyzed.\n\n\nCustomized Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\", ref_group = \"B: Placebo\", split_fun = ref_group_position(\"first\")) %>%\n analyze_vars(\n \"AVAL_f\",\n var_labels = \"Number of exacerbations per patient\",\n .stats = c(\"count_fraction\"),\n .formats = c(\"count_fraction\" = \"xx (xx.xx%)\"),\n .labels = c(\"Number of exacerbations per patient\")\n ) %>%\n summarize_glm_count(\n vars = \"AVAL\",\n variables = list(arm = \"ARM\", offset = \"lgTMATRSK\", covariates = NULL),\n conf_level = 0.95,\n distribution = \"poisson\",\n rate_mean_method = \"emmeans\",\n var_labels = \"Unadjusted exacerbation rate (per year)\",\n table_names = \"unadj\",\n .stats = c(\"rate\"),\n .labels = c(rate = \"Rate\")\n ) %>%\n summarize_glm_count(\n vars = \"AVAL\",\n variables = list(arm = \"ARM\", offset = \"lgTMATRSK\", covariates = c(\"REGION1\")),\n conf_level = 0.95,\n distribution = \"quasipoisson\",\n rate_mean_method = \"ppmeans\",\n var_labels = \"Adjusted (QP) exacerbation rate (per year)\",\n table_names = \"adj-qp\",\n .stats = c(\"rate\", \"rate_ci\", \"rate_ratio\", \"rate_ratio_ci\", \"pval\"),\n .labels = c(\n rate = \"Rate\", rate_ci = \"Rate CI\", rate_ratio = \"Rate Ratio\",\n rate_ratio_ci = \"Rate Ratio CI\", pval = \"p-value\"\n )\n ) %>%\n summarize_glm_count(\n vars = \"AVAL\",\n variables = list(arm = \"ARM\", offset = \"lgTMATRSK\", covariates = c(\"REGION1\")),\n conf_level = 0.95,\n distribution = \"negbin\",\n rate_mean_method = \"emmeans\",\n var_labels = \"Adjusted (NB) exacerbation rate (per year)\",\n table_names = \"adj-nb\",\n .stats = c(\"rate\", \"rate_ci\", \"rate_ratio\", \"rate_ratio_ci\", \"pval\"),\n .labels = c(\n rate = \"Rate\", rate_ci = \"Rate CI\", rate_ratio = \"Rate Ratio\",\n rate_ratio_ci = \"Rate Ratio CI\", pval = \"p-value\"\n )\n )\nresult <- build_table(\n lyt = lyt,\n df = anl\n)\nresult\n\n B: Placebo A: Drug X C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————————————\nNumber of exacerbations per patient \n 0 10 (7.46%) 6 (4.48%) 11 (8.33%) \n 1 25 (18.66%) 21 (15.67%) 14 (10.61%) \n 2 38 (28.36%) 41 (30.60%) 33 (25.00%) \n 3 22 (16.42%) 26 (19.40%) 21 (15.91%) \n 4 13 (9.70%) 18 (13.43%) 30 (22.73%) \n 5 11 (8.21%) 10 (7.46%) 12 (9.09%) \n 6 10 (7.46%) 7 (5.22%) 7 (5.30%) \n 7 3 (2.24%) 4 (2.99%) 3 (2.27%) \n 8 1 (0.75%) 1 (0.75%) 1 (0.76%) \n 9 1 (0.75%) 0 (0.00%) 0 (0.00%) \nUnadjusted exacerbation rate (per year) \n Rate 7.2364 8.2148 9.8131 \nAdjusted (QP) exacerbation rate (per year) \n Rate 2.4550 2.8514 3.4304 \n Rate CI (1.6194, 3.7219) (1.8974, 4.2850) (2.2946, 5.1284) \n Rate Ratio 1.1615 1.3973 \n Rate Ratio CI (0.6462, 2.0877) (0.7789, 2.5067) \n p-value 0.6169 0.2619 \nAdjusted (NB) exacerbation rate (per year) \n Rate 18.4450 28.0582 23.9304 \n Rate CI (13.9015, 24.4736) (21.3288, 36.9108) (18.1382, 31.5722)\n Rate Ratio 1.5212 1.2974 \n Rate Ratio CI (1.1166, 2.0724) (0.9505, 1.7708) \n p-value 0.0078 0.1009 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nanl <- random.cdisc.data::cadtte %>%\n filter(PARAMCD == \"TNE\")\n\n# Ensure number of exacerbation is a factor and NAs are explicit missing levels.\nanl$AVAL_f <- as.factor(anl$AVAL)\nanl <- df_explicit_na(anl)", "crumbs": [ "Tables", - "ECG", - "EGT02" + "Efficacy", + "RATET01" ] }, { - "objectID": "tables/ECG/egt02.html#teal-app", - "href": "tables/ECG/egt02.html#teal-app", - "title": "EGT02", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality(\n label = \"Abnormality Table\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEG, subset = c(\"EGCAT\", \"PARAM\", \"AVISIT\")),\n selected = c(\"PARAM\"),\n keep_order = TRUE\n ),\n grade = choices_selected(\n choices = variable_choices(ADEG, subset = \"ANRIND\"),\n selected = \"ANRIND\",\n fixed = TRUE\n ),\n abnormal = list(Low = \"LOW\", High = \"HIGH\"),\n exclude_base_abn = FALSE\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality(\n label = \"Abnormality Table\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEG, subset = c(\"EGCAT\", \"PARAM\", \"AVISIT\")),\n selected = c(\"PARAM\"),\n keep_order = TRUE\n ),\n grade = choices_selected(\n choices = variable_choices(ADEG, subset = \"ANRIND\"),\n selected = \"ANRIND\",\n fixed = TRUE\n ),\n abnormal = list(Low = \"LOW\", High = \"HIGH\"),\n exclude_base_abn = FALSE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "tables/efficacy/ratet01.html#reproducibility", + "href": "tables/efficacy/ratet01.html#reproducibility", + "title": "RATET01", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:01:18 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "ECG", - "EGT02" + "Efficacy", + "RATET01" ] }, { - "objectID": "tables/ECG/egt02.html#reproducibility", - "href": "tables/ECG/egt02.html#reproducibility", - "title": "EGT02", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:05:54 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/efficacy/coxt01.html#output", + "href": "tables/efficacy/coxt01.html#output", + "title": "COXT01", + "section": "Output", + "text": "Output\nCox models are the most commonly used methods to estimate the magnitude of the effect in survival analyses. It assumes proportional hazards; that is, it assumes that the ratio of the hazards of the two groups (e.g. two arms) is constant over time. This ratio is referred to as the “hazard ratio” and is one of the most commonly reported metrics to describe the effect size in survival analysis.\n\n\nCox Regression\nCox Regression with Interaction Term\nCox Regression Specifying Covariates\nCox Regression Setting Strata, Ties, Alpha Level\nData Setup\n\n\n\nThe summarize_coxreg function fits, tidies and arranges a Cox regression model in a table layout using the rtables framework. For a Cox regression model, arguments variables, control, and at can be specified (see ?summarize_coxreg for more details and customization options). All variables specified within variables must be present in the data used when building the table.\nTo see the same model as a data.frame object, these three arguments (as well as the data) can be passed to the fit_coxreg_univar function, and the resulting list tidied using broom::tidy().\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevariables <- list(\n time = \"AVAL\",\n event = \"EVENT\",\n arm = \"ARM\",\n covariates = c(\"AGE\", \"SEX\", \"RACE\")\n)\n\nlyt <- basic_table() %>%\n split_cols_by(\"col_label\") %>%\n summarize_coxreg(variables = variables) %>%\n append_topleft(\"Effect/Covariate Included in the Model\")\n\nresult <- build_table(lyt = lyt, df = anl)\nresult\n\n Treatment Effect Adjusted for Covariate \nEffect/Covariate Included in the Model n Hazard Ratio 95% CI p-value \n—————————————————————————————————————————————————————————————————————————————————————————\nTreatment: \n A: Drug X vs control (B: Placebo) 247 0.97 (0.66, 1.43) 0.8934 \nCovariate: \n Age 247 0.95 (0.65, 1.40) 0.7948 \n Sex 247 0.98 (0.67, 1.43) 0.8970 \n Race 247 0.98 (0.67, 1.44) 0.9239 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe argument control can be used to modify standard outputs; control_coxreg() helps in adopting the right settings (see ?control_coxreg). For instance, control is used to include the interaction terms.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevariables <- list(\n time = \"AVAL\",\n event = \"EVENT\",\n arm = \"ARM\",\n covariates = c(\"AGE\", \"RACE\")\n)\n\nlyt <- basic_table() %>%\n split_cols_by(\"col_label\") %>%\n summarize_coxreg(\n variables = variables,\n control = control_coxreg(interaction = TRUE),\n .stats = c(\"n\", \"hr\", \"ci\", \"pval\", \"pval_inter\")\n ) %>%\n append_topleft(\"Effect/Covariate Included in the Model\")\n\nresult <- build_table(lyt = lyt, df = anl)\nresult\n\n Treatment Effect Adjusted for Covariate \nEffect/Covariate Included in the Model n Hazard Ratio 95% CI p-value Interaction p-value\n——————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment: \n A: Drug X vs control (B: Placebo) 247 0.97 (0.66, 1.43) 0.8934 \nCovariate: \n Age 247 0.7878 \n 34 0.95 (0.65, 1.40) \n Race 247 0.6850 \n ASIAN 1.05 (0.63, 1.75) \n BLACK OR AFRICAN AMERICAN 1.08 (0.51, 2.29) \n WHITE 0.67 (0.27, 1.71) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe optional argument at allows the user to provide the expected level of estimation for the interaction when the predictor is a quantitative variable. For instance, it might be relevant to choose the age at which the hazard ratio should be estimated. If no input is provided to at, the median value is used in the row name (as in the previous tab).\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevariables <- list(\n time = \"AVAL\",\n event = \"EVENT\",\n arm = \"ARM\",\n covariates = c(\"AGE\", \"SEX\")\n)\n\nlyt <- basic_table() %>%\n split_cols_by(\"col_label\") %>%\n summarize_coxreg(\n variables = variables,\n control = control_coxreg(interaction = TRUE),\n at = list(AGE = c(30, 40, 50)),\n .stats = c(\"n\", \"hr\", \"ci\", \"pval\", \"pval_inter\")\n ) %>%\n append_topleft(\"Effect/Covariate Included in the Model\")\n\nresult <- build_table(lyt = lyt, df = anl)\nresult\n\n Treatment Effect Adjusted for Covariate \nEffect/Covariate Included in the Model n Hazard Ratio 95% CI p-value Interaction p-value\n——————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment: \n A: Drug X vs control (B: Placebo) 247 0.97 (0.66, 1.43) 0.8934 \nCovariate: \n Age 247 0.7878 \n 30 0.98 (0.63, 1.51) \n 40 0.91 (0.54, 1.51) \n 50 0.84 (0.32, 2.20) \n Sex 247 0.1455 \n F 0.77 (0.47, 1.27) \n M 1.38 (0.75, 2.52) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nAdditional controls can be customized using control_coxreg (see ?control_coxreg) such as the ties calculation method and the confidence level. Stratification variables can be added via the strata element of the variables list.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevariables <- list(\n time = \"AVAL\",\n event = \"EVENT\",\n arm = \"ARM\",\n covariates = c(\"AGE\", \"RACE\"),\n strata = \"SEX\"\n)\n\ncontrol <- control_coxreg(\n ties = \"breslow\",\n interaction = TRUE,\n conf_level = 0.90\n)\n\nlyt <- basic_table() %>%\n split_cols_by(\"col_label\") %>%\n summarize_coxreg(\n variables = variables,\n control = control,\n at = list(AGE = c(30, 40, 50)),\n .stats = c(\"n\", \"hr\", \"ci\", \"pval\", \"pval_inter\")\n ) %>%\n append_topleft(\"Effect/Covariate Included in the Model\")\n\nresult <- build_table(lyt = lyt, df = anl)\nresult\n\n Treatment Effect Adjusted for Covariate \nEffect/Covariate Included in the Model n Hazard Ratio 90% CI p-value Interaction p-value\n——————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment: \n A: Drug X vs control (B: Placebo) 247 0.98 (0.71, 1.35) 0.9063 \nCovariate: \n Age 247 0.7733 \n 30 0.98 (0.68, 1.42) \n 40 0.91 (0.59, 1.39) \n 50 0.84 (0.38, 1.87) \n Race 247 0.6501 \n ASIAN 1.07 (0.64, 1.77) \n BLACK OR AFRICAN AMERICAN 1.08 (0.51, 2.29) \n WHITE 0.66 (0.26, 1.67) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadtte <- random.cdisc.data::cadtte\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadtte <- df_explicit_na(adtte)\n\nadsl_filtered <- adsl %>% dplyr::filter(\n RACE %in% c(\"ASIAN\", \"BLACK OR AFRICAN AMERICAN\", \"WHITE\")\n)\nadtte_filtered <- dplyr::inner_join(\n x = adsl_filtered[, c(\"STUDYID\", \"USUBJID\")],\n y = adtte,\n by = c(\"STUDYID\", \"USUBJID\")\n)\n\nanl <- adtte_filtered %>%\n filter(PARAMCD == \"OS\") %>%\n mutate(EVENT = 1 - CNSR) %>%\n filter(ARM %in% c(\"B: Placebo\", \"A: Drug X\")) %>%\n mutate(ARM = droplevels(relevel(ARM, \"B: Placebo\"))) %>%\n mutate(RACE = droplevels(RACE) %>% formatters::with_label(\"Race\"))\n\n# Add variable for column split label\nanl <- anl %>% mutate(col_label = \"Treatment Effect Adjusted for Covariate\")", "crumbs": [ "Tables", - "ECG", - "EGT02" + "Efficacy", + "COXT01" ] }, { - "objectID": "tables/ADA/adat01.html#output", - "href": "tables/ADA/adat01.html#output", - "title": "ADAT01", - "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Layout for Baseline Prevalence of NAbs\nlyt_bl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = custom_column_split_fun\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"ADABLPFL\",\n .stats = \"count\",\n var_labels = \"Baseline Prevalence of ADAs\",\n show_labels = \"visible\",\n table_names = \"t1\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"PADABLPFL\",\n table_names = \"t2\",\n .indent_mods = 1L,\n var_labels = \"a\",\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"NADABLPFL\",\n .stats = \"count\",\n show_labels = \"hidden\",\n .indent_mods = 1L,\n table_names = \"t3\"\n )\n\n# Layout for incidence of NAbs\nlyt_pb <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = custom_column_split_fun\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"ADPBLPFL\",\n .stats = \"count\",\n var_labels = \"Incidence of Treatment Emergent ADAs\",\n show_labels = \"visible\",\n table_names = \"tb1\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"PTEFL\",\n table_names = \"tb2\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(\"TIFL\", \"TEFL\"),\n .stats = \"count\",\n table_names = \"tb3\",\n .indent_mods = 2L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"NTEFL\",\n table_names = \"tb4\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"TUFL\",\n .stats = \"count\",\n table_names = \"tb5\",\n .indent_mods = 2L,\n show_labels = \"hidden\"\n )\n\nresult_1 <- build_table(lyt_bl, df = adab_b, alt_counts_df = adsl)\nresult_2 <- build_table(lyt_pb, df = adab_pb, alt_counts_df = adsl)\n\n# Combine tables.\nresult_1@col_info <- result_2@col_info\nresult <- rbind(result_1, result_2)\n\nmain_title(result) <- paste(\n \"Baseline Prevalence and Incidence of Treatment Emergent ADA\"\n)\n\nmain_footer(result) <- \"ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies) Baseline evaluable patient = a patient with an ADA assay result from a baseline sample(s)\n Post-baseline evaluable patient = a patient with an ADA assay result from at least one post-baseline sample Number of patients positive for Treatment Emergent\n ADA = the number (and percentage) of post-baseline evaluable patients determined to have treatment-induced ADA or treatment-enhanced ADA during the study period.\n Treatment-induced ADA = a patient with negative or missing baseline ADA result(s) and at least one positive post-baseline ADA result.\n Treatment-enhanced ADA = a patient with positive ADA result at baseline who has one or more post-baseline titer results that are at least 0.60 t.u. greater than the baseline titer result.\n Number of patients negative for Treatment Emergent ADA = number of post-baseline evaluable patients with negative or missing baseline ADA result(s) and all negative post-baseline results, or a patient who is treatment unaffected.\n Treatment unaffected = A post-baseline evaluable patient with a positive ADA result at baseline and (a) where all post-baseline titer results are less than 0.60 t.u. greater than the baseline titer result, OR (b) where all post-baseline results are negative or missing.\n For any positive sample with titer result less than the minimum reportable titer or any positive sample where a titer cannot be obtained, titer value is imputed as equal to the minimum reportable titer.\"\n\nresult\n\nBaseline Prevalence and Incidence of Treatment Emergent ADA\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X C: Combination All Drug X B: Placebo All Patients\n (N=134) (N=132) (N=266) (N=134) (N=400) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nBaseline Prevalence of ADAs \n Baseline evaluable patients 134 132 266 0 266 \n Patient with a positive sample at baseline 63 (47.0%) 64 (48.5%) 127 (47.7%) 0 127 (47.7%) \n Patient with no positive samples at baseline 71 68 139 0 139 \nIncidence of Treatment Emergent ADAs \n Post-baseline evaluable patients 134 132 266 0 266 \n Patient positive for Treatment Emergent ADA 0 0 0 0 0 \n Treatment-induced ADA 0 0 0 0 0 \n Treatment-enhanced ADA 0 0 0 0 0 \n Patient negative for Treatment Emergent ADA 0 0 0 0 0 \n Treatment unaffected 0 0 0 0 0 \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies) Baseline evaluable patient = a patient with an ADA assay result from a baseline sample(s)\n Post-baseline evaluable patient = a patient with an ADA assay result from at least one post-baseline sample Number of patients positive for Treatment Emergent\n ADA = the number (and percentage) of post-baseline evaluable patients determined to have treatment-induced ADA or treatment-enhanced ADA during the study period.\n Treatment-induced ADA = a patient with negative or missing baseline ADA result(s) and at least one positive post-baseline ADA result.\n Treatment-enhanced ADA = a patient with positive ADA result at baseline who has one or more post-baseline titer results that are at least 0.60 t.u. greater than the baseline titer result.\n Number of patients negative for Treatment Emergent ADA = number of post-baseline evaluable patients with negative or missing baseline ADA result(s) and all negative post-baseline results, or a patient who is treatment unaffected.\n Treatment unaffected = A post-baseline evaluable patient with a positive ADA result at baseline and (a) where all post-baseline titer results are less than 0.60 t.u. greater than the baseline titer result, OR (b) where all post-baseline results are negative or missing.\n For any positive sample with titer result less than the minimum reportable titer or any positive sample where a titer cannot be obtained, titer value is imputed as equal to the minimum reportable titer.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(tibble)\n\nadsl <- random.cdisc.data::cadsl\nadab <- random.cdisc.data::cadab\n\n# Order needed for the columns is c(1, 3, 4, 2, 5)\nreorder_facets <- function(splret, spl, fulldf, ...) {\n ord <- c(1, 3, 4, 2, 5)\n make_split_result(\n splret$values[ord],\n splret$datasplit[ord],\n splret$labels[ord]\n )\n}\n\n# Create a custom split function for adding the new columns (facets) and sorting them\ncustom_column_split_fun <- make_split_fun(\n post = list(\n add_combo_facet(\"all_X\",\n label = \"All Drug X\",\n levels = c(\"A: Drug X\", \"C: Combination\")\n ),\n add_combo_facet(\"all_pt\",\n label = \"All Patients\",\n levels = c(\"A: Drug X\", \"B: Placebo\", \"C: Combination\")\n ),\n reorder_facets\n )\n)\n\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadab <- adab %>%\n filter(PARCAT1 == \"A: Drug X Antibody\") %>%\n select(-ARRLT, -NRRLT)\n\n# Baseline Pts\nadab_b <- df_explicit_na(adab) %>%\n filter(\n ABLFL == \"Y\",\n ADABLPFL == \"Y\",\n PARAM %in% c(\"ADA interpreted per sample result\")\n ) %>%\n select(-PARAMCD, -AVALC, -AVALU) %>%\n tidyr::pivot_wider(\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n mutate_at(\n c(\"ADA interpreted per sample result\"),\n as.logical\n ) %>%\n mutate(\n ADABLPFL = ADABLPFL == \"Y\",\n PADABLPFL = `ADA interpreted per sample result` == \"TRUE\",\n NADABLPFL = `ADA interpreted per sample result` == \"FALSE\"\n ) %>%\n var_relabel(\n ADABLPFL = \"Baseline evaluable patients\",\n PADABLPFL = \"Patient with a positive sample at baseline\",\n NADABLPFL = \"Patient with no positive samples at baseline\"\n )\n\n# Post Baseline Treatment Enhanced NAb positive Pts\nadab_pb <- df_explicit_na(adab) %>%\n filter(\n ABLFL != \"Y\",\n ADPBLPFL == \"Y\",\n PARAM %in% c(\n \"ADA interpreted per sample result\",\n \"Treatment Emergent - Positive\",\n \"Treatment induced ADA\",\n \"Treatment enhanced ADA\",\n \"Treatment Emergent - Negative\",\n \"Treatment unaffected\"\n )\n ) %>%\n select(-PARAMCD, -AVALC, -AVALU) %>%\n unique() %>%\n tidyr::pivot_wider(\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n mutate(\n across(\n any_of(c(\n \"ADA interpreted per sample result\", \"Treatment Emergent - Positive\",\n \"Treatment induced ADA\", \"Treatment enhanced ADA\",\n \"Treatment Emergent - Negative\", \"Treatment unaffected\"\n )),\n as.logical\n )\n ) %>%\n mutate(\n ADPBLPFL = ADPBLPFL == \"Y\",\n PTEFL = if (exists(\"Treatment Emergent - Positive\", where = .)) {\n `Treatment Emergent - Positive` == \"TRUE\"\n } else {\n FALSE\n },\n TIFL = if (exists(\"Treatment induced ADA\", where = .)) {\n `Treatment induced ADA` == \"TRUE\"\n } else {\n FALSE\n },\n TEFL = if (exists(\"Treatment enhanced ADA\", where = .)) {\n `Treatment enhanced ADA` == \"TRUE\"\n } else {\n FALSE\n },\n NTEFL = if (exists(\"Treatment Emergent - Negative\", where = .)) {\n `Treatment Emergent - Negative` == \"TRUE\"\n } else {\n FALSE\n },\n TUFL = if (exists(\"Treatment unaffected\", where = .)) {\n `Treatment unaffected` == \"TRUE\"\n } else {\n FALSE\n }\n ) %>%\n var_relabel(\n ADPBLPFL = \"Post-baseline evaluable patients\",\n PTEFL = \"Patient positive for Treatment Emergent ADA\",\n TIFL = \"Treatment-induced ADA\",\n TEFL = \"Treatment-enhanced ADA\",\n NTEFL = \"Patient negative for Treatment Emergent ADA\",\n TUFL = \"Treatment unaffected\"\n )", + "objectID": "tables/efficacy/coxt01.html#teal-app", + "href": "tables/efficacy/coxt01.html#teal-app", + "title": "COXT01", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADTTE <- df_explicit_na(ADTTE)\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADTTE <- data[[\"ADTTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_coxreg(\n label = \"Cox Reg.\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(c(\"ARM\", \"ACTARMCD\"), \"ARM\"),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"), \"OS\"\n ),\n strata_var = choices_selected(\n c(\"SEX\", \"STRATA1\", \"STRATA2\"), NULL\n ),\n cov_var = choices_selected(\n c(\"AGE\", \"SEX\", \"RACE\"), \"AGE\"\n ),\n multivariate = FALSE\n )\n )\n)\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADTTE <- df_explicit_na(ADTTE)\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADTTE <- data[[\"ADTTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_coxreg(\n label = \"Cox Reg.\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(c(\"ARM\", \"ACTARMCD\"), \"ARM\"),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"), \"OS\"\n ),\n strata_var = choices_selected(\n c(\"SEX\", \"STRATA1\", \"STRATA2\"), NULL\n ),\n cov_var = choices_selected(\n c(\"AGE\", \"SEX\", \"RACE\"), \"AGE\"\n ),\n multivariate = FALSE\n )\n )\n)\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "ADA", - "ADAT01" + "Efficacy", + "COXT01" ] }, { - "objectID": "tables/ADA/adat01.html#reproducibility", - "href": "tables/ADA/adat01.html#reproducibility", - "title": "ADAT01", + "objectID": "tables/efficacy/coxt01.html#reproducibility", + "href": "tables/efficacy/coxt01.html#reproducibility", + "title": "COXT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:05:31 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:00:42 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n abind 1.4-8 2024-09-12 [1] RSPM\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n car 3.1-3 2024-09-27 [1] RSPM\n carData 3.0-5 2022-01-06 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n Formula 1.2-5 2023-02-24 [1] RSPM\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "ADA", - "ADAT01" + "Efficacy", + "COXT01" ] }, { - "objectID": "tables/ADA/adat04a.html#output", - "href": "tables/ADA/adat04a.html#output", - "title": "ADAT04A", + "objectID": "tables/efficacy/coxt02.html#output", + "href": "tables/efficacy/coxt02.html#output", + "title": "COXT02", "section": "Output", - "text": "Output\n\n\nSummary of Treatment Emergent NAbs\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Layout for Baseline Prevalence of NAbs\nlyt_bl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = custom_column_split_fun\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(\"ADABLPFL\", \"PADABLPFL\"),\n table_names = \"t1\",\n .stats = \"count\",\n var_labels = \"Baseline Prevalence of NAbs\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"PNABBLFL\",\n table_names = \"t2\",\n .indent_mods = 1L\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"NNABBLFL\",\n .stats = \"count\",\n table_names = \"t3\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n )\n\n# Layout for incidence of NAbs\nlyt_pb <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = custom_column_split_fun\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(\"ADPBLPFL\", \"ADAPFL\"),\n .stats = \"count\",\n var_labels = \"Incidence of Treatment Emergent NAbs\",\n show_labels = \"visible\",\n table_names = \"tb1\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"TENABPFL\",\n table_names = \"tb2\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(\"TINPBFL\", \"TENPBFL\"),\n .stats = \"count\",\n table_names = \"tb3\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"NABNFL\",\n table_names = \"tb4\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"TUNPBFL\",\n .stats = \"count\",\n table_names = \"tb5\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n )\n\nresult_1 <- build_table(lyt_bl, df = adab_b, alt_counts_df = adsl)\nresult_2 <- build_table(lyt_pb, df = adab_pb, alt_counts_df = adsl)\n\n# Combine tables\nresult <- rbind(result_1, result_2)\n\nmain_title(result) <- paste(\n \"Baseline Prevalence and Incidence of Treatment Emergent NAbs\"\n)\nsubtitles(result) <- paste(\"Protocol:\", unique(adab$PARCAT1)[1])\n\nmain_footer(result) <- \"NAb = Neutralizing Antibodies ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies) Baseline evaluable patient for ADA = a patient with an ADA assay result from a baseline sample(s)\n Baseline evaluable patient for NAb = a patient with a NAb assay result from a baseline sample(s)\n Post-baseline evaluable patient for ADA = a patient with an ADA assay result from at least one post-baseline sample\n Post-baseline evaluable patient for NAb = a patient with a NAb assay result from at least one post-baseline sample\n Number of patients positive for ADA = the number of post-baseline evaluable patients for ADA determined to have Treatment Emergent ADA during the study period.\nNumber of patients positive for Treatment Emergent NAb = the number (and percentage) of post-baseline evaluable patients for ADA determined to have treatment-induced NAb or treatment-enhanced NAb during the study period.\nTreatment-induced = a patient with negative or missing baseline result(s) and at least one positive post-baseline result. Treatment-enhanced = a patient with positive result at baseline who has one or more post-baseline titer results that are at least 0.60 t.u. greater than the baseline titer result.\nNumber of patients negative for Treatment Emergent NAb = number of post-baseline evaluable patients with negative or missing baseline NAb result(s) and all negative post-baseline NAb results, or a patient who is NAb treatment unaffected.\nTreatment unaffected = A post-baseline evaluable patient with a positive result at baseline and (a) where all post-baseline titer results are less than 0.60 t.u. greater than the baseline titer result, OR (b) where all post-baseline results are negative or missing. For any positive sample with titer result less than the minimum reportable titer or any positive sample where a titer cannot be obtained, titer value is imputed as equal to the minimum reportable titer.\"\n\nresult\n\nBaseline Prevalence and Incidence of Treatment Emergent NAbs\nProtocol: A: Drug X Antibody\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X C: Combination All Drug X B: Placebo All Patients\n (N=134) (N=132) (N=266) (N=134) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nBaseline Prevalence of NAbs \n Baseline evaluable patients for ADA 134 132 266 0 266 \n Patients with a positive ADA sample at baseline 63 64 127 0 127 \n Patients with a positive NAb sample at baseline 0 0 0 0 0 \n Patient with no positive NAb samples at baseline 0 0 0 0 0 \nIncidence of Treatment Emergent NAbs \n Post-baseline evaluable patients for ADA 134 132 266 0 266 \n Patients positive for ADA 66 59 125 0 125 \n Patients positive for Treatment Emergent NAb 0 0 0 0 0 \n Treatment-induced NAb 0 0 0 0 0 \n Treatment-enhanced NAb 0 0 0 0 0 \n Patients negative for NAb 0 0 0 0 0 \n Treatment unaffected 0 0 0 0 0 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nNAb = Neutralizing Antibodies ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies) Baseline evaluable patient for ADA = a patient with an ADA assay result from a baseline sample(s)\n Baseline evaluable patient for NAb = a patient with a NAb assay result from a baseline sample(s)\n Post-baseline evaluable patient for ADA = a patient with an ADA assay result from at least one post-baseline sample\n Post-baseline evaluable patient for NAb = a patient with a NAb assay result from at least one post-baseline sample\n Number of patients positive for ADA = the number of post-baseline evaluable patients for ADA determined to have Treatment Emergent ADA during the study period.\nNumber of patients positive for Treatment Emergent NAb = the number (and percentage) of post-baseline evaluable patients for ADA determined to have treatment-induced NAb or treatment-enhanced NAb during the study period.\nTreatment-induced = a patient with negative or missing baseline result(s) and at least one positive post-baseline result. Treatment-enhanced = a patient with positive result at baseline who has one or more post-baseline titer results that are at least 0.60 t.u. greater than the baseline titer result.\nNumber of patients negative for Treatment Emergent NAb = number of post-baseline evaluable patients with negative or missing baseline NAb result(s) and all negative post-baseline NAb results, or a patient who is NAb treatment unaffected.\nTreatment unaffected = A post-baseline evaluable patient with a positive result at baseline and (a) where all post-baseline titer results are less than 0.60 t.u. greater than the baseline titer result, OR (b) where all post-baseline results are negative or missing. For any positive sample with titer result less than the minimum reportable titer or any positive sample where a titer cannot be obtained, titer value is imputed as equal to the minimum reportable titer.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(tibble)\n\nadsl <- random.cdisc.data::cadsl\nadab <- random.cdisc.data::cadab\n\n\n# Order needed for the columns is c(1, 3, 4, 2, 5)\nreorder_facets <- function(splret, spl, fulldf, ...) {\n ord <- c(1, 3, 4, 2, 5)\n make_split_result(\n splret$values[ord],\n splret$datasplit[ord],\n splret$labels[ord]\n )\n}\n\n# Create a custom split function for adding the new columns (facets) and sorting them\ncustom_column_split_fun <- make_split_fun(\n post = list(\n add_combo_facet(\"all_X\",\n label = \"All Drug X\",\n levels = c(\"A: Drug X\", \"C: Combination\")\n ),\n add_combo_facet(\"all_pt\",\n label = \"All Patients\",\n levels = c(\"A: Drug X\", \"B: Placebo\", \"C: Combination\")\n ),\n reorder_facets\n )\n)\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\n\n# Baseline Pts\nadab_b <- df_explicit_na(adab) %>%\n filter(\n ABLFL == \"Y\",\n ADABLPFL == \"Y\",\n PARAM %in% c(\n \"ADA interpreted per sample result\",\n \"NAB interpreted per sample result\"\n )\n ) %>%\n select(-PARAMCD, -AVALC, -AVALU) %>%\n tidyr::pivot_wider(\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n mutate(\n across(\n any_of(c(\n \"ADA interpreted per sample result\",\n \"NAB interpreted per sample result\"\n )),\n as.logical\n )\n ) %>%\n mutate(\n ADABLPFL = ADABLPFL == \"Y\",\n PADABLPFL = if (exists(\"ADA interpreted per sample result\", where = .)) {\n `ADA interpreted per sample result` == \"TRUE\"\n } else {\n FALSE\n },\n PNABBLFL = if (exists(\"NAB interpreted per sample result\", where = .)) {\n `NAB interpreted per sample result` == \"TRUE\"\n } else {\n FALSE\n },\n NNABBLFL = if (exists(\"NAB interpreted per sample result\", where = .)) {\n `NAB interpreted per sample result` == \"FALSE\"\n } else {\n FALSE\n }\n ) %>%\n var_relabel(\n ADABLPFL = \"Baseline evaluable patients for ADA\",\n PADABLPFL = \"Patients with a positive ADA sample at baseline\",\n PNABBLFL = \"Patients with a positive NAb sample at baseline\",\n NNABBLFL = \"Patient with no positive NAb samples at baseline\"\n )\n\n# Post Baseline Treatment Enhanced NAb positive Pts\nadab_pb <- df_explicit_na(adab) %>%\n filter(\n ABLFL != \"Y\",\n ADPBLPFL == \"Y\",\n PARAM %in% c(\n \"ADA interpreted per sample result\",\n \"Treatment Emergent - Positive, Neutralizing Antibody\",\n \"Treatment induced ADA, Neutralizing Antibody\",\n \"Treatment enhanced ADA, Neutralizing Antibody\",\n \"NAB interpreted per sample result\",\n \"Treatment unaffected, Neutralizing Antibody\"\n )\n ) %>%\n select(-PARAMCD, -AVALC, -AVALU, -ARRLT, -NRRLT) %>%\n unique() %>%\n tidyr::pivot_wider(\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n mutate(\n across(\n any_of(c(\n \"ADA interpreted per sample result\", \"NAB interpreted per sample result\",\n \"Treatment Emergent - Positive, Neutralizing Antibody\",\n \"Treatment induced ADA, Neutralizing Antibody\",\n \"Treatment enhanced ADA, Neutralizing Antibody\",\n \"Treatment unaffected, Neutralizing Antibody\"\n )),\n as.logical\n )\n ) %>%\n mutate(\n ADPBLPFL = ADPBLPFL == \"Y\",\n ADAPFL = if (exists(\"ADA interpreted per sample result\", where = .)) {\n `ADA interpreted per sample result` == \"TRUE\"\n } else {\n FALSE\n },\n TENABPFL = if (exists(\"Treatment Emergent - Positive, Neutralizing Antibody\", where = .)) {\n `Treatment Emergent - Positive, Neutralizing Antibody` == \"TRUE\"\n } else {\n FALSE\n },\n TINPBFL = if (exists(\"Treatment induced ADA, Neutralizing Antibody\", where = .)) {\n `Treatment induced ADA, Neutralizing Antibody` == \"TRUE\"\n } else {\n FALSE\n },\n TENPBFL = if (exists(\"Treatment enhanced ADA, Neutralizing Antibody\", where = .)) {\n `Treatment enhanced ADA, Neutralizing Antibody` == \"TRUE\"\n } else {\n FALSE\n },\n NABNFL = if (exists(\"NAB interpreted per sample result\", where = .)) {\n `NAB interpreted per sample result` == \"FALSE\"\n } else {\n FALSE\n },\n TUNPBFL = if (exists(\"Treatment unaffected, Neutralizing Antibody\", where = .)) {\n `Treatment unaffected, Neutralizing Antibody` == \"TRUE\"\n } else {\n FALSE\n }\n ) %>%\n var_relabel(\n ADPBLPFL = \"Post-baseline evaluable patients for ADA\",\n ADAPFL = \"Patients positive for ADA\",\n TENABPFL = \"Patients positive for Treatment Emergent NAb\",\n TINPBFL = \"Treatment-induced NAb\",\n TENPBFL = \"Treatment-enhanced NAb\",\n NABNFL = \"Patients negative for NAb\",\n TUNPBFL = \"Treatment unaffected\"\n )", + "text": "Output\nAnalysis based on multivariable Cox models is usually not performed for the Clinical Study Report (CSR) or regulatory documents, serving exploratory purposes only (e.g. for publication). In practice, the model usually includes only the main effects (without interaction terms). It produces the estimates for each of the covariates included in the model. The analysis follows the same principles (i.e. stratified vs. unstratified analysis and tie handling) as the general Cox model analysis also used in COXT01. Since there is usually no pre-specified hypothesis testing for such analysis, the p-values must be interpreted with caution.\n\n\nMultivariable Cox Regression\nMultivariable Cox Regression with Interaction Term\nMultivariable Cox Regression Specifying Covariates\nMultivariable Cox Regression Specifying Covariates from ADSUB\nMultivariable Cox Regression Setting Strata, Ties, Alpha Level, Statistics\nMultivariable Cox Regression with Selection Process for Covariates\nData Setup\n\n\n\nThe summarize_coxreg function fits, tidies and arranges a Cox regression model in a table layout using the rtables framework. For a multivariable Cox regression model, argument multivar must be set to TRUE. Arguments variables and control can be specified to set up the model (see ?summarize_coxreg for more details and customization options). All variables specified within variables must be present in the data used when building the table.\nTo see the same model as a data.frame object, these two arguments (as well as the data) can be passed to the fit_coxreg_multivar function, and the resulting list tidied using broom::tidy().\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevariables <- list(\n time = \"AVAL\",\n event = \"EVENT\",\n arm = \"ARM\",\n covariates = c(\"SEX\", \"AGE\")\n)\n\nlyt <- basic_table() %>%\n summarize_coxreg(variables = variables, multivar = TRUE) %>%\n append_topleft(\"Effect/Covariate Included in the Model\")\n\nresult <- build_table(lyt = lyt, df = anl)\nresult\n\nEffect/Covariate Included in the Model Hazard Ratio 95% CI p-value\n——————————————————————————————————————————————————————————————————————————————\nTreatment: \n Planned Arm (reference = B: Placebo) 0.2643 \n A: Drug X 0.96 (0.66, 1.42) 0.8536 \n C: Combination 1.27 (0.88, 1.83) 0.2010 \nCovariate: \n Sex (reference = F) \n M 1.09 (0.80, 1.48) 0.5987 \n Age \n All 0.99 (0.97, 1.01) 0.5104 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe estimation of interaction terms is not supported.\nInteraction terms are not included in the GDSR. For this reason and because we must take precautions when fitting such models, this functionality has not been translated in fit_coxreg_multivar. Please remove interaction terms or, if required by the study, refer to the survival::coxph function. Aside from this, using tern the developer must add the necessary variables to the analysis dataset during pre-processing based on ADVS or ADSUB. An example can be found in DMT01.\n\n\nThis option is not supported.\nSee the Multivariable Cox Regression with Interaction Term tab for more details.\n\n\nThis option is not supported.\nSee the Multivariable Cox Regression with Interaction Term tab for more details.\n\n\nAdditional controls can be customized using control_coxreg (see ?control_coxreg) such as the ties calculation method and the confidence level. Stratification variables can be added via the strata element of the variables list.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevariables <- list(\n time = \"AVAL\",\n event = \"EVENT\",\n arm = \"ARMCD\",\n covariates = c(\"SEX\", \"AGE\"),\n strata = \"RACE\"\n)\n\ncontrol <- control_coxreg(\n conf_level = 0.9,\n ties = \"efron\"\n)\n\nlyt <- basic_table() %>%\n summarize_coxreg(\n variables = variables,\n control = control,\n multivar = TRUE,\n .stats = c(\"hr\", \"ci\")\n ) %>%\n append_topleft(\"Effect/Covariate Included in the Model\")\n\nresult <- build_table(lyt = lyt, df = anl)\nresult\n\nEffect/Covariate Included in the Model Hazard Ratio 90% CI \n————————————————————————————————————————————————————————————————————\nTreatment: \n Planned Arm Code (reference = ARM A) \n ARM B 1.03 (0.74, 1.42)\n ARM C 1.30 (0.96, 1.77)\nCovariate: \n Sex (reference = F) \n M 1.08 (0.83, 1.40)\n Age \n All 0.99 (0.98, 1.01)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSee the Multivariable Cox Regression with Interaction Term tab.\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(broom)\n\nadtte <- random.cdisc.data::cadtte\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadtte <- df_explicit_na(adtte)\n\nanl <- adtte %>%\n filter(\n PARAMCD == \"OS\",\n SEX %in% c(\"F\", \"M\"),\n RACE %in% c(\"ASIAN\", \"BLACK OR AFRICAN AMERICAN\", \"WHITE\")\n ) %>%\n mutate(\n ARM = droplevels(relevel(ARM, \"B: Placebo\")),\n SEX = droplevels(SEX),\n RACE = droplevels(RACE)\n ) %>%\n mutate(EVENT = 1 - CNSR) %>%\n var_relabel(\n ARM = \"Planned Arm\",\n SEX = \"Sex\",\n RACE = \"Race\",\n AGE = \"Age\"\n )", "crumbs": [ "Tables", - "ADA", - "ADAT04A" + "Efficacy", + "COXT02" ] }, { - "objectID": "tables/ADA/adat04a.html#reproducibility", - "href": "tables/ADA/adat04a.html#reproducibility", - "title": "ADAT04A", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:05:18 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/efficacy/coxt02.html#teal-app", + "href": "tables/efficacy/coxt02.html#teal-app", + "title": "COXT02", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADTTE <- data[[\"ADTTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_coxreg(\n label = \"Cox Reg.\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\", \"ACTARMCD\"), \"ARM\"),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"), \"OS\"\n ),\n strata_var = choices_selected(\n c(\"SEX\", \"STRATA1\", \"STRATA2\"), NULL\n ),\n cov_var = choices_selected(\n c(\"AGE\", \"SEX\", \"RACE\"), c(\"AGE\", \"SEX\")\n ),\n multivariate = TRUE\n )\n )\n)\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADTTE <- data[[\"ADTTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_coxreg(\n label = \"Cox Reg.\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\", \"ACTARMCD\"), \"ARM\"),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"), \"OS\"\n ),\n strata_var = choices_selected(\n c(\"SEX\", \"STRATA1\", \"STRATA2\"), NULL\n ),\n cov_var = choices_selected(\n c(\"AGE\", \"SEX\", \"RACE\"), c(\"AGE\", \"SEX\")\n ),\n multivariate = TRUE\n )\n )\n)\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "ADA", - "ADAT04A" + "Efficacy", + "COXT02" ] }, { - "objectID": "tables/pharmacokinetic/pkpt02.html#output", - "href": "tables/pharmacokinetic/pkpt02.html#output", - "title": "PKPT02", - "section": "Output", - "text": "Output\n\n\nStandard Table – Plasma\nData Setup\n\n\n\n\nCode# lyt creation\nlyt <- basic_table() %>%\n split_cols_by(\n var = \"ARMCD\",\n split_fun = trim_levels_in_group(\"ARMCD\"),\n split_label = \"Treatment Arm\"\n ) %>%\n split_rows_by(\n var = \"PKPARAM\",\n label_pos = \"topleft\",\n split_label = \"PK Parameter\"\n ) %>%\n tern::analyze_vars(\n vars = \"AVAL\",\n .stats = c(\"n\", \"mean_sd\", \"cv\", \"geom_mean\", \"geom_cv\", \"median\", \"range\"),\n .formats = c(\n n = \"xx.\",\n mean_sd = format_sigfig(3, \"xx (xx)\"),\n cv = \"xx.x\",\n geom_mean = format_sigfig(3),\n geom_cv = \"xx.x\",\n median = format_sigfig(3),\n range = format_sigfig(3, \"xx - xx\")\n )\n )\n\n\nPlasma Drug X\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp0 <- adpp %>%\n filter(PPCAT == \"Plasma Drug X\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp0)\nmain_title(result) <- paste(\"Summary of\", unique(adpp0$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp0$PPCAT), \"\\nVisit:\", unique(adpp0$AVISIT))\nresult\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1\n\n———————————————————————————————————————————————————\nPK Parameter ARM A ARM C \n———————————————————————————————————————————————————\nCmax (ug/mL) \n n 134 132 \n Mean (SD) 30.2 (6.24) 30.0 (5.46) \n CV (%) 20.6 18.2 \n Geometric Mean 29.6 29.5 \n CV % Geometric Mean 21.0 18.9 \n Median 29.9 29.8 \n Min - Max 17.5 - 48.7 15.9 - 47.6 \nAUCinf obs (day*ug/mL) \n n 134 132 \n Mean (SD) 203 (37.7) 195 (37.8) \n CV (%) 18.6 19.4 \n Geometric Mean 199 192 \n CV % Geometric Mean 18.7 20.1 \n Median 197 196 \n Min - Max 125 - 311 103 - 315 \nCL obs (ml/day/kg) \n n 134 132 \n Mean (SD) 5.04 (1.04) 5.01 (0.985)\n CV (%) 20.6 19.7 \n Geometric Mean 4.93 4.91 \n CV % Geometric Mean 22.4 21.1 \n Median 5.08 4.97 \n Min - Max 2.25 - 7.39 2.10 - 7.49 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nPlasma Drug Y\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp1 <- adpp %>%\n filter(PPCAT == \"Plasma Drug Y\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp1)\nmain_title(result) <- paste(\"Summary of\", unique(adpp1$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp1$PPCAT), \"\\nVisit:\", unique(adpp1$AVISIT))\nresult\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug Y \nVisit: CYCLE 1 DAY 1\n\n—————————————————————————————————————\nPK Parameter ARM C \n—————————————————————————————————————\nCmax (ug/mL) \n n 132 \n Mean (SD) 29.9 (5.55) \n CV (%) 18.6 \n Geometric Mean 29.4 \n CV % Geometric Mean 20.1 \n Median 29.7 \n Min - Max 14.1 - 43.4 \nAUCinf obs (day*ug/mL) \n n 132 \n Mean (SD) 199 (37.9) \n CV (%) 19.1 \n Geometric Mean 195 \n CV % Geometric Mean 18.9 \n Median 195 \n Min - Max 126 - 318 \nCL obs (ml/day/kg) \n n 132 \n Mean (SD) 4.96 (0.895)\n CV (%) 18.1 \n Geometric Mean 4.87 \n CV % Geometric Mean 18.7 \n Median 4.94 \n Min - Max 2.99 - 7.21 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadpp <- random.cdisc.data::cadpp\nadpp <- adpp %>% filter(PPSPEC == \"Plasma\", AVISIT == \"CYCLE 1 DAY 1\")", + "objectID": "tables/efficacy/coxt02.html#reproducibility", + "href": "tables/efficacy/coxt02.html#reproducibility", + "title": "COXT02", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:59:55 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n abind 1.4-8 2024-09-12 [1] RSPM\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom * 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n car 3.1-3 2024-09-27 [1] RSPM\n carData 3.0-5 2022-01-06 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n Formula 1.2-5 2023-02-24 [1] RSPM\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT02" + "Efficacy", + "COXT02" ] }, { - "objectID": "tables/pharmacokinetic/pkpt02.html#reproducibility", - "href": "tables/pharmacokinetic/pkpt02.html#reproducibility", - "title": "PKPT02", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:05:04 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/efficacy/cfbt01.html#output", + "href": "tables/efficacy/cfbt01.html#output", + "title": "CFBT01", + "section": "Output", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeafun <- function(x, .var, .spl_context, ...) {\n n_fun <- sum(!is.na(x), na.rm = TRUE)\n if (n_fun == 0) {\n mean_sd_fun <- c(NA, NA)\n median_fun <- NA\n min_max_fun <- c(NA, NA)\n } else {\n mean_sd_fun <- c(mean(x, na.rm = TRUE), sd(x, na.rm = TRUE))\n median_fun <- median(x, na.rm = TRUE)\n min_max_fun <- c(min(x), max(x))\n }\n is_chg <- .var == \"CHG\"\n is_baseline <- .spl_context$value[which(.spl_context$split == \"AVISIT\")] == \"BASELINE\"\n if (is_baseline && is_chg) n_fun <- mean_sd_fun <- median_fun <- min_max_fun <- NULL\n\n in_rows(\n \"n\" = n_fun,\n \"Mean (SD)\" = mean_sd_fun,\n \"Median\" = median_fun,\n \"Min - Max\" = min_max_fun,\n .formats = list(\"n\" = \"xx\", \"Mean (SD)\" = \"xx.xx (xx.xx)\", \"Median\" = \"xx.xx\", \"Min - Max\" = \"xx.xx - xx.xx\"),\n .format_na_strs = list(\"n\" = \"NE\", \"Mean (SD)\" = \"NE (NE)\", \"Median\" = \"NE\", \"Min - Max\" = \"NE - NE\")\n )\n}\n\nlyt <- basic_table() %>%\n split_cols_by(\"ARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adqs$PARAM)\n ) %>%\n split_rows_by(\n \"AVISIT\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adqs$AVISIT)\n ) %>%\n split_cols_by_multivar(\n vars = c(\"AVAL\", \"CHG\"),\n varlabels = c(\"Value at Visit\", \"Change from\\nBaseline\")\n ) %>%\n analyze_colvars(afun = afun)\n\nresult <- build_table(lyt, adqs)\nresult\n\n A: Drug X B: Placebo C: Combination \nParameter Change from Change from Change from \n Analysis Visit Value at Visit Baseline Value at Visit Baseline Value at Visit Baseline \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nBFI All Questions \n BASELINE \n n 134 134 132 \n Mean (SD) 49.93 (7.44) 49.74 (8.29) 50.30 (9.06) \n Median 48.69 49.28 49.74 \n Min - Max 33.72 - 65.91 25.82 - 71.47 26.04 - 69.99 \n WEEK 1 DAY 8 \n n 134 134 134 134 132 132 \n Mean (SD) 54.51 (8.61) 4.58 (11.23) 56.33 (7.86) 6.59 (11.81) 54.03 (8.31) 3.72 (12.66) \n Median 55.15 5.47 56.39 6.96 53.76 3.71 \n Min - Max 34.26 - 75.42 -25.52 - 29.68 36.82 - 74.45 -25.10 - 31.05 26.89 - 75.95 -26.81 - 33.75\n WEEK 2 DAY 15 \n n 134 134 134 134 132 132 \n Mean (SD) 60.98 (10.31) 11.05 (12.46) 59.68 (9.59) 9.94 (12.84) 60.11 (8.76) 9.80 (12.59) \n Median 60.60 10.45 58.18 8.95 61.08 10.04 \n Min - Max 35.94 - 96.53 -14.02 - 45.01 40.44 - 84.70 -17.59 - 40.52 32.76 - 78.25 -26.57 - 39.56\n WEEK 3 DAY 22 \n n 134 134 134 134 132 132 \n Mean (SD) 64.64 (9.88) 14.72 (11.99) 65.78 (10.17) 16.04 (13.80) 63.65 (10.50) 13.35 (13.39) \n Median 65.21 15.10 66.28 15.49 63.79 12.24 \n Min - Max 40.49 - 95.35 -16.76 - 43.40 42.16 - 92.32 -17.70 - 46.85 29.29 - 88.41 -22.40 - 39.94\n WEEK 4 DAY 29 \n n 134 134 134 134 132 132 \n Mean (SD) 69.43 (11.12) 19.51 (13.83) 69.79 (11.46) 20.05 (14.38) 70.68 (10.23) 20.37 (12.99) \n Median 69.22 19.90 70.37 20.99 70.85 20.94 \n Min - Max 38.38 - 95.48 -17.34 - 49.18 45.79 - 93.33 -19.66 - 58.05 30.53 - 90.61 -14.01 - 60.23\n WEEK 5 DAY 36 \n n 134 134 134 134 132 132 \n Mean (SD) 74.31 (12.44) 24.38 (14.75) 74.73 (12.96) 24.99 (14.67) 75.89 (13.54) 25.59 (17.18) \n Median 76.12 25.20 74.13 22.81 76.70 25.32 \n Min - Max 39.45 - 103.92 -7.53 - 56.23 38.19 - 109.61 -18.42 - 64.15 43.79 - 102.40 -16.11 - 67.78\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadqs <- random.cdisc.data::cadqs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadqs <- df_explicit_na(adqs)\n\n# This example focuses on \"BFI All Questions\" starting from baseline.\nadqs <- adqs %>%\n dplyr::filter(\n PARAM == \"BFI All Questions\",\n AVISIT != \"SCREENING\"\n )\n\n# Define the split function for AVISIT\nsplit_fun <- drop_split_levels", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT02" + "Efficacy", + "CFBT01" ] }, { - "objectID": "tables/pharmacokinetic/pkct01.html#output", - "href": "tables/pharmacokinetic/pkct01.html#output", - "title": "PKCT01", - "section": "Output", - "text": "Output\n\n\nStandard Table (Stats in Columns)\nTable Implementing 1/3 Imputation Rule\nTable Implementing 1/2 Imputation Rule\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- lyt_rows %>%\n analyze_vars_in_cols(\n vars = c(\"AVAL\", \"AVALCAT1\", rep(\"AVAL\", 8)),\n .stats = c(\"n\", \"n_blq\", \"mean\", \"sd\", \"cv\", \"geom_mean\", \"geom_cv\", \"median\", \"min\", \"max\"),\n .formats = c(\n n = \"xx.\", n_blq = \"xx.\", mean = format_sigfig(3), sd = format_sigfig(3), cv = \"xx.x\", median = format_sigfig(3),\n geom_mean = format_sigfig(3), geom_cv = \"xx.x\", min = format_sigfig(3), max = format_sigfig(3)\n ),\n .labels = c(\n n = \"n\", n_blq = \"Number\\nof\\nLTRs/BLQs\", mean = \"Mean\", sd = \"SD\", cv = \"CV (%) Mean\",\n geom_mean = \"Geometric Mean\", geom_cv = \"CV % Geometric Mean\", median = \"Median\", min = \"Minimum\", max = \"Maximum\"\n ),\n na_str = \"NE\",\n .aligns = \"decimal\"\n )\n\nresult <- build_table(lyt, df = adpc_1, alt_counts_df = adsl) %>% prune_table()\n\n# Decorating\nmain_title(result) <- \"Summary of PK Concentrations by Nominal Time and Treatment: PK Evaluable\"\nsubtitles(result) <- c(\n \"Protocol: xxxxx\",\n paste(\"Analyte: \", unique(adpc_1$PARAM)),\n paste(\"Treatment:\", unique(adpc_1$ACTARM))\n)\nmain_footer(result) <- \"NE: Not Estimable\"\n\nresult\n\nSummary of PK Concentrations by Nominal Time and Treatment: PK Evaluable\nProtocol: xxxxx\nAnalyte: Plasma Drug X\nTreatment: A: Drug X\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Group Number \n Visit of \n Nominal Time (hr) / Timepoint n LTRs/BLQs Mean SD CV (%) Mean Geometric Mean CV % Geometric Mean Median Minimum Maximum\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X (N=134) \n Day 1 \n 0 / Predose 134 134 0 0 NE NE NE 0 0 0 \n 0.5 / 0.5H 134 0 12.6 1.51 12.0 12.5 12.2 12.6 9.72 15.6 \n 1 / 1H 134 0 16.2 1.63 10.0 16.1 10.1 16.2 12.6 19.9 \n 1.5 / 1.5H 134 0 15.6 1.46 9.3 15.6 9.3 15.5 12.3 19.0 \n 2 / 2H 134 0 13.4 1.35 10.1 13.4 10.0 13.3 10.8 16.5 \n 3 / 3H 134 0 8.47 1.25 14.7 8.38 15.0 8.40 5.88 10.9 \n 4 / 4H 134 0 4.79 1.02 21.2 4.69 22.0 4.79 2.70 7.09 \n 8 / 8H 134 0 0.348 0.180 51.7 0.303 58.4 0.318 0.0760 0.866 \n 12 / 12H 134 0 0.0224 0.0189 84.6 0.0156 111.6 0.0170 0.00200 0.0830\n Day 2 \n 24 / 24H 134 134 0 0 NE NE NE 0 0 0 \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nNE: Not Estimable\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- lyt_rows %>%\n analyze_vars_in_cols(\n vars = c(\"AVAL\", \"AVALCAT1\", rep(\"AVAL\", 8)),\n .stats = c(\"n\", \"n_blq\", \"mean\", \"sd\", \"cv\", \"geom_mean\", \"geom_cv\", \"median\", \"min\", \"max\"),\n .formats = c(\n n = \"xx.\", n_blq = \"xx.\", mean = format_sigfig(3), sd = format_sigfig(3), cv = \"xx.x\", median = format_sigfig(3),\n geom_mean = format_sigfig(3), geom_cv = \"xx.x\", min = format_sigfig(3), max = format_sigfig(3)\n ),\n .labels = c(\n n = \"n\", n_blq = \"Number\\nof\\nLTRs/BLQs\", mean = \"Mean\", sd = \"SD\", cv = \"CV (%) Mean\",\n geom_mean = \"Geometric Mean\", geom_cv = \"CV % Geometric Mean\", median = \"Median\", min = \"Minimum\", max = \"Maximum\"\n ),\n imp_rule = \"1/3\",\n .aligns = \"decimal\"\n )\n\nresult <- build_table(lyt, df = adpc_1, alt_counts_df = adsl) %>% prune_table()\n\n# Decorating\nmain_title(result) <- \"Summary of PK Concentrations by Nominal Time and Treatment: PK Evaluable\"\nsubtitles(result) <- c(\n \"Protocol: xxxxx\",\n paste(\"Analyte: \", unique(adpc_1$PARAM)),\n paste(\"Treatment:\", unique(adpc_1$ACTARM))\n)\nmain_footer(result) <- c(\"NE: Not Estimable\", \"ND: Not Derived\")\n\nresult\n\nSummary of PK Concentrations by Nominal Time and Treatment: PK Evaluable\nProtocol: xxxxx\nAnalyte: Plasma Drug X\nTreatment: A: Drug X\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Group Number \n Visit of \n Nominal Time (hr) / Timepoint n LTRs/BLQs Mean SD CV (%) Mean Geometric Mean CV % Geometric Mean Median Minimum Maximum\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X (N=134) \n Day 1 \n 0 / Predose 134 134 ND ND ND NE ND 0 ND 0 \n 0.5 / 0.5H 134 0 12.6 1.51 12.0 12.5 12.2 12.6 9.72 15.6 \n 1 / 1H 134 0 16.2 1.63 10.0 16.1 10.1 16.2 12.6 19.9 \n 1.5 / 1.5H 134 0 15.6 1.46 9.3 15.6 9.3 15.5 12.3 19.0 \n 2 / 2H 134 0 13.4 1.35 10.1 13.4 10.0 13.3 10.8 16.5 \n 3 / 3H 134 0 8.47 1.25 14.7 8.38 15.0 8.40 5.88 10.9 \n 4 / 4H 134 0 4.79 1.02 21.2 4.69 22.0 4.79 2.70 7.09 \n 8 / 8H 134 0 0.348 0.180 51.7 0.303 58.4 0.318 0.0760 0.866 \n 12 / 12H 134 0 0.0224 0.0189 84.6 0.0156 111.6 0.0170 0.00200 0.0830\n Day 2 \n 24 / 24H 134 134 ND ND ND NE ND 0 ND 0 \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nNE: Not Estimable\nND: Not Derived\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- lyt_rows %>%\n analyze_vars_in_cols(\n vars = c(\"AVAL\", \"AVALCAT1\", rep(\"AVAL\", 8)),\n .stats = c(\"n\", \"n_blq\", \"mean\", \"sd\", \"cv\", \"geom_mean\", \"geom_cv\", \"median\", \"min\", \"max\"),\n .formats = c(\n n = \"xx.\", n_blq = \"xx.\", mean = format_sigfig(3), sd = format_sigfig(3), cv = \"xx.x\", median = format_sigfig(3),\n geom_mean = format_sigfig(3), geom_cv = \"xx.x\", min = format_sigfig(3), max = format_sigfig(3)\n ),\n .labels = c(\n n = \"n\", n_blq = \"Number\\nof\\nLTRs/BLQs\", mean = \"Mean\", sd = \"SD\", cv = \"CV (%) Mean\",\n geom_mean = \"Geometric Mean\", geom_cv = \"CV % Geometric Mean\", median = \"Median\", min = \"Minimum\", max = \"Maximum\"\n ),\n imp_rule = \"1/2\",\n .aligns = \"decimal\"\n )\n\nresult <- build_table(lyt, df = adpc_1, alt_counts_df = adsl) %>% prune_table()\n\n# Decorate table\nmain_title(result) <- \"Summary of PK Concentrations by Nominal Time and Treatment: PK Evaluable\"\nsubtitles(result) <- c(\n \"Protocol: xxxxx\",\n paste(\"Analyte: \", unique(adpc_1$PARAM)),\n paste(\"Treatment:\", unique(adpc_1$ACTARM))\n)\nmain_footer(result) <- \"ND: Not Derived\"\n\nresult\n\nSummary of PK Concentrations by Nominal Time and Treatment: PK Evaluable\nProtocol: xxxxx\nAnalyte: Plasma Drug X\nTreatment: A: Drug X\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Group Number \n Visit of \n Nominal Time (hr) / Timepoint n LTRs/BLQs Mean SD CV (%) Mean Geometric Mean CV % Geometric Mean Median Minimum Maximum\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X (N=134) \n Day 1 \n 0 / Predose 134 134 ND ND ND ND ND ND ND 0 \n 0.5 / 0.5H 134 0 12.6 1.51 12.0 12.5 12.2 12.6 9.72 15.6 \n 1 / 1H 134 0 16.2 1.63 10.0 16.1 10.1 16.2 12.6 19.9 \n 1.5 / 1.5H 134 0 15.6 1.46 9.3 15.6 9.3 15.5 12.3 19.0 \n 2 / 2H 134 0 13.4 1.35 10.1 13.4 10.0 13.3 10.8 16.5 \n 3 / 3H 134 0 8.47 1.25 14.7 8.38 15.0 8.40 5.88 10.9 \n 4 / 4H 134 0 4.79 1.02 21.2 4.69 22.0 4.79 2.70 7.09 \n 8 / 8H 134 0 0.348 0.180 51.7 0.303 58.4 0.318 0.0760 0.866 \n 12 / 12H 134 0 0.0224 0.0189 84.6 0.0156 111.6 0.0170 0.00200 0.0830\n Day 2 \n 24 / 24H 134 134 ND ND ND ND ND ND ND 0 \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nND: Not Derived\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl %>%\n filter(ACTARM == \"A: Drug X\")\nadpc <- random.cdisc.data::cadpc %>%\n filter(ACTARM == \"A: Drug X\", PARAM == \"Plasma Drug X\")\n\n# Setting up the data\nadpc_1 <- adpc %>%\n mutate(\n NFRLT = as.factor(NFRLT),\n AVALCAT1 = as.factor(AVALCAT1),\n NOMTPT = as.factor(paste(NFRLT, \"/\", PCTPT))\n ) %>%\n select(NOMTPT, ACTARM, VISIT, AVAL, PARAM, AVALCAT1)\n\nadpc_1$NOMTPT <- factor(\n adpc_1$NOMTPT,\n levels = levels(adpc_1$NOMTPT)[order(as.numeric(gsub(\".*?([0-9\\\\.]+).*\", \"\\\\1\", levels(adpc_1$NOMTPT))))]\n)\n\n# Row structure\nlyt_rows <- basic_table() %>%\n split_rows_by(\n var = \"ACTARM\",\n split_fun = drop_split_levels,\n split_label = \"Treatment Group\",\n label_pos = \"topleft\"\n ) %>%\n add_rowcounts(alt_counts = TRUE) %>%\n split_rows_by(\n var = \"VISIT\",\n split_fun = drop_split_levels,\n split_label = \"Visit\",\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n var = \"NOMTPT\",\n split_fun = drop_split_levels,\n split_label = \"Nominal Time (hr) / Timepoint\",\n label_pos = \"topleft\",\n child_labels = \"hidden\"\n )", + "objectID": "tables/efficacy/cfbt01.html#teal-app", + "href": "tables/efficacy/cfbt01.html#teal-app", + "title": "CFBT01", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADQS <- df_explicit_na(ADQS)\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADQS <- data[[\"ADQS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Efficacy Data and Change from Baseline by Visit\",\n dataname = \"ADQS\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADQS, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADQS, c(\"AVAL\", \"CHG\")),\n selected = c(\"AVAL\", \"CHG\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = \"BFIALL\"\n ),\n add_total = FALSE,\n parallel_vars = TRUE\n )\n ),\n filter = teal_slices(\n teal_slice(\"ADQS\", \"AVISIT\", selected = NULL),\n teal_slice(\"ADQS\", \"AVAL\", selected = NULL)\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADQS <- df_explicit_na(ADQS)\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADQS <- data[[\"ADQS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Efficacy Data and Change from Baseline by Visit\",\n dataname = \"ADQS\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADQS, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADQS, c(\"AVAL\", \"CHG\")),\n selected = c(\"AVAL\", \"CHG\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = \"BFIALL\"\n ),\n add_total = FALSE,\n parallel_vars = TRUE\n )\n ),\n filter = teal_slices(\n teal_slice(\"ADQS\", \"AVISIT\", selected = NULL),\n teal_slice(\"ADQS\", \"AVAL\", selected = NULL)\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKCT01" + "Efficacy", + "CFBT01" ] }, { - "objectID": "tables/pharmacokinetic/pkct01.html#reproducibility", - "href": "tables/pharmacokinetic/pkct01.html#reproducibility", - "title": "PKCT01", + "objectID": "tables/efficacy/cfbt01.html#reproducibility", + "href": "tables/efficacy/cfbt01.html#reproducibility", + "title": "CFBT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:04:44 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:59:14 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKCT01" + "Efficacy", + "CFBT01" ] }, { - "objectID": "tables/pharmacokinetic/pkpt07.html#output", - "href": "tables/pharmacokinetic/pkpt07.html#output", - "title": "PKPT07", + "objectID": "tables/efficacy/aovt03.html#output", + "href": "tables/efficacy/aovt03.html#output", + "title": "AOVT03", "section": "Output", - "text": "Output\n\n\nStandard Table – Urine\nData Setup\n\n\n\n\nCode# lyt creation\nlyt <- basic_table() %>%\n split_rows_by(\n var = \"ARMCD\",\n split_fun = trim_levels_in_group(\"ARMCD\"),\n label_pos = \"topleft\",\n split_label = \"Treatment Arm\"\n ) %>%\n split_rows_by(\n var = \"PKPARAM\",\n label_pos = \"topleft\",\n split_label = \"PK Parameter\",\n child_labels = \"hidden\"\n ) %>%\n analyze_vars_in_cols(\n vars = \"AVAL\",\n .stats = c(\n \"n\", \"mean\", \"sd\", \"cv\",\n \"geom_mean\", \"geom_cv\", \"median\",\n \"min\", \"max\"\n ),\n .labels = c(\n n = \"n\",\n mean = \"Mean\",\n sd = \"SD\",\n cv = \"CV (%)\",\n geom_mean = \"Geometric Mean\",\n geom_cv = \"CV % Geometric Mean\",\n median = \"Median\",\n min = \"Minimum\",\n max = \"Maximum\"\n ),\n .formats = c(\n n = \"xx.\",\n mean = format_sigfig(3),\n sd = format_sigfig(3),\n cv = \"xx.x\",\n median = format_sigfig(3),\n geom_mean = format_sigfig(3),\n geom_cv = \"xx.x\",\n min = format_sigfig(3),\n max = format_sigfig(3)\n )\n )\n\n\nPlasma Drug X\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp0 <- adpp %>%\n filter(PPCAT == \"Plasma Drug X\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp0)\nmain_title(result) <- paste(\"Summary of\", unique(adpp0$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp0$PPCAT), \"\\nVisit:\", unique(adpp0$AVISIT))\nresult\n\nSummary of Urine PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1\n\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM A \n RENALCLD (L/hr/mg) 134 0.00487 0.000965 19.8 0.00477 21.2 0.00497 0.00238 0.00726\nARM C \n RENALCLD (L/hr/mg) 132 0.00511 0.000934 18.3 0.00502 19.7 0.00515 0.00236 0.00741\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nPlasma Drug Y\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp1 <- adpp %>%\n filter(PPCAT == \"Plasma Drug Y\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp1)\nmain_title(result) <- paste(\"Summary of\", unique(adpp1$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp1$PPCAT), \"\\nVisit:\", unique(adpp1$AVISIT))\nresult\n\nSummary of Urine PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug Y \nVisit: CYCLE 1 DAY 1\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM C \n RENALCLD (L/hr/mg) 132 0.00509 0.00103 20.3 0.00499 21.4 0.00502 0.00236 0.00794\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(stringr)\n\nadpp <- random.cdisc.data::cadpp\nadpp <- adpp %>%\n filter(AVISIT == \"CYCLE 1 DAY 1\", str_detect(tolower(PARAM), regex(\"norm by dose\", ignore_case = TRUE)))", + "text": "Output\nThis example will focus on data from multiple visits and take the interaction between visits and arms into consideration.\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARMCD\", ref_group = \"ARM A\") %>%\n split_rows_by(\"PARAM\", split_fun = drop_split_levels) %>%\n summarize_ancova(\n vars = \"CHG\",\n variables = list(arm = \"ARMCD\", covariates = c(\"BASE\", \"AVISIT\", \"AVISIT*ARMCD\")),\n conf_level = 0.95,\n var_labels = \"WEEK 1 DAY 8\",\n table_names = \"WEEK 1 DAY 8\",\n interaction_y = \"WEEK 1 DAY 8\",\n interaction_item = \"AVISIT\"\n ) %>%\n summarize_ancova(\n vars = \"CHG\",\n variables = list(arm = \"ARMCD\", covariates = c(\"BASE\", \"AVISIT\", \"AVISIT*ARMCD\")),\n conf_level = 0.95,\n var_labels = \"WEEK 2 DAY 15\",\n table_names = \"WEEK 2 DAY 15\",\n interaction_y = \"WEEK 2 DAY 15\",\n interaction_item = \"AVISIT\"\n ) %>%\n summarize_ancova(\n vars = \"CHG\",\n variables = list(arm = \"ARMCD\", covariates = c(\"BASE\", \"AVISIT\", \"AVISIT*ARMCD\")),\n conf_level = 0.95,\n var_labels = \"WEEK 5 DAY 36\",\n table_names = \"WEEK 5 DAY 36\",\n interaction_y = \"WEEK 5 DAY 36\",\n interaction_item = \"AVISIT\"\n ) %>%\n build_table(adqs_in, alt_counts_df = adsl)\n\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————\nBFI All Questions \n WEEK 1 DAY 8 \n n 68 73 62 \n Adjusted Mean 4.34 5.96 3.90 \n Difference in Adjusted Means 1.62 -0.44 \n 95% CI (-1.75, 4.98) (-3.94, 3.06)\n p-value 0.3460 0.8059 \n WEEK 2 DAY 15 \n n 68 73 62 \n Adjusted Mean 12.99 11.23 9.86 \n Difference in Adjusted Means -1.76 -3.13 \n 95% CI (-5.12, 1.60) (-6.64, 0.37)\n p-value 0.3048 0.0795 \n WEEK 5 DAY 36 \n n 68 73 62 \n Adjusted Mean 23.88 23.08 28.21 \n Difference in Adjusted Means -0.81 4.33 \n 95% CI (-4.17, 2.56) (0.83, 7.83) \n p-value 0.6383 0.0155 \nFatigue Interference \n WEEK 1 DAY 8 \n n 68 73 62 \n Adjusted Mean 5.97 5.19 5.21 \n Difference in Adjusted Means -0.78 -0.76 \n 95% CI (-4.17, 2.61) (-4.30, 2.78)\n p-value 0.6522 0.6729 \n WEEK 2 DAY 15 \n n 68 73 62 \n Adjusted Mean 11.39 9.42 9.55 \n Difference in Adjusted Means -1.96 -1.84 \n 95% CI (-5.35, 1.43) (-5.37, 1.70)\n p-value 0.2560 0.3084 \n WEEK 5 DAY 36 \n n 68 73 62 \n Adjusted Mean 22.79 25.37 23.43 \n Difference in Adjusted Means 2.58 0.64 \n 95% CI (-0.81, 5.97) (-2.89, 4.18)\n p-value 0.1353 0.7212 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadqs <- random.cdisc.data::cadqs\n\nadqs_in <- adqs %>%\n filter(AVISIT %in% c(\"WEEK 1 DAY 8\", \"WEEK 2 DAY 15\", \"WEEK 5 DAY 36\")) %>%\n droplevels() %>%\n filter(PARAM %in% c(\"BFI All Questions\", \"Fatigue Interference\")) %>%\n mutate(CHG = ifelse(BMEASIFL == \"Y\", CHG, NA)) # only analyze evaluable population", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT07" + "Efficacy", + "AOVT03" ] }, { - "objectID": "tables/pharmacokinetic/pkpt07.html#reproducibility", - "href": "tables/pharmacokinetic/pkpt07.html#reproducibility", - "title": "PKPT07", + "objectID": "tables/efficacy/aovt03.html#reproducibility", + "href": "tables/efficacy/aovt03.html#reproducibility", + "title": "AOVT03", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:04:28 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr * 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:58:37 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT07" + "Efficacy", + "AOVT03" ] }, { - "objectID": "tables/pharmacokinetic/pkpt11.html#output", - "href": "tables/pharmacokinetic/pkpt11.html#output", - "title": "PKPT11", + "objectID": "tables/disclosures/eudrat02.html#output", + "href": "tables/disclosures/eudrat02.html#output", + "title": "EUDRAT02", "section": "Output", - "text": "Output\n\n\nStandard Table – Plasma\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# create layout\nlyt <- basic_table() %>%\n split_rows_by(\n var = \"PKPARAM\",\n label_pos = \"topleft\",\n split_fun = keep_split_levels(c(\"AUCinf obs (day*ug/mL)\", \"Cmax (ug/mL)\")),\n split_label = \"PK Parameter\"\n ) %>%\n split_rows_by(\n var = \"COMP\",\n split_fun = remove_split_levels(paste0(comp_dose, \"/\", comp_dose)),\n indent_mod = 11L,\n child_labels = \"hidden\"\n ) %>%\n split_cols_by_multivar(\n vars = rep(\"AVAL\", 4),\n varlabels = c(\n \"n\",\n \"Geometric Mean Ratio\",\n \"90% CI Lower Bound\",\n \"90% CI Upper Bound\"\n )\n ) %>%\n analyze_colvars(\n afun = afun_pk_gmr(),\n extra_args = list(\n compare_dose = comp_dose,\n denom = TRUE,\n arm_var = arm_var\n )\n ) %>%\n append_varlabels(adpp0, \"COMP\", 12L)\n\nresult <- build_table(lyt, df = adpp0)\n\nmain_title(result) <- paste0(\n \"Estimated Ratios of Geometric Means and 90% Confidence Intervals for AUC and CMAX Following \",\n unique(adpp0$REGIMEN), \"\\nof \", comp_dose, \" in Comparison with \",\n paste(other_doses, collapse = \" & \"), \", PK Population\"\n)\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp0$PPCAT))\n\nresult\n\nEstimated Ratios of Geometric Means and 90% Confidence Intervals for AUC and CMAX Following BID\nof A: Drug X in Comparison with C: Combination, PK Population\nAnalyte: Plasma Drug X\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nPK Parameter \n Comparison n Geometric Mean Ratio 90% CI Lower Bound 90% CI Upper Bound\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAUCinf obs (day*ug/mL) \n C: Combination/A: Drug X 266 0.962 0.925 1.00 \nCmax (ug/mL) \n C: Combination/A: Drug X 266 0.997 0.958 1.04 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadpp <- random.cdisc.data::cadpp\n\n# Comparator Dose - A: Drug X\narm_var <- \"TRT01A\"\ncomp_dose <- \"A: Drug X\"\nother_doses <- as.character(unique(adpp[[arm_var]])[unique(adpp[[arm_var]]) != comp_dose])\n\nadpp <- adpp %>%\n filter(AVISIT == \"CYCLE 1 DAY 1\") %>%\n mutate(\n COMP = paste0(TRT01A, \"/\", comp_dose),\n COMP_AVAL = ifelse(TRT01A == comp_dose, paste0(AVAL, comp_dose), AVAL)\n )\n\nfor (dose in other_doses) {\n temp_df <- adpp[adpp[[arm_var]] == comp_dose, ]\n temp_df$COMP <- paste0(dose, \"/\", comp_dose)\n adpp <- rbind(adpp, temp_df)\n}\n\n# Plasma Drug X\nadpp0 <- adpp %>%\n filter(PPCAT == \"Plasma Drug X\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n var_relabel(COMP = \"Comparison\")\n\n# statistics function\ns_gmr <- function(df,\n compare_dose = comp_dose, # comparator, defaults to comp_dose defined above (string)\n denom = TRUE, # whether to use comparator as denominator, defaults to TRUE (logical)\n arm_var = arm_var) { # arm variable, defaults to arm_var defined above (string)\n which_num <- !grepl(compare_dose, df[[arm_var]])\n\n x_num <- as.numeric(df[which_num, ][[\"AVAL\"]])\n x_num <- x_num[!is.na(x_num)]\n x_num_no_negative_vals <- x_num\n x_num_no_negative_vals[x_num_no_negative_vals <= 0] <- NA\n\n x_denom <- as.numeric(gsub(compare_dose, \"\", df[!which_num, ][[\"AVAL\"]]))\n x_denom <- x_denom[!is.na(x_denom)]\n x_denom_no_negative_vals <- x_denom\n x_denom_no_negative_vals[x_denom_no_negative_vals <= 0] <- NA\n\n x_num_log <- log(x_num_no_negative_vals)\n x_denom_log <- log(x_denom_no_negative_vals)\n\n if (denom) {\n geom_mean_ratio <- exp(mean(x_num_log, na.rm = FALSE)) / exp(mean(x_denom_log, na.rm = FALSE))\n geom_mean_ci <- t.test(x_num_log, x_denom_log, conf.level = 0.90)$conf.int\n } else {\n geom_mean_ratio <- exp(mean(x_denom_log, na.rm = FALSE)) / exp(mean(x_num_log, na.rm = FALSE))\n geom_mean_ci <- t.test(x_denom_log, x_num_log, conf.level = 0.90)$conf.int\n }\n\n list(\n n = nrow(df),\n geom_mean_ratio = geom_mean_ratio,\n gmr_ci_lwr = exp(geom_mean_ci[1]),\n gmr_ci_upr = exp(geom_mean_ci[2])\n )\n}\n\nafun_pk_gmr <- function(\n .formats = list(\n n = \"xx.\",\n geom_mean_ratio = format_sigfig(3),\n gmr_ci_lwr = format_sigfig(3),\n gmr_ci_upr = format_sigfig(3)\n ),\n compare_dose = comp_dose,\n denom = TRUE) {\n checkmate::assert_list(.formats)\n checkmate::assert_subset(names(.formats), c(\"n\", \"geom_mean_ratio\", \"gmr_ci_lwr\", \"gmr_ci_upr\"))\n\n afun_lst <- Map(\n function(stat, fmt, compare_dose, denom, arm_var) {\n function(df, .spl_context) {\n x_stat <- s_gmr(df, compare_dose = compare_dose, denom = denom, arm_var = arm_var)[[stat]]\n rcell(x_stat, format = fmt, label = tail(.spl_context$value, 1))\n }\n },\n stat = names(.formats),\n fmt = .formats,\n compare_dose = compare_dose,\n denom = denom,\n arm_var = arm_var\n )\n\n afun_lst\n}", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table() %>%\n summarize_patients_events_in_cols(\n filters_list = filters_list,\n empty_stats = c(\"all\", \"related\", \"fatal\", \"fatal_related\"),\n custom_label = \"Total number of patients with at least one serious adverse event\"\n ) %>%\n split_rows_by(\"AEBODSYS\",\n nested = FALSE,\n split_fun = split_fun,\n indent_mod = -1L,\n label_pos = \"topleft\",\n split_label = obj_label(adae_serious_arm$AEBODSYS)\n ) %>%\n split_rows_by(\"AEDECOD\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae_serious_arm$AEDECOD)\n ) %>%\n summarize_patients_events_in_cols(\n filters_list = filters_list,\n col_split = FALSE\n )\n\nresult <- build_table(lyt, adae_serious_arm)\nresult\n\nBody System or Organ Class \n Dictionary-Derived Term Patients (All) Events (All) Events (Related) Events (Fatal) Events (Fatal & Related)\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one serious adverse event 104 \ncl A.1 \n dcd A.1.1.1.2 48 68 0 0 0 \ncl B.1 \n dcd B.1.1.1.1 47 56 56 56 56 \ncl B.2 \n dcd B.2.2.3.1 48 64 0 0 0 \ncl D.1 \n dcd D.1.1.1.1 50 61 61 61 61 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nFor illustrative purposes, the adae data is filtered by arm A: Drug X here.\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadae <- df_explicit_na(adae)\n\nadae_serious <- adae %>% filter(AESER == \"Y\", SAFFL == \"Y\")\nadae_serious_arm <- adae_serious %>% filter(ARM == \"A: Drug X\")\n\nfilters_list <- list(\n related = with_label(c(AEREL = \"Y\"), \"Events (Related)\"),\n fatal = with_label(c(AESDTH = \"Y\"), \"Events (Fatal)\"),\n fatal_related = with_label(c(AEREL = \"Y\", AESDTH = \"Y\"), \"Events (Fatal & Related)\")\n)", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT11" + "Disclosures", + "EUDRAT02" ] }, { - "objectID": "tables/pharmacokinetic/pkpt11.html#reproducibility", - "href": "tables/pharmacokinetic/pkpt11.html#reproducibility", - "title": "PKPT11", + "objectID": "tables/disclosures/eudrat02.html#reproducibility", + "href": "tables/disclosures/eudrat02.html#reproducibility", + "title": "EUDRAT02", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:04:14 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:58:22 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT11" + "Disclosures", + "EUDRAT02" ] }, { - "objectID": "tables/pharmacokinetic/pkpt08.html#output", - "href": "tables/pharmacokinetic/pkpt08.html#output", - "title": "PKPT08", + "objectID": "tables/risk-management-plan/rmpt06.html#output", + "href": "tables/risk-management-plan/rmpt06.html#output", + "title": "RMPT06", "section": "Output", - "text": "Output\n\n\nStandard Table – Plasma\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# create layout\nlyt <- basic_table() %>%\n add_overall_col(\"Accumulation Interval (hours)\") %>%\n split_cols_by(var = \"PPINT\") %>%\n split_cols_by(var = \"PKPARAM\") %>%\n split_rows_by(\n var = \"ARMCD\",\n split_fun = trim_levels_in_group(\"ACTARM\"),\n label_pos = \"topleft\",\n split_label = \"Treatment Arm\"\n ) %>%\n analyze_vars(\n vars = \"AVAL\",\n .stats = c(\n \"n\", \"mean\", \"sd\", \"cv\",\n \"median\", \"min\", \"max\"\n ),\n .labels = c(\n n = \"n\",\n mean = \"Mean\",\n sd = \"SD\",\n cv = \"CV (%)\",\n median = \"Median\",\n min = \"Minimum\",\n max = \"Maximum\"\n ),\n .formats = c(\n n = \"xx.\",\n mean = format_sigfig(3),\n sd = format_sigfig(3),\n cv = \"xx.x\",\n median = format_sigfig(3),\n min = format_sigfig(3),\n max = format_sigfig(3)\n )\n )\n\nadpp0 <- adpp %>%\n filter(\n AVISIT == \"CYCLE 1 DAY 1\",\n PPCAT == \"Plasma Drug X\"\n ) %>%\n h_pkparam_sort() %>%\n mutate(\n PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))\n )\n\nresult <- build_table(lyt, df = adpp0)\nmain_title(result) <- paste(\n \"Summary of Cumulative Amount and Percentage of\", unique(adpp0$PPSPEC), \"Recovered from\\n\",\n unique(adpp0$PPCAT), \"following\", unique(adpp0$REGIMEN), \"Administration for\",\n unique(adpp0$PPINT)[length(unique(adpp0$PPINT))], \"hours, PK Population\"\n)\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp0$PPCAT), \"\\nVisit:\", unique(adpp0$AVISIT))\n\ncat(rtables::toString(result, indent_size = 10))\n\nSummary of Cumulative Amount and Percentage of Urine Recovered from\n Plasma Drug X following BID Administration for 0-24 hours, PK Population\nAnalyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1\n\n——————————————————————————————————————————————————————————\n Accumulation Interval (hours) \n 0-12 0-24 \nTreatment Arm Ae (mg) Fe (%) Ae (mg) Fe (%)\n——————————————————————————————————————————————————————————\nARM A \n n 134 134 134 134 \n Mean 1.55 15.7 1.55 15.7 \n SD 0.339 3.35 0.339 3.35 \n CV (%) 21.9 21.4 21.9 21.4 \n Median 1.55 15.8 1.55 15.8 \n Minimum 0.702 8.15 0.702 8.15 \n Maximum 2.46 24.5 2.46 24.5 \nARM C \n n 132 132 132 132 \n Mean 1.54 16.1 1.54 16.1 \n SD 0.298 3.11 0.298 3.11 \n CV (%) 19.4 19.3 19.4 19.3 \n Median 1.55 16.0 1.55 16.0 \n Minimum 0.850 8.50 0.850 8.50 \n Maximum 2.21 24.4 2.21 24.4 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadpp <- random.cdisc.data::cadpp\n\nadpp <- adpp %>%\n filter(PPSTINT != \"NA\" & PPENINT != \"NA\") %>%\n mutate(PPINT = factor(paste0(gsub(\"[PH]\", \"\", PPSTINT), \"-\", gsub(\"[PH]\", \"\", PPENINT))))", + "text": "Output\n\n\nStandard Table\nTable Selecting Sections to Display\nTable with Differences\nTable Modifying Alpha Level and Type of Confidence Interval\nTable by SMQ\nData Setup\n\n\n\nPlease note that by default the percentage analysis uses Wald’s confidence interval with continuity correction and the default confidence interval for percentage is 95%. To use a different method for confidence interval calculation, the method name needs to be provided to method argument.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n estimate_proportion(\n vars = \"AEFL\",\n method = \"clopper-pearson\",\n .labels = c(\n n_prop = \"Number of patients with at least one adverse event\",\n prop_ci = \"95% CI for % of patients with at least one AE (Clopper-Pearson)\"\n ),\n table_names = \"est_prop\"\n )\n\nresult_adsl <- build_table(lyt_adsl, df = adsl1, alt_counts_df = adsl1)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_values(\n \"STUDYID\",\n values = as.character(unique(adae$STUDYID)),\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences(\n \"WTOXGR\",\n var_labels = \"Number of patients with at least one AE by worst grade\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"fl_ser\"\n ) %>%\n count_occurrences(\n \"AEOUT\",\n denom = \"n\",\n var_labels = \"Number of patients with at least one AE by outcome\",\n show_labels = \"visible\"\n )\n\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adsl,\n result_adae[seq_len(nrow(result_adae)), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————\nNumber of patients with at least one adverse event 122 (91.0%) 123 (91.8%) 120 (90.9%) \n95% CI for % of patients with at least one AE (Clopper-Pearson) (84.9, 95.3) (85.8, 95.8) (84.7, 95.2) \nTotal number of AEs 609 622 703 \nNumber of patients with at least one AE by worst grade \n Grade 1 7 (5.2%) 9 (6.7%) 4 (3.0%) \n Grade 2 6 (4.5%) 10 (7.5%) 7 (5.3%) \n Grade 3 18 (13.4%) 14 (10.4%) 16 (12.1%) \n Grade 4 15 (11.2%) 20 (14.9%) 18 (13.6%) \n Grade 5 76 (56.7%) 70 (52.2%) 75 (56.8%) \nNumber of patients with at least one serious AE 104 (85.2%) 101 (82.1%) 99 (82.5%) \nNumber of patients with at least one AE by outcome \n Fatal outcome 76 (62.3%) 70 (56.9%) 75 (62.5%) \n Unresolved 66 (54.1%) 64 (52.0%) 70 (58.3%) \n Recovered/Resolved 73 (59.8%) 83 (67.5%) 88 (73.3%) \n Resolved with sequelae 44 (36.1%) 40 (32.5%) 43 (35.8%) \n Recovering/Resolving 81 (66.4%) 84 (68.3%) 88 (73.3%) \n Unknown outcome 38 (31.1%) 49 (39.8%) 44 (36.7%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n estimate_proportion(\n vars = \"AEFL\",\n method = \"clopper-pearson\",\n .labels = c(\n n_prop = \"Number of patients with at least one adverse event\",\n prop_ci = \"95% CI for % of patients with at least one AE (Clopper-Pearson)\"\n ),\n table_names = \"est_prop\"\n )\n\nresult_adsl <- build_table(lyt_adsl, df = adsl1, alt_counts_df = adsl1)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_values(\n \"STUDYID\",\n values = as.character(unique(adae$STUDYID)),\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences(\n \"WTOXGR\",\n var_labels = \"Number of patients with at least one AE by worst grade\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"fl_ser\",\n denom = \"N_col\"\n )\n\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adsl,\n result_adae[seq_len(nrow(result_adae)), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————\nNumber of patients with at least one adverse event 122 (91.0%) 123 (91.8%) 120 (90.9%) \n95% CI for % of patients with at least one AE (Clopper-Pearson) (84.9, 95.3) (85.8, 95.8) (84.7, 95.2) \nTotal number of AEs 609 622 703 \nNumber of patients with at least one AE by worst grade \n Grade 1 7 (5.2%) 9 (6.7%) 4 (3.0%) \n Grade 2 6 (4.5%) 10 (7.5%) 7 (5.3%) \n Grade 3 18 (13.4%) 14 (10.4%) 16 (12.1%) \n Grade 4 15 (11.2%) 20 (14.9%) 18 (13.6%) \n Grade 5 76 (56.7%) 70 (52.2%) 75 (56.8%) \nNumber of patients with at least one serious AE 104 (77.6%) 101 (75.4%) 99 (75.0%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPlease note that by default the percentage difference analysis also uses Wald’s confidence interval with continuity correction and the default confidence interval is 95%.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\", ref_group = \"A: Drug X\") %>%\n estimate_proportion(\n vars = \"AEFL\",\n method = \"clopper-pearson\",\n .labels = c(\n n_prop = \"Number of patients with at least one adverse event\",\n prop_ci = \"95% CI for % of patients with at least one AE\"\n ),\n table_names = \"est_prop\"\n ) %>%\n estimate_proportion_diff(\n vars = \"AEFL\",\n .labels = c(\n diff = \"Difference in % of patients with at least one AE\",\n diff_ci = \"95% CI of difference (Wald, with correction)\"\n ),\n table_names = \"est_prop_diff\"\n )\n\nresult_adsl <- build_table(lyt_adsl, df = adsl1, alt_counts_df = adsl1)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_values(\n \"STUDYID\",\n values = as.character(unique(adae$STUDYID)),\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences(\n \"WTOXGR\",\n var_labels = \"Number of patients with at least one AE by worst grade\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"fl_ser\",\n denom = \"N_col\"\n ) %>%\n count_occurrences(\n \"AEOUT\",\n denom = \"n\",\n var_labels = \"Number of patients with at least one AE by outcome\",\n show_labels = \"visible\"\n )\n\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adsl,\n result_adae[seq_len(nrow(result_adae)), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————————\nNumber of patients with at least one adverse event 122 (91.0%) 123 (91.8%) 120 (90.9%) \n95% CI for % of patients with at least one AE (84.9, 95.3) (85.8, 95.8) (84.7, 95.2) \nDifference in % of patients with at least one AE 0.7 -0.1 \n 95% CI of difference (Wald, with correction) (-6.7, 8.2) (-7.8, 7.5) \nTotal number of AEs 609 622 703 \nNumber of patients with at least one AE by worst grade \n Grade 1 7 (5.2%) 9 (6.7%) 4 (3.0%) \n Grade 2 6 (4.5%) 10 (7.5%) 7 (5.3%) \n Grade 3 18 (13.4%) 14 (10.4%) 16 (12.1%) \n Grade 4 15 (11.2%) 20 (14.9%) 18 (13.6%) \n Grade 5 76 (56.7%) 70 (52.2%) 75 (56.8%) \nNumber of patients with at least one serious AE 104 (77.6%) 101 (75.4%) 99 (75.0%) \nNumber of patients with at least one AE by outcome \n Fatal outcome 76 (62.3%) 70 (56.9%) 75 (62.5%) \n Unresolved 66 (54.1%) 64 (52.0%) 70 (58.3%) \n Recovered/Resolved 73 (59.8%) 83 (67.5%) 88 (73.3%) \n Resolved with sequelae 44 (36.1%) 40 (32.5%) 43 (35.8%) \n Recovering/Resolving 81 (66.4%) 84 (68.3%) 88 (73.3%) \n Unknown outcome 38 (31.1%) 49 (39.8%) 44 (36.7%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe confidence level can be changed through the conf_level argument.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\", ref_group = \"A: Drug X\") %>%\n estimate_proportion(\n vars = \"AEFL\",\n conf_level = 0.90,\n method = \"clopper-pearson\",\n .labels = c(\n n_prop = \"Number of patients with at least one adverse event\",\n prop_ci = \"90% CI for % of patients with at least one AE (Clopper-Pearson)\"\n ),\n table_names = \"est_prop\"\n ) %>%\n estimate_proportion_diff(\n vars = \"AEFL\",\n conf_level = 0.90,\n method = \"newcombe\",\n .labels = c(\n diff = \"Difference in % of patients with at least one AE\",\n diff_ci = \"90% CI of difference (Newcombe)\"\n ),\n table_names = \"est_prop_diff\"\n )\n\nresult_adsl <- build_table(lyt_adsl, df = adsl1, alt_counts_df = adsl1)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_values(\n \"STUDYID\",\n values = as.character(unique(adae$STUDYID)),\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences(\n \"WTOXGR\",\n var_labels = \"Number of patients with at least one AE by worst grade\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"fl_ser\",\n denom = \"N_col\"\n ) %>%\n count_occurrences(\n \"AEOUT\",\n denom = \"n\",\n var_labels = \"Number of patients with at least one AE by outcome\",\n show_labels = \"visible\"\n )\n\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adsl,\n result_adae[seq_len(nrow(result_adae)), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————\nNumber of patients with at least one adverse event 122 (91.0%) 123 (91.8%) 120 (90.9%) \n90% CI for % of patients with at least one AE (Clopper-Pearson) (85.9, 94.8) (86.8, 95.3) (85.7, 94.7) \nDifference in % of patients with at least one AE 0.7 -0.1 \n 90% CI of difference (Newcombe) (-5.1, 6.6) (-6.1, 5.8) \nTotal number of AEs 609 622 703 \nNumber of patients with at least one AE by worst grade \n Grade 1 7 (5.2%) 9 (6.7%) 4 (3.0%) \n Grade 2 6 (4.5%) 10 (7.5%) 7 (5.3%) \n Grade 3 18 (13.4%) 14 (10.4%) 16 (12.1%) \n Grade 4 15 (11.2%) 20 (14.9%) 18 (13.6%) \n Grade 5 76 (56.7%) 70 (52.2%) 75 (56.8%) \nNumber of patients with at least one serious AE 104 (77.6%) 101 (75.4%) 99 (75.0%) \nNumber of patients with at least one AE by outcome \n Fatal outcome 76 (62.3%) 70 (56.9%) 75 (62.5%) \n Unresolved 66 (54.1%) 64 (52.0%) 70 (58.3%) \n Recovered/Resolved 73 (59.8%) 83 (67.5%) 88 (73.3%) \n Resolved with sequelae 44 (36.1%) 40 (32.5%) 43 (35.8%) \n Recovering/Resolving 81 (66.4%) 84 (68.3%) 88 (73.3%) \n Unknown outcome 38 (31.1%) 49 (39.8%) 44 (36.7%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCode# In progress\n\n\n\n\nThe adae and adsl datasets need to undergo data processing before table production. Some new variables are added to these datasets to create the desired tables.\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(\n adae,\n omit_columns = c(\"SMQ01NAM\", \"SMQ01SC\", \"SMQ02NAM\", \"SMQ02SC\", \"CQ01NAM\", \"STUDYID\", \"USUBJID\")\n)\n\ndf_max <- aggregate(as.numeric(AETOXGR) ~ USUBJID, data = adae, FUN = max, drop = FALSE)\ncolnames(df_max) <- c(\"USUBJID\", \"WTOXGR\")\n\nadae <- adae %>%\n left_join(df_max, by = c(\"USUBJID\")) %>%\n mutate(\n WTOXGR = factor(WTOXGR, levels = c(\"1\", \"2\", \"3\", \"4\", \"5\")),\n fl_ser = AESER == \"Y\"\n ) %>%\n mutate(\n WTOXGR = forcats::fct_recode(\n WTOXGR,\n \"Grade 1\" = \"1\",\n \"Grade 2\" = \"2\",\n \"Grade 3\" = \"3\",\n \"Grade 4\" = \"4\",\n \"Grade 5\" = \"5\"\n ),\n AEOUT = forcats::fct_recode(\n AEOUT,\n \"Fatal outcome\" = \"FATAL\",\n \"Unresolved\" = \"NOT RECOVERED/NOT RESOLVED\",\n \"Recovered/Resolved\" = \"RECOVERED/RESOLVED\",\n \"Resolved with sequelae\" = \"RECOVERED/RESOLVED WITH SEQUELAE\",\n \"Recovering/Resolving\" = \"RECOVERING/RESOLVING\",\n \"Unknown outcome\" = \"UNKNOWN\"\n )\n ) %>%\n var_relabel(\n WTOXGR = \"Worst overall grade\",\n fl_ser = \"Number of patients with at least one serious AE\"\n )\n\n# Add AE flag to adsl.\nadsl1 <- adsl %>%\n mutate(AEFL = ifelse(USUBJID %in% adae$USUBJID, TRUE, FALSE)) %>%\n var_relabel(AEFL = \"At least one AE\")", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT08" + "Risk Management Plan", + "RMPT06" ] }, { - "objectID": "tables/pharmacokinetic/pkpt08.html#reproducibility", - "href": "tables/pharmacokinetic/pkpt08.html#reproducibility", - "title": "PKPT08", + "objectID": "tables/risk-management-plan/rmpt06.html#reproducibility", + "href": "tables/risk-management-plan/rmpt06.html#reproducibility", + "title": "RMPT06", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:04:00 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:58:06 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT08" + "Risk Management Plan", + "RMPT06" ] }, { - "objectID": "tables/disposition/dst01.html#output", - "href": "tables/disposition/dst01.html#output", - "title": "DST01", + "objectID": "tables/risk-management-plan/rmpt01.html#output", + "href": "tables/risk-management-plan/rmpt01.html#output", + "title": "RMPT01", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable with Grouping of Reasons\nTable Adding Optional Rows\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = add_overall_level(\"All Patients\", first = FALSE)\n ) %>%\n count_occurrences(\n \"EOSSTT\",\n show_labels = \"hidden\"\n ) %>%\n analyze_vars(\n \"DCSREAS\",\n .stats = \"count_fraction\",\n denom = \"N_col\",\n show_labels = \"hidden\",\n .indent_mods = c(count_fraction = 1L)\n )\n\nresult1 <- build_table(lyt = lyt, df = adsl)\nresult1\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n—————————————————————————————————————————————————————————————————————————————————————————\nCOMPLETED 68 (50.7%) 66 (49.3%) 73 (55.3%) 207 (51.7%) \nONGOING 24 (17.9%) 28 (20.9%) 21 (15.9%) 73 (18.2%) \nDISCONTINUED 42 (31.3%) 40 (29.9%) 38 (28.8%) 120 (30.0%) \n ADVERSE EVENT 3 (2.2%) 6 (4.5%) 5 (3.8%) 14 (3.5%) \n DEATH 25 (18.7%) 23 (17.2%) 22 (16.7%) 70 (17.5%) \n LACK OF EFFICACY 2 (1.5%) 2 (1.5%) 3 (2.3%) 7 (1.8%) \n PHYSICIAN DECISION 2 (1.5%) 3 (2.2%) 2 (1.5%) 7 (1.8%) \n PROTOCOL VIOLATION 5 (3.7%) 3 (2.2%) 4 (3%) 12 (3%) \n WITHDRAWAL BY PARENT/GUARDIAN 4 (3%) 2 (1.5%) 1 (0.8%) 7 (1.8%) \n WITHDRAWAL BY SUBJECT 1 (0.7%) 1 (0.7%) 1 (0.8%) 3 (0.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = add_overall_level(\"All Patients\", first = FALSE)\n ) %>%\n count_occurrences(\n \"EOSSTT\",\n show_labels = \"hidden\"\n ) %>%\n split_rows_by(\"DCSREASGP\", indent_mod = 1L) %>%\n analyze_vars(\n \"DCSREAS\",\n .stats = \"count_fraction\",\n denom = \"N_col\",\n show_labels = \"hidden\"\n )\n\ntbl <- build_table(lyt = lyt, df = adsl_gp_added)\nresult2 <- prune_table(tbl) # remove rows containing all zeros\n\nresult2\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————————————————————————\nCOMPLETED 68 (50.7%) 66 (49.3%) 73 (55.3%) 207 (51.7%) \nONGOING 24 (17.9%) 28 (20.9%) 21 (15.9%) 73 (18.2%) \nDISCONTINUED 42 (31.3%) 40 (29.9%) 38 (28.8%) 120 (30.0%) \n Safety \n ADVERSE EVENT 3 (2.2%) 6 (4.5%) 5 (3.8%) 14 (3.5%) \n DEATH 25 (18.7%) 23 (17.2%) 22 (16.7%) 70 (17.5%) \n Non-Safety \n LACK OF EFFICACY 2 (1.5%) 2 (1.5%) 3 (2.3%) 7 (1.8%) \n PHYSICIAN DECISION 2 (1.5%) 3 (2.2%) 2 (1.5%) 7 (1.8%) \n PROTOCOL VIOLATION 5 (3.7%) 3 (2.2%) 4 (3%) 12 (3%) \n WITHDRAWAL BY PARENT/GUARDIAN 4 (3%) 2 (1.5%) 1 (0.8%) 7 (1.8%) \n WITHDRAWAL BY SUBJECT 1 (0.7%) 1 (0.7%) 1 (0.8%) 3 (0.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = add_overall_level(\"All Patients\", first = FALSE)\n ) %>%\n count_occurrences(\n \"EOTSTT\",\n show_labels = \"hidden\"\n )\n\ntbl <- build_table(lyt = lyt, df = adsl_eotstt_added)\ntbl <- prune_table(tbl) # remove rows containing all zeros\n\n# Combine tables\ncol_info(result2) <- col_info(tbl)\nresult3 <- rbind(result2, tbl)\n\nresult3\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————————————————————————\nCOMPLETED 68 (50.7%) 66 (49.3%) 73 (55.3%) 207 (51.7%) \nONGOING 24 (17.9%) 28 (20.9%) 21 (15.9%) 73 (18.2%) \nDISCONTINUED 42 (31.3%) 40 (29.9%) 38 (28.8%) 120 (30.0%) \n Safety \n ADVERSE EVENT 3 (2.2%) 6 (4.5%) 5 (3.8%) 14 (3.5%) \n DEATH 25 (18.7%) 23 (17.2%) 22 (16.7%) 70 (17.5%) \n Non-Safety \n LACK OF EFFICACY 2 (1.5%) 2 (1.5%) 3 (2.3%) 7 (1.8%) \n PHYSICIAN DECISION 2 (1.5%) 3 (2.2%) 2 (1.5%) 7 (1.8%) \n PROTOCOL VIOLATION 5 (3.7%) 3 (2.2%) 4 (3%) 12 (3%) \n WITHDRAWAL BY PARENT/GUARDIAN 4 (3%) 2 (1.5%) 1 (0.8%) 7 (1.8%) \n WITHDRAWAL BY SUBJECT 1 (0.7%) 1 (0.7%) 1 (0.8%) 3 (0.8%) \nCOMPLETED 46 (34.3%) 38 (28.4%) 41 (31.1%) 125 (31.2%) \nONGOING 50 (37.3%) 51 (38.1%) 46 (34.8%) 147 (36.8%) \nDISCONTINUED 38 (28.4%) 45 (33.6%) 45 (34.1%) 128 (32.0%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nset.seed(1, kind = \"Mersenne-Twister\")\nadsl <- random.cdisc.data::cadsl\n\n# reorder EOSSTT factor levels so DISCONTINUED is the last level\nadsl <- df_explicit_na(adsl) %>%\n mutate(EOSSTT = factor(EOSSTT, levels = c(\"COMPLETED\", \"ONGOING\", \"DISCONTINUED\")))\n\nadsl_gp_added <- adsl %>%\n mutate(DCSREASGP = case_when(\n DCSREAS %in% c(\"ADVERSE EVENT\", \"DEATH\") ~ \"Safety\",\n (DCSREAS != \"<Missing>\" & !DCSREAS %in% c(\"ADVERSE EVENT\", \"DEATH\")) ~ \"Non-Safety\",\n DCSREAS == \"<Missing>\" ~ \"<Missing>\"\n ) %>% factor(levels = c(\"Safety\", \"Non-Safety\", \"<Missing>\")))\n\nadsl_eotstt_added <- adsl_gp_added %>%\n mutate(\n EOTSTT = sample(\n c(\"ONGOING\", \"COMPLETED\", \"DISCONTINUED\"),\n size = nrow(adsl),\n replace = TRUE\n ) %>% factor(levels = c(\"COMPLETED\", \"ONGOING\", \"DISCONTINUED\"))\n )", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(\n title = \"Duration of Exposure: Safety-Evaluable Patients\",\n main_footer = \"* Patient Time is the sum of exposure across all patients in days.\",\n show_colcounts = TRUE\n) %>%\n summarize_patients_exposure_in_cols(\n var = \"AVAL\", col_split = TRUE,\n .labels = c(n_patients = \"Number of Patients\", sum_exposure = \"Patient Time*\"),\n custom_label = \"Total Number of Patients and Patient Time\"\n ) %>%\n analyze_patients_exposure_in_cols(\n var = \"aval_months_cat\",\n col_split = FALSE\n ) %>%\n append_topleft(c(\"\", \"Duration of exposure\"))\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_f)\nresult\n\nDuration of Exposure: Safety-Evaluable Patients\n\n——————————————————————————————————————————————————————————————————————————————\n Number of Patients Patient Time*\nDuration of exposure (N=400) (N=400) \n——————————————————————————————————————————————————————————————————————————————\nTotal Number of Patients and Patient Time 217 (54.2%) 20641 \n < 1 month 28 (7.0%) 504 \n 1 to <3 months 79 (19.8%) 4727 \n 3 to <6 months 101 (25.2%) 13690 \n >=6 months 9 (2.2%) 1720 \n——————————————————————————————————————————————————————————————————————————————\n\n* Patient Time is the sum of exposure across all patients in days.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadex <- random.cdisc.data::cadex\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadex <- df_explicit_na(adex)\n\n# Simulate ADEX records with PARAMCD == \"TDURD\" as they are not in sample random.cdisc.data dataset.\nset.seed(1, kind = \"Mersenne-Twister\")\nadex2 <- adex %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE)\n ) %>%\n bind_rows(adex)\n\n# Now pre-processing steps are carried out.\nanl <- adex2 %>%\n filter(\n PARAMCD == \"TDURD\",\n PARCAT2 == \"Drug A\",\n SAFFL == \"Y\"\n ) %>%\n mutate(\n aval_months = day2month(AVAL),\n aval_months_cat = factor(case_when(\n aval_months < 1 ~ \"< 1 month\",\n aval_months >= 1 & aval_months < 3 ~ \"1 to <3 months\",\n aval_months >= 3 & aval_months < 6 ~ \"3 to <6 months\",\n TRUE ~ \">=6 months\"\n ), levels = c(\"< 1 month\", \"1 to <3 months\", \"3 to <6 months\", \">=6 months\"))\n )\n\nadsl_f <- adsl %>% filter(adsl$SAFFL == \"Y\")", "crumbs": [ "Tables", - "Disposition", - "DST01" + "Risk Management Plan", + "RMPT01" ] }, { - "objectID": "tables/disposition/dst01.html#teal-app", - "href": "tables/disposition/dst01.html#teal-app", - "title": "DST01", + "objectID": "tables/risk-management-plan/rmpt01.html#teal-app", + "href": "tables/risk-management-plan/rmpt01.html#teal-app", + "title": "RMPT01", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n set.seed(1, kind = \"Mersenne-Twister\")\n ADSL <- random.cdisc.data::cadsl\n ADSL <- df_explicit_na(ADSL)\n ADSL <- ADSL %>%\n mutate(\n DCSREASGP = case_when(\n DCSREAS %in% c(\"ADVERSE EVENT\", \"DEATH\") ~ \"Safety\",\n (DCSREAS != \"<Missing>\" & !DCSREAS %in% c(\"ADVERSE EVENT\", \"DEATH\")) ~ \"Non-Safety\",\n DCSREAS == \"<Missing>\" ~ \"<Missing>\"\n ) %>% as.factor(),\n EOTSTT = sample(\n c(\"ONGOING\", \"COMPLETED\", \"DISCONTINUED\"),\n size = nrow(ADSL),\n replace = TRUE\n ) %>% as.factor()\n ) %>%\n col_relabel(\n EOTSTT = \"End Of Treatment Status\"\n )\n\n date_vars_asl <- names(ADSL)[vapply(ADSL, function(x) inherits(x, c(\"Date\", \"POSIXct\", \"POSIXlt\")), logical(1))]\n demog_vars_asl <- names(ADSL)[!(names(ADSL) %in% c(\"USUBJID\", \"STUDYID\", date_vars_asl))]\n})\ndatanames <- \"ADSL\"\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\ndemog_vars_asl <- data[[\"demog_vars_asl\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary(\n label = \"Disposition Table\",\n dataname = \"ADSL\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n summarize_vars = choices_selected(\n variable_choices(ADSL, demog_vars_asl),\n c(\"EOSSTT\", \"DCSREAS\", \"EOTSTT\")\n ),\n useNA = \"ifany\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n set.seed(1, kind = \"Mersenne-Twister\")\n ADSL <- random.cdisc.data::cadsl\n ADSL <- df_explicit_na(ADSL)\n ADSL <- ADSL %>%\n mutate(\n DCSREASGP = case_when(\n DCSREAS %in% c(\"ADVERSE EVENT\", \"DEATH\") ~ \"Safety\",\n (DCSREAS != \"<Missing>\" & !DCSREAS %in% c(\"ADVERSE EVENT\", \"DEATH\")) ~ \"Non-Safety\",\n DCSREAS == \"<Missing>\" ~ \"<Missing>\"\n ) %>% as.factor(),\n EOTSTT = sample(\n c(\"ONGOING\", \"COMPLETED\", \"DISCONTINUED\"),\n size = nrow(ADSL),\n replace = TRUE\n ) %>% as.factor()\n ) %>%\n col_relabel(\n EOTSTT = \"End Of Treatment Status\"\n )\n\n date_vars_asl <- names(ADSL)[vapply(ADSL, function(x) inherits(x, c(\"Date\", \"POSIXct\", \"POSIXlt\")), logical(1))]\n demog_vars_asl <- names(ADSL)[!(names(ADSL) %in% c(\"USUBJID\", \"STUDYID\", date_vars_asl))]\n})\ndatanames <- \"ADSL\"\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\ndemog_vars_asl <- data[[\"demog_vars_asl\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary(\n label = \"Disposition Table\",\n dataname = \"ADSL\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n summarize_vars = choices_selected(\n variable_choices(ADSL, demog_vars_asl),\n c(\"EOSSTT\", \"DCSREAS\", \"EOTSTT\")\n ),\n useNA = \"ifany\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\"\n ) %>%\n bind_rows(ADEX)\n\n ADEX <- ADEX %>%\n mutate(\n aval_months = day2month(AVAL),\n aval_months_cat = factor(case_when(\n aval_months < 1 ~ \"< 1 month\",\n aval_months >= 1 & aval_months < 3 ~ \"1 to <3 months\",\n aval_months >= 3 & aval_months < 6 ~ \"3 to <6 months\",\n TRUE ~ \">=6 months\"\n ), levels = c(\"< 1 month\", \"1 to <3 months\", \"3 to <6 months\", \">=6 months\")) %>% with_label(\"Overall duration\")\n ) %>%\n select(-aval_months)\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"aval_months_cat\", \"RACE\", \"STRATA1\", \"SEX\")),\n selected = \"aval_months_cat\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\"\n ) %>%\n bind_rows(ADEX)\n\n ADEX <- ADEX %>%\n mutate(\n aval_months = day2month(AVAL),\n aval_months_cat = factor(case_when(\n aval_months < 1 ~ \"< 1 month\",\n aval_months >= 1 & aval_months < 3 ~ \"1 to <3 months\",\n aval_months >= 3 & aval_months < 6 ~ \"3 to <6 months\",\n TRUE ~ \">=6 months\"\n ), levels = c(\"< 1 month\", \"1 to <3 months\", \"3 to <6 months\", \">=6 months\")) %>% with_label(\"Overall duration\")\n ) %>%\n select(-aval_months)\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"aval_months_cat\", \"RACE\", \"STRATA1\", \"SEX\")),\n selected = \"aval_months_cat\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Disposition", - "DST01" + "Risk Management Plan", + "RMPT01" ] }, { - "objectID": "tables/disposition/dst01.html#reproducibility", - "href": "tables/disposition/dst01.html#reproducibility", - "title": "DST01", + "objectID": "tables/risk-management-plan/rmpt01.html#reproducibility", + "href": "tables/risk-management-plan/rmpt01.html#reproducibility", + "title": "RMPT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:03:28 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:57:36 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Disposition", - "DST01" + "Risk Management Plan", + "RMPT01" ] }, { - "objectID": "tables/exposure/ext01.html#output", - "href": "tables/exposure/ext01.html#output", - "title": "EXT01", + "objectID": "tables/risk-management-plan/rmpt05.html#output", + "href": "tables/risk-management-plan/rmpt05.html#output", + "title": "RMPT05", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable with Optional Analyses\nTable with User-Specified Categories for Missed Doses\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# When summary table contains only categorical or only numeric parameters\n\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\"PARCAT2\", split_label = \"\\nParameter Category (Drug A/Drug B)\", label_pos = \"topleft\") %>%\n split_rows_by(\"PARAM\", split_fun = split_fun) %>%\n analyze_vars(vars = \"AVAL\")\n\nresult <- build_table(lyt = lyt, df = adex, alt_counts_df = adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination \nParameter Category (Drug A/Drug B) (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————\nDrug A \n Overall duration (days) \n n 75 67 75 \n Mean (SD) 74.3 (41.6) 79.0 (43.1) 74.2 (39.5) \n Median 77.0 80.0 78.0 \n Min - Max 5.0 - 149.0 2.0 - 150.0 1.0 - 147.0 \n Total dose administered \n n 75 67 75 \n Mean (SD) 6675.2 (1110.9) 6505.1 (1249.3) 6982.4 (1272.5)\n Median 6720.0 6480.0 7200.0 \n Min - Max 4800.0 - 9360.0 4080.0 - 9360.0 4320.0 - 9360.0\n Total number of doses administered \n n 75 67 75 \n Mean (SD) 7.0 (0.0) 7.0 (0.0) 7.0 (0.0) \n Median 7.0 7.0 7.0 \n Min - Max 7.0 - 7.0 7.0 - 7.0 7.0 - 7.0 \n Total number of missed doses during study \n n 75 67 75 \n Mean (SD) 10.5 (5.9) 10.0 (6.1) 9.5 (5.5) \n Median 10.0 11.0 9.0 \n Min - Max 0.0 - 20.0 0.0 - 19.0 0.0 - 20.0 \nDrug B \n Overall duration (days) \n n 59 67 57 \n Mean (SD) 77.5 (40.5) 76.3 (41.0) 69.5 (46.2) \n Median 79.0 76.0 65.0 \n Min - Max 2.0 - 149.0 5.0 - 148.0 1.0 - 149.0 \n Total dose administered \n n 59 67 57 \n Mean (SD) 6630.5 (1334.0) 6297.3 (1291.1) 6505.3 (1080.7)\n Median 6720.0 6240.0 6480.0 \n Min - Max 4320.0 - 8880.0 4080.0 - 9120.0 4320.0 - 8640.0\n Total number of doses administered \n n 59 67 57 \n Mean (SD) 7.0 (0.0) 7.0 (0.0) 7.0 (0.0) \n Median 7.0 7.0 7.0 \n Min - Max 7.0 - 7.0 7.0 - 7.0 7.0 - 7.0 \n Total number of missed doses during study \n n 59 67 57 \n Mean (SD) 9.1 (6.5) 10.0 (6.3) 10.7 (5.8) \n Median 9.0 10.0 11.0 \n Min - Max 0.0 - 20.0 0.0 - 20.0 1.0 - 20.0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# When summary table contains both categorical and numeric parameters,\n# developer needs to do pre-processing to transform dataset to wide format.\nadex_avalc_wide <- adex %>%\n filter(PARAMCD == \"TDURD\") %>%\n select(STUDYID, USUBJID, PARAMCD, AVALC, PARCAT2) %>%\n tidyr::pivot_wider(\n id_cols = c(STUDYID, USUBJID, PARCAT2),\n names_from = PARAMCD,\n values_from = AVALC\n ) %>%\n mutate(\n TDURDC = factor(TDURD, levels = c(\"0 - 30\", \"31 - 60\", \"61 - 90\", \">= 91\"))\n ) %>%\n select(-TDURD)\n\nanl <- adex %>%\n select(STUDYID, USUBJID, ACTARM, PARAMCD, AVAL, PARCAT2) %>%\n tidyr::pivot_wider(\n id_cols = c(STUDYID, USUBJID, ACTARM, PARCAT2),\n names_from = PARAMCD,\n values_from = AVAL\n ) %>%\n left_join(adex_avalc_wide, by = c(\"STUDYID\", \"USUBJID\", \"PARCAT2\")) %>%\n var_relabel(\n TDOSE = \"Total dose administered\",\n TNDOSE = \"Total number of doses administered\",\n TDURD = \"Overall duration (days)\",\n TNDOSMIS = \"Total number of missed doses during study\",\n TDURDC = \"Overall duration (days)\"\n )\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\"PARCAT2\", split_label = \"\\nParameter Category (Drug A/Drug B)\", label_pos = \"topleft\") %>%\n analyze_vars(\n vars = c(\"TDURD\", \"TDURDC\", \"TDOSE\", \"TNDOSE\"),\n var_labels = var_labels(anl)[c(\"TDURD\", \"TDURDC\", \"TDOSE\", \"TNDOSE\")]\n )\n\nresult <- build_table(lyt = lyt, df = anl, alt_counts_df = adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination \nParameter Category (Drug A/Drug B) (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————\nDrug A \n Overall duration (days) \n n 75 67 75 \n Mean (SD) 74.3 (41.6) 79.0 (43.1) 74.2 (39.5) \n Median 77.0 80.0 78.0 \n Min - Max 5.0 - 149.0 2.0 - 150.0 1.0 - 147.0 \n Overall duration (days) \n n 75 67 75 \n 0 - 30 12 (16%) 12 (17.9%) 15 (20%) \n 31 - 60 18 (24%) 12 (17.9%) 14 (18.7%) \n 61 - 90 19 (25.3%) 15 (22.4%) 18 (24%) \n >= 91 26 (34.7%) 28 (41.8%) 28 (37.3%) \n Total dose administered \n n 75 67 75 \n Mean (SD) 6675.2 (1110.9) 6505.1 (1249.3) 6982.4 (1272.5)\n Median 6720.0 6480.0 7200.0 \n Min - Max 4800.0 - 9360.0 4080.0 - 9360.0 4320.0 - 9360.0\n Total number of doses administered \n n 75 67 75 \n Mean (SD) 7.0 (0.0) 7.0 (0.0) 7.0 (0.0) \n Median 7.0 7.0 7.0 \n Min - Max 7.0 - 7.0 7.0 - 7.0 7.0 - 7.0 \nDrug B \n Overall duration (days) \n n 59 67 57 \n Mean (SD) 77.5 (40.5) 76.3 (41.0) 69.5 (46.2) \n Median 79.0 76.0 65.0 \n Min - Max 2.0 - 149.0 5.0 - 148.0 1.0 - 149.0 \n Overall duration (days) \n n 59 67 57 \n 0 - 30 8 (13.6%) 10 (14.9%) 16 (28.1%) \n 31 - 60 14 (23.7%) 16 (23.9%) 12 (21.1%) \n 61 - 90 15 (25.4%) 17 (25.4%) 11 (19.3%) \n >= 91 22 (37.3%) 24 (35.8%) 18 (31.6%) \n Total dose administered \n n 59 67 57 \n Mean (SD) 6630.5 (1334.0) 6297.3 (1291.1) 6505.3 (1080.7)\n Median 6720.0 6240.0 6480.0 \n Min - Max 4320.0 - 8880.0 4080.0 - 9120.0 4320.0 - 8640.0\n Total number of doses administered \n n 59 67 57 \n Mean (SD) 7.0 (0.0) 7.0 (0.0) 7.0 (0.0) \n Median 7.0 7.0 7.0 \n Min - Max 7.0 - 7.0 7.0 - 7.0 7.0 - 7.0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# When summary table contains both categorical and numeric parameters,\n# developer needs to do pre-processing to transform dataset to wide format.\nadex_avalc_wide <- adex %>%\n filter(PARAMCD == \"TDURD\") %>%\n select(STUDYID, USUBJID, PARAMCD, AVALC, PARCAT2) %>%\n tidyr::pivot_wider(\n id_cols = c(STUDYID, USUBJID, PARCAT2),\n names_from = PARAMCD,\n values_from = AVALC\n ) %>%\n mutate(\n TDURDC = factor(TDURD, levels = c(\"0 - 30\", \"31 - 60\", \"61 - 90\", \">= 91\"))\n ) %>%\n select(-TDURD)\n\nanl <- adex %>%\n select(STUDYID, USUBJID, ACTARM, PARAMCD, AVAL, PARCAT2) %>%\n tidyr::pivot_wider(\n id_cols = c(STUDYID, USUBJID, ACTARM, PARCAT2),\n names_from = PARAMCD,\n values_from = AVAL\n ) %>%\n left_join(adex_avalc_wide, by = c(\"STUDYID\", \"USUBJID\", \"PARCAT2\")) %>%\n var_relabel(\n TDOSE = \"Total dose administered\",\n TNDOSE = \"Total number of doses administered\",\n TDURD = \"Overall duration (days)\",\n TNDOSMIS = \"Total number of missed doses during study\",\n TDURDC = \"Overall duration (days)\"\n )\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\"PARCAT2\", split_label = \"\\nParameter Category (Drug A/Drug B)\", label_pos = \"topleft\") %>%\n analyze_vars(\n vars = c(\"TDURD\", \"TDURDC\", \"TDOSE\", \"TNDOSE\"),\n var_labels = var_labels(anl)[c(\"TDURD\", \"TDURDC\", \"TDOSE\", \"TNDOSE\")]\n ) %>%\n count_missed_doses(\n \"TNDOSMIS\",\n thresholds = c(1, 5, 10, 15),\n var_labels = \"Missed Doses\"\n )\n\nresult <- build_table(lyt = lyt, df = anl, alt_counts_df = adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination \nParameter Category (Drug A/Drug B) (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————\nDrug A \n Overall duration (days) \n n 75 67 75 \n Mean (SD) 74.3 (41.6) 79.0 (43.1) 74.2 (39.5) \n Median 77.0 80.0 78.0 \n Min - Max 5.0 - 149.0 2.0 - 150.0 1.0 - 147.0 \n Overall duration (days) \n n 75 67 75 \n 0 - 30 12 (16%) 12 (17.9%) 15 (20%) \n 31 - 60 18 (24%) 12 (17.9%) 14 (18.7%) \n 61 - 90 19 (25.3%) 15 (22.4%) 18 (24%) \n >= 91 26 (34.7%) 28 (41.8%) 28 (37.3%) \n Total dose administered \n n 75 67 75 \n Mean (SD) 6675.2 (1110.9) 6505.1 (1249.3) 6982.4 (1272.5)\n Median 6720.0 6480.0 7200.0 \n Min - Max 4800.0 - 9360.0 4080.0 - 9360.0 4320.0 - 9360.0\n Total number of doses administered \n n 75 67 75 \n Mean (SD) 7.0 (0.0) 7.0 (0.0) 7.0 (0.0) \n Median 7.0 7.0 7.0 \n Min - Max 7.0 - 7.0 7.0 - 7.0 7.0 - 7.0 \n Missed Doses \n n 75 67 75 \n At least 1 missed dose 74 (55.2%) 63 (47%) 73 (55.3%) \n At least 5 missed doses 59 (44%) 49 (36.6%) 59 (44.7%) \n At least 10 missed doses 41 (30.6%) 38 (28.4%) 37 (28%) \n At least 15 missed doses 26 (19.4%) 21 (15.7%) 16 (12.1%) \nDrug B \n Overall duration (days) \n n 59 67 57 \n Mean (SD) 77.5 (40.5) 76.3 (41.0) 69.5 (46.2) \n Median 79.0 76.0 65.0 \n Min - Max 2.0 - 149.0 5.0 - 148.0 1.0 - 149.0 \n Overall duration (days) \n n 59 67 57 \n 0 - 30 8 (13.6%) 10 (14.9%) 16 (28.1%) \n 31 - 60 14 (23.7%) 16 (23.9%) 12 (21.1%) \n 61 - 90 15 (25.4%) 17 (25.4%) 11 (19.3%) \n >= 91 22 (37.3%) 24 (35.8%) 18 (31.6%) \n Total dose administered \n n 59 67 57 \n Mean (SD) 6630.5 (1334.0) 6297.3 (1291.1) 6505.3 (1080.7)\n Median 6720.0 6240.0 6480.0 \n Min - Max 4320.0 - 8880.0 4080.0 - 9120.0 4320.0 - 8640.0\n Total number of doses administered \n n 59 67 57 \n Mean (SD) 7.0 (0.0) 7.0 (0.0) 7.0 (0.0) \n Median 7.0 7.0 7.0 \n Min - Max 7.0 - 7.0 7.0 - 7.0 7.0 - 7.0 \n Missed Doses \n n 59 67 57 \n At least 1 missed dose 56 (41.8%) 63 (47%) 57 (43.2%) \n At least 5 missed doses 41 (30.6%) 50 (37.3%) 47 (35.6%) \n At least 10 missed doses 27 (20.1%) 36 (26.9%) 31 (23.5%) \n At least 15 missed doses 17 (12.7%) 18 (13.4%) 20 (15.2%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(tidyr)\n\nadsl <- random.cdisc.data::cadsl\nadex <- random.cdisc.data::cadex\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadex <- df_explicit_na(adex)\n\nadex <- adex %>%\n filter(PARCAT1 == \"OVERALL\") %>%\n select(STUDYID, USUBJID, ACTARM, PARAMCD, PARAM, AVAL, PARCAT2) %>%\n mutate(\n PARAMCD = as.character(PARAMCD),\n AVALC = \"\"\n ) %>%\n droplevels()\n\n# Add new param tdurd for treatment duration.\nset.seed(99)\ntdurd_adsl <- adsl %>%\n select(STUDYID, USUBJID, ACTARM) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(1:150, size = nrow(adsl), replace = TRUE),\n AVALC = case_when(\n 0 <= AVAL & AVAL <= 30 ~ \"0 - 30\",\n 31 <= AVAL & AVAL <= 60 ~ \"31 - 60\",\n 61 <= AVAL & AVAL <= 90 ~ \"61 - 90\",\n TRUE ~ \">= 91\"\n )\n )\ntdurd <- adex %>%\n filter(PARAMCD == \"TNDOSE\") %>%\n select(STUDYID, USUBJID, PARCAT2) %>%\n left_join(tdurd_adsl, by = c(\"STUDYID\", \"USUBJID\"))\n\n# Add new param tndosmis for missed doses.\ntndosmis_adsl <- adsl %>%\n select(STUDYID, USUBJID, ACTARM) %>%\n mutate(\n PARAMCD = \"TNDOSMIS\",\n PARAM = \"Total number of missed doses during study\",\n AVAL = sample(0:20, size = nrow(adsl), replace = TRUE),\n AVALC = \"\"\n )\ntndosmis <- adex %>%\n filter(PARAMCD == \"TNDOSE\") %>%\n select(STUDYID, USUBJID, PARCAT2) %>%\n left_join(tndosmis_adsl, by = c(\"STUDYID\", \"USUBJID\"))\n\nadex <- dplyr::bind_rows(adex, tdurd, tndosmis) %>%\n mutate(PARAM = factor(\n PARAM,\n levels = c(\n \"Overall duration (days)\", \"Total dose administered\", \"Total number of doses administered\",\n \"Total number of missed doses during study\"\n )\n ))", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(\n title = \"Extent of Exposure by Race: Safety-Evaluable Patients\",\n main_footer = \"* Person time is the sum of exposure across all patients in unit: days.\",\n show_colcounts = TRUE\n) %>%\n summarize_patients_exposure_in_cols(\n var = \"AVAL\", col_split = TRUE,\n .labels = c(n_patients = \"Patients\", sum_exposure = \"Person time*\")\n ) %>%\n analyze_patients_exposure_in_cols(\n var = \"RACE\",\n col_split = FALSE\n ) %>%\n append_topleft(c(\"\", obj_label(adex$RACE)))\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_f)\nresult\n\nExtent of Exposure by Race: Safety-Evaluable Patients\n\n————————————————————————————————————————————————————————————————————————\n Patients Person time*\nRace (N=400) (N=400) \n————————————————————————————————————————————————————————————————————————\nTotal patients numbers/person time 217 (54.2%) 20641 \n ASIAN 113 (28.2%) 10239 \n BLACK OR AFRICAN AMERICAN 48 (12.0%) 4481 \n WHITE 40 (10.0%) 4237 \n AMERICAN INDIAN OR ALASKA NATIVE 14 (3.5%) 1566 \n MULTIPLE 1 (0.2%) 58 \n NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 1 (0.2%) 60 \n OTHER 0 (0.0%) 0 \n UNKNOWN 0 (0.0%) 0 \n————————————————————————————————————————————————————————————————————————\n\n* Person time is the sum of exposure across all patients in unit: days.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadex <- random.cdisc.data::cadex\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadex <- df_explicit_na(adex)\n\n# Simulate ADEX records with PARAMCD == \"TDURD\" as they are not in the sample dataset.\nset.seed(1)\nadex2 <- adex %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE)\n ) %>%\n bind_rows(adex)\n\n# Now pre-processing steps are carried out.\nanl <- adex2 %>%\n filter(\n PARAMCD == \"TDURD\",\n PARCAT2 == \"Drug A\",\n SAFFL == \"Y\"\n ) %>%\n mutate()\n\nadsl_f <- adsl %>% filter(adsl$SAFFL == \"Y\")", "crumbs": [ "Tables", - "Exposure", - "EXT01" + "Risk Management Plan", + "RMPT05" ] }, { - "objectID": "tables/exposure/ext01.html#teal-app", - "href": "tables/exposure/ext01.html#teal-app", - "title": "EXT01", + "objectID": "tables/risk-management-plan/rmpt05.html#teal-app", + "href": "tables/risk-management-plan/rmpt05.html#teal-app", + "title": "RMPT05", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n adex_labels <- unname(col_labels(ADEX))\n ADEX <- ADEX %>%\n filter(PARCAT1 == \"OVERALL\") %>%\n mutate(\n AVALCAT1 = case_when(\n PARAMCD == \"TDOSE\" & AVAL < 5000 ~ \"LOW\",\n PARAMCD == \"TDOSE\" & AVAL >= 5000 ~ \"HIGH\",\n PARAMCD == \"TNDOSE\" & AVAL < 10 ~ \"< 10\",\n PARAMCD == \"TNDOSE\" & AVAL >= 10 ~ \">= 10\"\n )\n )\n col_labels(ADEX) <- c(adex_labels, \"\")\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Exposure Table\",\n dataname = \"ADEX\",\n arm_var = choices_selected(\n choices = variable_choices(ADEX, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEX, c(\"PARCAT2\", \"PARAM\")),\n selected = c(\"PARCAT2\", \"PARAM\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADEX, c(\"AVAL\", \"AVALCAT1\")),\n selected = c(\"AVAL\", \"AVALCAT1\")\n ),\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = c(\"TDOSE\", \"TNDOSE\")\n ),\n denominator = choices_selected(\n choices = c(\"n\", \"N\", \"omit\"),\n selected = \"N\"\n )\n )\n ), # Set initial filter state as single study drug to produce smaller table\n filter = teal_slices(\n teal_slice(\"ADEX\", \"PARCAT2\", selected = \"Drug A\"),\n teal_slice(\"ADEX\", \"AVAL\", selected = NULL)\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n adex_labels <- unname(col_labels(ADEX))\n ADEX <- ADEX %>%\n filter(PARCAT1 == \"OVERALL\") %>%\n mutate(\n AVALCAT1 = case_when(\n PARAMCD == \"TDOSE\" & AVAL < 5000 ~ \"LOW\",\n PARAMCD == \"TDOSE\" & AVAL >= 5000 ~ \"HIGH\",\n PARAMCD == \"TNDOSE\" & AVAL < 10 ~ \"< 10\",\n PARAMCD == \"TNDOSE\" & AVAL >= 10 ~ \">= 10\"\n )\n )\n col_labels(ADEX) <- c(adex_labels, \"\")\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Exposure Table\",\n dataname = \"ADEX\",\n arm_var = choices_selected(\n choices = variable_choices(ADEX, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEX, c(\"PARCAT2\", \"PARAM\")),\n selected = c(\"PARCAT2\", \"PARAM\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADEX, c(\"AVAL\", \"AVALCAT1\")),\n selected = c(\"AVAL\", \"AVALCAT1\")\n ),\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = c(\"TDOSE\", \"TNDOSE\")\n ),\n denominator = choices_selected(\n choices = c(\"n\", \"N\", \"omit\"),\n selected = \"N\"\n )\n )\n ), # Set initial filter state as single study drug to produce smaller table\n filter = teal_slices(\n teal_slice(\"ADEX\", \"PARCAT2\", selected = \"Drug A\"),\n teal_slice(\"ADEX\", \"AVAL\", selected = NULL)\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n\n labels <- col_labels(ADEX)\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\"\n ) %>%\n bind_rows(ADEX)\n\n col_labels(ADEX) <- labels\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"RACE\", \"STRATA1\", \"SEX\")),\n selected = \"RACE\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n\n labels <- col_labels(ADEX)\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\"\n ) %>%\n bind_rows(ADEX)\n\n col_labels(ADEX) <- labels\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"RACE\", \"STRATA1\", \"SEX\")),\n selected = \"RACE\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Exposure", - "EXT01" + "Risk Management Plan", + "RMPT05" ] }, { - "objectID": "tables/exposure/ext01.html#reproducibility", - "href": "tables/exposure/ext01.html#reproducibility", - "title": "EXT01", + "objectID": "tables/risk-management-plan/rmpt05.html#reproducibility", + "href": "tables/risk-management-plan/rmpt05.html#reproducibility", + "title": "RMPT05", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:03:00 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr * 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:56:56 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Exposure", - "EXT01" + "Risk Management Plan", + "RMPT05" ] }, { - "objectID": "tables/adverse-events/aet09_smq.html#output", - "href": "tables/adverse-events/aet09_smq.html#output", - "title": "AET09_SMQ", + "objectID": "tables/pharmacokinetic/pkpt02.html#output", + "href": "tables/pharmacokinetic/pkpt02.html#output", + "title": "PKPT02", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable with Customized Queries\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecriteria_fun <- function(tr) !is(tr, \"ContentRow\") && all_zero_or_na(tr)\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\"\n )\n ) %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = trim_levels_in_group(\"AEDECOD\", drop_outlevs = FALSE),\n label_pos = \"topleft\",\n split_label = \"Standardized MedDRA Query\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = -1L,\n drop = FALSE\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt,\n df = adae_smq_1,\n alt_counts_df = adsl\n) %>%\n sort_at_path(path = c(\"SMQ\"), scorefun = cont_n_allcols) %>%\n sort_at_path(path = c(\"SMQ\", \"*\", \"AEDECOD\"), scorefun = score_occurrences, na.pos = \"last\") %>%\n trim_rows(criteria = criteria_fun)\n\nresult\n\nStandardized MedDRA Query ARM A ARM B ARM C \n Dictionary-Derived Term (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 43 (32.1%) 46 (34.3%) 43 (32.6%)\nC.1.1.1.3/B.2.2.3.1 AESI(BROAD) \n Total number of patients with at least one adverse event 43 (32.1%) 46 (34.3%) 43 (32.6%)\n Total number of events 55 63 64 \n dcd C.1.1.1.3 43 (32.1%) 46 (34.3%) 43 (32.6%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecriteria_fun <- function(tr) {\n !is(tr, \"ContentRow\") && all_zero_or_na(tr) && !grepl(\"Total number of\", obj_label(tr))\n}\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\"\n )\n ) %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = trim_levels_in_group(\"AEDECOD\", drop_outlevs = FALSE),\n label_pos = \"topleft\",\n split_label = \"Standardized MedDRA Query\"\n ) %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n ),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n drop = FALSE\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nscore_ae_pts <- function(tt) {\n count_vals <- cell_values(tree_children(tt)[[\"USUBJID\"]])[[1]]\n sum(matrix(unlist(count_vals), nrow = length(count_vals), byrow = TRUE)[, 1])\n}\n\nresult <- build_table(\n lyt,\n df = adae_smq_all,\n alt_counts_df = adsl\n) %>%\n sort_at_path(path = c(\"SMQ\"), scorefun = score_ae_pts) %>%\n sort_at_path(path = c(\"SMQ\", \"*\", \"AEDECOD\"), scorefun = score_occurrences, na.pos = \"last\") %>%\n trim_rows(criteria = criteria_fun)\n\nresult\n\nStandardized MedDRA Query ARM A ARM B ARM C \n Dictionary-Derived Term (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 69 (51.5%) 78 (58.2%) 77 (58.3%)\nD.2.1.5.3/A.1.1.1.1 AESI \n Total number of patients with at least one adverse event 47 (35.1%) 58 (43.3%) 57 (43.2%)\n Total number of events 62 72 74 \n dcd D.2.1.5.3 47 (35.1%) 58 (43.3%) 57 (43.2%)\nC.1.1.1.3/B.2.2.3.1 AESI(BROAD) \n Total number of patients with at least one adverse event 43 (32.1%) 46 (34.3%) 43 (32.6%)\n Total number of events 55 63 64 \n dcd C.1.1.1.3 43 (32.1%) 46 (34.3%) 43 (32.6%)\nnon observed SMQ02NAM level(BROAD) \n Total number of patients with at least one adverse event 0 0 0 \n Total number of events 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(stringr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing\n# levels. For details, refer to Teal and Study Data article.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\n# AEs are filtered for relatedness to study drug.\nadae_rel <- adae %>% filter(AEREL == \"Y\")\n\n# Simulate a random AAG dataset.\naag <- data.frame(\n NAMVAR = c(\"SMQ01NAM\", \"SMQ01NAM\", \"SMQ02NAM\", \"CQ01NAM\", \"CQ01NAM\"),\n SRCVAR = rep(\"AEDECOD\", 5),\n GRPTYPE = c(\"SMQ\", \"SMQ\", \"SMQ\", \"CUSTOM\", \"CUSTOM\"),\n REFID = c(1, 1, 2, 3, 3),\n REFNAME = c(rep(\"C.1.1.1.3/B.2.2.3.1 AESI\", 2), \"non observed SMQ02NAM level\", rep(\"D.2.1.5.3/A.1.1.1.1 AESI\", 2)),\n SCOPE = c(\"BROAD\", \"BROAD\", \"BROAD\", \"\", \"\"),\n REFTERM = c(\"C.1.1.1.3\", \"B.2.2.3.1\", \"Z.9.9.9.9\", \"D.2.1.5.3\", \"A.1.1.1.1\"),\n stringsAsFactors = FALSE\n)\n\n# Create summary AAG dataset (used for labelling).\n# Note it's important to incorporate SCOPE into the basket names for SMQs so as to\n# match the flags present in ADAE.\naag_summary <- aag %>%\n select(NAMVAR, REFNAME, SCOPE) %>%\n unique() %>%\n mutate(\n REFNAME_SCOPE = ifelse(SCOPE == \"\", REFNAME, paste0(REFNAME, \"(\", SCOPE, \")\"))\n ) %>%\n rename(basket = NAMVAR, basket_name = REFNAME_SCOPE) %>%\n select(basket, basket_name)\n\n# Make a summary of the full ADAE based on AAG by using h_stack_by_baskets helper function\nadae_smq_all <- h_stack_by_baskets(\n df = adae_rel,\n aag_summary = aag_summary,\n keys = c(\"STUDYID\", \"USUBJID\", \"ACTARMCD\", \"AEDECOD\")\n)\n\n# Post-process adae_smq_all to keep only certain baskets of interest for variant 1\n# Not need to drop baskets for variant 2 as all baskets will be considered.\nbaskets_to_drop_variant <- aag_summary$basket_name[!aag_summary$basket %in% c(\"SMQ01NAM\")]\n\n# Adjust the analysis dataset based on basket subset for variant 1.\nadae_smq_1 <- adae_smq_all %>%\n filter(!adae_smq_all$SMQ %in% baskets_to_drop_variant) %>%\n mutate(\n SMQ = tern::fct_discard(SMQ, discard = baskets_to_drop_variant)\n )", - "crumbs": [ - "Tables", - "Adverse Events", - "AET09_SMQ" - ] - }, - { - "objectID": "tables/adverse-events/aet09_smq.html#teal-app", - "href": "tables/adverse-events/aet09_smq.html#teal-app", - "title": "AET09_SMQ", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\nNote that filtering AEs for relatedness to study drug is not a necessary data pre-processing step for the module. It can be achieved using the teal module filter panel. The example here pre-sets the filters using AEREL = \"Y\" in adae.\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\n\nnames_baskets <- grep(\"^(SMQ|CQ).*NAM$\", names(ADAE), value = TRUE)\nnames_scopes <- grep(\"^SMQ.*SC$\", names(ADAE), value = TRUE)\n\ncs_baskets <- choices_selected(\n choices = variable_choices(ADAE, subset = names_baskets),\n selected = names_baskets\n)\ncs_scopes <- choices_selected(\n choices = variable_choices(ADAE, subset = names_scopes),\n selected = names_scopes,\n fixed = TRUE\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_smq(\n label = \"Adverse Events by SMQ Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"SEX\")),\n selected = \"ARM\"\n ),\n add_total = FALSE,\n baskets = cs_baskets,\n scopes = cs_scopes,\n llt = choices_selected(\n choices = variable_choices(ADAE, subset = c(\"AEDECOD\")),\n selected = \"AEDECOD\"\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADAE\", \"AEREL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\n\nnames_baskets <- grep(\"^(SMQ|CQ).*NAM$\", names(ADAE), value = TRUE)\nnames_scopes <- grep(\"^SMQ.*SC$\", names(ADAE), value = TRUE)\n\ncs_baskets <- choices_selected(\n choices = variable_choices(ADAE, subset = names_baskets),\n selected = names_baskets\n)\ncs_scopes <- choices_selected(\n choices = variable_choices(ADAE, subset = names_scopes),\n selected = names_scopes,\n fixed = TRUE\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_smq(\n label = \"Adverse Events by SMQ Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"SEX\")),\n selected = \"ARM\"\n ),\n add_total = FALSE,\n baskets = cs_baskets,\n scopes = cs_scopes,\n llt = choices_selected(\n choices = variable_choices(ADAE, subset = c(\"AEDECOD\")),\n selected = \"AEDECOD\"\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADAE\", \"AEREL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", + "text": "Output\n\n\nStandard Table – Plasma\nData Setup\n\n\n\n\nCode# lyt creation\nlyt <- basic_table() %>%\n split_cols_by(\n var = \"ARMCD\",\n split_fun = trim_levels_in_group(\"ARMCD\"),\n split_label = \"Treatment Arm\"\n ) %>%\n split_rows_by(\n var = \"PKPARAM\",\n label_pos = \"topleft\",\n split_label = \"PK Parameter\"\n ) %>%\n tern::analyze_vars(\n vars = \"AVAL\",\n .stats = c(\"n\", \"mean_sd\", \"cv\", \"geom_mean\", \"geom_cv\", \"median\", \"range\"),\n .formats = c(\n n = \"xx.\",\n mean_sd = format_sigfig(3, \"xx (xx)\"),\n cv = \"xx.x\",\n geom_mean = format_sigfig(3),\n geom_cv = \"xx.x\",\n median = format_sigfig(3),\n range = format_sigfig(3, \"xx - xx\")\n )\n )\n\n\nPlasma Drug X\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp0 <- adpp %>%\n filter(PPCAT == \"Plasma Drug X\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp0)\nmain_title(result) <- paste(\"Summary of\", unique(adpp0$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp0$PPCAT), \"\\nVisit:\", unique(adpp0$AVISIT))\nresult\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1\n\n———————————————————————————————————————————————————\nPK Parameter ARM A ARM C \n———————————————————————————————————————————————————\nCmax (ug/mL) \n n 134 132 \n Mean (SD) 30.2 (6.24) 30.0 (5.46) \n CV (%) 20.6 18.2 \n Geometric Mean 29.6 29.5 \n CV % Geometric Mean 21.0 18.9 \n Median 29.9 29.8 \n Min - Max 17.5 - 48.7 15.9 - 47.6 \nAUCinf obs (day*ug/mL) \n n 134 132 \n Mean (SD) 203 (37.7) 195 (37.8) \n CV (%) 18.6 19.4 \n Geometric Mean 199 192 \n CV % Geometric Mean 18.7 20.1 \n Median 197 196 \n Min - Max 125 - 311 103 - 315 \nCL obs (ml/day/kg) \n n 134 132 \n Mean (SD) 5.04 (1.04) 5.01 (0.985)\n CV (%) 20.6 19.7 \n Geometric Mean 4.93 4.91 \n CV % Geometric Mean 22.4 21.1 \n Median 5.08 4.97 \n Min - Max 2.25 - 7.39 2.10 - 7.49 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nPlasma Drug Y\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp1 <- adpp %>%\n filter(PPCAT == \"Plasma Drug Y\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp1)\nmain_title(result) <- paste(\"Summary of\", unique(adpp1$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp1$PPCAT), \"\\nVisit:\", unique(adpp1$AVISIT))\nresult\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug Y \nVisit: CYCLE 1 DAY 1\n\n—————————————————————————————————————\nPK Parameter ARM C \n—————————————————————————————————————\nCmax (ug/mL) \n n 132 \n Mean (SD) 29.9 (5.55) \n CV (%) 18.6 \n Geometric Mean 29.4 \n CV % Geometric Mean 20.1 \n Median 29.7 \n Min - Max 14.1 - 43.4 \nAUCinf obs (day*ug/mL) \n n 132 \n Mean (SD) 199 (37.9) \n CV (%) 19.1 \n Geometric Mean 195 \n CV % Geometric Mean 18.9 \n Median 195 \n Min - Max 126 - 318 \nCL obs (ml/day/kg) \n n 132 \n Mean (SD) 4.96 (0.895)\n CV (%) 18.1 \n Geometric Mean 4.87 \n CV % Geometric Mean 18.7 \n Median 4.94 \n Min - Max 2.99 - 7.21 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadpp <- random.cdisc.data::cadpp\nadpp <- adpp %>% filter(PPSPEC == \"Plasma\", AVISIT == \"CYCLE 1 DAY 1\")", "crumbs": [ "Tables", - "Adverse Events", - "AET09_SMQ" + "Pharmacokinetic", + "PKPT02" ] }, { - "objectID": "tables/adverse-events/aet09_smq.html#reproducibility", - "href": "tables/adverse-events/aet09_smq.html#reproducibility", - "title": "AET09_SMQ", + "objectID": "tables/pharmacokinetic/pkpt02.html#reproducibility", + "href": "tables/pharmacokinetic/pkpt02.html#reproducibility", + "title": "PKPT02", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:02:18 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr * 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:56:34 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET09_SMQ" + "Pharmacokinetic", + "PKPT02" ] }, { - "objectID": "tables/adverse-events/aet02.html#output", - "href": "tables/adverse-events/aet02.html#output", - "title": "AET02", + "objectID": "tables/pharmacokinetic/pkct01.html#output", + "href": "tables/pharmacokinetic/pkct01.html#output", + "title": "PKCT01", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable with Event Totals\nTable with High-Level Term\nTable with Preferred Terms Only\nTable with Fill-In of Treatment Groups\nTable of AEs with an Incidence Rate \\(\\geq\\) 5% in Any Treatment Group (subsetting preferred terms based on frequency)\nTable of AEs with an Incidence Rate \\(\\geq\\) 5% in Any Treatment Group (subsetting preferred terms based on frequency with high-level terms)\nTable of AEs with an Incidence Rate \\(\\geq\\) 10% in Any Treatment Group (subsetting preferred terms based on frequency)\nTable of AEs with an Incidence Rate \\(\\geq\\) 3 Patients in Any Treatment Group (subsetting preferred terms based on number of patients)\nTable of AEs with a Difference in Incidence Rate \\(\\geq\\) 5% Between Any Treatment (subsetting preferred terms based on difference in percentage between treatment groups)\nTable of AEs with an Incidence Rate \\(\\geq\\) 5% in B: Placebo (subsetting preferred terms based on frequency for a particular treatment group)\nTable of AEs with a Difference in Incidence Rate \\(\\geq\\) 5% Between Arm A and Arm B or Arm C (displaying preferred terms with a difference of at least x% between selected treatment groups)\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n add_overall_col(label = \"All Patients\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = -1L\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl)\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination All Patients\n MedDRA Preferred Term (N=134) (N=134) (N=132) (N=400) \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 100 (74.6%) 98 (73.1%) 103 (78.0%) 301 (75.2%) \nOverall total number of events 502 480 604 1586 \ncl A.1 \n Total number of patients with at least one adverse event 68 (50.7%) 58 (43.3%) 76 (57.6%) 202 (50.5%) \n Total number of events 115 99 137 351 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) 128 (32.0%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) 122 (30.5%) \ncl B.1 \n Total number of patients with at least one adverse event 38 (28.4%) 37 (27.6%) 36 (27.3%) 111 (27.8%) \n Total number of events 44 43 50 137 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) 111 (27.8%) \ncl B.2 \n Total number of patients with at least one adverse event 62 (46.3%) 56 (41.8%) 74 (56.1%) 192 (48.0%) \n Total number of events 102 106 127 335 \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) 119 (29.8%) \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) 123 (30.8%) \ncl C.1 \n Total number of patients with at least one adverse event 36 (26.9%) 34 (25.4%) 36 (27.3%) 106 (26.5%) \n Total number of events 47 51 54 152 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) 106 (26.5%) \ncl C.2 \n Total number of patients with at least one adverse event 28 (20.9%) 36 (26.9%) 48 (36.4%) 112 (28.0%) \n Total number of events 39 40 57 136 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) 112 (28.0%) \ncl D.1 \n Total number of patients with at least one adverse event 64 (47.8%) 54 (40.3%) 68 (51.5%) 186 (46.5%) \n Total number of events 106 84 114 304 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) 120 (30.0%) \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) 112 (28.0%) \ncl D.2 \n Total number of patients with at least one adverse event 37 (27.6%) 46 (34.3%) 50 (37.9%) 133 (33.2%) \n Total number of events 49 57 65 171 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) 133 (33.2%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nThe variable result corresponds to the adverse events table. However, it includes many empty rows accounting for events which were not reported. The table can be post-processed to prune empty rows and to sort rows, for example by occurrence.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- result %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination All Patients\n MedDRA Preferred Term (N=134) (N=134) (N=132) (N=400) \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 100 (74.6%) 98 (73.1%) 103 (78.0%) 301 (75.2%) \nOverall total number of events 502 480 604 1586 \ncl A.1 \n Total number of patients with at least one adverse event 68 (50.7%) 58 (43.3%) 76 (57.6%) 202 (50.5%) \n Total number of events 115 99 137 351 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) 128 (32.0%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) 122 (30.5%) \ncl B.2 \n Total number of patients with at least one adverse event 62 (46.3%) 56 (41.8%) 74 (56.1%) 192 (48.0%) \n Total number of events 102 106 127 335 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) 123 (30.8%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) 119 (29.8%) \ncl D.1 \n Total number of patients with at least one adverse event 64 (47.8%) 54 (40.3%) 68 (51.5%) 186 (46.5%) \n Total number of events 106 84 114 304 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) 120 (30.0%) \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) 112 (28.0%) \ncl D.2 \n Total number of patients with at least one adverse event 37 (27.6%) 46 (34.3%) 50 (37.9%) 133 (33.2%) \n Total number of events 49 57 65 171 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) 133 (33.2%) \ncl C.2 \n Total number of patients with at least one adverse event 28 (20.9%) 36 (26.9%) 48 (36.4%) 112 (28.0%) \n Total number of events 39 40 57 136 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) 112 (28.0%) \ncl B.1 \n Total number of patients with at least one adverse event 38 (28.4%) 37 (27.6%) 36 (27.3%) 111 (27.8%) \n Total number of events 44 43 50 137 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) 111 (27.8%) \ncl C.1 \n Total number of patients with at least one adverse event 36 (26.9%) 34 (25.4%) 36 (27.3%) 106 (26.5%) \n Total number of events 47 51 54 152 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) 106 (26.5%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n add_overall_col(label = \"All Patients\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L) %>%\n count_values(\n \"STUDYID\",\n values = as.character(unique(adae$STUDYID)),\n .stats = \"count\",\n .labels = c(count = \"Total number of events\"),\n .indent_mods = c(count = -1L)\n )\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n )\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination All Patients\n MedDRA Preferred Term (N=134) (N=134) (N=132) (N=400) \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 100 (74.6%) 98 (73.1%) 103 (78.0%) 301 (75.2%) \nOverall total number of events 502 480 604 1586 \ncl A.1 \n Total number of patients with at least one adverse event 68 (50.7%) 58 (43.3%) 76 (57.6%) 202 (50.5%) \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) 128 (32.0%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) 122 (30.5%) \n Total number of events 115 99 137 351 \ncl B.2 \n Total number of patients with at least one adverse event 62 (46.3%) 56 (41.8%) 74 (56.1%) 192 (48.0%) \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) 123 (30.8%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) 119 (29.8%) \n Total number of events 102 106 127 335 \ncl D.1 \n Total number of patients with at least one adverse event 64 (47.8%) 54 (40.3%) 68 (51.5%) 186 (46.5%) \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) 120 (30.0%) \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) 112 (28.0%) \n Total number of events 106 84 114 304 \ncl D.2 \n Total number of patients with at least one adverse event 37 (27.6%) 46 (34.3%) 50 (37.9%) 133 (33.2%) \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) 133 (33.2%) \n Total number of events 49 57 65 171 \ncl C.2 \n Total number of patients with at least one adverse event 28 (20.9%) 36 (26.9%) 48 (36.4%) 112 (28.0%) \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) 112 (28.0%) \n Total number of events 39 40 57 136 \ncl B.1 \n Total number of patients with at least one adverse event 38 (28.4%) 37 (27.6%) 36 (27.3%) 111 (27.8%) \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) 111 (27.8%) \n Total number of events 44 43 50 137 \ncl C.1 \n Total number of patients with at least one adverse event 36 (26.9%) 34 (25.4%) 36 (27.3%) 106 (26.5%) \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) 106 (26.5%) \n Total number of events 47 51 54 152 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEHLT\",\n child_labels = \"visible\",\n nested = TRUE,\n split_fun = split_fun,\n indent_mod = -1L,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEHLT)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, c(\"AEDECOD\"), indent = 2L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nMedDRA System Organ Class \n High Level Term A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 100 (74.6%) 98 (73.1%) 103 (78.0%) \nOverall total number of events 502 480 604 \ncl A.1 \n Total number of patients with at least one adverse event 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Total number of events 115 99 137 \n hlt A.1.1.1 \n Total number of patients with at least one adverse event 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Total number of events 115 99 137 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n Total number of patients with at least one adverse event 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Total number of events 102 106 127 \n hlt B.2.2.3 \n Total number of patients with at least one adverse event 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Total number of events 50 55 68 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n hlt B.2.1.2 \n Total number of patients with at least one adverse event 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Total number of events 52 51 59 \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n Total number of patients with at least one adverse event 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Total number of events 106 84 114 \n hlt D.1.1.1 \n Total number of patients with at least one adverse event 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Total number of events 52 40 64 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \n hlt D.1.1.4 \n Total number of patients with at least one adverse event 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Total number of events 54 44 50 \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n Total number of patients with at least one adverse event 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Total number of events 49 57 65 \n hlt D.2.1.5 \n Total number of patients with at least one adverse event 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Total number of events 49 57 65 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n Total number of patients with at least one adverse event 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Total number of events 39 40 57 \n hlt C.2.1.2 \n Total number of patients with at least one adverse event 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Total number of events 39 40 57 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n Total number of patients with at least one adverse event 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Total number of events 44 43 50 \n hlt B.1.1.1 \n Total number of patients with at least one adverse event 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Total number of events 44 43 50 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n Total number of patients with at least one adverse event 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Total number of events 47 51 54 \n hlt C.1.1.1 \n Total number of patients with at least one adverse event 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Total number of events 47 51 54 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n ),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(vars = \"AEDECOD\") %>%\n append_varlabels(adae, \"AEDECOD\")\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n sort_at_path(\n path = c(\"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination\nMedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of events 502 480 604 \ndcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ndcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \ndcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \ndcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ndcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \ndcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ndcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \ndcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) \ndcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) \ndcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadae_5 <- adae %>% dplyr::filter(ACTARM != \"C: Combination\")\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae_5, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 100 (74.6%) 98 (73.1%) 0 \nOverall total number of events 502 480 0 \ncl A.1 \n Total number of patients with at least one adverse event 68 (50.7%) 58 (43.3%) 0 \n Total number of events 115 99 0 \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 0 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 0 \ncl B.2 \n Total number of patients with at least one adverse event 62 (46.3%) 56 (41.8%) 0 \n Total number of events 102 106 0 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 0 \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 0 \ncl D.1 \n Total number of patients with at least one adverse event 64 (47.8%) 54 (40.3%) 0 \n Total number of events 106 84 0 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 0 \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 0 \ncl D.2 \n Total number of patients with at least one adverse event 37 (27.6%) 46 (34.3%) 0 \n Total number of events 49 57 0 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 0 \ncl B.1 \n Total number of patients with at least one adverse event 38 (28.4%) 37 (27.6%) 0 \n Total number of events 44 43 0 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 0 \ncl C.1 \n Total number of patients with at least one adverse event 36 (26.9%) 34 (25.4%) 0 \n Total number of events 47 51 0 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 0 \ncl C.2 \n Total number of patients with at least one adverse event 28 (20.9%) 36 (26.9%) 0 \n Total number of events 39 40 0 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n indent_mod = -1L,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = 1L\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\ncriteria_fun <- function(tr) is(tr, \"ContentRow\")\nresult <- trim_rows(result, criteria = criteria_fun)\n\nrow_condition <- has_fraction_in_any_col(\n atleast = 0.05,\n col_names = names(table(adsl$ACTARM))\n)\nresult <- prune_table(result, keep_rows(row_condition))\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————\ncl A.1 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = TRUE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n split_rows_by(\n \"AEHLT\",\n child_labels = \"visible\",\n nested = TRUE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEHLT)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n count_occurrences(vars = \"AEDECOD\") %>%\n append_varlabels(adae, c(\"AEDECOD\"), indent = 2L)\n\nresult <- build_table(lyt, adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\"),\n scorefun = cont_n_allcols,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences,\n decreasing = TRUE\n )\n\ncriteria_fun <- function(tr) is(tr, \"ContentRow\")\nresult <- trim_rows(result, criteria = criteria_fun)\n\nrow_condition <- has_fraction_in_any_col(\n atleast = 0.05,\n col_names = names(table(adsl$ACTARM))\n)\nresult <- prune_table(result, keep_rows(row_condition))\n\nresult\n\nMedDRA System Organ Class \n High Level Term A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————\ncl A.1 \n hlt A.1.1.1 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n hlt B.2.2.3 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n hlt B.2.1.2 \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n hlt D.1.1.1 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \n hlt D.1.1.4 \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n hlt D.2.1.5 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n hlt C.2.1.2 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n hlt B.1.1.1 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n hlt C.1.1.1 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n indent_mod = -1L,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = 1L\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\ncriteria_fun <- function(tr) is(tr, \"ContentRow\")\nresult <- trim_rows(result, criteria = criteria_fun)\n\nrow_condition <- has_fraction_in_any_col(\n atleast = 0.10,\n col_names = names(table(adsl$ACTARM))\n)\nresult <- prune_table(result, keep_rows(row_condition))\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————\ncl A.1 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n indent_mod = -1L,\n split_fun = split_fun,\n split_label = obj_label(adae$AEBODSYS),\n label_pos = \"topleft\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = 1L\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\ncriteria_fun <- function(tr) is(tr, \"ContentRow\")\nresult <- trim_rows(result, criteria = criteria_fun)\n\nrow_condition <- has_count_in_any_col(\n atleast = 3,\n col_names = names(table(adsl$ACTARM))\n)\nresult <- prune_table(result, keep_rows(row_condition))\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————\ncl A.1 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n indent_mod = -1L,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = 1L\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\ncriteria_fun <- function(tr) is(tr, \"ContentRow\")\nresult <- trim_rows(result, criteria = criteria_fun)\n\nrow_condition <- has_fractions_difference(\n atleast = 0.05,\n col_names = levels(adsl$ACTARM)\n)\nresult <- prune_table(result, keep_rows(row_condition))\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————\ncl A.1 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \ncl B.2 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \ncl D.2 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n indent_mod = -1L,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = 1L\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\ncriteria_fun <- function(tr) is(tr, \"ContentRow\")\nresult <- trim_rows(result, criteria = criteria_fun)\n\nrow_condition <- has_fraction_in_cols(\n atleast = 0.05,\n col_names = c(\"B: Placebo\")\n)\nresult <- prune_table(result, keep_rows(row_condition))\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————\ncl A.1 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n indent_mod = -1L,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = 1L\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\ncriteria_fun <- function(tr) is(tr, \"ContentRow\")\nresult <- trim_rows(result, criteria = criteria_fun)\n\nrow_condition1 <- has_fractions_difference(atleast = 0.05, col_names = c(\"A: Drug X\", \"B: Placebo\"))\nrow_condition2 <- has_fractions_difference(atleast = 0.05, col_names = c(\"A: Drug X\", \"C: Combination\"))\nrow_condition <- row_condition1 | row_condition2\nresult <- prune_table(result, keep_rows(row_condition))\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————\ncl A.1 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \ncl B.2 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \ncl D.2 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae) %>%\n var_relabel(\n AEBODSYS = \"MedDRA System Organ Class\",\n AEDECOD = \"MedDRA Preferred Term\"\n ) %>%\n filter(ANL01FL == \"Y\")\n\n# Define the split function\nsplit_fun <- drop_split_levels", + "text": "Output\n\n\nStandard Table (Stats in Columns)\nTable Implementing 1/3 Imputation Rule\nTable Implementing 1/2 Imputation Rule\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- lyt_rows %>%\n analyze_vars_in_cols(\n vars = c(\"AVAL\", \"AVALCAT1\", rep(\"AVAL\", 8)),\n .stats = c(\"n\", \"n_blq\", \"mean\", \"sd\", \"cv\", \"geom_mean\", \"geom_cv\", \"median\", \"min\", \"max\"),\n .formats = c(\n n = \"xx.\", n_blq = \"xx.\", mean = format_sigfig(3), sd = format_sigfig(3), cv = \"xx.x\", median = format_sigfig(3),\n geom_mean = format_sigfig(3), geom_cv = \"xx.x\", min = format_sigfig(3), max = format_sigfig(3)\n ),\n .labels = c(\n n = \"n\", n_blq = \"Number\\nof\\nLTRs/BLQs\", mean = \"Mean\", sd = \"SD\", cv = \"CV (%) Mean\",\n geom_mean = \"Geometric Mean\", geom_cv = \"CV % Geometric Mean\", median = \"Median\", min = \"Minimum\", max = \"Maximum\"\n ),\n na_str = \"NE\",\n .aligns = \"decimal\"\n )\n\nresult <- build_table(lyt, df = adpc_1, alt_counts_df = adsl) %>% prune_table()\n\n# Decorating\nmain_title(result) <- \"Summary of PK Concentrations by Nominal Time and Treatment: PK Evaluable\"\nsubtitles(result) <- c(\n \"Protocol: xxxxx\",\n paste(\"Analyte: \", unique(adpc_1$PARAM)),\n paste(\"Treatment:\", unique(adpc_1$ACTARM))\n)\nmain_footer(result) <- \"NE: Not Estimable\"\n\nresult\n\nSummary of PK Concentrations by Nominal Time and Treatment: PK Evaluable\nProtocol: xxxxx\nAnalyte: Plasma Drug X\nTreatment: A: Drug X\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Group Number \n Visit of \n Nominal Time (hr) / Timepoint n LTRs/BLQs Mean SD CV (%) Mean Geometric Mean CV % Geometric Mean Median Minimum Maximum\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X (N=134) \n Day 1 \n 0 / Predose 134 134 0 0 NE NE NE 0 0 0 \n 0.5 / 0.5H 134 0 12.6 1.51 12.0 12.5 12.2 12.6 9.72 15.6 \n 1 / 1H 134 0 16.2 1.63 10.0 16.1 10.1 16.2 12.6 19.9 \n 1.5 / 1.5H 134 0 15.6 1.46 9.3 15.6 9.3 15.5 12.3 19.0 \n 2 / 2H 134 0 13.4 1.35 10.1 13.4 10.0 13.3 10.8 16.5 \n 3 / 3H 134 0 8.47 1.25 14.7 8.38 15.0 8.40 5.88 10.9 \n 4 / 4H 134 0 4.79 1.02 21.2 4.69 22.0 4.79 2.70 7.09 \n 8 / 8H 134 0 0.348 0.180 51.7 0.303 58.4 0.318 0.0760 0.866 \n 12 / 12H 134 0 0.0224 0.0189 84.6 0.0156 111.6 0.0170 0.00200 0.0830\n Day 2 \n 24 / 24H 134 134 0 0 NE NE NE 0 0 0 \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nNE: Not Estimable\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- lyt_rows %>%\n analyze_vars_in_cols(\n vars = c(\"AVAL\", \"AVALCAT1\", rep(\"AVAL\", 8)),\n .stats = c(\"n\", \"n_blq\", \"mean\", \"sd\", \"cv\", \"geom_mean\", \"geom_cv\", \"median\", \"min\", \"max\"),\n .formats = c(\n n = \"xx.\", n_blq = \"xx.\", mean = format_sigfig(3), sd = format_sigfig(3), cv = \"xx.x\", median = format_sigfig(3),\n geom_mean = format_sigfig(3), geom_cv = \"xx.x\", min = format_sigfig(3), max = format_sigfig(3)\n ),\n .labels = c(\n n = \"n\", n_blq = \"Number\\nof\\nLTRs/BLQs\", mean = \"Mean\", sd = \"SD\", cv = \"CV (%) Mean\",\n geom_mean = \"Geometric Mean\", geom_cv = \"CV % Geometric Mean\", median = \"Median\", min = \"Minimum\", max = \"Maximum\"\n ),\n imp_rule = \"1/3\",\n .aligns = \"decimal\"\n )\n\nresult <- build_table(lyt, df = adpc_1, alt_counts_df = adsl) %>% prune_table()\n\n# Decorating\nmain_title(result) <- \"Summary of PK Concentrations by Nominal Time and Treatment: PK Evaluable\"\nsubtitles(result) <- c(\n \"Protocol: xxxxx\",\n paste(\"Analyte: \", unique(adpc_1$PARAM)),\n paste(\"Treatment:\", unique(adpc_1$ACTARM))\n)\nmain_footer(result) <- c(\"NE: Not Estimable\", \"ND: Not Derived\")\n\nresult\n\nSummary of PK Concentrations by Nominal Time and Treatment: PK Evaluable\nProtocol: xxxxx\nAnalyte: Plasma Drug X\nTreatment: A: Drug X\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Group Number \n Visit of \n Nominal Time (hr) / Timepoint n LTRs/BLQs Mean SD CV (%) Mean Geometric Mean CV % Geometric Mean Median Minimum Maximum\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X (N=134) \n Day 1 \n 0 / Predose 134 134 ND ND ND NE ND 0 ND 0 \n 0.5 / 0.5H 134 0 12.6 1.51 12.0 12.5 12.2 12.6 9.72 15.6 \n 1 / 1H 134 0 16.2 1.63 10.0 16.1 10.1 16.2 12.6 19.9 \n 1.5 / 1.5H 134 0 15.6 1.46 9.3 15.6 9.3 15.5 12.3 19.0 \n 2 / 2H 134 0 13.4 1.35 10.1 13.4 10.0 13.3 10.8 16.5 \n 3 / 3H 134 0 8.47 1.25 14.7 8.38 15.0 8.40 5.88 10.9 \n 4 / 4H 134 0 4.79 1.02 21.2 4.69 22.0 4.79 2.70 7.09 \n 8 / 8H 134 0 0.348 0.180 51.7 0.303 58.4 0.318 0.0760 0.866 \n 12 / 12H 134 0 0.0224 0.0189 84.6 0.0156 111.6 0.0170 0.00200 0.0830\n Day 2 \n 24 / 24H 134 134 ND ND ND NE ND 0 ND 0 \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nNE: Not Estimable\nND: Not Derived\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- lyt_rows %>%\n analyze_vars_in_cols(\n vars = c(\"AVAL\", \"AVALCAT1\", rep(\"AVAL\", 8)),\n .stats = c(\"n\", \"n_blq\", \"mean\", \"sd\", \"cv\", \"geom_mean\", \"geom_cv\", \"median\", \"min\", \"max\"),\n .formats = c(\n n = \"xx.\", n_blq = \"xx.\", mean = format_sigfig(3), sd = format_sigfig(3), cv = \"xx.x\", median = format_sigfig(3),\n geom_mean = format_sigfig(3), geom_cv = \"xx.x\", min = format_sigfig(3), max = format_sigfig(3)\n ),\n .labels = c(\n n = \"n\", n_blq = \"Number\\nof\\nLTRs/BLQs\", mean = \"Mean\", sd = \"SD\", cv = \"CV (%) Mean\",\n geom_mean = \"Geometric Mean\", geom_cv = \"CV % Geometric Mean\", median = \"Median\", min = \"Minimum\", max = \"Maximum\"\n ),\n imp_rule = \"1/2\",\n .aligns = \"decimal\"\n )\n\nresult <- build_table(lyt, df = adpc_1, alt_counts_df = adsl) %>% prune_table()\n\n# Decorate table\nmain_title(result) <- \"Summary of PK Concentrations by Nominal Time and Treatment: PK Evaluable\"\nsubtitles(result) <- c(\n \"Protocol: xxxxx\",\n paste(\"Analyte: \", unique(adpc_1$PARAM)),\n paste(\"Treatment:\", unique(adpc_1$ACTARM))\n)\nmain_footer(result) <- \"ND: Not Derived\"\n\nresult\n\nSummary of PK Concentrations by Nominal Time and Treatment: PK Evaluable\nProtocol: xxxxx\nAnalyte: Plasma Drug X\nTreatment: A: Drug X\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Group Number \n Visit of \n Nominal Time (hr) / Timepoint n LTRs/BLQs Mean SD CV (%) Mean Geometric Mean CV % Geometric Mean Median Minimum Maximum\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X (N=134) \n Day 1 \n 0 / Predose 134 134 ND ND ND ND ND ND ND 0 \n 0.5 / 0.5H 134 0 12.6 1.51 12.0 12.5 12.2 12.6 9.72 15.6 \n 1 / 1H 134 0 16.2 1.63 10.0 16.1 10.1 16.2 12.6 19.9 \n 1.5 / 1.5H 134 0 15.6 1.46 9.3 15.6 9.3 15.5 12.3 19.0 \n 2 / 2H 134 0 13.4 1.35 10.1 13.4 10.0 13.3 10.8 16.5 \n 3 / 3H 134 0 8.47 1.25 14.7 8.38 15.0 8.40 5.88 10.9 \n 4 / 4H 134 0 4.79 1.02 21.2 4.69 22.0 4.79 2.70 7.09 \n 8 / 8H 134 0 0.348 0.180 51.7 0.303 58.4 0.318 0.0760 0.866 \n 12 / 12H 134 0 0.0224 0.0189 84.6 0.0156 111.6 0.0170 0.00200 0.0830\n Day 2 \n 24 / 24H 134 134 ND ND ND ND ND ND ND 0 \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nND: Not Derived\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl %>%\n filter(ACTARM == \"A: Drug X\")\nadpc <- random.cdisc.data::cadpc %>%\n filter(ACTARM == \"A: Drug X\", PARAM == \"Plasma Drug X\")\n\n# Setting up the data\nadpc_1 <- adpc %>%\n mutate(\n NFRLT = as.factor(NFRLT),\n AVALCAT1 = as.factor(AVALCAT1),\n NOMTPT = as.factor(paste(NFRLT, \"/\", PCTPT))\n ) %>%\n select(NOMTPT, ACTARM, VISIT, AVAL, PARAM, AVALCAT1)\n\nadpc_1$NOMTPT <- factor(\n adpc_1$NOMTPT,\n levels = levels(adpc_1$NOMTPT)[order(as.numeric(gsub(\".*?([0-9\\\\.]+).*\", \"\\\\1\", levels(adpc_1$NOMTPT))))]\n)\n\n# Row structure\nlyt_rows <- basic_table() %>%\n split_rows_by(\n var = \"ACTARM\",\n split_fun = drop_split_levels,\n split_label = \"Treatment Group\",\n label_pos = \"topleft\"\n ) %>%\n add_rowcounts(alt_counts = TRUE) %>%\n split_rows_by(\n var = \"VISIT\",\n split_fun = drop_split_levels,\n split_label = \"Visit\",\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n var = \"NOMTPT\",\n split_fun = drop_split_levels,\n split_label = \"Nominal Time (hr) / Timepoint\",\n label_pos = \"topleft\",\n child_labels = \"hidden\"\n )", "crumbs": [ "Tables", - "Adverse Events", - "AET02" + "Pharmacokinetic", + "PKCT01" ] }, { - "objectID": "tables/adverse-events/aet02.html#teal-app", - "href": "tables/adverse-events/aet02.html#teal-app", - "title": "AET02", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n add_total = TRUE,\n event_type = \"adverse event\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n add_total = TRUE,\n event_type = \"adverse event\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "tables/pharmacokinetic/pkct01.html#reproducibility", + "href": "tables/pharmacokinetic/pkct01.html#reproducibility", + "title": "PKCT01", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:56:21 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET02" + "Pharmacokinetic", + "PKCT01" ] }, { - "objectID": "tables/adverse-events/aet02.html#reproducibility", - "href": "tables/adverse-events/aet02.html#reproducibility", - "title": "AET02", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:01:34 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/pharmacokinetic/pkpt06.html#output", + "href": "tables/pharmacokinetic/pkpt06.html#output", + "title": "PKPT06", + "section": "Output", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\nCode# lyt creation\nlyt <- basic_table() %>%\n split_cols_by(\n var = \"ARMCD\",\n split_fun = trim_levels_in_group(\"ARMCD\"),\n split_label = \"Treatment Arm\"\n ) %>%\n split_rows_by(\n var = \"PKPARAM\",\n label_pos = \"topleft\",\n split_label = \"PK Parameter\"\n ) %>%\n tern::analyze_vars(\n vars = \"AVAL\",\n .stats = c(\"n\", \"mean_sd\", \"cv\", \"geom_mean\", \"geom_cv\", \"median\", \"range\"),\n .formats = c(\n n = \"xx.\",\n mean_sd = format_sigfig(3, \"xx (xx)\"),\n cv = \"xx.x\",\n geom_mean = format_sigfig(3),\n geom_cv = \"xx.x\",\n median = format_sigfig(3),\n range = format_sigfig(3, \"xx - xx\")\n )\n )\n\n\nPlasma Drug X\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp0 <- adpp %>%\n filter(PPCAT == \"Plasma Drug X\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp0)\nmain_title(result) <- paste(\"Summary of Dose-Normalized PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp0$PPCAT), \"\\nVisit:\", unique(adpp0$AVISIT))\nresult\n\nSummary of Dose-Normalized PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1\n\n———————————————————————————————————————————————————————————————\nPK Parameter ARM A ARM C \n———————————————————————————————————————————————————————————————\nRENALCLD (L/hr/mg) \n n 134 132 \n Mean (SD) 0.00487 (0.000965) 0.00511 (0.000934)\n CV (%) 19.8 18.3 \n Geometric Mean 0.00477 0.00502 \n CV % Geometric Mean 21.2 19.7 \n Median 0.00497 0.00515 \n Min - Max 0.00238 - 0.00726 0.00236 - 0.00741 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nPlasma Drug Y\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp1 <- adpp %>%\n filter(PPCAT == \"Plasma Drug Y\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp1)\nmain_title(result) <- paste(\"Summary of Dose-Normalized PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp1$PPCAT), \"\\nVisit:\", unique(adpp1$AVISIT))\nresult\n\nSummary of Dose-Normalized PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug Y \nVisit: CYCLE 1 DAY 1\n\n—————————————————————————————————————————\nPK Parameter ARM C \n—————————————————————————————————————————\nRENALCLD (L/hr/mg) \n n 132 \n Mean (SD) 0.00509 (0.00103)\n CV (%) 20.3 \n Geometric Mean 0.00499 \n CV % Geometric Mean 21.4 \n Median 0.00502 \n Min - Max 0.00236 - 0.00794\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(stringr)\n\nadpp <- random.cdisc.data::cadpp\nadpp <- adpp %>%\n filter(AVISIT == \"CYCLE 1 DAY 1\", str_detect(tolower(PARAM), regex(\"norm by dose\", ignore_case = TRUE)))", "crumbs": [ "Tables", - "Adverse Events", - "AET02" + "Pharmacokinetic", + "PKPT06" ] }, { - "objectID": "tables/adverse-events/aet09.html#output", - "href": "tables/adverse-events/aet09.html#output", - "title": "AET09", - "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Including High-Level Terms\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n add_overall_col(label = \"All Patients\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event related to study drug\",\n nonunique = \"Overall total number of events related to study drug\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae_f$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event related to study drug\",\n nonunique = \"Total number of events related to study drug\"\n )\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = -1L\n ) %>%\n append_varlabels(adae_f, \"AEDECOD\", indent = 1L)\n\ntbl1 <- build_table(\n lyt = lyt,\n df = adae_f,\n alt_counts_df = adsl\n) %>%\n prune_table()\n\nresult <- tbl1 %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nBody System or Organ Class A: Drug X B: Placebo C: Combination All Patients\n Dictionary-Derived Term (N=134) (N=134) (N=132) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event related to study drug 105 (78.4%) 108 (80.6%) 109 (82.6%) 322 (80.5%) \nOverall total number of events related to study drug 282 299 336 917 \ncl D.2 \n Total number of patients with at least one adverse event related to study drug 47 (35.1%) 58 (43.3%) 57 (43.2%) 162 (40.5%) \n Total number of events related to study drug 62 72 74 208 \n dcd D.2.1.5.3 47 (35.1%) 58 (43.3%) 57 (43.2%) 162 (40.5%) \ncl D.1 \n Total number of patients with at least one adverse event related to study drug 50 (37.3%) 42 (31.3%) 51 (38.6%) 143 (35.8%) \n Total number of events related to study drug 61 51 71 183 \n dcd D.1.1.1.1 50 (37.3%) 42 (31.3%) 51 (38.6%) 143 (35.8%) \ncl B.1 \n Total number of patients with at least one adverse event related to study drug 47 (35.1%) 49 (36.6%) 43 (32.6%) 139 (34.8%) \n Total number of events related to study drug 56 60 62 178 \n dcd B.1.1.1.1 47 (35.1%) 49 (36.6%) 43 (32.6%) 139 (34.8%) \ncl C.2 \n Total number of patients with at least one adverse event related to study drug 35 (26.1%) 48 (35.8%) 55 (41.7%) 138 (34.5%) \n Total number of events related to study drug 48 53 65 166 \n dcd C.2.1.2.1 35 (26.1%) 48 (35.8%) 55 (41.7%) 138 (34.5%) \ncl C.1 \n Total number of patients with at least one adverse event related to study drug 43 (32.1%) 46 (34.3%) 43 (32.6%) 132 (33.0%) \n Total number of events related to study drug 55 63 64 182 \n dcd C.1.1.1.3 43 (32.1%) 46 (34.3%) 43 (32.6%) 132 (33.0%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event related to study drug\",\n nonunique = \"Overall total number of events related to study drug\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n indent_mod = 1L,\n label_pos = \"topleft\",\n split_label = obj_label(adae_f$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event related to study drug\",\n nonunique = \"Total number of events related to study drug\"\n )\n ) %>%\n split_rows_by(\n \"AEHLT\",\n child_labels = \"visible\",\n nested = TRUE,\n indent_mod = -1L,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae_f$AEHLT)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event related to study drug\",\n nonunique = \"Total number of events related to study drug\"\n )\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = -1L\n ) %>%\n append_varlabels(adae_f, c(\"AEDECOD\"), indent = 2L)\n\ntbl2 <- build_table(\n lyt = lyt,\n df = adae_f,\n alt_counts_df = adsl\n) %>%\n prune_table()\n\nresult <- tbl2 %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nBody System or Organ Class \n High Level Term A: Drug X B: Placebo C: Combination\n Dictionary-Derived Term (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event related to study drug 105 (78.4%) 108 (80.6%) 109 (82.6%) \nOverall total number of events related to study drug 282 299 336 \n cl D.2 \n Total number of patients with at least one adverse event related to study drug 47 (35.1%) 58 (43.3%) 57 (43.2%) \n Total number of events related to study drug 62 72 74 \n hlt D.2.1.5 \n Total number of patients with at least one adverse event related to study drug 47 (35.1%) 58 (43.3%) 57 (43.2%) \n Total number of events related to study drug 62 72 74 \n dcd D.2.1.5.3 47 (35.1%) 58 (43.3%) 57 (43.2%) \n cl D.1 \n Total number of patients with at least one adverse event related to study drug 50 (37.3%) 42 (31.3%) 51 (38.6%) \n Total number of events related to study drug 61 51 71 \n hlt D.1.1.1 \n Total number of patients with at least one adverse event related to study drug 50 (37.3%) 42 (31.3%) 51 (38.6%) \n Total number of events related to study drug 61 51 71 \n dcd D.1.1.1.1 50 (37.3%) 42 (31.3%) 51 (38.6%) \n cl B.1 \n Total number of patients with at least one adverse event related to study drug 47 (35.1%) 49 (36.6%) 43 (32.6%) \n Total number of events related to study drug 56 60 62 \n hlt B.1.1.1 \n Total number of patients with at least one adverse event related to study drug 47 (35.1%) 49 (36.6%) 43 (32.6%) \n Total number of events related to study drug 56 60 62 \n dcd B.1.1.1.1 47 (35.1%) 49 (36.6%) 43 (32.6%) \n cl C.2 \n Total number of patients with at least one adverse event related to study drug 35 (26.1%) 48 (35.8%) 55 (41.7%) \n Total number of events related to study drug 48 53 65 \n hlt C.2.1.2 \n Total number of patients with at least one adverse event related to study drug 35 (26.1%) 48 (35.8%) 55 (41.7%) \n Total number of events related to study drug 48 53 65 \n dcd C.2.1.2.1 35 (26.1%) 48 (35.8%) 55 (41.7%) \n cl C.1 \n Total number of patients with at least one adverse event related to study drug 43 (32.1%) 46 (34.3%) 43 (32.6%) \n Total number of events related to study drug 55 63 64 \n hlt C.1.1.1 \n Total number of patients with at least one adverse event related to study drug 43 (32.1%) 46 (34.3%) 43 (32.6%) \n Total number of events related to study drug 55 63 64 \n dcd C.1.1.1.3 43 (32.1%) 46 (34.3%) 43 (32.6%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\nadae_labels <- var_labels(adae)\n\nadae_f <- adae %>%\n filter(AEREL == \"Y\")\n\nvar_labels(adae_f) <- adae_labels", + "objectID": "tables/pharmacokinetic/pkpt06.html#reproducibility", + "href": "tables/pharmacokinetic/pkpt06.html#reproducibility", + "title": "PKPT06", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:56:05 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr * 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET09" + "Pharmacokinetic", + "PKPT06" ] }, { - "objectID": "tables/adverse-events/aet09.html#teal-app", - "href": "tables/adverse-events/aet09.html#teal-app", - "title": "AET09", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Events Related to Study Drug\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AEHLT\")),\n selected = c(\"AEBODSYS\")\n ),\n add_total = FALSE,\n event_type = \"adverse event related to study drug\", # define event type here\n )\n ),\n filter = teal_slices(teal_slice(\"ADAE\", \"AEREL\", selected = \"Y\")) # related AEs only\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Events Related to Study Drug\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AEHLT\")),\n selected = c(\"AEBODSYS\")\n ),\n add_total = FALSE,\n event_type = \"adverse event related to study drug\", # define event type here\n )\n ),\n filter = teal_slices(teal_slice(\"ADAE\", \"AEREL\", selected = \"Y\")) # related AEs only\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "tables/pharmacokinetic/pkpt03.html#output", + "href": "tables/pharmacokinetic/pkpt03.html#output", + "title": "PKPT03", + "section": "Output", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\nCode# lyt creation\nlyt <- basic_table() %>%\n split_rows_by(\n var = \"AVISIT\",\n split_fun = drop_split_levels,\n split_label = \"Visit\",\n page_by = TRUE\n ) %>%\n split_rows_by(\n var = \"ARMCD\",\n split_fun = trim_levels_in_group(\"PARAM\"),\n label_pos = \"topleft\",\n split_label = \"Treatment Arm\"\n ) %>%\n add_rowcounts(alt_counts = TRUE) %>%\n split_rows_by(\n var = \"PARAM\",\n label_pos = \"topleft\",\n split_label = \"PK Parameter\",\n child_labels = \"hidden\"\n ) %>%\n analyze_vars_in_cols(\n vars = \"AVAL\",\n .stats = c(\n \"n\", \"mean\", \"sd\", \"cv\",\n \"geom_mean\", \"geom_cv\", \"median\",\n \"min\", \"max\"\n ),\n .labels = c(\n n = \"n\",\n mean = \"Mean\",\n sd = \"SD\",\n cv = \"CV (%)\",\n geom_mean = \"Geometric Mean\",\n geom_cv = \"CV % Geometric Mean\",\n median = \"Median\",\n min = \"Minimum\",\n max = \"Maximum\"\n ),\n .formats = c(\n n = \"xx.\",\n mean = format_sigfig(3),\n sd = format_sigfig(3),\n cv = \"xx.x\",\n median = format_sigfig(3),\n geom_mean = format_sigfig(3),\n geom_cv = \"xx.x\",\n min = format_sigfig(3),\n max = format_sigfig(3)\n ),\n na_str = \"NE\"\n )\n\n\nPlasma Drug X\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- build_table(lyt, df = adpp_x, alt_counts_df = adsl_x_splitvars)\nmain_title(result) <- paste(\"Summary of\", unique(adpp_x$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp_x$PPCAT))\nresult <- paginate_table(result, landscape = TRUE)\nresult\n\n$`CYCLE 1 DAY 1`\n\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X\nVisit: CYCLE 1 DAY 1\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM A (N=134) \n Cmax (ug/mL) 0 NE NE NE NE NE NE NE NE \n AUCinf obs (day*ug/mL) 134 203 37.7 18.6 199 18.7 197 125 311 \n CL obs (ml/day/kg) 134 5.04 1.04 20.6 4.93 22.4 5.08 2.25 7.39 \nARM C (N=132) \n Cmax (ug/mL) 132 30.0 5.46 18.2 29.5 18.9 29.8 15.9 47.6 \n AUCinf obs (day*ug/mL) 132 195 37.8 19.4 192 20.1 196 103 315 \n CL obs (ml/day/kg) 132 5.01 0.985 19.7 4.91 21.1 4.97 2.10 7.49 \n\n$`CYCLE 1 DAY 2`\n\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X\nVisit: CYCLE 1 DAY 2\n\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM A (N=134) \n Cmax (ug/mL) 134 29.4 6.22 21.2 28.6 24.4 29.8 10.1 43.5 \n AUCinf obs (day*ug/mL) 134 202 41.2 20.4 197 21.4 200 105 294 \n CL obs (ml/day/kg) 134 5.04 1.04 20.7 4.92 22.6 5.01 2.39 7.18 \nARM C (N=132) \n Cmax (ug/mL) 132 30.4 6.03 19.9 29.7 21.7 30.5 12.4 45.5 \n AUCinf obs (day*ug/mL) 132 191 43.0 22.5 186 24.7 189 74.8 296 \n CL obs (ml/day/kg) 132 5.07 1.07 21.1 4.96 22.4 5.01 2.48 7.50 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nPlasma Drug X: Remove Rows with 0s\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- build_table(lyt, df = adpp_x, alt_counts_df = adsl_x_splitvars) %>%\n prune_table()\n\nmain_title(result) <- paste(\"Summary of\", unique(adpp_x$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp_x$PPCAT))\nresult <- paginate_table(result, landscape = TRUE)\nresult\n\n$`CYCLE 1 DAY 1`\n\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X\nVisit: CYCLE 1 DAY 1\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM A (N=134) \n AUCinf obs (day*ug/mL) 134 203 37.7 18.6 199 18.7 197 125 311 \n CL obs (ml/day/kg) 134 5.04 1.04 20.6 4.93 22.4 5.08 2.25 7.39 \nARM C (N=132) \n Cmax (ug/mL) 132 30.0 5.46 18.2 29.5 18.9 29.8 15.9 47.6 \n AUCinf obs (day*ug/mL) 132 195 37.8 19.4 192 20.1 196 103 315 \n CL obs (ml/day/kg) 132 5.01 0.985 19.7 4.91 21.1 4.97 2.10 7.49 \n\n$`CYCLE 1 DAY 2`\n\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X\nVisit: CYCLE 1 DAY 2\n\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM A (N=134) \n Cmax (ug/mL) 134 29.4 6.22 21.2 28.6 24.4 29.8 10.1 43.5 \n AUCinf obs (day*ug/mL) 134 202 41.2 20.4 197 21.4 200 105 294 \n CL obs (ml/day/kg) 134 5.04 1.04 20.7 4.92 22.6 5.01 2.39 7.18 \nARM C (N=132) \n Cmax (ug/mL) 132 30.4 6.03 19.9 29.7 21.7 30.5 12.4 45.5 \n AUCinf obs (day*ug/mL) 132 191 43.0 22.5 186 24.7 189 74.8 296 \n CL obs (ml/day/kg) 132 5.07 1.07 21.1 4.96 22.4 5.01 2.48 7.50 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nPlasma Drug Y\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- build_table(lyt, df = adpp_y, alt_counts_df = adsl_y_splitvars)\nmain_title(result) <- paste(\"Summary of\", unique(adpp_y$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp_y$PPCAT))\nresult <- paginate_table(result, landscape = TRUE)\nresult\n\n$`CYCLE 1 DAY 1`\n\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug Y\nVisit: CYCLE 1 DAY 1\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM C (N=132) \n Cmax (ug/mL) 132 29.9 5.55 18.6 29.4 20.1 29.7 14.1 43.4 \n AUCinf obs (day*ug/mL) 132 199 37.9 19.1 195 18.9 195 126 318 \n CL obs (ml/day/kg) 132 4.96 0.895 18.1 4.87 18.7 4.94 2.99 7.21 \n\n$`CYCLE 1 DAY 2`\n\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug Y\nVisit: CYCLE 1 DAY 2\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM C (N=132) \n Cmax (ug/mL) 132 30.7 6.12 19.9 30.1 21.9 31.4 12.9 48.3 \n AUCinf obs (day*ug/mL) 132 199 40.0 20.1 194 22.2 197 79.2 295 \n CL obs (ml/day/kg) 132 4.99 0.984 19.7 4.89 20.9 4.96 2.58 8.39 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\n# Preprocess analysis data ----\nadpp <- random.cdisc.data::cadpp\nadpp <- adpp %>%\n filter(PPSPEC == \"Plasma\") %>%\n filter(AVISIT %in% c(\"CYCLE 1 DAY 1\", \"CYCLE 1 DAY 2\")) %>%\n h_pkparam_sort() %>%\n mutate(PARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PARAM = reorder(PARAM, TLG_ORDER))\n\n# Preprocess subject-level data ----\nadsl <- random.cdisc.data::cadsl\n\n# Workaround needed to include (N=xx) population counts\n# Repeat ADSL by the number of levels in AVISIT\n# Include AVISIT and dummy PARAM as it's needed for trim_levels_in_group\nadsl_tmp <- adsl %>%\n select(STUDYID, USUBJID, ARMCD) %>%\n unique() %>%\n mutate(PARAM = factor(NA_character_, levels = levels(adpp$PARAM)))\n\n# Data for Plasma Drug X example ----\nadpp_x <- adpp %>%\n filter(PPCAT == \"Plasma Drug X\") %>%\n # Please do not replicate mutate statement below!\n # It is used to make the random data in this example more realistic\n # as not all parameters are always available across all visits.\n mutate(\n AVAL = if_else(\n ARMCD == \"ARM A\" & AVISIT == \"CYCLE 1 DAY 1\" & PARAM == \"Cmax (ug/mL)\",\n NA_real_, AVAL\n )\n )\n\nadpp_x_tmp <- adpp_x %>%\n select(STUDYID, USUBJID, ARMCD, AVISIT) %>%\n unique()\n\nadsl_x_splitvars <- adsl_tmp %>%\n left_join(adpp_x_tmp, by = c(\"STUDYID\", \"USUBJID\", \"ARMCD\")) %>%\n filter(!is.na(AVISIT))\n\n# Data for Plasma Drug Y example ----\nadpp_y <- adpp %>%\n filter(PPCAT == \"Plasma Drug Y\")\n\nadpp_y_tmp <- adpp_y %>%\n select(STUDYID, USUBJID, ARMCD, AVISIT) %>%\n unique()\n\nadsl_y_splitvars <- adsl_tmp %>%\n left_join(adpp_y_tmp, by = c(\"STUDYID\", \"USUBJID\", \"ARMCD\")) %>%\n filter(!is.na(AVISIT))", "crumbs": [ "Tables", - "Adverse Events", - "AET09" + "Pharmacokinetic", + "PKPT03" ] }, { - "objectID": "tables/adverse-events/aet09.html#reproducibility", - "href": "tables/adverse-events/aet09.html#reproducibility", - "title": "AET09", + "objectID": "tables/pharmacokinetic/pkpt03.html#reproducibility", + "href": "tables/pharmacokinetic/pkpt03.html#reproducibility", + "title": "PKPT03", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:00:43 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:55:52 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET09" + "Pharmacokinetic", + "PKPT03" ] }, { - "objectID": "tables/adverse-events/aet04_pi.html#output", - "href": "tables/adverse-events/aet04_pi.html#output", - "title": "AET04_PI", + "objectID": "tables/ECG/egt01.html#output", + "href": "tables/ECG/egt01.html#output", + "title": "EGT01", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable with Patients Treated with a Particular Treatment by Highest NCI CTCAE Grade (specifying a treatment for selecting preferred terms)\nAdverse Events Reported in \\(\\geq\\) 5% of Patients by Highest NCI CTCAE Grade (changing the threshold)\nAdverse Events Reported in \\(\\geq\\) 5% of Patients and \\(\\geq\\) 2% Difference Between Treatments by Highest NCI CTCAE Grade (using more than one condition)\nAdverse Events Reported in \\(\\geq\\) 10% of Patients for Any Grade or \\(\\geq\\) 5% of Patients for Grade 3-4 by Highest NCI CTCAE Grade (using different condition depending on the grade)\nStandard Table with Modified Grade Grouping\nStandard Table with Overlapping Grade Groupings\nStandard Table without SOCs\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodefull_table <- full_table_aet04_pi(adsl, adae_max) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = score_occurrences_cont_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n )\n\nat_least_10percent_any <- has_fraction_in_any_col(atleast = 0.1, col_indices = c(1, 4, 7))\n\nresult <- full_table %>%\n trim_rows(criteria = criteria_fun) %>%\n prune_table(keep_rows(at_least_10percent_any))\n\nresult\n\n A: Drug X B: Placebo C: Combination \nMedDRA System Organ Class Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%)\n MedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ncl A.1 \ndcd A.1.1.1.1 37 0 0 34 0 0 48 0 0 \ndcd A.1.1.1.2 36 0 0 36 0 0 38 0 0 \ncl B.2 \ndcd B.2.2.3.1 36 0 0 40 0 0 39 0 0 \ndcd B.2.1.2.1 37 37 0 33 33 0 39 39 0 \ncl D.1 \ndcd D.1.1.1.1 37 0 37 31 0 31 39 0 39 \ndcd D.1.1.4.2 36 36 0 31 31 0 38 38 0 \ncl D.2 \ndcd D.2.1.5.3 35 0 0 43 0 0 43 0 0 \ncl B.1 \ndcd B.1.1.1.1 35 0 35 37 0 37 33 0 33 \ncl C.2 \ndcd C.2.1.2.1 26 0 0 36 0 0 42 0 0 \ncl C.1 \ndcd C.1.1.1.3 32 32 0 34 34 0 33 33 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote: User needs to specify the column index for filtering the table. The current example uses the “Any Grade” column for treatment A: Drug X with a filtering threshold at 0.37; AEs reported in greater than 37% of patients in treatment A: Drug X are shown. This can be changed by varying the parameter values in the has_fraction_in_cols function.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodefull_table <- full_table_aet04_pi(adsl, adae_max) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = score_occurrences_cont_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n )\n\nat_least_37percent_any_drugx <- has_fraction_in_cols(atleast = 0.37, col_indices = 1)\n\nresult <- full_table %>%\n trim_rows(criteria = criteria_fun) %>%\n prune_table(keep_rows(at_least_37percent_any_drugx))\n\nresult\n\n A: Drug X B: Placebo C: Combination \nMedDRA System Organ Class Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%)\n MedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ncl A.1 \ndcd A.1.1.1.1 37 0 0 34 0 0 48 0 0 \ncl D.1 \ndcd D.1.1.1.1 37 0 37 31 0 31 39 0 39 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote: User needs to specify the column index for filtering the table. The current example uses column indices 1, 4, and 7 with a filtering threshold at 0.40 to demonstrate the filtering ability; AEs reported in greater than 40% of patients are shown. This can be changed by varying the parameter values in the has_fraction_in_any_col function.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodefull_table <- full_table_aet04_pi(adsl, adae_max) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = score_occurrences_cont_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n )\n\nat_least_40percent_any <- has_fraction_in_any_col(atleast = 0.40, col_indices = c(1, 4, 7))\n\nresult <- full_table %>%\n trim_rows(criteria = criteria_fun) %>%\n prune_table(keep_rows(at_least_40percent_any))\n\nresult\n\n A: Drug X B: Placebo C: Combination \nMedDRA System Organ Class Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%)\n MedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ncl A.1 \ndcd A.1.1.1.1 37 0 0 34 0 0 48 0 0 \ncl B.2 \ndcd B.2.2.3.1 36 0 0 40 0 0 39 0 0 \ncl D.2 \ndcd D.2.1.5.3 35 0 0 43 0 0 43 0 0 \ncl C.2 \ndcd C.2.1.2.1 26 0 0 36 0 0 42 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote: User needs to specify the column index for filtering the table. The current example uses column indices 1, 4, and 7 to filter for AEs reported in \\(\\geq\\) 30% of patients and AEs reported with a \\(\\geq\\) 15% difference between treatments to demonstrate the filtering ability; this can be changed by varying the parameter values in the has_fraction_in_any_col and has_fractions_difference functions.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodefull_table <- full_table_aet04_pi(adsl, adae_max) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = score_occurrences_cont_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n )\n\nat_least_30percent_any <- has_fraction_in_any_col(atleast = 0.3, col_indices = c(1, 4, 7))\n\nat_least_15percent_diff <- has_fractions_difference(atleast = 0.15, col_indices = c(1, 4, 7))\n\nresult <- full_table %>%\n trim_rows(criteria = criteria_fun) %>%\n prune_table(keep_rows(at_least_30percent_any & at_least_15percent_diff))\n\nresult\n\n A: Drug X B: Placebo C: Combination \nMedDRA System Organ Class Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%)\n MedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ncl C.2 \ndcd C.2.1.2.1 26 0 0 36 0 0 42 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote: User needs to specify the column index for filtering the table. The current example filters using column indices 1, 4, and 7 to include AEs reported in \\(\\geq\\) 40% of patients and using column indices 2, 5, and 8 to include grade 3-4 AEs reported in \\(\\geq\\) 20% of patients. These thresholds are chosen to demonstrate the filtering ability; they can be changed by varying parameter values in the has_fraction_in_any_col function.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodefull_table <- full_table_aet04_pi(adsl, adae_max) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = score_occurrences_cont_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n )\n\nat_least_40percent_any <- has_fraction_in_any_col(atleast = 0.4, col_indices = c(1, 4, 7))\n\nat_least_20percent_g34 <- has_fraction_in_any_col(atleast = 0.20, col_indices = c(2, 5, 8))\n\nresult <- full_table %>%\n trim_rows(criteria = criteria_fun) %>%\n prune_table(keep_rows(at_least_40percent_any | at_least_20percent_g34))\n\nresult\n\n A: Drug X B: Placebo C: Combination \nMedDRA System Organ Class Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%)\n MedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ncl A.1 \ndcd A.1.1.1.1 37 0 0 34 0 0 48 0 0 \ncl B.2 \ndcd B.2.2.3.1 36 0 0 40 0 0 39 0 0 \ndcd B.2.1.2.1 37 37 0 33 33 0 39 39 0 \ncl D.1 \ndcd D.1.1.4.2 36 36 0 31 31 0 38 38 0 \ncl D.2 \ndcd D.2.1.5.3 35 0 0 43 0 0 43 0 0 \ncl C.2 \ndcd C.2.1.2.1 26 0 0 36 0 0 42 0 0 \ncl C.1 \ndcd C.1.1.1.3 32 32 0 34 34 0 33 33 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote: User can specify/modify the grouping of grades, as shown in this example. In addition, the user needs to specify the column index for filtering the table. The current example uses the “Any Grade” columns with a filtering threshold at 0.40; this can be changed by varying the parameter values in the has_fraction_in_any_col function.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodegrade_groups <- list(\n \"Any Grade (%)\" = c(\"1\", \"2\", \"3\", \"4\", \"5\"),\n \"Grade 1-2 (%)\" = c(\"1\", \"2\"),\n \"Grade 3-4 (%)\" = c(\"3\", \"4\"),\n \"Grade 5 (%)\" = \"5\"\n)\n\ncol_counts <- rep(table(adsl$ACTARM), each = length(grade_groups))\n\nfull_table <- basic_table() %>%\n split_cols_by(\"ACTARM\") %>%\n split_cols_by_groups(\"MAXAETOXGR\", groups_list = grade_groups) %>%\n split_rows_by(\"AEBODSYS\",\n child_labels = \"visible\", nested = FALSE, indent_mod = -1L,\n split_fun = trim_levels_in_group(\"AEDECOD\")\n ) %>%\n append_topleft(\"MedDRA System Organ Class\") %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n analyze_vars(\n \"AEDECOD\",\n na.rm = FALSE,\n denom = \"N_col\",\n .stats = \"count_fraction\",\n .formats = c(count_fraction = format_fraction_threshold(0.01))\n ) %>%\n append_topleft(\" MedDRA Preferred Term\") %>%\n build_table(adae_max, col_counts = col_counts) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = score_occurrences_cont_cols(col_indices = c(1, 5, 9)),\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 5, 9)),\n decreasing = TRUE\n )\n\nat_least_40percent_any <- has_fraction_in_any_col(atleast = 0.4, col_indices = c(1, 5, 9))\n\nresult <- full_table %>%\n trim_rows(criteria = criteria_fun) %>%\n prune_table(keep_rows(at_least_40percent_any))\n\nresult\n\n A: Drug X B: Placebo C: Combination \nMedDRA System Organ Class Any Grade (%) Grade 1-2 (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 1-2 (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 1-2 (%) Grade 3-4 (%) Grade 5 (%)\n MedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ncl A.1 \ndcd A.1.1.1.1 37 37 0 0 34 34 0 0 48 48 0 0 \ncl B.2 \ndcd B.2.2.3.1 36 36 0 0 40 40 0 0 39 39 0 0 \ncl D.2 \ndcd D.2.1.5.3 35 35 0 0 43 43 0 0 43 43 0 0 \ncl C.2 \ndcd C.2.1.2.1 26 26 0 0 36 36 0 0 42 42 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote: User needs to specify the column index for filtering the table. The current example uses column indices 1, 5, and 9 with a filtering threshold at 0.40 to demonstrate the filtering ability; any grade AEs reported in greater than 40% of patients are shown. This can be changed by varying the parameter values in the has_fraction_in_any_col function.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodegrade_groups <- list(\n \"Any Grade (%)\" = c(\"1\", \"2\", \"3\", \"4\", \"5\"),\n \"Grade 3-4 (%)\" = c(\"3\", \"4\"),\n \"Grade 3-5 (%)\" = c(\"3\", \"4\", \"5\"),\n \"Grade 5 (%)\" = \"5\"\n)\n\ncol_counts <- rep(table(adsl$ACTARM), each = length(grade_groups))\nfull_table <- basic_table() %>%\n split_cols_by(\"ACTARM\") %>%\n split_cols_by_groups(\"MAXAETOXGR\", groups_list = grade_groups) %>%\n split_rows_by(\"AEBODSYS\",\n child_labels = \"visible\", nested = FALSE, indent_mod = -1L,\n split_fun = trim_levels_in_group(\"AEDECOD\")\n ) %>%\n append_topleft(\"MedDRA System Organ Class\") %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n analyze_vars(\n \"AEDECOD\",\n na.rm = FALSE,\n denom = \"N_col\",\n .stats = \"count_fraction\",\n .formats = c(count_fraction = format_fraction_threshold(0.01))\n ) %>%\n append_topleft(\" MedDRA Preferred Term\") %>%\n build_table(adae_max, col_counts = col_counts) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = score_occurrences_cont_cols(col_indices = c(1, 5, 9)),\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 5, 9)),\n decreasing = TRUE\n )\n\nat_least_40percent_any <- has_fraction_in_any_col(atleast = 0.4, col_indices = c(1, 5, 9))\n\nresult <- full_table %>%\n trim_rows(criteria = criteria_fun) %>%\n prune_table(keep_rows(at_least_40percent_any))\n\nresult\n\n A: Drug X B: Placebo C: Combination \nMedDRA System Organ Class Any Grade (%) Grade 3-4 (%) Grade 3-5 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 3-5 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 3-5 (%) Grade 5 (%)\n MedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ncl A.1 \ndcd A.1.1.1.1 37 0 0 0 34 0 0 0 48 0 0 0 \ncl B.2 \ndcd B.2.2.3.1 36 0 0 0 40 0 0 0 39 0 0 0 \ncl D.2 \ndcd D.2.1.5.3 35 0 0 0 43 0 0 0 43 0 0 0 \ncl C.2 \ndcd C.2.1.2.1 26 0 0 0 36 0 0 0 42 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote: User needs to specify the column index for filtering the table. The current example uses column indices 1, 4, and 7 with a filtering threshold at 0.20 to demonstrate the filtering ability; any grade AEs (Preferred Terms Only) reported in greater than 20% of patients are shown. This can be changed by varying the parameter values in the has_fraction_in_any_col function.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodegrade_groups <- list(\n \"Any Grade (%)\" = c(\"1\", \"2\", \"3\", \"4\", \"5\"),\n \"Grade 3-4 (%)\" = c(\"3\", \"4\"),\n \"Grade 5 (%)\" = \"5\"\n)\n\ncol_counts <- rep(table(adsl$ACTARM), each = length(grade_groups))\n\nfull_table <- basic_table() %>%\n split_cols_by(\"ACTARM\") %>%\n split_cols_by_groups(\"MAXAETOXGR\", groups_list = grade_groups) %>%\n analyze_vars(\n \"AEDECOD\",\n na.rm = FALSE,\n denom = \"N_col\",\n .stats = \"count_fraction\",\n .formats = c(count_fraction = format_fraction_threshold(0.01))\n ) %>%\n append_topleft(\"MedDRA Preferred Term\") %>%\n build_table(adae_max, col_counts = col_counts)\n\nat_least_20percent_any <- has_fraction_in_any_col(atleast = 0.2, col_indices = c(1, 4, 7))\n\nresult <- full_table %>%\n prune_table(keep_rows(at_least_20percent_any)) %>%\n sort_at_path(\n path = c(\"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination \n Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%)\nMedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ndcd D.2.1.5.3 35 0 0 43 0 0 43 0 0 \ndcd A.1.1.1.1 37 0 0 34 0 0 48 0 0 \ndcd B.2.2.3.1 36 0 0 40 0 0 39 0 0 \ndcd A.1.1.1.2 36 0 0 36 0 0 38 0 0 \ndcd B.2.1.2.1 37 37 0 33 33 0 39 39 0 \ndcd D.1.1.1.1 37 0 37 31 0 31 39 0 39 \ndcd D.1.1.4.2 36 36 0 31 31 0 38 38 0 \ndcd B.1.1.1.1 35 0 35 37 0 37 33 0 33 \ndcd C.2.1.2.1 26 0 0 36 0 0 42 0 0 \ndcd C.1.1.1.3 32 32 0 34 34 0 33 33 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\npreprocess_adae <- function(adae) {\n adae %>%\n dplyr::group_by(ACTARM, USUBJID, AEBODSYS, AEDECOD) %>%\n dplyr::summarize(\n MAXAETOXGR = max(as.numeric(AETOXGR)),\n .groups = \"drop\"\n ) %>%\n dplyr::ungroup() %>%\n dplyr::mutate(\n MAXAETOXGR = factor(MAXAETOXGR),\n AEDECOD = droplevels(as.factor(AEDECOD))\n )\n}\n\nfull_table_aet04_pi <- function(adsl, adae_max) {\n grade_groups <- list(\n \"Any Grade (%)\" = c(\"1\", \"2\", \"3\", \"4\", \"5\"),\n \"Grade 3-4 (%)\" = c(\"3\", \"4\"),\n \"Grade 5 (%)\" = \"5\"\n )\n\n col_counts <- rep(table(adsl$ACTARM), each = length(grade_groups))\n basic_table() %>%\n split_cols_by(\"ACTARM\") %>%\n split_cols_by_groups(\"MAXAETOXGR\", groups_list = grade_groups) %>%\n split_rows_by(\"AEBODSYS\",\n child_labels = \"visible\", nested = FALSE, indent_mod = -1L,\n split_fun = trim_levels_in_group(\"AEDECOD\")\n ) %>%\n append_topleft(\"MedDRA System Organ Class\") %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n analyze_vars(\n \"AEDECOD\",\n na.rm = FALSE,\n denom = \"N_col\",\n .stats = \"count_fraction\",\n .formats = c(count_fraction = format_fraction_threshold(0.01))\n ) %>%\n append_topleft(\" MedDRA Preferred Term\") %>%\n build_table(adae_max, col_counts = col_counts)\n}\n\ncriteria_fun <- function(tr) {\n is(tr, \"ContentRow\")\n}\n\nadsl <- random.cdisc.data::cadsl\nadae_max <- random.cdisc.data::cadae %>%\n preprocess_adae() %>%\n df_explicit_na()", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nafun <- function(x, .var, .spl_context, ...) {\n n_fun <- sum(!is.na(x), na.rm = TRUE)\n if (n_fun == 0) {\n mean_sd_fun <- c(NA, NA)\n median_fun <- NA\n min_max_fun <- c(NA, NA)\n } else {\n mean_sd_fun <- c(mean(x, na.rm = TRUE), sd(x, na.rm = TRUE))\n median_fun <- median(x, na.rm = TRUE)\n min_max_fun <- c(min(x), max(x))\n }\n is_chg <- .var == \"CHG\"\n is_baseline <- .spl_context$value[which(.spl_context$split == \"AVISIT\")] == \"BASELINE\"\n if (is_baseline && is_chg) n_fun <- mean_sd_fun <- median_fun <- min_max_fun <- NULL\n\n in_rows(\n \"n\" = n_fun,\n \"Mean (SD)\" = mean_sd_fun,\n \"Median\" = median_fun,\n \"Min - Max\" = min_max_fun,\n .formats = list(\"n\" = \"xx\", \"Mean (SD)\" = \"xx.xx (xx.xx)\", \"Median\" = \"xx.xx\", \"Min - Max\" = \"xx.xx - xx.xx\"),\n .format_na_strs = list(\"n\" = \"NE\", \"Mean (SD)\" = \"NE (NE)\", \"Median\" = \"NE\", \"Min - Max\" = \"NE - NE\")\n )\n}\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\"PARAM\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adeg_f$PARAM)) %>%\n split_rows_by(\"AVISIT\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adeg_f$AVISIT)) %>%\n split_cols_by_multivar(\n vars = c(\"AVAL\", \"CHG\"),\n varlabels = c(\"Value at Visit\", \"Change from\\nBaseline\")\n ) %>%\n analyze_colvars(afun = afun)\n\nresult <- build_table(lyt, adeg_f, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination \n Change from Change from Change from \nParameter Value at Visit Baseline Value at Visit Baseline Value at Visit Baseline \n Analysis Visit (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nHeart Rate \n BASELINE \n n 134 134 132 \n Mean (SD) 71.45 (17.93) 69.83 (20.72) 69.34 (20.95) \n Median 72.70 73.35 71.96 \n Min - Max 9.09 - 106.91 13.49 - 115.52 11.63 - 115.49 \n WEEK 1 DAY 8 \n n 134 134 134 134 132 132 \n Mean (SD) 70.19 (20.27) -1.26 (25.97) 69.43 (20.80) -0.40 (29.73) 68.65 (18.06) -0.69 (27.81) \n Median 70.70 -2.20 70.46 -0.52 68.57 -0.76 \n Min - Max 8.53 - 127.50 -50.97 - 89.16 16.85 - 129.14 -68.18 - 88.38 16.87 - 115.60 -68.25 - 67.20 \n WEEK 2 DAY 15 \n n 134 134 134 134 132 132 \n Mean (SD) 70.32 (19.56) -1.13 (26.26) 71.11 (20.56) 1.28 (31.35) 69.19 (18.06) -0.15 (28.61) \n Median 70.88 -1.10 72.52 -0.31 69.30 -1.55 \n Min - Max 17.14 - 116.32 -85.03 - 67.52 9.22 - 120.54 -73.07 - 81.44 29.62 - 120.50 -67.75 - 66.29 \n WEEK 3 DAY 22 \n n 134 134 134 134 132 132 \n Mean (SD) 68.25 (20.17) -3.20 (28.66) 68.95 (20.56) -0.88 (30.14) 70.88 (20.28) 1.54 (27.28) \n Median 68.79 -2.17 67.80 1.19 70.12 0.14 \n Min - Max 13.33 - 131.73 -81.20 - 72.57 23.98 - 130.41 -73.03 - 103.31 20.91 - 116.79 -64.51 - 72.52 \n WEEK 4 DAY 29 \n n 134 134 134 134 132 132 \n Mean (SD) 70.06 (18.41) -1.38 (26.59) 71.60 (20.34) 1.77 (30.26) 71.02 (20.59) 1.68 (29.60) \n Median 69.33 -4.54 72.21 -0.88 70.52 3.81 \n Min - Max 22.30 - 116.51 -58.07 - 77.32 17.53 - 129.06 -64.32 - 85.34 10.35 - 117.30 -65.91 - 105.67 \n WEEK 5 DAY 36 \n n 134 134 134 134 132 132 \n Mean (SD) 66.41 (19.74) -5.04 (27.11) 71.25 (18.92) 1.42 (27.08) 71.26 (18.56) 1.92 (29.59) \n Median 65.40 -6.83 70.86 0.64 73.29 1.74 \n Min - Max 23.89 - 110.38 -73.26 - 57.24 25.86 - 125.73 -71.15 - 67.37 23.89 - 117.19 -58.23 - 68.86 \nQT Duration \n BASELINE \n n 134 134 132 \n Mean (SD) 336.83 (117.96) 351.00 (98.44) 352.60 (105.11) \n Median 344.41 351.48 347.96 \n Min - Max 86.98 - 665.40 98.90 - 641.92 105.68 - 628.14 \n WEEK 1 DAY 8 \n n 134 134 134 134 132 132 \n Mean (SD) 342.57 (101.09) 5.74 (159.94) 363.95 (102.34) 12.94 (140.73) 359.42 (105.16) 6.83 (147.13) \n Median 347.26 -1.78 356.54 13.73 363.84 8.69 \n Min - Max 91.63 - 591.42 -346.44 - 452.75 114.92 - 656.45 -317.53 - 416.35 51.91 - 611.88 -473.19 - 358.00 \n WEEK 2 DAY 15 \n n 134 134 134 134 132 132 \n Mean (SD) 353.24 (93.93) 16.41 (162.10) 345.93 (96.78) -5.08 (152.51) 335.69 (98.61) -16.91 (138.45) \n Median 351.10 16.72 346.83 -9.68 320.96 -22.27 \n Min - Max 138.01 - 587.30 -414.07 - 389.16 146.42 - 556.07 -440.28 - 364.76 104.91 - 562.34 -326.55 - 325.27 \n WEEK 3 DAY 22 \n n 134 134 134 134 132 132 \n Mean (SD) 370.12 (101.57) 33.28 (152.78) 343.41 (102.58) -7.59 (138.80) 346.95 (94.96) -5.65 (144.65) \n Median 378.21 39.59 335.12 -15.89 352.15 9.11 \n Min - Max 118.14 - 615.18 -391.72 - 520.09 63.37 - 566.51 -311.28 - 293.76 126.09 - 580.81 -412.11 - 410.01 \n WEEK 4 DAY 29 \n n 134 134 134 134 132 132 \n Mean (SD) 345.77 (95.97) 8.94 (145.65) 354.38 (108.29) 3.37 (142.39) 341.36 (106.75) -11.24 (145.65) \n Median 340.13 5.58 346.70 -17.13 352.30 -11.87 \n Min - Max 110.12 - 616.58 -393.34 - 456.04 80.82 - 687.69 -439.90 - 364.80 4.95 - 570.61 -480.94 - 330.67 \n WEEK 5 DAY 36 \n n 134 134 134 134 132 132 \n Mean (SD) 358.90 (97.69) 22.07 (155.68) 338.65 (99.26) -12.36 (130.46) 349.30 (95.77) -3.30 (136.00) \n Median 351.96 5.89 344.17 0.40 350.32 12.68 \n Min - Max 88.38 - 661.12 -353.30 - 539.84 31.25 - 563.90 -338.85 - 352.75 119.02 - 581.83 -311.45 - 295.53 \nRR Duration \n BASELINE \n n 134 134 132 \n Mean (SD) 1028.42 (286.38) 1027.48 (324.00) 1074.62 (277.33) \n Median 1041.86 1047.27 1080.87 \n Min - Max 34.33 - 1783.71 5.29 - 1877.19 289.60 - 1617.06 \n WEEK 1 DAY 8 \n n 134 134 134 134 132 132 \n Mean (SD) 990.15 (318.74) -38.26 (446.40) 1061.59 (269.14) 34.10 (401.76) 1039.64 (284.39) -34.98 (406.04) \n Median 963.88 -86.50 1061.50 66.91 1014.78 -97.83 \n Min - Max 110.82 - 2014.56 -1014.82 - 1389.40 276.83 - 1711.99 -942.16 - 993.82 498.21 - 1937.47 -958.61 - 908.90 \n WEEK 2 DAY 15 \n n 134 134 134 134 132 132 \n Mean (SD) 1013.37 (304.13) -15.05 (425.81) 1109.40 (318.23) 81.92 (453.11) 1045.21 (277.51) -29.41 (380.84) \n Median 1040.69 40.49 1117.76 69.27 1034.64 -15.33 \n Min - Max 164.19 - 1677.10 -1216.10 - 1053.15 160.73 - 2048.73 -1127.10 - 1148.61 252.84 - 1722.33 -859.27 - 871.54 \n WEEK 3 DAY 22 \n n 134 134 134 134 132 132 \n Mean (SD) 1013.99 (304.99) -14.43 (406.53) 1118.35 (296.53) 90.86 (409.57) 1036.59 (268.52) -38.03 (421.48) \n Median 1027.23 -50.54 1134.60 52.03 1030.72 -60.72 \n Min - Max 357.04 - 1798.65 -882.94 - 1080.26 97.14 - 1825.43 -887.06 - 1166.15 446.02 - 1713.38 -984.79 - 902.37 \n WEEK 4 DAY 29 \n n 134 134 134 134 132 132 \n Mean (SD) 1033.31 (313.92) 4.89 (483.15) 1079.76 (298.94) 52.28 (429.25) 1027.55 (295.86) -47.07 (378.23) \n Median 1050.40 5.60 1051.61 69.55 1023.36 -49.52 \n Min - Max 54.33 - 1979.43 -1345.93 - 1195.41 347.94 - 1762.04 -826.43 - 1191.83 341.62 - 2144.86 -1002.03 - 1048.66\n WEEK 5 DAY 36 \n n 134 134 134 134 132 132 \n Mean (SD) 1072.33 (282.90) 43.92 (379.05) 1058.45 (271.01) 30.97 (436.03) 1029.04 (271.21) -45.58 (405.53) \n Median 1067.33 55.87 1068.95 33.61 1065.26 -34.40 \n Min - Max 352.97 - 2000.56 -1028.79 - 1418.57 208.83 - 1794.73 -978.97 - 1365.13 436.28 - 1794.07 -962.18 - 1329.88 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\n# Data should be filtered for the studied Parameter (`PARAM`) and the\n# Analysis Visit (`AVISIT`). According to the GDSR template, the values for\n# the `AVISIT` reported in the EGT01 standard may be:\n# 'POST-BASELINE MAXIMUM', 'POST-BASELINE MINIMUM', 'POST-BASELINE LAST'.\n\nadsl <- random.cdisc.data::cadsl\nadeg <- random.cdisc.data::cadeg\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadeg <- df_explicit_na(adeg)\n\nadeg_f <- adeg %>%\n filter(ANL01FL == \"Y\") %>%\n filter(PARAM %in% c(\"Heart Rate\", \"QT Duration\", \"RR Duration\"))", "crumbs": [ "Tables", - "Adverse Events", - "AET04_PI" + "ECG", + "EGT01" ] }, { - "objectID": "tables/adverse-events/aet04_pi.html#teal-app", - "href": "tables/adverse-events/aet04_pi.html#teal-app", - "title": "AET04_PI", + "objectID": "tables/ECG/egt01.html#teal-app", + "href": "tables/ECG/egt01.html#teal-app", + "title": "EGT01", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_by_grade(\n label = \"Adverse Events by Grade Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n col_by_grade = TRUE,\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n grade = choices_selected(\n choices = variable_choices(ADAE, c(\"AETOXGR\", \"AESEV\")),\n selected = \"AETOXGR\"\n ),\n # List of column groups for grades used when `col_by_grade` = TRUE.\n grading_groups = list(\n `Any Grade (%)` = c(\"1\", \"2\", \"3\", \"4\", \"5\"),\n `Grade 3-4 (%)` = c(\"3\", \"4\"),\n `Grade 5 (%)` = \"5\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_by_grade(\n label = \"Adverse Events by Grade Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n col_by_grade = TRUE,\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n grade = choices_selected(\n choices = variable_choices(ADAE, c(\"AETOXGR\", \"AESEV\")),\n selected = \"AETOXGR\"\n ),\n # List of column groups for grades used when `col_by_grade` = TRUE.\n grading_groups = list(\n `Any Grade (%)` = c(\"1\", \"2\", \"3\", \"4\", \"5\"),\n `Grade 3-4 (%)` = c(\"3\", \"4\"),\n `Grade 5 (%)` = \"5\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADEG <- df_explicit_na(ADEG)\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"ECG Results and Change from Baseline by Visit\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"AVAL\", \"CHG\")),\n selected = c(\"AVAL\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADEG, \"PARAMCD\", \"PARAM\"),\n selected = \"HR\"\n ),\n parallel_vars = TRUE\n )\n ),\n filter = teal_slices(teal_slice(\"ADEG\", \"AVAL\", selected = NULL))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADEG <- df_explicit_na(ADEG)\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"ECG Results and Change from Baseline by Visit\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"AVAL\", \"CHG\")),\n selected = c(\"AVAL\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADEG, \"PARAMCD\", \"PARAM\"),\n selected = \"HR\"\n ),\n parallel_vars = TRUE\n )\n ),\n filter = teal_slices(teal_slice(\"ADEG\", \"AVAL\", selected = NULL))\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Adverse Events", - "AET04_PI" + "ECG", + "EGT01" ] }, { - "objectID": "tables/adverse-events/aet04_pi.html#reproducibility", - "href": "tables/adverse-events/aet04_pi.html#reproducibility", - "title": "AET04_PI", + "objectID": "tables/ECG/egt01.html#reproducibility", + "href": "tables/ECG/egt01.html#reproducibility", + "title": "EGT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:59:58 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:55:28 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET04_PI" + "ECG", + "EGT01" ] }, { - "objectID": "tables/adverse-events/aet01_aesi.html#output", - "href": "tables/adverse-events/aet01_aesi.html#output", - "title": "AET01_AESI", + "objectID": "tables/ECG/egt05_qtcat.html#output", + "href": "tables/ECG/egt05_qtcat.html#output", + "title": "EGT05_QTCAT", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable with Optional Lines\nTable For Studies with Multiple Drugs\nTable of AEs by SMQ\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeaesi_vars <- c(\"WD\", \"DSM\", \"CONTRT\", \"ALL_RESOLVED\", \"NOT_RESOLVED\", \"SER\", \"REL\")\n\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_patients_with_event(\n vars = \"USUBJID\",\n filters = c(\"ANL01FL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients with at least one AE\")\n ) %>%\n count_values(\n \"ANL01FL\",\n values = \"Y\",\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n var_labels = \"Total number of patients with at least one AE by worst grade\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\"USUBJID\", flag_variables = aesi_vars, denom = \"N_col\")\n\nresult <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one AE 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of AEs 502 480 604 \nTotal number of patients with at least one AE by worst grade \n Grade 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n Grade 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n Grade 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 (fatal outcome) 64 (47.8%) 52 (38.8%) 64 (48.5%) \nTotal number of patients with study drug withdrawn due to AE 22 (16.4%) 21 (15.7%) 28 (21.2%) \nTotal number of patients with dose modified/interrupted due to AE 55 (41.0%) 62 (46.3%) 64 (48.5%) \nTotal number of patients with treatment received for AE 80 (59.7%) 80 (59.7%) 89 (67.4%) \nTotal number of patients with all non-fatal AEs resolved 17 (12.7%) 12 (9.0%) 11 (8.3%) \nTotal number of patients with at least one unresolved or ongoing non-fatal AE 83 (61.9%) 86 (64.2%) 92 (69.7%) \nTotal number of patients with at least one serious AE 85 (63.4%) 80 (59.7%) 87 (65.9%) \nTotal number of patients with at least one related AE 86 (64.2%) 85 (63.4%) 92 (69.7%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeaesi_vars <- c(\"WD\", \"DSM\", \"CONTRT\")\naesi_resolved <- c(\"ALL_RESOLVED\", \"ALL_RESOLVED_WD\", \"ALL_RESOLVED_DSM\", \"ALL_RESOLVED_CONTRT\")\naesi_not_resolved <- c(\"NOT_RESOLVED\", \"NOT_RESOLVED_WD\", \"NOT_RESOLVED_DSM\", \"NOT_RESOLVED_CONTRT\")\naesi_ser <- c(\"SER\", \"SERWD\", \"SERDSM\", \"SERCONTRT\")\naesi_rel <- c(\"REL\", \"RELWD\", \"RELDSM\", \"RELCONTRT\", \"RELSER\")\n\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_patients_with_event(\n vars = \"USUBJID\",\n filters = c(\"ANL01FL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients with at least one AE\")\n ) %>%\n count_values(\n \"ANL01FL\",\n values = \"Y\",\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n var_labels = \"Total number of patients with at least one AE by worst grade\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(aesi_vars, aesi_resolved[1]), denom = \"N_col\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_resolved[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_res\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_not_resolved[1], denom = \"N_col\", table_names = \"fl_notres_main\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_not_resolved[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_notres\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_ser[1], denom = \"N_col\", table_names = \"fl_ser_main\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_ser[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_ser\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_rel[1], denom = \"N_col\", table_names = \"fl_rel_main\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_rel[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_rel\"\n )\n\nresult <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one AE 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of AEs 502 480 604 \nTotal number of patients with at least one AE by worst grade \n Grade 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n Grade 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n Grade 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 (fatal outcome) 64 (47.8%) 52 (38.8%) 64 (48.5%) \nTotal number of patients with study drug withdrawn due to AE 22 (16.4%) 21 (15.7%) 28 (21.2%) \nTotal number of patients with dose modified/interrupted due to AE 55 (41.0%) 62 (46.3%) 64 (48.5%) \nTotal number of patients with treatment received for AE 80 (59.7%) 80 (59.7%) 89 (67.4%) \nTotal number of patients with all non-fatal AEs resolved 17 (12.7%) 12 (9.0%) 11 (8.3%) \n No. of patients with study drug withdrawn due to resolved AE 0 1 (0.7%) 2 (1.5%) \n No. of patients with dose modified/interrupted due to resolved AE 3 (2.2%) 4 (3.0%) 2 (1.5%) \n No. of patients with treatment received for resolved AE 9 (6.7%) 7 (5.2%) 7 (5.3%) \nTotal number of patients with at least one unresolved or ongoing non-fatal AE 83 (61.9%) 86 (64.2%) 92 (69.7%) \n No. of patients with study drug withdrawn due to unresolved or ongoing AE 22 (16.4%) 20 (14.9%) 26 (19.7%) \n No. of patients with dose modified/interrupted due to unresolved or ongoing AE 52 (38.8%) 58 (43.3%) 62 (47.0%) \n No. of patients with treatment received for unresolved or ongoing AE 71 (53.0%) 73 (54.5%) 82 (62.1%) \nTotal number of patients with at least one serious AE 85 (63.4%) 80 (59.7%) 87 (65.9%) \n No. of patients with study drug withdrawn due to serious AE 9 (6.7%) 4 (3.0%) 10 (7.6%) \n No. of patients with treatment received for serious AE 21 (15.7%) 22 (16.4%) 28 (21.2%) \n No. of patients with dose modified/interrupted due to serious AE 59 (44.0%) 58 (43.3%) 53 (40.2%) \nTotal number of patients with at least one related AE 86 (64.2%) 85 (63.4%) 92 (69.7%) \n No. of patients with study drug withdrawn due to related AE 5 (3.7%) 10 (7.5%) 7 (5.3%) \n No. of patients with dose modified/interrupted due to related AE 24 (17.9%) 32 (23.9%) 34 (25.8%) \n No. of patients with treatment received for related AE 53 (39.6%) 58 (43.3%) 60 (45.5%) \n No. of patients with serious, related AE 64 (47.8%) 52 (38.8%) 64 (48.5%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadsl <- random.cdisc.data::cadsl\nadae_mult <- random.cdisc.data::cadae\n\nadsl <- filter(adsl, SAFFL == \"Y\")\nadae_mult <- filter(adae_mult, ANL01FL == \"Y\" & SAFFL == \"Y\")\n\nadsl <- df_explicit_na(adsl)\nadae_mult <- df_explicit_na(adae_mult)\n\n# for illustration purposes only, create AEREL1, AEREL2, AEACN1, AEACN2 from respective variables\nadae_mult <- adae_mult %>%\n mutate(\n AEREL1 = AEREL,\n AEREL2 = AEREL,\n AEACN1 = AEACN,\n AEACN2 = AEACN\n )\n\nnot_resolved <- adae_mult %>%\n filter(!(AEOUT %in% c(\"RECOVERED/RESOLVED\", \"FATAL\", \"RECOVERED/RESOLVED WITH SEQUELAE\"))) %>%\n distinct(USUBJID) %>%\n mutate(NOT_RESOLVED = \"Y\")\n\nadae_mult <- adae_mult %>%\n left_join(not_resolved, by = c(\"USUBJID\")) %>%\n mutate(\n ALL_RESOLVED = with_label(\n is.na(NOT_RESOLVED),\n \"Total number of patients with all non-fatal AEs resolved\"\n ),\n NOT_RESOLVED = with_label(\n !is.na(NOT_RESOLVED),\n \"Total number of patients with at least one non-fatal unresolved or ongoing AE\"\n )\n )\n\nadae_mult <- adae_mult %>%\n mutate(\n AEDECOD = as.character(AEDECOD),\n WD1 = with_label(\n AEACN1 == \"DRUG WITHDRAWN\",\n \"Total number of patients with study drug 1 withdrawn due to AE\"\n ),\n WD2 = with_label(\n AEACN2 == \"DRUG WITHDRAWN\",\n \"Total number of patients with study drug 2 withdrawn due to AE\"\n ),\n DSM1 = with_label(\n AEACN1 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Total number of patients with dose of study drug 1 modified/interrupted due to AE\"\n ),\n DSM2 = with_label(\n AEACN2 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Total number of patients with dose of study drug 2 modified/interrupted due to AE\"\n ),\n CONTRT = with_label(\n AECONTRT == \"Y\",\n \"Total number of patients with treatment received for AE\"\n ),\n SER = with_label(\n AESER == \"Y\",\n \"Total number of patients with at least one serious AE\"\n ),\n REL1 = with_label(\n AEREL1 == \"Y\",\n \"Total number of patients with at least one AE related to study drug 1\"\n ),\n REL2 = with_label(\n AEREL2 == \"Y\",\n \"Total number of patients with at least one AE related to study drug 2\"\n ),\n ALL_RESOLVED_WD1 = with_label(\n WD1 == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with study drug 1 withdrawn due to resolved AE\"\n ),\n ALL_RESOLVED_DSM1 = with_label(\n DSM1 == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with dose of study drug 1 modified/interrupted due to resolved AE\"\n ),\n ALL_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with treatment received for resolved AE\"\n ),\n ALL_RESOLVED_WD2 = with_label(\n WD2 == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with study drug 2 withdrawn due to resolved AE\"\n ),\n ALL_RESOLVED_DSM2 = with_label(\n DSM2 == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with dose of study drug 2 modified/interrupted due to resolved AE\"\n ),\n NOT_RESOLVED_WD1 = with_label(\n WD1 == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with study drug 1 withdrawn due to unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_DSM1 = with_label(\n DSM1 == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with dose of study drug 1 modified/interrupted due to unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with treatment received for unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_WD2 = with_label(\n WD2 == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with study drug 2 withdrawn due to unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_DSM2 = with_label(\n DSM2 == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with dose of study drug 2 modified/interrupted due to unresolved or ongoing AE\"\n ),\n SERWD1 = with_label(\n AESER == \"Y\" & AEACN1 == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug 1 withdrawn due to serious AE\"\n ),\n SERWD2 = with_label(\n AESER == \"Y\" & AEACN2 == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug 2 withdrawn due to serious AE\"\n ),\n SERCONTRT = with_label(\n AECONTRT == \"Y\" & AESER == \"Y\",\n \"No. of patients with treatment received for serious AE\"\n ),\n SERDSM1 = with_label(\n AESER == \"Y\" & AEACN1 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose of study drug 1 modified/interrupted due to serious AE\"\n ),\n SERDSM2 = with_label(\n AESER == \"Y\" & AEACN2 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose of study drug 2 modified/interrupted due to serious AE\"\n ),\n REL1WD1 = with_label(\n AEREL1 == \"Y\" & AEACN1 == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug 1 withdrawn due to AE related to study drug 1\"\n ),\n REL1WD2 = with_label(\n AEREL1 == \"Y\" & AEACN2 == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug 1 withdrawn due to AE related to study drug 2\"\n ),\n REL2WD1 = with_label(\n AEREL1 == \"Y\" & AEACN1 == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug 2 withdrawn due to AE related to study drug 1\"\n ),\n REL2WD2 = with_label(\n AEREL1 == \"Y\" & AEACN2 == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug 2 withdrawn due to AE related to study drug 2\"\n ),\n REL1DSM1 = with_label(\n AEREL1 == \"Y\" & AEACN1 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose of study drug 1 modified/interrupted due to AE related to study drug 1\"\n ),\n REL2DSM1 = with_label(\n AEREL2 == \"Y\" & AEACN1 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose of study drug 2 modified/interrupted due to AE related to study drug 1\"\n ),\n REL1DSM2 = with_label(\n AEREL1 == \"Y\" & AEACN2 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose of study drug 1 modified/interrupted due to AE related to study drug 2\"\n ),\n REL2DSM2 = with_label(\n AEREL2 == \"Y\" & AEACN2 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose of study drug 2 modified/interrupted due to AE related to study drug 2\"\n ),\n REL1CONTRT = with_label(\n AECONTRT == \"Y\" & AEREL1 == \"Y\",\n \"No. of patients with treatment received for AE related to study drug 1\"\n ),\n REL2CONTRT = with_label(\n AECONTRT == \"Y\" & AEREL2 == \"Y\",\n \"No. of patients with treatment received for AE related to study drug 2\"\n ),\n REL1SER = with_label(\n AESER == \"Y\" & AEREL1 == \"Y\",\n \"No. of patients with serious AE related to study drug 1\"\n ),\n REL2SER = with_label(\n AESER == \"Y\" & AEREL2 == \"Y\",\n \"No. of patients with serious AE related to study drug 2\"\n )\n )\n\nadae_mult <- adae_mult %>%\n mutate(AETOXGR = forcats::fct_recode(\n AETOXGR,\n \"Grade 1\" = \"1\",\n \"Grade 2\" = \"2\",\n \"Grade 3\" = \"3\",\n \"Grade 4\" = \"4\",\n \"Grade 5 (fatal outcome)\" = \"5\"\n ))\n\naesi_vars <- c(\"WD1\", \"WD2\", \"DSM1\", \"DSM2\", \"CONTRT\")\naesi_res <- c(\n \"ALL_RESOLVED\",\n \"ALL_RESOLVED_WD1\",\n \"ALL_RESOLVED_WD2\",\n \"ALL_RESOLVED_DSM1\",\n \"ALL_RESOLVED_DSM2\",\n \"ALL_RESOLVED_CONTRT\"\n)\naesi_not_res <- c(\n \"NOT_RESOLVED\",\n \"NOT_RESOLVED_WD1\",\n \"NOT_RESOLVED_WD2\",\n \"NOT_RESOLVED_DSM1\",\n \"NOT_RESOLVED_DSM2\",\n \"NOT_RESOLVED_CONTRT\"\n)\naesi_ser <- c(\"SER\", \"SERWD1\", \"SERWD2\", \"SERDSM1\", \"SERDSM2\", \"SERCONTRT\")\naesi_rel1 <- c(\"REL1\", \"REL1WD1\", \"REL1WD2\", \"REL1DSM1\", \"REL1DSM2\", \"REL1CONTRT\", \"REL1SER\")\naesi_rel2 <- c(\"REL2\", \"REL2WD1\", \"REL2WD2\", \"REL2DSM1\", \"REL2DSM2\", \"REL2CONTRT\", \"REL2SER\")\n\nlyt_adae_mult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_patients_with_event(\n vars = \"USUBJID\",\n filters = c(\"ANL01FL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients with at least one AE\")\n ) %>%\n count_values(\n \"ANL01FL\",\n values = \"Y\",\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n var_labels = \"Total number of patients with at least one AE by worst grade\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(aesi_vars, aesi_res[1]), denom = \"N_col\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_res[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_res\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_not_res[1], denom = \"N_col\", table_names = \"fl_notres_main\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_not_res[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_notres\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_ser[1], denom = \"N_col\", table_names = \"fl_ser_main\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_ser[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_ser\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_rel1[1], denom = \"N_col\", table_names = \"fl_rel1_main\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_rel1[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_rel1\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_rel2[1], denom = \"N_col\", table_names = \"fl_rel2_main\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_rel2[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_rel2\"\n )\n\nresult <- build_table(lyt_adae_mult, df = adae_mult, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one AE 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of AEs 502 480 604 \nTotal number of patients with at least one AE by worst grade \n Grade 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n Grade 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n Grade 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 (fatal outcome) 64 (47.8%) 52 (38.8%) 64 (48.5%) \nTotal number of patients with study drug 1 withdrawn due to AE 22 (16.4%) 21 (15.7%) 28 (21.2%) \nTotal number of patients with study drug 2 withdrawn due to AE 22 (16.4%) 21 (15.7%) 28 (21.2%) \nTotal number of patients with dose of study drug 1 modified/interrupted due to AE 55 (41.0%) 62 (46.3%) 64 (48.5%) \nTotal number of patients with dose of study drug 2 modified/interrupted due to AE 55 (41.0%) 62 (46.3%) 64 (48.5%) \nTotal number of patients with treatment received for AE 80 (59.7%) 80 (59.7%) 89 (67.4%) \nTotal number of patients with all non-fatal AEs resolved 17 (12.7%) 12 (9.0%) 11 (8.3%) \n No. of patients with study drug 1 withdrawn due to resolved AE 0 1 (0.7%) 2 (1.5%) \n No. of patients with study drug 2 withdrawn due to resolved AE 0 1 (0.7%) 2 (1.5%) \n No. of patients with dose of study drug 1 modified/interrupted due to resolved AE 3 (2.2%) 4 (3.0%) 2 (1.5%) \n No. of patients with dose of study drug 2 modified/interrupted due to resolved AE 3 (2.2%) 4 (3.0%) 2 (1.5%) \n No. of patients with treatment received for resolved AE 9 (6.7%) 7 (5.2%) 7 (5.3%) \nTotal number of patients with at least one non-fatal unresolved or ongoing AE 83 (61.9%) 86 (64.2%) 92 (69.7%) \n No. of patients with study drug 1 withdrawn due to unresolved or ongoing AE 22 (16.4%) 20 (14.9%) 26 (19.7%) \n No. of patients with study drug 2 withdrawn due to unresolved or ongoing AE 22 (16.4%) 20 (14.9%) 26 (19.7%) \n No. of patients with dose of study drug 1 modified/interrupted due to unresolved or ongoing AE 52 (38.8%) 58 (43.3%) 62 (47.0%) \n No. of patients with dose of study drug 2 modified/interrupted due to unresolved or ongoing AE 52 (38.8%) 58 (43.3%) 62 (47.0%) \n No. of patients with treatment received for unresolved or ongoing AE 71 (53.0%) 73 (54.5%) 82 (62.1%) \nTotal number of patients with at least one serious AE 85 (63.4%) 80 (59.7%) 87 (65.9%) \n No. of patients with study drug 1 withdrawn due to serious AE 9 (6.7%) 4 (3.0%) 10 (7.6%) \n No. of patients with study drug 2 withdrawn due to serious AE 9 (6.7%) 4 (3.0%) 10 (7.6%) \n No. of patients with dose of study drug 1 modified/interrupted due to serious AE 21 (15.7%) 22 (16.4%) 28 (21.2%) \n No. of patients with dose of study drug 2 modified/interrupted due to serious AE 21 (15.7%) 22 (16.4%) 28 (21.2%) \n No. of patients with treatment received for serious AE 59 (44.0%) 58 (43.3%) 53 (40.2%) \nTotal number of patients with at least one AE related to study drug 1 86 (64.2%) 85 (63.4%) 92 (69.7%) \n No. of patients with study drug 1 withdrawn due to AE related to study drug 1 5 (3.7%) 10 (7.5%) 7 (5.3%) \n No. of patients with study drug 1 withdrawn due to AE related to study drug 2 5 (3.7%) 10 (7.5%) 7 (5.3%) \n No. of patients with dose of study drug 1 modified/interrupted due to AE related to study drug 1 24 (17.9%) 32 (23.9%) 34 (25.8%) \n No. of patients with dose of study drug 1 modified/interrupted due to AE related to study drug 2 24 (17.9%) 32 (23.9%) 34 (25.8%) \n No. of patients with treatment received for AE related to study drug 1 53 (39.6%) 58 (43.3%) 60 (45.5%) \n No. of patients with serious AE related to study drug 1 64 (47.8%) 52 (38.8%) 64 (48.5%) \nTotal number of patients with at least one AE related to study drug 2 86 (64.2%) 85 (63.4%) 92 (69.7%) \n No. of patients with study drug 2 withdrawn due to AE related to study drug 1 5 (3.7%) 10 (7.5%) 7 (5.3%) \n No. of patients with study drug 2 withdrawn due to AE related to study drug 2 5 (3.7%) 10 (7.5%) 7 (5.3%) \n No. of patients with dose of study drug 2 modified/interrupted due to AE related to study drug 1 24 (17.9%) 32 (23.9%) 34 (25.8%) \n No. of patients with dose of study drug 2 modified/interrupted due to AE related to study drug 2 24 (17.9%) 32 (23.9%) 34 (25.8%) \n No. of patients with treatment received for AE related to study drug 2 53 (39.6%) 58 (43.3%) 60 (45.5%) \n No. of patients with serious AE related to study drug 2 64 (47.8%) 52 (38.8%) 64 (48.5%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\nadsl <- filter(adsl, SAFFL == \"Y\")\nadae <- filter(adae, ANL01FL == \"Y\" & SAFFL == \"Y\")\n\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\nstack_adae_by_smq <- function(adae, smq) {\n adae_labels <- c(var_labels(adae), \"Standardized MedDRA Query\")\n l_df <- lapply(smq, function(ae_grp) {\n ae_scope <- gsub(\"NAM\", \"SC\", ae_grp)\n keep <- adae[[ae_grp]] != \"<Missing>\"\n df <- adae[keep, ]\n if (substr(ae_grp, 1, 3) == \"SMQ\") {\n df[[\"SMQ\"]] <- aesi_label(as.character(df[[ae_grp]]), scope = as.character(df[[ae_scope]]))\n } else {\n df[[\"SMQ\"]] <- df[[ae_grp]]\n }\n df\n })\n result <- do.call(rbind, l_df)\n var_labels(result) <- adae_labels\n result\n}\n\nadae_smq <- stack_adae_by_smq(adae, c(\"SMQ01NAM\", \"SMQ02NAM\", \"CQ01NAM\"))\n\nnot_resolved <- adae_smq %>%\n filter(!(AEOUT %in% c(\"RECOVERED/RESOLVED\", \"FATAL\", \"RECOVERED/RESOLVED WITH SEQUELAE\"))) %>%\n distinct(USUBJID) %>%\n mutate(NOT_RESOLVED = \"Y\")\n\nadae_smq <- adae_smq %>%\n left_join(not_resolved, by = c(\"USUBJID\")) %>%\n mutate(\n ALL_RESOLVED = with_label(\n is.na(NOT_RESOLVED),\n \"Total number of patients with all non-fatal AEs resolved\"\n ),\n NOT_RESOLVED = with_label(\n !is.na(NOT_RESOLVED),\n \"Total number of patients with at least one non-fatal unresolved or ongoing AE\"\n )\n )\n\nadae_smq <- adae_smq %>%\n mutate(\n AEDECOD = as.character(AEDECOD),\n WD = with_label(\n AEACN == \"DRUG WITHDRAWN\",\n \"Total number of patients with study drug withdrawn due to AE\"\n ),\n DSM = with_label(\n AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Total number of patients with dose modified/interrupted due to AE\"\n ),\n CONTRT = with_label(\n AECONTRT == \"Y\",\n \"Total number of patients with treatment received for AE\"\n ),\n SER = with_label(\n AESER == \"Y\",\n \"Total number of patients with at least one serious AE\"\n ),\n REL = with_label(\n AEREL == \"Y\",\n \"Total number of patients with at least one related AE\"\n ),\n ALL_RESOLVED_WD = with_label(\n WD == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with study drug withdrawn due to resolved AE\"\n ),\n ALL_RESOLVED_DSM = with_label(\n DSM == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with dose modified/interrupted due to resolved AE\"\n ),\n ALL_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with treatment received for resolved AE\"\n ),\n NOT_RESOLVED_WD = with_label(\n WD == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with study drug withdrawn due to unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_DSM = with_label(\n DSM == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with dose modified/interrupted due to unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with treatment received for unresolved or ongoing AE\"\n ),\n SERWD = with_label(\n AESER == \"Y\" & AEACN == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug withdrawn due to serious AE\"\n ),\n SERCONTRT = with_label(\n AECONTRT == \"Y\" & AESER == \"Y\",\n \"No. of patients with treatment received for serious AE\"\n ),\n SERDSM = with_label(\n AESER == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose modified/interrupted due to serious AE\"\n ),\n RELWD = with_label(\n AEREL == \"Y\" & AEACN == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug withdrawn due to related AE\"\n ),\n RELDSM = with_label(\n AEREL == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose modified/interrupted due to related AE\"\n ),\n RELCONTRT = with_label(\n AECONTRT == \"Y\" & AEREL == \"Y\",\n \"No. of patients with treatment received for related AE\"\n ),\n RELSER = with_label(\n AESER == \"Y\" & AEREL == \"Y\",\n \"No. of patients with serious, related AE\"\n )\n )\n\nadae_smq <- adae_smq %>%\n mutate(\n AETOXGR = forcats::fct_recode(AETOXGR,\n \"Grade 1\" = \"1\",\n \"Grade 2\" = \"2\",\n \"Grade 3\" = \"3\",\n \"Grade 4\" = \"4\",\n \"Grade 5 (fatal outcome)\" = \"5\"\n )\n )\n\nsplit_fun <- remove_split_levels(\"<Missing>\")\naesi_vars <- c(\"WD\", \"DSM\", \"CONTRT\", \"ALL_RESOLVED\", \"NOT_RESOLVED\", \"SER\", \"REL\")\n\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n split_fun = split_fun,\n split_label = \"Standardized MedDRA Query\",\n label_pos = \"topleft\"\n ) %>%\n count_patients_with_event(\n vars = \"USUBJID\",\n filters = c(\"ANL01FL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients with at least one AE\")\n ) %>%\n count_values(\n \"ANL01FL\",\n values = \"Y\",\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n var_labels = \"Total number of patients with at least one AE by worst grade\",\n .show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\"USUBJID\", flag_variables = aesi_vars, denom = \"N_col\")\n\nresult <- build_table(lyt_adae, df = adae_smq, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination\nStandardized MedDRA Query (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nC.1.1.1.3/B.2.2.3.1 AESI (BROAD) \n Total number of patients with at least one AE 58 (43.3%) 60 (44.8%) 66 (50.0%) \n Total number of AEs 97 106 122 \n Total number of patients with at least one AE by worst grade \n Grade 1 22 (16.4%) 26 (19.4%) 30 (22.7%) \n Grade 2 0 0 0 \n Grade 3 0 0 0 \n Grade 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 5 (fatal outcome) 0 0 0 \n Total number of patients with study drug withdrawn due to AE 5 (3.7%) 6 (4.5%) 9 (6.8%) \n Total number of patients with dose modified/interrupted due to AE 21 (15.7%) 21 (15.7%) 24 (18.2%) \n Total number of patients with treatment received for AE 32 (23.9%) 35 (26.1%) 44 (33.3%) \n Total number of patients with all non-fatal AEs resolved 7 (5.2%) 9 (6.7%) 8 (6.1%) \n Total number of patients with at least one non-fatal unresolved or ongoing AE 51 (38.1%) 51 (38.1%) 58 (43.9%) \n Total number of patients with at least one serious AE 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Total number of patients with at least one related AE 36 (26.9%) 34 (25.4%) 36 (27.3%) \nD.2.1.5.3/A.1.1.1.1 AESI \n Total number of patients with at least one AE 62 (46.3%) 61 (45.5%) 76 (57.6%) \n Total number of AEs 106 100 139 \n Total number of patients with at least one AE by worst grade \n Grade 1 62 (46.3%) 61 (45.5%) 76 (57.6%) \n Grade 2 0 0 0 \n Grade 3 0 0 0 \n Grade 4 0 0 0 \n Grade 5 (fatal outcome) 0 0 0 \n Total number of patients with study drug withdrawn due to AE 6 (4.5%) 8 (6.0%) 4 (3.0%) \n Total number of patients with dose modified/interrupted due to AE 23 (17.2%) 20 (14.9%) 26 (19.7%) \n Total number of patients with treatment received for AE 33 (24.6%) 37 (27.6%) 33 (25.0%) \n Total number of patients with all non-fatal AEs resolved 4 (3.0%) 5 (3.7%) 14 (10.6%) \n Total number of patients with at least one non-fatal unresolved or ongoing AE 58 (43.3%) 56 (41.8%) 62 (47.0%) \n Total number of patients with at least one serious AE 0 0 0 \n Total number of patients with at least one related AE 37 (27.6%) 46 (34.3%) 50 (37.9%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nTo illustrate, additional variables such as flags (TRUE/FALSE) for selected AEs of interest. Please consult your SAP on how to handle missing AE grades.\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\nadsl <- filter(adsl, SAFFL == \"Y\")\nadae <- filter(adae, ANL01FL == \"Y\" & SAFFL == \"Y\")\n\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\nnot_resolved <- adae %>%\n filter(!(AEOUT %in% c(\"RECOVERED/RESOLVED\", \"FATAL\", \"RECOVERED/RESOLVED WITH SEQUELAE\"))) %>%\n distinct(USUBJID) %>%\n mutate(NOT_RESOLVED = \"Y\")\n\nadae <- adae %>%\n left_join(not_resolved, by = c(\"USUBJID\")) %>%\n mutate(\n ALL_RESOLVED = with_label(\n is.na(NOT_RESOLVED),\n \"Total number of patients with all non-fatal AEs resolved\"\n ),\n NOT_RESOLVED = with_label(\n !is.na(NOT_RESOLVED),\n \"Total number of patients with at least one unresolved or ongoing non-fatal AE\"\n )\n )\n\nadae <- adae %>%\n mutate(\n AEDECOD = as.character(AEDECOD),\n WD = with_label(\n AEACN == \"DRUG WITHDRAWN\",\n \"Total number of patients with study drug withdrawn due to AE\"\n ),\n DSM = with_label(\n AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Total number of patients with dose modified/interrupted due to AE\"\n ),\n CONTRT = with_label(\n AECONTRT == \"Y\",\n \"Total number of patients with treatment received for AE\"\n ),\n SER = with_label(\n AESER == \"Y\",\n \"Total number of patients with at least one serious AE\"\n ),\n REL = with_label(\n AEREL == \"Y\",\n \"Total number of patients with at least one related AE\"\n ),\n ALL_RESOLVED_WD = with_label(\n WD == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with study drug withdrawn due to resolved AE\"\n ),\n ALL_RESOLVED_DSM = with_label(\n DSM == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with dose modified/interrupted due to resolved AE\"\n ),\n ALL_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with treatment received for resolved AE\"\n ),\n NOT_RESOLVED_WD = with_label(\n WD == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with study drug withdrawn due to unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_DSM = with_label(\n DSM == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with dose modified/interrupted due to unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with treatment received for unresolved or ongoing AE\"\n ),\n SERWD = with_label(\n AESER == \"Y\" & AEACN == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug withdrawn due to serious AE\"\n ),\n SERCONTRT = with_label(\n AECONTRT == \"Y\" & AESER == \"Y\",\n \"No. of patients with dose modified/interrupted due to serious AE\"\n ),\n SERDSM = with_label(\n AESER == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with treatment received for serious AE\"\n ),\n RELWD = with_label(\n AEREL == \"Y\" & AEACN == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug withdrawn due to related AE\"\n ),\n RELDSM = with_label(\n AEREL == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose modified/interrupted due to related AE\"\n ),\n RELCONTRT = with_label(\n AECONTRT == \"Y\" & AEREL == \"Y\",\n \"No. of patients with treatment received for related AE\"\n ),\n RELSER = with_label(\n AESER == \"Y\" & AEREL == \"Y\",\n \"No. of patients with serious, related AE\"\n )\n )\n\nadae <- adae %>%\n mutate(\n AETOXGR = forcats::fct_recode(AETOXGR,\n \"Grade 1\" = \"1\",\n \"Grade 2\" = \"2\",\n \"Grade 3\" = \"3\",\n \"Grade 4\" = \"4\",\n \"Grade 5 (fatal outcome)\" = \"5\"\n )\n )", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_label = obj_label(adeg_f$PARAM),\n split_fun = split_fun,\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n \"AVISIT\",\n split_label = obj_label(adeg_f$AVISIT),\n split_fun = split_fun,\n label_pos = \"topleft\"\n ) %>%\n analyze_vars(\n vars = c(\"AVALCAT1\", \"CHGCAT1\"),\n var_labels = c(\"Value at Visit\", \"Change from Baseline\")\n ) %>%\n append_topleft(\" Category\")\n\nresult <- build_table(lyt = lyt, df = adeg_f, alt_counts_df = adsl) %>%\n prune_table()\n\nresult\n\nParameter \n Analysis Visit A: Drug X B: Placebo C: Combination\n Category (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————\nQT Duration \n BASELINE \n Value at Visit \n n 134 134 132 \n <=450 msec 115 (85.8%) 117 (87.3%) 104 (78.8%) \n >450 to <=480 msec 6 (4.5%) 10 (7.5%) 9 (6.8%) \n >480 to <= 500 msec 4 (3%) 3 (2.2%) 6 (4.5%) \n >500 msec 9 (6.7%) 4 (3%) 13 (9.8%) \n WEEK 1 DAY 8 \n Value at Visit \n n 134 134 132 \n <=450 msec 113 (84.3%) 106 (79.1%) 106 (80.3%) \n >450 to <=480 msec 10 (7.5%) 10 (7.5%) 11 (8.3%) \n >480 to <= 500 msec 4 (3%) 4 (3%) 3 (2.3%) \n >500 msec 7 (5.2%) 14 (10.4%) 12 (9.1%) \n Change from Baseline \n n 134 134 132 \n <=30 msec 76 (56.7%) 75 (56%) 75 (56.8%) \n >30 to <=60 msec 7 (5.2%) 13 (9.7%) 11 (8.3%) \n >60 msec 51 (38.1%) 46 (34.3%) 46 (34.8%) \n WEEK 2 DAY 15 \n Value at Visit \n n 134 134 132 \n <=450 msec 111 (82.8%) 114 (85.1%) 112 (84.8%) \n >450 to <=480 msec 10 (7.5%) 9 (6.7%) 9 (6.8%) \n >480 to <= 500 msec 7 (5.2%) 2 (1.5%) 5 (3.8%) \n >500 msec 6 (4.5%) 9 (6.7%) 6 (4.5%) \n Change from Baseline \n n 134 134 132 \n <=30 msec 71 (53%) 87 (64.9%) 89 (67.4%) \n >30 to <=60 msec 11 (8.2%) 9 (6.7%) 9 (6.8%) \n >60 msec 52 (38.8%) 38 (28.4%) 34 (25.8%) \n WEEK 3 DAY 22 \n Value at Visit \n n 134 134 132 \n <=450 msec 106 (79.1%) 112 (83.6%) 118 (89.4%) \n >450 to <=480 msec 13 (9.7%) 7 (5.2%) 3 (2.3%) \n >480 to <= 500 msec 4 (3%) 5 (3.7%) 2 (1.5%) \n >500 msec 11 (8.2%) 10 (7.5%) 9 (6.8%) \n Change from Baseline \n n 134 134 132 \n <=30 msec 63 (47%) 80 (59.7%) 81 (61.4%) \n >30 to <=60 msec 14 (10.4%) 8 (6%) 11 (8.3%) \n >60 msec 57 (42.5%) 46 (34.3%) 40 (30.3%) \n WEEK 4 DAY 29 \n Value at Visit \n n 134 134 132 \n <=450 msec 117 (87.3%) 103 (76.9%) 114 (86.4%) \n >450 to <=480 msec 7 (5.2%) 14 (10.4%) 6 (4.5%) \n >480 to <= 500 msec 4 (3%) 7 (5.2%) 3 (2.3%) \n >500 msec 6 (4.5%) 10 (7.5%) 9 (6.8%) \n Change from Baseline \n n 134 134 132 \n <=30 msec 79 (59%) 80 (59.7%) 79 (59.8%) \n >30 to <=60 msec 11 (8.2%) 7 (5.2%) 10 (7.6%) \n >60 msec 44 (32.8%) 47 (35.1%) 43 (32.6%) \n WEEK 5 DAY 36 \n Value at Visit \n n 134 134 132 \n <=450 msec 107 (79.9%) 117 (87.3%) 112 (84.8%) \n >450 to <=480 msec 16 (11.9%) 5 (3.7%) 13 (9.8%) \n >480 to <= 500 msec 5 (3.7%) 9 (6.7%) 3 (2.3%) \n >500 msec 6 (4.5%) 3 (2.2%) 4 (3%) \n Change from Baseline \n n 134 134 132 \n <=30 msec 72 (53.7%) 82 (61.2%) 73 (55.3%) \n >30 to <=60 msec 10 (7.5%) 11 (8.2%) 11 (8.3%) \n >60 msec 52 (38.8%) 41 (30.6%) 48 (36.4%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadeg <- random.cdisc.data::cadeg\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadeg <- df_explicit_na(adeg)\n\nadeg_labels <- var_labels(adeg)\nadeg_f <- adeg %>%\n filter(\n PARAMCD == \"QT\",\n ANL01FL == \"Y\"\n ) %>%\n mutate(\n AVALCAT1 = case_when(\n AVAL <= 450 ~ \"<=450 msec\",\n AVAL <= 480 ~ \">450 to <=480 msec\",\n AVAL <= 500 ~ \">480 to <= 500 msec\",\n AVAL > 500 ~ \">500 msec\",\n is.na(AVAL) ~ \"<Missing>\"\n ),\n CHGCAT1 = case_when(\n CHG <= 30 ~ \"<=30 msec\",\n CHG <= 60 ~ \">30 to <=60 msec\",\n CHG > 60 ~ \">60 msec\",\n is.na(CHG) ~ \"<Missing>\"\n )\n ) %>%\n mutate(\n AVALCAT1 = factor(\n AVALCAT1,\n levels = c(\n \"<=450 msec\",\n \">450 to <=480 msec\",\n \">480 to <= 500 msec\",\n \">500 msec\",\n \"<Missing>\"\n )\n ),\n CHGCAT1 = factor(\n CHGCAT1,\n levels = c(\n \"<=30 msec\",\n \">30 to <=60 msec\",\n \">60 msec\",\n \"<Missing>\"\n )\n )\n ) %>%\n var_relabel(\n AVALCAT1 = \"Value at Visit\",\n CHGCAT1 = \"Change from Baseline\"\n )", "crumbs": [ "Tables", - "Adverse Events", - "AET01_AESI" + "ECG", + "EGT05_QTCAT" ] }, { - "objectID": "tables/adverse-events/aet01_aesi.html#teal-app", - "href": "tables/adverse-events/aet01_aesi.html#teal-app", - "title": "AET01_AESI", + "objectID": "tables/ECG/egt05_qtcat.html#teal-app", + "href": "tables/ECG/egt05_qtcat.html#teal-app", + "title": "EGT05_QTCAT", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n ADAE <- filter(ADAE, ANL01FL == \"Y\" & SAFFL == \"Y\")\n\n not_resolved <- ADAE %>%\n filter(!(AEOUT %in% c(\"RECOVERED/RESOLVED\", \"FATAL\", \"RECOVERED/RESOLVED WITH SEQUELAE\"))) %>%\n distinct(USUBJID) %>%\n mutate(NOT_RESOLVED = \"Y\")\n\n ADAE <- ADAE %>%\n left_join(not_resolved, by = c(\"USUBJID\")) %>%\n mutate(\n ALL_RESOLVED = with_label(is.na(NOT_RESOLVED), \"All non-fatal AEs resolved\"),\n NOT_RESOLVED = with_label(!is.na(NOT_RESOLVED), \"At least one non-fatal unresolved or ongoing AE\")\n )\n\n ADAE <- ADAE %>%\n mutate(\n AEDECOD = as.character(AEDECOD),\n WD = with_label(AEACN == \"DRUG WITHDRAWN\", \"AE that led to study drug withdrawal\"),\n DSM = with_label(\n AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"AE that led to study drug dose modified/interrupted\"\n ),\n CONTRT = with_label(AECONTRT == \"Y\", \"AE that required treatment\"),\n SER = with_label(AESER == \"Y\", \"Serious AE\"),\n REL = with_label(AEREL == \"Y\", \"Related AE\"),\n ALL_RESOLVED_WD = with_label(\n WD == TRUE & ALL_RESOLVED == TRUE,\n \"Resolved AE that led to study drug withdrawal\"\n ),\n ALL_RESOLVED_DSM = with_label(\n DSM == TRUE & ALL_RESOLVED == TRUE,\n \"Resolved AE that led to study drug dose modified/interrupted\"\n ),\n ALL_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & ALL_RESOLVED == TRUE,\n \"Resolved AE that required treatment\"\n ),\n NOT_RESOLVED_WD = with_label(\n WD == TRUE & NOT_RESOLVED == TRUE,\n \"Unresolved AE that led to study drug withdrawal\"\n ),\n NOT_RESOLVED_DSM = with_label(\n DSM == TRUE & NOT_RESOLVED == TRUE,\n \"Unresolved AE that led to study drug dose modified/interrupted\"\n ),\n NOT_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & NOT_RESOLVED == TRUE,\n \"Unresolved AE that required treatment\"\n ),\n SERWD = with_label(\n AESER == \"Y\" & AEACN == \"DRUG WITHDRAWN\",\n \"Serious AE that led to study drug withdrawal\"\n ),\n SERCONTRT = with_label(\n AECONTRT == \"Y\" & AESER == \"Y\",\n \"Serious AE that required treatment\"\n ),\n SERDSM = with_label(\n AESER == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Serious AE that led to study drug dose modified/interrupted\"\n ),\n RELWD = with_label(\n AEREL == \"Y\" & AEACN == \"DRUG WITHDRAWN\", \"Related AE that led to study drug withdrawal\"\n ),\n RELDSM = with_label(\n AEREL == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Related AE that led to study drug dose modified/interrupted\"\n ),\n RELCONTRT = with_label(AECONTRT == \"Y\" & AEREL == \"Y\", \"Related AE that required treatment\"),\n RELSER = with_label(AESER == \"Y\" & AEREL == \"Y\", \"Serious related AE\")\n )\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\naesi_vars <- c(\n \"WD\", \"DSM\", \"CONTRT\", \"ALL_RESOLVED_WD\", \"ALL_RESOLVED_DSM\", \"ALL_RESOLVED_CONTRT\",\n \"NOT_RESOLVED_WD\", \"NOT_RESOLVED_DSM\", \"NOT_RESOLVED_CONTRT\", \"SER\", \"SERWD\", \"SERDSM\",\n \"SERCONTRT\", \"REL\", \"RELWD\", \"RELDSM\", \"RELCONTRT\", \"RELSER\"\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_summary(\n label = \"Adverse Events Summary\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(\"ADSL\", c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n flag_var_anl = choices_selected(\n choices = variable_choices(\"ADAE\", aesi_vars),\n selected = aesi_vars[1],\n keep_order = TRUE,\n fixed = FALSE\n ),\n add_total = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n ADAE <- filter(ADAE, ANL01FL == \"Y\" & SAFFL == \"Y\")\n\n not_resolved <- ADAE %>%\n filter(!(AEOUT %in% c(\"RECOVERED/RESOLVED\", \"FATAL\", \"RECOVERED/RESOLVED WITH SEQUELAE\"))) %>%\n distinct(USUBJID) %>%\n mutate(NOT_RESOLVED = \"Y\")\n\n ADAE <- ADAE %>%\n left_join(not_resolved, by = c(\"USUBJID\")) %>%\n mutate(\n ALL_RESOLVED = with_label(is.na(NOT_RESOLVED), \"All non-fatal AEs resolved\"),\n NOT_RESOLVED = with_label(!is.na(NOT_RESOLVED), \"At least one non-fatal unresolved or ongoing AE\")\n )\n\n ADAE <- ADAE %>%\n mutate(\n AEDECOD = as.character(AEDECOD),\n WD = with_label(AEACN == \"DRUG WITHDRAWN\", \"AE that led to study drug withdrawal\"),\n DSM = with_label(\n AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"AE that led to study drug dose modified/interrupted\"\n ),\n CONTRT = with_label(AECONTRT == \"Y\", \"AE that required treatment\"),\n SER = with_label(AESER == \"Y\", \"Serious AE\"),\n REL = with_label(AEREL == \"Y\", \"Related AE\"),\n ALL_RESOLVED_WD = with_label(\n WD == TRUE & ALL_RESOLVED == TRUE,\n \"Resolved AE that led to study drug withdrawal\"\n ),\n ALL_RESOLVED_DSM = with_label(\n DSM == TRUE & ALL_RESOLVED == TRUE,\n \"Resolved AE that led to study drug dose modified/interrupted\"\n ),\n ALL_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & ALL_RESOLVED == TRUE,\n \"Resolved AE that required treatment\"\n ),\n NOT_RESOLVED_WD = with_label(\n WD == TRUE & NOT_RESOLVED == TRUE,\n \"Unresolved AE that led to study drug withdrawal\"\n ),\n NOT_RESOLVED_DSM = with_label(\n DSM == TRUE & NOT_RESOLVED == TRUE,\n \"Unresolved AE that led to study drug dose modified/interrupted\"\n ),\n NOT_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & NOT_RESOLVED == TRUE,\n \"Unresolved AE that required treatment\"\n ),\n SERWD = with_label(\n AESER == \"Y\" & AEACN == \"DRUG WITHDRAWN\",\n \"Serious AE that led to study drug withdrawal\"\n ),\n SERCONTRT = with_label(\n AECONTRT == \"Y\" & AESER == \"Y\",\n \"Serious AE that required treatment\"\n ),\n SERDSM = with_label(\n AESER == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Serious AE that led to study drug dose modified/interrupted\"\n ),\n RELWD = with_label(\n AEREL == \"Y\" & AEACN == \"DRUG WITHDRAWN\", \"Related AE that led to study drug withdrawal\"\n ),\n RELDSM = with_label(\n AEREL == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Related AE that led to study drug dose modified/interrupted\"\n ),\n RELCONTRT = with_label(AECONTRT == \"Y\" & AEREL == \"Y\", \"Related AE that required treatment\"),\n RELSER = with_label(AESER == \"Y\" & AEREL == \"Y\", \"Serious related AE\")\n )\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\naesi_vars <- c(\n \"WD\", \"DSM\", \"CONTRT\", \"ALL_RESOLVED_WD\", \"ALL_RESOLVED_DSM\", \"ALL_RESOLVED_CONTRT\",\n \"NOT_RESOLVED_WD\", \"NOT_RESOLVED_DSM\", \"NOT_RESOLVED_CONTRT\", \"SER\", \"SERWD\", \"SERDSM\",\n \"SERCONTRT\", \"REL\", \"RELWD\", \"RELDSM\", \"RELCONTRT\", \"RELSER\"\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_summary(\n label = \"Adverse Events Summary\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(\"ADSL\", c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n flag_var_anl = choices_selected(\n choices = variable_choices(\"ADAE\", aesi_vars),\n selected = aesi_vars[1],\n keep_order = TRUE,\n fixed = FALSE\n ),\n add_total = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADEG <- df_explicit_na(ADEG)\n adeg_labels <- col_labels(ADEG)\n\n ADEG <- ADEG %>%\n filter(\n ANL01FL == \"Y\" # no need to filter for PARAMCD here\n ) %>%\n mutate(\n AVALCAT1 = case_when(\n AVAL <= 450 ~ \"<=450 msec\",\n AVAL <= 480 ~ \">450 to <=480 msec\",\n AVAL <= 500 ~ \">480 to <= 500 msec\",\n AVAL > 500 ~ \">500 msec\",\n is.na(AVAL) ~ \"<Missing>\"\n ),\n CHGCAT1 = case_when(\n CHG <= 30 ~ \"<=30 msec\",\n CHG <= 60 ~ \">30 to <=60 msec\",\n CHG > 60 ~ \">60 msec\",\n is.na(CHG) ~ \"<Missing>\"\n )\n ) %>%\n mutate(\n AVALCAT1 = factor(\n AVALCAT1,\n levels = c(\n \"<=450 msec\",\n \">450 to <=480 msec\",\n \">480 to <= 500 msec\",\n \">500 msec\",\n \"<Missing>\"\n )\n ),\n CHGCAT1 = factor(\n CHGCAT1,\n levels = c(\n \"<=30 msec\",\n \">30 to <=60 msec\",\n \">60 msec\",\n \"<Missing>\"\n )\n )\n )\n col_labels(ADEG) <- c(\n adeg_labels,\n \"AVALCAT1\" = \"Value at Visit\",\n \"CHGCAT1\" = \"Change from Baseline\"\n )\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"ECG Actual Values and Changes from Baseline by Visit\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"AVALCAT1\", \"CHGCAT1\")),\n selected = c(\"AVALCAT1\", \"CHGCAT1\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADEG, \"PARAMCD\", \"PARAM\"),\n selected = \"QT\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADEG <- df_explicit_na(ADEG)\n adeg_labels <- col_labels(ADEG)\n\n ADEG <- ADEG %>%\n filter(\n ANL01FL == \"Y\" # no need to filter for PARAMCD here\n ) %>%\n mutate(\n AVALCAT1 = case_when(\n AVAL <= 450 ~ \"<=450 msec\",\n AVAL <= 480 ~ \">450 to <=480 msec\",\n AVAL <= 500 ~ \">480 to <= 500 msec\",\n AVAL > 500 ~ \">500 msec\",\n is.na(AVAL) ~ \"<Missing>\"\n ),\n CHGCAT1 = case_when(\n CHG <= 30 ~ \"<=30 msec\",\n CHG <= 60 ~ \">30 to <=60 msec\",\n CHG > 60 ~ \">60 msec\",\n is.na(CHG) ~ \"<Missing>\"\n )\n ) %>%\n mutate(\n AVALCAT1 = factor(\n AVALCAT1,\n levels = c(\n \"<=450 msec\",\n \">450 to <=480 msec\",\n \">480 to <= 500 msec\",\n \">500 msec\",\n \"<Missing>\"\n )\n ),\n CHGCAT1 = factor(\n CHGCAT1,\n levels = c(\n \"<=30 msec\",\n \">30 to <=60 msec\",\n \">60 msec\",\n \"<Missing>\"\n )\n )\n )\n col_labels(ADEG) <- c(\n adeg_labels,\n \"AVALCAT1\" = \"Value at Visit\",\n \"CHGCAT1\" = \"Change from Baseline\"\n )\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"ECG Actual Values and Changes from Baseline by Visit\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"AVALCAT1\", \"CHGCAT1\")),\n selected = c(\"AVALCAT1\", \"CHGCAT1\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADEG, \"PARAMCD\", \"PARAM\"),\n selected = \"QT\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Adverse Events", - "AET01_AESI" + "ECG", + "EGT05_QTCAT" ] }, { - "objectID": "tables/adverse-events/aet01_aesi.html#reproducibility", - "href": "tables/adverse-events/aet01_aesi.html#reproducibility", - "title": "AET01_AESI", + "objectID": "tables/ECG/egt05_qtcat.html#reproducibility", + "href": "tables/ECG/egt05_qtcat.html#reproducibility", + "title": "EGT05_QTCAT", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:58:55 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:54:47 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET01_AESI" + "ECG", + "EGT05_QTCAT" ] }, { - "objectID": "tables/adverse-events/aet07.html#output", - "href": "tables/adverse-events/aet07.html#output", - "title": "AET07", + "objectID": "tables/ECG/egt04.html#output", + "href": "tables/ECG/egt04.html#output", + "title": "EGT04", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable with Fill-In of Treatment Groups without Deaths\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\", split_fun = drop_split_levels) %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = \"unique\",\n .labels = c(unique = \"Total number of deaths\"),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(\n vars = \"SOC_PT\"\n ) %>%\n append_topleft(\"MedDRA SOC and Preferred Term\")\n\nresult <- build_table(\n lyt = lyt,\n df = adae_f,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n sort_at_path(\n path = \"SOC_PT\",\n scorefun = score_occurrences,\n decreasing = TRUE\n )\n\nresult\n\n B: Placebo C: Combination\nMedDRA SOC and Preferred Term (N=134) (N=132) \n———————————————————————————————————————————————————————————\nTotal number of deaths 70 (52.2%) 75 (56.8%) \ncl D.1 / dcd D.1.1.1.1 42 (31.3%) 51 (38.6%) \ncl B.1 / dcd B.1.1.1.1 49 (36.6%) 43 (32.6%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = \"unique\",\n .labels = c(unique = \"Total number of deaths\"),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(\n vars = \"SOC_PT\"\n ) %>%\n append_topleft(\"MedDRA SOC and Preferred Term\")\n\nresult <- build_table(\n lyt = lyt,\n df = adae_f,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n sort_at_path(\n path = \"SOC_PT\",\n scorefun = score_occurrences,\n decreasing = TRUE\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination\nMedDRA SOC and Preferred Term (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————\nTotal number of deaths 0 70 (52.2%) 75 (56.8%) \ncl D.1 / dcd D.1.1.1.1 0 42 (31.3%) 51 (38.6%) \ncl B.1 / dcd B.1.1.1.1 0 49 (36.6%) 43 (32.6%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nFor illustrative purposes, we will pre-process AESDTH in ADAE so there are no deaths in arm A and concatenate AEBODSYS and AEDECOD as per GDSR output standards for AET07.\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\nadae_f <- adae %>%\n mutate(\n AESDTH = as.character(AESDTH), # characterizing AESDTH for next step\n AESDTH = case_when(\n ARM == \"A: Drug X\" ~ NA_character_, # For demonstration purpose only,\n TRUE ~ AESDTH\n ), # make \"A: Drug X\" as the arm without AE leading to death\n AESDTH = as.factor(AESDTH),\n SOC_PT = factor(paste(AEBODSYS, \"/\", AEDECOD))\n ) %>%\n filter(AESDTH == \"Y\") %>%\n mutate(ARM = droplevels(ARM))", - "crumbs": [ - "Tables", - "Adverse Events", - "AET07" - ] - }, - { - "objectID": "tables/adverse-events/aet07.html#teal-app", - "href": "tables/adverse-events/aet07.html#teal-app", - "title": "AET07", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n\n ADSL <- ADSL %>%\n mutate(\n DTHFL = case_when(\n !is.na(DTHDT) ~ \"Y\",\n TRUE ~ \"\"\n )\n ) %>%\n col_relabel(\n DTHFL = \"Subject Death Flag\"\n )\n\n ADAE <- ADAE %>%\n mutate(\n AESDTH = as.character(AESDTH), # characterizing AESDTH for next step\n AESDTH = case_when(\n ARM == \"A: Drug X\" ~ NA_character_, # For demonstration purpose only,\n TRUE ~ AESDTH\n ), # make \"A: Drug X\" as the arm without AE leading to death\n AESDTH = as.factor(AESDTH),\n SOC_PT = factor(paste(AEBODSYS, \"/\", AEDECOD))\n ) %>%\n filter(AESDTH == \"Y\") %>%\n mutate(ARM = droplevels(ARM)) %>%\n col_relabel(SOC_PT = \"MedDRA SOC and Preferred Term\")\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\", \"SOC_PT\")),\n selected = c(\"SOC_PT\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\", \"SOC_PT\")),\n selected = NULL\n ),\n add_total = FALSE,\n event_type = \"adverse event\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n\n ADSL <- ADSL %>%\n mutate(\n DTHFL = case_when(\n !is.na(DTHDT) ~ \"Y\",\n TRUE ~ \"\"\n )\n ) %>%\n col_relabel(\n DTHFL = \"Subject Death Flag\"\n )\n\n ADAE <- ADAE %>%\n mutate(\n AESDTH = as.character(AESDTH), # characterizing AESDTH for next step\n AESDTH = case_when(\n ARM == \"A: Drug X\" ~ NA_character_, # For demonstration purpose only,\n TRUE ~ AESDTH\n ), # make \"A: Drug X\" as the arm without AE leading to death\n AESDTH = as.factor(AESDTH),\n SOC_PT = factor(paste(AEBODSYS, \"/\", AEDECOD))\n ) %>%\n filter(AESDTH == \"Y\") %>%\n mutate(ARM = droplevels(ARM)) %>%\n col_relabel(SOC_PT = \"MedDRA SOC and Preferred Term\")\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\", \"SOC_PT\")),\n selected = c(\"SOC_PT\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\", \"SOC_PT\")),\n selected = NULL\n ),\n add_total = FALSE,\n event_type = \"adverse event\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\nThe EGT04 template consists of a stacked list of contingency tables, one per group. For each group, the n’s across all cells must add up to the group N in the analysis, and percentages are calculated using N as the denominator.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table() %>%\n split_cols_by(\"postbaseline_label\") %>%\n split_cols_by(\"AVALC\") %>%\n split_rows_by(\"ARM\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adeg_f$ARM)) %>%\n add_rowcounts() %>%\n analyze_vars(\n \"BASEC\",\n denom = \"N_row\",\n .stats = \"count_fraction\",\n na.rm = FALSE\n ) %>%\n append_varlabels(adeg_f, c(\"BASEC\"), indent = 1L)\n\nresult <- build_table(lyt, adeg_f)\nresult\n\nDescription of Planned Arm Post-Baseline \n Baseline Normal Abnormal Missing \n———————————————————————————————————————————————————————————————\nA: Drug X (N=134) \n Normal 20 (14.9%) 81 (60.4%) 1 (0.7%)\n Abnormal 11 (8.2%) 19 (14.2%) 0 \n Missing 0 1 (0.7%) 1 (0.7%)\nB: Placebo (N=134) \n Normal 18 (13.4%) 81 (60.4%) 2 (1.5%)\n Abnormal 3 (2.2%) 28 (20.9%) 0 \n Missing 0 2 (1.5%) 0 \nC: Combination (N=132) \n Normal 26 (19.7%) 69 (52.3%) 1 (0.8%)\n Abnormal 6 (4.5%) 29 (22%) 0 \n Missing 1 (0.8%) 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nFor the EGT04 template, data imputation should be avoided, and missing data explicit and accounted for, so the contingency table sum adds up to the group N. For illustration purposes, missing data are added to the example dataset.\n\nCodelibrary(tern)\nlibrary(dplyr)\nset.seed(123)\n\nadsl <- random.cdisc.data::cadsl\nadeg <- random.cdisc.data::cadeg\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadeg <- df_explicit_na(adeg, omit_columns = c(\"AVALC\", \"BASEC\"))\n\nadeg_labels <- var_labels(adeg)\n\nadeg_f <- subset(\n adeg,\n PARAMCD == \"ECGINTP\" & # Analysis in terms of \"NORMAL\"/\"ABNORMAL\" (AVALC)\n SAFFL == \"Y\" & # \"Safety Population Flag\"\n ONTRTFL == \"Y\" & # \"On Treatment Record Flag\"\n WORS02FL == \"Y\" # \"Worst Post-Baseline Observation\"\n)\n\nadeg_f$AVALC[sample(seq_len(nrow(adeg_f)), size = 5)] <- \"Missing\"\nadeg_f$BASEC[sample(seq_len(nrow(adeg_f)), size = 5)] <- \"Missing\"\nadeg_f$AVALC <- factor(\n adeg_f$AVALC,\n levels = c(\"NORMAL\", \"ABNORMAL\", \"Missing\"),\n labels = c(\"Normal\", \"Abnormal\", \"Missing\")\n)\nadeg_f$BASEC <- factor(\n adeg_f$BASEC,\n levels = c(\"NORMAL\", \"ABNORMAL\", \"Missing\"),\n labels = c(\"Normal\", \"Abnormal\", \"Missing\")\n)\n\nvar_labels(adeg_f) <- adeg_labels\nadeg_f <- adeg_f %>%\n var_relabel(BASEC = \"Baseline\")\n\n# Temprary solution for over arching column\nadeg_f <- adeg_f %>% mutate(postbaseline_label = \"Post-Baseline\")", "crumbs": [ "Tables", - "Adverse Events", - "AET07" + "ECG", + "EGT04" ] }, { - "objectID": "tables/adverse-events/aet07.html#reproducibility", - "href": "tables/adverse-events/aet07.html#reproducibility", - "title": "AET07", + "objectID": "tables/ECG/egt04.html#reproducibility", + "href": "tables/ECG/egt04.html#reproducibility", + "title": "EGT04", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:58:11 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:54:09 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET07" + "ECG", + "EGT04" ] }, { - "objectID": "tables/adverse-events/aet06.html#output", - "href": "tables/adverse-events/aet06.html#output", - "title": "AET06", + "objectID": "tables/concomitant-medications/cmt02_pt.html#output", + "href": "tables/concomitant-medications/cmt02_pt.html#output", + "title": "CMT02_PT", "section": "Output", - "text": "Output\n\n\nAdverse Events by Sex\nAdverse Events by Other Baseline Characteristics (e.g. Biomarker Group)\nAdverse Events by Baseline Characteristic from ADSUB (e.g. BMI Category)\nAdverse Events by Regrouped Baseline Characteristics (e.g. Race)\nAdverse Events by Baseline Characteristics (e.g. Sex) Including High-Level Terms\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_cols_by(\"SEX\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adae,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n # Sorted by decreasing frequency across all groups by System Organ Class and Preferred Term.\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination \nBody System or Organ Class F M F M F M \n Dictionary-Derived Term (N=79) (N=55) (N=82) (N=52) (N=70) (N=62) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 72 (91.1%) 50 (90.9%) 77 (93.9%) 46 (88.5%) 65 (92.9%) 55 (88.7%)\nOverall total number of events 377 232 419 203 378 325 \ncl A.1 \n Total number of patients with at least one adverse event 53 (67.1%) 25 (45.5%) 51 (62.2%) 24 (46.2%) 43 (61.4%) 46 (74.2%)\n Total number of events 85 47 93 37 86 74 \n dcd A.1.1.1.1 34 (43.0%) 16 (29.1%) 31 (37.8%) 14 (26.9%) 33 (47.1%) 30 (48.4%)\n dcd A.1.1.1.2 32 (40.5%) 16 (29.1%) 33 (40.2%) 15 (28.8%) 24 (34.3%) 26 (41.9%)\ncl B.2 \n Total number of patients with at least one adverse event 46 (58.2%) 33 (60.0%) 45 (54.9%) 29 (55.8%) 44 (62.9%) 41 (66.1%)\n Total number of events 81 48 86 52 64 79 \n dcd B.2.2.3.1 30 (38.0%) 18 (32.7%) 32 (39.0%) 22 (42.3%) 26 (37.1%) 25 (40.3%)\n dcd B.2.1.2.1 29 (36.7%) 20 (36.4%) 30 (36.6%) 14 (26.9%) 22 (31.4%) 30 (48.4%)\ncl D.1 \n Total number of patients with at least one adverse event 45 (57.0%) 34 (61.8%) 40 (48.8%) 27 (51.9%) 41 (58.6%) 39 (62.9%)\n Total number of events 72 55 64 42 73 62 \n dcd D.1.1.1.1 25 (31.6%) 25 (45.5%) 29 (35.4%) 13 (25.0%) 27 (38.6%) 24 (38.7%)\n dcd D.1.1.4.2 30 (38.0%) 18 (32.7%) 22 (26.8%) 20 (38.5%) 27 (38.6%) 23 (37.1%)\ncl D.2 \n Total number of patients with at least one adverse event 26 (32.9%) 21 (38.2%) 40 (48.8%) 18 (34.6%) 34 (48.6%) 23 (37.1%)\n Total number of events 35 27 49 23 43 31 \n dcd D.2.1.5.3 26 (32.9%) 21 (38.2%) 40 (48.8%) 18 (34.6%) 34 (48.6%) 23 (37.1%)\ncl B.1 \n Total number of patients with at least one adverse event 28 (35.4%) 19 (34.5%) 33 (40.2%) 16 (30.8%) 24 (34.3%) 19 (30.6%)\n Total number of events 33 23 36 24 35 27 \n dcd B.1.1.1.1 28 (35.4%) 19 (34.5%) 33 (40.2%) 16 (30.8%) 24 (34.3%) 19 (30.6%)\ncl C.2 \n Total number of patients with at least one adverse event 23 (29.1%) 12 (21.8%) 36 (43.9%) 12 (23.1%) 30 (42.9%) 25 (40.3%)\n Total number of events 32 16 39 14 33 32 \n dcd C.2.1.2.1 23 (29.1%) 12 (21.8%) 36 (43.9%) 12 (23.1%) 30 (42.9%) 25 (40.3%)\ncl C.1 \n Total number of patients with at least one adverse event 30 (38.0%) 13 (23.6%) 36 (43.9%) 10 (19.2%) 27 (38.6%) 16 (25.8%)\n Total number of events 39 16 52 11 44 20 \n dcd C.1.1.1.3 30 (38.0%) 13 (23.6%) 36 (43.9%) 10 (19.2%) 27 (38.6%) 16 (25.8%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_cols_by(\"BMRKR2\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adae,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n # Sorted by decreasing frequency across all groups by System Organ Class and Preferred Term.\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination \nBody System or Organ Class LOW MEDIUM HIGH LOW MEDIUM HIGH LOW MEDIUM HIGH \n Dictionary-Derived Term (N=50) (N=37) (N=47) (N=45) (N=56) (N=33) (N=40) (N=42) (N=50) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 46 (92.0%) 34 (91.9%) 42 (89.4%) 40 (88.9%) 53 (94.6%) 30 (90.9%) 36 (90.0%) 39 (92.9%) 45 (90.0%)\nOverall total number of events 248 166 195 196 261 165 220 258 225 \ncl A.1 \n Total number of patients with at least one adverse event 31 (62.0%) 19 (51.4%) 28 (59.6%) 25 (55.6%) 31 (55.4%) 19 (57.6%) 28 (70.0%) 30 (71.4%) 31 (62.0%)\n Total number of events 53 34 45 46 54 30 61 51 48 \n dcd A.1.1.1.1 22 (44.0%) 10 (27.0%) 18 (38.3%) 14 (31.1%) 20 (35.7%) 11 (33.3%) 21 (52.5%) 24 (57.1%) 18 (36.0%)\n dcd A.1.1.1.2 17 (34.0%) 13 (35.1%) 18 (38.3%) 18 (40.0%) 18 (32.1%) 12 (36.4%) 18 (45.0%) 14 (33.3%) 18 (36.0%)\ncl B.2 \n Total number of patients with at least one adverse event 34 (68.0%) 21 (56.8%) 24 (51.1%) 23 (51.1%) 33 (58.9%) 18 (54.5%) 24 (60.0%) 27 (64.3%) 34 (68.0%)\n Total number of events 53 37 39 40 61 37 40 47 56 \n dcd B.2.2.3.1 21 (42.0%) 13 (35.1%) 14 (29.8%) 18 (40.0%) 22 (39.3%) 14 (42.4%) 16 (40.0%) 15 (35.7%) 20 (40.0%)\n dcd B.2.1.2.1 21 (42.0%) 11 (29.7%) 17 (36.2%) 11 (24.4%) 21 (37.5%) 12 (36.4%) 13 (32.5%) 17 (40.5%) 22 (44.0%)\ncl D.1 \n Total number of patients with at least one adverse event 34 (68.0%) 21 (56.8%) 24 (51.1%) 18 (40.0%) 33 (58.9%) 16 (48.5%) 25 (62.5%) 31 (73.8%) 24 (48.0%)\n Total number of events 51 35 41 27 49 30 45 53 37 \n dcd D.1.1.1.1 19 (38.0%) 16 (43.2%) 15 (31.9%) 13 (28.9%) 19 (33.9%) 10 (30.3%) 14 (35.0%) 22 (52.4%) 15 (30.0%)\n dcd D.1.1.4.2 21 (42.0%) 9 (24.3%) 18 (38.3%) 9 (20.0%) 20 (35.7%) 13 (39.4%) 17 (42.5%) 18 (42.9%) 15 (30.0%)\ncl D.2 \n Total number of patients with at least one adverse event 20 (40.0%) 12 (32.4%) 15 (31.9%) 19 (42.2%) 22 (39.3%) 17 (51.5%) 13 (32.5%) 23 (54.8%) 21 (42.0%)\n Total number of events 27 13 22 23 26 23 17 33 24 \n dcd D.2.1.5.3 20 (40.0%) 12 (32.4%) 15 (31.9%) 19 (42.2%) 22 (39.3%) 17 (51.5%) 13 (32.5%) 23 (54.8%) 21 (42.0%)\ncl B.1 \n Total number of patients with at least one adverse event 14 (28.0%) 14 (37.8%) 19 (40.4%) 15 (33.3%) 24 (42.9%) 10 (30.3%) 14 (35.0%) 15 (35.7%) 14 (28.0%)\n Total number of events 16 19 21 18 25 17 19 25 18 \n dcd B.1.1.1.1 14 (28.0%) 14 (37.8%) 19 (40.4%) 15 (33.3%) 24 (42.9%) 10 (30.3%) 14 (35.0%) 15 (35.7%) 14 (28.0%)\ncl C.2 \n Total number of patients with at least one adverse event 18 (36.0%) 8 (21.6%) 9 (19.1%) 15 (33.3%) 22 (39.3%) 11 (33.3%) 18 (45.0%) 17 (40.5%) 20 (40.0%)\n Total number of events 27 9 12 18 23 12 20 20 25 \n dcd C.2.1.2.1 18 (36.0%) 8 (21.6%) 9 (19.1%) 15 (33.3%) 22 (39.3%) 11 (33.3%) 18 (45.0%) 17 (40.5%) 20 (40.0%)\ncl C.1 \n Total number of patients with at least one adverse event 17 (34.0%) 14 (37.8%) 12 (25.5%) 17 (37.8%) 17 (30.4%) 12 (36.4%) 12 (30.0%) 17 (40.5%) 14 (28.0%)\n Total number of events 21 19 15 24 23 16 18 29 17 \n dcd C.1.1.1.3 17 (34.0%) 14 (37.8%) 12 (25.5%) 17 (37.8%) 17 (30.4%) 12 (36.4%) 12 (30.0%) 17 (40.5%) 14 (28.0%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_cols_by(\"AVALCAT1\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adae,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n # Sorted by decreasing frequency across all groups by System Organ Class and Preferred Term.\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination \nBody System or Organ Class <18.5 18.5 - 24.9 25 - 29.9 >30 <18.5 18.5 - 24.9 25 - 29.9 >30 <18.5 18.5 - 24.9 25 - 29.9 >30 \n Dictionary-Derived Term (N=44) (N=17) (N=11) (N=62) (N=37) (N=18) (N=10) (N=69) (N=28) (N=20) (N=18) (N=66) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 41 (93.2%) 14 (82.4%) 11 (100%) 56 (90.3%) 35 (94.6%) 16 (88.9%) 9 (90.0%) 63 (91.3%) 25 (89.3%) 19 (95.0%) 15 (83.3%) 61 (92.4%)\nOverall total number of events 186 80 66 277 174 89 47 312 137 129 100 337 \ncl A.1 \n Total number of patients with at least one adverse event 23 (52.3%) 12 (70.6%) 7 (63.6%) 36 (58.1%) 19 (51.4%) 10 (55.6%) 6 (60.0%) 40 (58.0%) 16 (57.1%) 13 (65.0%) 14 (77.8%) 46 (69.7%)\n Total number of events 38 22 13 59 35 22 6 67 30 23 30 77 \n dcd A.1.1.1.1 14 (31.8%) 7 (41.2%) 3 (27.3%) 26 (41.9%) 12 (32.4%) 6 (33.3%) 4 (40.0%) 23 (33.3%) 12 (42.9%) 7 (35.0%) 13 (72.2%) 31 (47.0%)\n dcd A.1.1.1.2 15 (34.1%) 8 (47.1%) 5 (45.5%) 20 (32.3%) 12 (32.4%) 8 (44.4%) 2 (20.0%) 26 (37.7%) 9 (32.1%) 7 (35.0%) 7 (38.9%) 27 (40.9%)\ncl B.2 \n Total number of patients with at least one adverse event 23 (52.3%) 10 (58.8%) 8 (72.7%) 38 (61.3%) 21 (56.8%) 8 (44.4%) 7 (70.0%) 38 (55.1%) 16 (57.1%) 16 (80.0%) 12 (66.7%) 41 (62.1%)\n Total number of events 37 19 12 61 41 18 12 67 28 28 18 69 \n dcd B.2.2.3.1 13 (29.5%) 7 (41.2%) 6 (54.5%) 22 (35.5%) 14 (37.8%) 7 (38.9%) 6 (60.0%) 27 (39.1%) 7 (25.0%) 13 (65.0%) 5 (27.8%) 26 (39.4%)\n dcd B.2.1.2.1 14 (31.8%) 8 (47.1%) 4 (36.4%) 23 (37.1%) 14 (37.8%) 6 (33.3%) 4 (40.0%) 20 (29.0%) 13 (46.4%) 8 (40.0%) 8 (44.4%) 23 (34.8%)\ncl D.1 \n Total number of patients with at least one adverse event 24 (54.5%) 9 (52.9%) 8 (72.7%) 38 (61.3%) 18 (48.6%) 5 (27.8%) 7 (70.0%) 37 (53.6%) 15 (53.6%) 12 (60.0%) 11 (61.1%) 42 (63.6%)\n Total number of events 38 11 17 61 30 11 14 51 30 23 16 66 \n dcd D.1.1.1.1 13 (29.5%) 7 (41.2%) 7 (63.6%) 23 (37.1%) 13 (35.1%) 3 (16.7%) 4 (40.0%) 22 (31.9%) 12 (42.9%) 6 (30.0%) 8 (44.4%) 25 (37.9%)\n dcd D.1.1.4.2 16 (36.4%) 4 (23.5%) 6 (54.5%) 22 (35.5%) 10 (27.0%) 4 (22.2%) 5 (50.0%) 23 (33.3%) 10 (35.7%) 9 (45.0%) 6 (33.3%) 25 (37.9%)\ncl D.2 \n Total number of patients with at least one adverse event 14 (31.8%) 7 (41.2%) 5 (45.5%) 21 (33.9%) 14 (37.8%) 10 (55.6%) 4 (40.0%) 30 (43.5%) 13 (46.4%) 10 (50.0%) 7 (38.9%) 27 (40.9%)\n Total number of events 20 7 10 25 17 14 5 36 18 15 10 31 \n dcd D.2.1.5.3 14 (31.8%) 7 (41.2%) 5 (45.5%) 21 (33.9%) 14 (37.8%) 10 (55.6%) 4 (40.0%) 30 (43.5%) 13 (46.4%) 10 (50.0%) 7 (38.9%) 27 (40.9%)\ncl B.1 \n Total number of patients with at least one adverse event 17 (38.6%) 5 (29.4%) 7 (63.6%) 18 (29.0%) 14 (37.8%) 8 (44.4%) 4 (40.0%) 23 (33.3%) 7 (25.0%) 10 (50.0%) 7 (38.9%) 19 (28.8%)\n Total number of events 22 5 7 22 16 11 4 29 11 12 8 31 \n dcd B.1.1.1.1 17 (38.6%) 5 (29.4%) 7 (63.6%) 18 (29.0%) 14 (37.8%) 8 (44.4%) 4 (40.0%) 23 (33.3%) 7 (25.0%) 10 (50.0%) 7 (38.9%) 19 (28.8%)\ncl C.2 \n Total number of patients with at least one adverse event 14 (31.8%) 4 (23.5%) 2 (18.2%) 15 (24.2%) 15 (40.5%) 5 (27.8%) 4 (40.0%) 24 (34.8%) 10 (35.7%) 13 (65.0%) 8 (44.4%) 24 (36.4%)\n Total number of events 17 9 3 19 15 6 5 27 12 16 9 28 \n dcd C.2.1.2.1 14 (31.8%) 4 (23.5%) 2 (18.2%) 15 (24.2%) 15 (40.5%) 5 (27.8%) 4 (40.0%) 24 (34.8%) 10 (35.7%) 13 (65.0%) 8 (44.4%) 24 (36.4%)\ncl C.1 \n Total number of patients with at least one adverse event 11 (25.0%) 4 (23.5%) 4 (36.4%) 24 (38.7%) 13 (35.1%) 6 (33.3%) 1 (10.0%) 26 (37.7%) 6 (21.4%) 7 (35.0%) 6 (33.3%) 24 (36.4%)\n Total number of events 14 7 4 30 20 7 1 35 8 12 9 35 \n dcd C.1.1.1.3 11 (25.0%) 4 (23.5%) 4 (36.4%) 24 (38.7%) 13 (35.1%) 6 (33.3%) 1 (10.0%) 26 (37.7%) 6 (21.4%) 7 (35.0%) 6 (33.3%) 24 (36.4%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_cols_by(\"RACE1\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adae,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n prune_table() %>%\n # Sorted by decreasing frequency across all groups by System Organ Class and Preferred Term.\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination \nBody System or Organ Class WHITE NON-WHITE WHITE NON-WHITE WHITE NON-WHITE \n Dictionary-Derived Term (N=27) (N=107) (N=26) (N=108) (N=21) (N=111) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 26 (96.3%) 96 (89.7%) 25 (96.2%) 98 (90.7%) 21 (100%) 99 (89.2%)\nOverall total number of events 109 500 144 478 114 589 \ncl A.1 \n Total number of patients with at least one adverse event 16 (59.3%) 62 (57.9%) 21 (80.8%) 54 (50.0%) 15 (71.4%) 74 (66.7%)\n Total number of events 30 102 37 93 25 135 \n dcd A.1.1.1.1 9 (33.3%) 41 (38.3%) 14 (53.8%) 31 (28.7%) 10 (47.6%) 53 (47.7%)\n dcd A.1.1.1.2 11 (40.7%) 37 (34.6%) 13 (50.0%) 35 (32.4%) 9 (42.9%) 41 (36.9%)\ncl B.2 \n Total number of patients with at least one adverse event 15 (55.6%) 64 (59.8%) 16 (61.5%) 58 (53.7%) 12 (57.1%) 73 (65.8%)\n Total number of events 18 111 28 110 17 126 \n dcd B.2.2.3.1 4 (14.8%) 44 (41.1%) 10 (38.5%) 44 (40.7%) 5 (23.8%) 46 (41.4%)\n dcd B.2.1.2.1 12 (44.4%) 37 (34.6%) 9 (34.6%) 35 (32.4%) 7 (33.3%) 45 (40.5%)\ncl D.1 \n Total number of patients with at least one adverse event 18 (66.7%) 61 (57.0%) 15 (57.7%) 52 (48.1%) 14 (66.7%) 66 (59.5%)\n Total number of events 27 100 23 83 27 108 \n dcd D.1.1.1.1 11 (40.7%) 39 (36.4%) 14 (53.8%) 28 (25.9%) 12 (57.1%) 39 (35.1%)\n dcd D.1.1.4.2 11 (40.7%) 37 (34.6%) 7 (26.9%) 35 (32.4%) 9 (42.9%) 41 (36.9%)\ncl D.2 \n Total number of patients with at least one adverse event 6 (22.2%) 41 (38.3%) 15 (57.7%) 43 (39.8%) 9 (42.9%) 48 (43.2%)\n Total number of events 6 56 18 54 12 62 \n dcd D.2.1.5.3 6 (22.2%) 41 (38.3%) 15 (57.7%) 43 (39.8%) 9 (42.9%) 48 (43.2%)\ncl B.1 \n Total number of patients with at least one adverse event 12 (44.4%) 35 (32.7%) 7 (26.9%) 42 (38.9%) 6 (28.6%) 37 (33.3%)\n Total number of events 15 41 8 52 8 54 \n dcd B.1.1.1.1 12 (44.4%) 35 (32.7%) 7 (26.9%) 42 (38.9%) 6 (28.6%) 37 (33.3%)\ncl C.2 \n Total number of patients with at least one adverse event 5 (18.5%) 30 (28.0%) 11 (42.3%) 37 (34.3%) 11 (52.4%) 44 (39.6%)\n Total number of events 8 40 12 41 12 53 \n dcd C.2.1.2.1 5 (18.5%) 30 (28.0%) 11 (42.3%) 37 (34.3%) 11 (52.4%) 44 (39.6%)\ncl C.1 \n Total number of patients with at least one adverse event 5 (18.5%) 38 (35.5%) 13 (50.0%) 33 (30.6%) 8 (38.1%) 35 (31.5%)\n Total number of events 5 50 18 45 13 51 \n dcd C.1.1.1.3 5 (18.5%) 38 (35.5%) 13 (50.0%) 33 (30.6%) 8 (38.1%) 35 (31.5%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_cols_by(\"SEX\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEHLT\",\n child_labels = \"visible\",\n indent_mod = -1L,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEHLT)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(\"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 2L)\n\nresult <- build_table(\n lyt = lyt,\n df = adae,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n # Sorted by decreasing frequency across all groups by System Organ Class, High-Level Term and Preferred Term.\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nBody System or Organ Class A: Drug X B: Placebo C: Combination \n High Level Term F M F M F M \n Dictionary-Derived Term (N=79) (N=55) (N=82) (N=52) (N=70) (N=62) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 72 (91.1%) 50 (90.9%) 77 (93.9%) 46 (88.5%) 65 (92.9%) 55 (88.7%)\nOverall total number of events 377 232 419 203 378 325 \ncl A.1 \n Total number of patients with at least one adverse event 53 (67.1%) 25 (45.5%) 51 (62.2%) 24 (46.2%) 43 (61.4%) 46 (74.2%)\n Total number of events 85 47 93 37 86 74 \n hlt A.1.1.1 \n Total number of patients with at least one adverse event 53 (67.1%) 25 (45.5%) 51 (62.2%) 24 (46.2%) 43 (61.4%) 46 (74.2%)\n Total number of events 85 47 93 37 86 74 \n dcd A.1.1.1.1 34 (43.0%) 16 (29.1%) 31 (37.8%) 14 (26.9%) 33 (47.1%) 30 (48.4%)\n dcd A.1.1.1.2 32 (40.5%) 16 (29.1%) 33 (40.2%) 15 (28.8%) 24 (34.3%) 26 (41.9%)\ncl B.2 \n Total number of patients with at least one adverse event 46 (58.2%) 33 (60.0%) 45 (54.9%) 29 (55.8%) 44 (62.9%) 41 (66.1%)\n Total number of events 81 48 86 52 64 79 \n hlt B.2.2.3 \n Total number of patients with at least one adverse event 30 (38.0%) 18 (32.7%) 32 (39.0%) 22 (42.3%) 26 (37.1%) 25 (40.3%)\n Total number of events 40 24 43 33 37 40 \n dcd B.2.2.3.1 30 (38.0%) 18 (32.7%) 32 (39.0%) 22 (42.3%) 26 (37.1%) 25 (40.3%)\n hlt B.2.1.2 \n Total number of patients with at least one adverse event 29 (36.7%) 20 (36.4%) 30 (36.6%) 14 (26.9%) 22 (31.4%) 30 (48.4%)\n Total number of events 41 24 43 19 27 39 \n dcd B.2.1.2.1 29 (36.7%) 20 (36.4%) 30 (36.6%) 14 (26.9%) 22 (31.4%) 30 (48.4%)\ncl D.1 \n Total number of patients with at least one adverse event 45 (57.0%) 34 (61.8%) 40 (48.8%) 27 (51.9%) 41 (58.6%) 39 (62.9%)\n Total number of events 72 55 64 42 73 62 \n hlt D.1.1.1 \n Total number of patients with at least one adverse event 25 (31.6%) 25 (45.5%) 29 (35.4%) 13 (25.0%) 27 (38.6%) 24 (38.7%)\n Total number of events 32 29 36 15 39 32 \n dcd D.1.1.1.1 25 (31.6%) 25 (45.5%) 29 (35.4%) 13 (25.0%) 27 (38.6%) 24 (38.7%)\n hlt D.1.1.4 \n Total number of patients with at least one adverse event 30 (38.0%) 18 (32.7%) 22 (26.8%) 20 (38.5%) 27 (38.6%) 23 (37.1%)\n Total number of events 40 26 28 27 34 30 \n dcd D.1.1.4.2 30 (38.0%) 18 (32.7%) 22 (26.8%) 20 (38.5%) 27 (38.6%) 23 (37.1%)\ncl D.2 \n Total number of patients with at least one adverse event 26 (32.9%) 21 (38.2%) 40 (48.8%) 18 (34.6%) 34 (48.6%) 23 (37.1%)\n Total number of events 35 27 49 23 43 31 \n hlt D.2.1.5 \n Total number of patients with at least one adverse event 26 (32.9%) 21 (38.2%) 40 (48.8%) 18 (34.6%) 34 (48.6%) 23 (37.1%)\n Total number of events 35 27 49 23 43 31 \n dcd D.2.1.5.3 26 (32.9%) 21 (38.2%) 40 (48.8%) 18 (34.6%) 34 (48.6%) 23 (37.1%)\ncl B.1 \n Total number of patients with at least one adverse event 28 (35.4%) 19 (34.5%) 33 (40.2%) 16 (30.8%) 24 (34.3%) 19 (30.6%)\n Total number of events 33 23 36 24 35 27 \n hlt B.1.1.1 \n Total number of patients with at least one adverse event 28 (35.4%) 19 (34.5%) 33 (40.2%) 16 (30.8%) 24 (34.3%) 19 (30.6%)\n Total number of events 33 23 36 24 35 27 \n dcd B.1.1.1.1 28 (35.4%) 19 (34.5%) 33 (40.2%) 16 (30.8%) 24 (34.3%) 19 (30.6%)\ncl C.2 \n Total number of patients with at least one adverse event 23 (29.1%) 12 (21.8%) 36 (43.9%) 12 (23.1%) 30 (42.9%) 25 (40.3%)\n Total number of events 32 16 39 14 33 32 \n hlt C.2.1.2 \n Total number of patients with at least one adverse event 23 (29.1%) 12 (21.8%) 36 (43.9%) 12 (23.1%) 30 (42.9%) 25 (40.3%)\n Total number of events 32 16 39 14 33 32 \n dcd C.2.1.2.1 23 (29.1%) 12 (21.8%) 36 (43.9%) 12 (23.1%) 30 (42.9%) 25 (40.3%)\ncl C.1 \n Total number of patients with at least one adverse event 30 (38.0%) 13 (23.6%) 36 (43.9%) 10 (19.2%) 27 (38.6%) 16 (25.8%)\n Total number of events 39 16 52 11 44 20 \n hlt C.1.1.1 \n Total number of patients with at least one adverse event 30 (38.0%) 13 (23.6%) 36 (43.9%) 10 (19.2%) 27 (38.6%) 16 (25.8%)\n Total number of events 39 16 52 11 44 20 \n dcd C.1.1.1.3 30 (38.0%) 13 (23.6%) 36 (43.9%) 10 (19.2%) 27 (38.6%) 16 (25.8%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\nadsub <- random.cdisc.data::cadsub\n\nadsub_bmi <- adsub %>%\n filter(PARAMCD == \"BBMISI\") %>%\n select(STUDYID, USUBJID, AVALCAT1) %>%\n mutate(\n AVALCAT1 = factor(AVALCAT1, levels = c(\"<18.5\", \"18.5 - 24.9\", \"25 - 29.9\", \">30\"))\n )\n\nadsl <- adsl %>%\n mutate(\n RACE1 = case_when(\n RACE == \"WHITE\" ~ \"WHITE\",\n TRUE ~ \"NON-WHITE\"\n ),\n RACE1 = factor(\n RACE1,\n levels = c(\"WHITE\", \"NON-WHITE\")\n )\n ) %>%\n left_join(\n y = adsub_bmi,\n by = c(\"STUDYID\", \"USUBJID\")\n )\n\nadae_labels <- var_labels(adae)\n\nadae <- adae %>%\n mutate(\n RACE1 = case_when(\n RACE == \"WHITE\" ~ \"WHITE\",\n TRUE ~ \"NON-WHITE\"\n ),\n RACE1 = factor(\n RACE1,\n levels = c(\"WHITE\", \"NON-WHITE\")\n )\n ) %>%\n left_join(\n y = adsub_bmi,\n by = c(\"STUDYID\", \"USUBJID\")\n )\n\nvar_labels(adae) <- c(adae_labels, \"RACE1\" = \"RACE WHITE/NON-WHITE\", \"AVALCAT1\" = \"Baseline BMI Category\")\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\nadsub_bmi <- df_explicit_na(adsub_bmi)", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n add_overall_col(\"All Patients\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n count_by = \"CMSEQ\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one treatment\",\n nonunique = \"Total number of treatments\"\n ),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(vars = \"CMDECOD\") %>%\n append_topleft(paste(\"\\nOther Treatment\"))\n\nresult <- build_table(lyt = lyt, df = adcm, alt_counts_df = adsl) %>%\n sort_at_path(\n path = c(\"CMDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\nOther Treatment (N=134) (N=134) (N=132) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one treatment 117 (87.3%) 116 (86.6%) 116 (87.9%) 349 (87.2%) \nTotal number of treatments 415 414 460 1289 \nmedname C_2/2 52 (38.8%) 58 (43.3%) 60 (45.5%) 170 (42.5%) \nmedname B_1/4 52 (38.8%) 57 (42.5%) 59 (44.7%) 168 (42.0%) \nmedname A_2/3 53 (39.6%) 50 (37.3%) 56 (42.4%) 159 (39.8%) \nmedname C_1/2 51 (38.1%) 50 (37.3%) 56 (42.4%) 157 (39.2%) \nmedname B_4/4 50 (37.3%) 45 (33.6%) 55 (41.7%) 150 (37.5%) \nmedname A_3/3 45 (33.6%) 54 (40.3%) 48 (36.4%) 147 (36.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadcm <- random.cdisc.data::cadcm\n\nadcm$CMSEQ <- as.factor(adcm$CMSEQ)\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n# If you want your missing levels to show as \"No Coding Available\", please use\nadsl <- df_explicit_na(adsl, na_level = \"No Coding Available\")\nadcm <- df_explicit_na(adcm, na_level = \"No Coding Available\")\n\n# Keep only safety-evaluable patients and concomitant medications\nadsl <- adsl %>%\n filter(SAFFL == \"Y\")\n\n# Keep only concomitant medications\nadcm <- adcm %>% filter(ATIREL == \"CONCOMITANT\")", "crumbs": [ "Tables", - "Adverse Events", - "AET06" - ] - }, - { - "objectID": "tables/adverse-events/aet06.html#teal-app", - "href": "tables/adverse-events/aet06.html#teal-app", - "title": "AET06", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\", \"SEX\"), c(\"ARM\", \"SEX\")),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n add_total = TRUE,\n event_type = \"adverse event\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\", \"SEX\"), c(\"ARM\", \"SEX\")),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n add_total = TRUE,\n event_type = \"adverse event\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", - "crumbs": [ - "Tables", - "Adverse Events", - "AET06" - ] - }, - { - "objectID": "tables/adverse-events/aet06.html#reproducibility", - "href": "tables/adverse-events/aet06.html#reproducibility", - "title": "AET06", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:57:29 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", - "crumbs": [ - "Tables", - "Adverse Events", - "AET06" - ] - }, - { - "objectID": "tables/concomitant-medications/cmt02_pt.html#output", - "href": "tables/concomitant-medications/cmt02_pt.html#output", - "title": "CMT02_PT", - "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n add_overall_col(\"All Patients\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n count_by = \"CMSEQ\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one treatment\",\n nonunique = \"Total number of treatments\"\n ),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(vars = \"CMDECOD\") %>%\n append_topleft(paste(\"\\nOther Treatment\"))\n\nresult <- build_table(lyt = lyt, df = adcm, alt_counts_df = adsl) %>%\n sort_at_path(\n path = c(\"CMDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\nOther Treatment (N=134) (N=134) (N=132) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one treatment 117 (87.3%) 116 (86.6%) 116 (87.9%) 349 (87.2%) \nTotal number of treatments 415 414 460 1289 \nmedname C_2/2 52 (38.8%) 58 (43.3%) 60 (45.5%) 170 (42.5%) \nmedname B_1/4 52 (38.8%) 57 (42.5%) 59 (44.7%) 168 (42.0%) \nmedname A_2/3 53 (39.6%) 50 (37.3%) 56 (42.4%) 159 (39.8%) \nmedname C_1/2 51 (38.1%) 50 (37.3%) 56 (42.4%) 157 (39.2%) \nmedname B_4/4 50 (37.3%) 45 (33.6%) 55 (41.7%) 150 (37.5%) \nmedname A_3/3 45 (33.6%) 54 (40.3%) 48 (36.4%) 147 (36.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadcm <- random.cdisc.data::cadcm\n\nadcm$CMSEQ <- as.factor(adcm$CMSEQ)\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n# If you want your missing levels to show as \"No Coding Available\", please use\nadsl <- df_explicit_na(adsl, na_level = \"No Coding Available\")\nadcm <- df_explicit_na(adcm, na_level = \"No Coding Available\")\n\n# Keep only safety-evaluable patients and concomitant medications\nadsl <- adsl %>%\n filter(SAFFL == \"Y\")\n\n# Keep only concomitant medications\nadcm <- adcm %>% filter(ATIREL == \"CONCOMITANT\")", - "crumbs": [ - "Tables", - "Concomitant Medications", - "CMT02_PT" + "Concomitant Medications", + "CMT02_PT" ] }, { @@ -1033,7 +942,7 @@ "href": "tables/concomitant-medications/cmt02_pt.html#reproducibility", "title": "CMT02_PT", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:56:41 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:53:36 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", "Concomitant Medications", @@ -1069,7 +978,7 @@ "href": "tables/concomitant-medications/cmt01a.html#reproducibility", "title": "CMT01A", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:55:55 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:52:53 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", "Concomitant Medications", @@ -1077,291 +986,327 @@ ] }, { - "objectID": "tables/safety/enrollment01.html#output", - "href": "tables/safety/enrollment01.html#output", - "title": "ENTXX", + "objectID": "tables/adverse-events/aet02_smq.html#output", + "href": "tables/adverse-events/aet02_smq.html#output", + "title": "AET02_SMQ", "section": "Output", - "text": "Output\n\n\nENT01 – Enrollment by Region, Country, and Investigator Number\nENT01A – Enrollment by Country and Investigator Number\nENT02 – Enrollment by Region, Country, and Investigator Number/Name\nENT02A – Enrollment by Country and Investigator Number/Name\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n add_overall_col(label = \"All Patients\") %>%\n split_rows_by(\"REGION1\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adsl$REGION1)) %>%\n summarize_row_groups() %>%\n split_rows_by(\"COUNTRY\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adsl$COUNTRY)) %>%\n summarize_row_groups() %>%\n analyze_vars(\"INVID\", .stats = \"count_fraction\") %>%\n append_varlabels(adsl, \"INVID\", 2L)\n\nresult <- build_table(lyt, adsl) %>%\n prune_table()\n\nresult\n\nGeographic Region 1 \n Country A: Drug X B: Placebo C: Combination All Patients\n Investigator Identifier (N=134) (N=134) (N=132) (N=400) \n—————————————————————————————————————————————————————————————————————————————————————\nAfrica 8 (6.0%) 7 (5.2%) 11 (8.3%) 26 (6.5%) \n NGA 8 (6.0%) 7 (5.2%) 11 (8.3%) 26 (6.5%) \n INV ID NGA-1 3 (37.5%) 3 (42.9%) 4 (36.4%) 10 (38.5%) \n INV ID NGA-11 1 (12.5%) 2 (28.6%) 3 (27.3%) 6 (23.1%) \n INV ID NGA-12 0 1 (14.3%) 1 (9.1%) 2 (7.7%) \n INV ID NGA-17 2 (25%) 0 0 2 (7.7%) \n INV ID NGA-2 1 (12.5%) 1 (14.3%) 0 2 (7.7%) \n INV ID NGA-4 1 (12.5%) 0 1 (9.1%) 2 (7.7%) \n INV ID NGA-5 0 0 1 (9.1%) 1 (3.8%) \n INV ID NGA-6 0 0 1 (9.1%) 1 (3.8%) \nAsia 91 (67.9%) 94 (70.1%) 83 (62.9%) 268 (67.0%) \n CHN 74 (55.2%) 81 (60.4%) 64 (48.5%) 219 (54.8%) \n INV ID CHN-1 21 (28.4%) 20 (24.7%) 16 (25%) 57 (26%) \n INV ID CHN-10 0 1 (1.2%) 0 1 (0.5%) \n INV ID CHN-11 12 (16.2%) 20 (24.7%) 16 (25%) 48 (21.9%) \n INV ID CHN-12 4 (5.4%) 3 (3.7%) 1 (1.6%) 8 (3.7%) \n INV ID CHN-13 2 (2.7%) 6 (7.4%) 0 8 (3.7%) \n INV ID CHN-14 4 (5.4%) 2 (2.5%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-15 2 (2.7%) 0 4 (6.2%) 6 (2.7%) \n INV ID CHN-16 0 3 (3.7%) 3 (4.7%) 6 (2.7%) \n INV ID CHN-17 4 (5.4%) 4 (4.9%) 3 (4.7%) 11 (5%) \n INV ID CHN-18 1 (1.4%) 0 2 (3.1%) 3 (1.4%) \n INV ID CHN-2 9 (12.2%) 4 (4.9%) 3 (4.7%) 16 (7.3%) \n INV ID CHN-3 5 (6.8%) 1 (1.2%) 5 (7.8%) 11 (5%) \n INV ID CHN-4 3 (4.1%) 3 (3.7%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-5 4 (5.4%) 3 (3.7%) 4 (6.2%) 11 (5%) \n INV ID CHN-6 1 (1.4%) 3 (3.7%) 0 4 (1.8%) \n INV ID CHN-7 0 5 (6.2%) 1 (1.6%) 6 (2.7%) \n INV ID CHN-8 1 (1.4%) 1 (1.2%) 0 2 (0.9%) \n INV ID CHN-9 1 (1.4%) 2 (2.5%) 0 3 (1.4%) \n PAK 12 (9.0%) 9 (6.7%) 10 (7.6%) 31 (7.8%) \n INV ID PAK-1 2 (16.7%) 4 (44.4%) 4 (40%) 10 (32.3%) \n INV ID PAK-11 4 (33.3%) 3 (33.3%) 2 (20%) 9 (29%) \n INV ID PAK-12 2 (16.7%) 0 0 2 (6.5%) \n INV ID PAK-13 1 (8.3%) 1 (11.1%) 0 2 (6.5%) \n INV ID PAK-14 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-15 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-2 1 (8.3%) 0 2 (20%) 3 (9.7%) \n INV ID PAK-4 0 1 (11.1%) 1 (10%) 2 (6.5%) \n INV ID PAK-5 0 0 1 (10%) 1 (3.2%) \n JPN 5 (3.7%) 4 (3.0%) 9 (6.8%) 18 (4.5%) \n INV ID JPN-1 2 (40%) 2 (50%) 1 (11.1%) 5 (27.8%) \n INV ID JPN-11 0 0 3 (33.3%) 3 (16.7%) \n INV ID JPN-12 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-14 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-17 0 0 2 (22.2%) 2 (11.1%) \n INV ID JPN-18 1 (20%) 0 0 1 (5.6%) \n INV ID JPN-2 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-3 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-5 1 (20%) 0 1 (11.1%) 2 (11.1%) \n INV ID JPN-6 1 (20%) 0 0 1 (5.6%) \nEurasia 5 (3.7%) 8 (6.0%) 6 (4.5%) 19 (4.8%) \n RUS 5 (3.7%) 8 (6.0%) 6 (4.5%) 19 (4.8%) \n INV ID RUS-1 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-11 0 2 (25%) 2 (33.3%) 4 (21.1%) \n INV ID RUS-12 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-13 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-14 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-16 1 (20%) 1 (12.5%) 0 2 (10.5%) \n INV ID RUS-18 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-2 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-3 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-4 0 2 (25%) 1 (16.7%) 3 (15.8%) \n INV ID RUS-5 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-6 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-7 0 0 1 (16.7%) 1 (5.3%) \nEurope 4 (3.0%) 3 (2.2%) 2 (1.5%) 9 (2.2%) \n GBR 4 (3.0%) 3 (2.2%) 2 (1.5%) 9 (2.2%) \n INV ID GBR-1 2 (50%) 0 1 (50%) 3 (33.3%) \n INV ID GBR-11 0 1 (33.3%) 1 (50%) 2 (22.2%) \n INV ID GBR-13 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-15 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-17 0 1 (33.3%) 0 1 (11.1%) \n INV ID GBR-6 0 1 (33.3%) 0 1 (11.1%) \nNorth America 13 (9.7%) 15 (11.2%) 20 (15.2%) 48 (12.0%) \n USA 10 (7.5%) 13 (9.7%) 17 (12.9%) 40 (10.0%) \n INV ID USA-1 1 (10%) 4 (30.8%) 5 (29.4%) 10 (25%) \n INV ID USA-11 4 (40%) 2 (15.4%) 3 (17.6%) 9 (22.5%) \n INV ID USA-12 1 (10%) 2 (15.4%) 3 (17.6%) 6 (15%) \n INV ID USA-14 1 (10%) 0 0 1 (2.5%) \n INV ID USA-15 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-17 1 (10%) 1 (7.7%) 0 2 (5%) \n INV ID USA-19 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-2 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-3 1 (10%) 0 1 (5.9%) 2 (5%) \n INV ID USA-4 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-5 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-6 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-8 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-9 1 (10%) 0 0 1 (2.5%) \n CAN 3 (2.2%) 2 (1.5%) 3 (2.3%) 8 (2.0%) \n INV ID CAN-1 1 (33.3%) 1 (50%) 0 2 (25%) \n INV ID CAN-11 1 (33.3%) 0 1 (33.3%) 2 (25%) \n INV ID CAN-14 1 (33.3%) 0 0 1 (12.5%) \n INV ID CAN-4 0 1 (50%) 1 (33.3%) 2 (25%) \n INV ID CAN-5 0 0 1 (33.3%) 1 (12.5%) \nSouth America 13 (9.7%) 7 (5.2%) 10 (7.6%) 30 (7.5%) \n BRA 13 (9.7%) 7 (5.2%) 10 (7.6%) 30 (7.5%) \n INV ID BRA-1 4 (30.8%) 2 (28.6%) 2 (20%) 8 (26.7%) \n INV ID BRA-11 4 (30.8%) 0 4 (40%) 8 (26.7%) \n INV ID BRA-12 0 1 (14.3%) 0 1 (3.3%) \n INV ID BRA-13 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-14 1 (7.7%) 0 1 (10%) 2 (6.7%) \n INV ID BRA-15 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-2 1 (7.7%) 1 (14.3%) 0 2 (6.7%) \n INV ID BRA-3 0 2 (28.6%) 0 2 (6.7%) \n INV ID BRA-4 0 1 (14.3%) 1 (10%) 2 (6.7%) \n INV ID BRA-5 0 0 1 (10%) 1 (3.3%) \n INV ID BRA-6 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-7 0 0 1 (10%) 1 (3.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n add_overall_col(label = \"All Patients\") %>%\n split_rows_by(\"COUNTRY\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adsl$COUNTRY)) %>%\n summarize_row_groups() %>%\n analyze_vars(\"INVID\", .stats = \"count_fraction\") %>%\n append_varlabels(adsl, \"INVID\", 1L)\n\nresult <- build_table(lyt, adsl) %>%\n prune_table()\n\nresult\n\nCountry A: Drug X B: Placebo C: Combination All Patients\n Investigator Identifier (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————————————————\nCHN 74 (55.2%) 81 (60.4%) 64 (48.5%) 219 (54.8%) \n INV ID CHN-1 21 (28.4%) 20 (24.7%) 16 (25%) 57 (26%) \n INV ID CHN-10 0 1 (1.2%) 0 1 (0.5%) \n INV ID CHN-11 12 (16.2%) 20 (24.7%) 16 (25%) 48 (21.9%) \n INV ID CHN-12 4 (5.4%) 3 (3.7%) 1 (1.6%) 8 (3.7%) \n INV ID CHN-13 2 (2.7%) 6 (7.4%) 0 8 (3.7%) \n INV ID CHN-14 4 (5.4%) 2 (2.5%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-15 2 (2.7%) 0 4 (6.2%) 6 (2.7%) \n INV ID CHN-16 0 3 (3.7%) 3 (4.7%) 6 (2.7%) \n INV ID CHN-17 4 (5.4%) 4 (4.9%) 3 (4.7%) 11 (5%) \n INV ID CHN-18 1 (1.4%) 0 2 (3.1%) 3 (1.4%) \n INV ID CHN-2 9 (12.2%) 4 (4.9%) 3 (4.7%) 16 (7.3%) \n INV ID CHN-3 5 (6.8%) 1 (1.2%) 5 (7.8%) 11 (5%) \n INV ID CHN-4 3 (4.1%) 3 (3.7%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-5 4 (5.4%) 3 (3.7%) 4 (6.2%) 11 (5%) \n INV ID CHN-6 1 (1.4%) 3 (3.7%) 0 4 (1.8%) \n INV ID CHN-7 0 5 (6.2%) 1 (1.6%) 6 (2.7%) \n INV ID CHN-8 1 (1.4%) 1 (1.2%) 0 2 (0.9%) \n INV ID CHN-9 1 (1.4%) 2 (2.5%) 0 3 (1.4%) \nUSA 10 (7.5%) 13 (9.7%) 17 (12.9%) 40 (10.0%) \n INV ID USA-1 1 (10%) 4 (30.8%) 5 (29.4%) 10 (25%) \n INV ID USA-11 4 (40%) 2 (15.4%) 3 (17.6%) 9 (22.5%) \n INV ID USA-12 1 (10%) 2 (15.4%) 3 (17.6%) 6 (15%) \n INV ID USA-14 1 (10%) 0 0 1 (2.5%) \n INV ID USA-15 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-17 1 (10%) 1 (7.7%) 0 2 (5%) \n INV ID USA-19 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-2 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-3 1 (10%) 0 1 (5.9%) 2 (5%) \n INV ID USA-4 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-5 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-6 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-8 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-9 1 (10%) 0 0 1 (2.5%) \nBRA 13 (9.7%) 7 (5.2%) 10 (7.6%) 30 (7.5%) \n INV ID BRA-1 4 (30.8%) 2 (28.6%) 2 (20%) 8 (26.7%) \n INV ID BRA-11 4 (30.8%) 0 4 (40%) 8 (26.7%) \n INV ID BRA-12 0 1 (14.3%) 0 1 (3.3%) \n INV ID BRA-13 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-14 1 (7.7%) 0 1 (10%) 2 (6.7%) \n INV ID BRA-15 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-2 1 (7.7%) 1 (14.3%) 0 2 (6.7%) \n INV ID BRA-3 0 2 (28.6%) 0 2 (6.7%) \n INV ID BRA-4 0 1 (14.3%) 1 (10%) 2 (6.7%) \n INV ID BRA-5 0 0 1 (10%) 1 (3.3%) \n INV ID BRA-6 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-7 0 0 1 (10%) 1 (3.3%) \nPAK 12 (9.0%) 9 (6.7%) 10 (7.6%) 31 (7.8%) \n INV ID PAK-1 2 (16.7%) 4 (44.4%) 4 (40%) 10 (32.3%) \n INV ID PAK-11 4 (33.3%) 3 (33.3%) 2 (20%) 9 (29%) \n INV ID PAK-12 2 (16.7%) 0 0 2 (6.5%) \n INV ID PAK-13 1 (8.3%) 1 (11.1%) 0 2 (6.5%) \n INV ID PAK-14 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-15 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-2 1 (8.3%) 0 2 (20%) 3 (9.7%) \n INV ID PAK-4 0 1 (11.1%) 1 (10%) 2 (6.5%) \n INV ID PAK-5 0 0 1 (10%) 1 (3.2%) \nNGA 8 (6.0%) 7 (5.2%) 11 (8.3%) 26 (6.5%) \n INV ID NGA-1 3 (37.5%) 3 (42.9%) 4 (36.4%) 10 (38.5%) \n INV ID NGA-11 1 (12.5%) 2 (28.6%) 3 (27.3%) 6 (23.1%) \n INV ID NGA-12 0 1 (14.3%) 1 (9.1%) 2 (7.7%) \n INV ID NGA-17 2 (25%) 0 0 2 (7.7%) \n INV ID NGA-2 1 (12.5%) 1 (14.3%) 0 2 (7.7%) \n INV ID NGA-4 1 (12.5%) 0 1 (9.1%) 2 (7.7%) \n INV ID NGA-5 0 0 1 (9.1%) 1 (3.8%) \n INV ID NGA-6 0 0 1 (9.1%) 1 (3.8%) \nRUS 5 (3.7%) 8 (6.0%) 6 (4.5%) 19 (4.8%) \n INV ID RUS-1 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-11 0 2 (25%) 2 (33.3%) 4 (21.1%) \n INV ID RUS-12 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-13 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-14 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-16 1 (20%) 1 (12.5%) 0 2 (10.5%) \n INV ID RUS-18 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-2 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-3 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-4 0 2 (25%) 1 (16.7%) 3 (15.8%) \n INV ID RUS-5 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-6 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-7 0 0 1 (16.7%) 1 (5.3%) \nJPN 5 (3.7%) 4 (3.0%) 9 (6.8%) 18 (4.5%) \n INV ID JPN-1 2 (40%) 2 (50%) 1 (11.1%) 5 (27.8%) \n INV ID JPN-11 0 0 3 (33.3%) 3 (16.7%) \n INV ID JPN-12 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-14 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-17 0 0 2 (22.2%) 2 (11.1%) \n INV ID JPN-18 1 (20%) 0 0 1 (5.6%) \n INV ID JPN-2 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-3 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-5 1 (20%) 0 1 (11.1%) 2 (11.1%) \n INV ID JPN-6 1 (20%) 0 0 1 (5.6%) \nGBR 4 (3.0%) 3 (2.2%) 2 (1.5%) 9 (2.2%) \n INV ID GBR-1 2 (50%) 0 1 (50%) 3 (33.3%) \n INV ID GBR-11 0 1 (33.3%) 1 (50%) 2 (22.2%) \n INV ID GBR-13 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-15 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-17 0 1 (33.3%) 0 1 (11.1%) \n INV ID GBR-6 0 1 (33.3%) 0 1 (11.1%) \nCAN 3 (2.2%) 2 (1.5%) 3 (2.3%) 8 (2.0%) \n INV ID CAN-1 1 (33.3%) 1 (50%) 0 2 (25%) \n INV ID CAN-11 1 (33.3%) 0 1 (33.3%) 2 (25%) \n INV ID CAN-14 1 (33.3%) 0 0 1 (12.5%) \n INV ID CAN-4 0 1 (50%) 1 (33.3%) 2 (25%) \n INV ID CAN-5 0 0 1 (33.3%) 1 (12.5%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n add_overall_col(label = \"All Patients\") %>%\n split_rows_by(\"REGION1\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adsl$REGION1)) %>%\n summarize_row_groups() %>%\n split_rows_by(\"COUNTRY\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adsl$COUNTRY)) %>%\n summarize_row_groups() %>%\n analyze_vars(\"INVID_INVNAM\", .stats = \"count_fraction\") %>%\n append_varlabels(adsl, \"INVID_INVNAM\", 2L)\n\nresult <- build_table(lyt, adsl) %>%\n prune_table()\n\nresult\n\nGeographic Region 1 \n Country A: Drug X B: Placebo C: Combination All Patients\n Investigator Number/Name (N=134) (N=134) (N=132) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————\nAfrica 8 (6.0%) 7 (5.2%) 11 (8.3%) 26 (6.5%) \n NGA 8 (6.0%) 7 (5.2%) 11 (8.3%) 26 (6.5%) \n INV ID NGA-1 / Dr. NGA-1 Doe 3 (37.5%) 3 (42.9%) 4 (36.4%) 10 (38.5%) \n INV ID NGA-11 / Dr. NGA-11 Doe 1 (12.5%) 2 (28.6%) 3 (27.3%) 6 (23.1%) \n INV ID NGA-12 / Dr. NGA-12 Doe 0 1 (14.3%) 1 (9.1%) 2 (7.7%) \n INV ID NGA-17 / Dr. NGA-17 Doe 2 (25%) 0 0 2 (7.7%) \n INV ID NGA-2 / Dr. NGA-2 Doe 1 (12.5%) 1 (14.3%) 0 2 (7.7%) \n INV ID NGA-4 / Dr. NGA-4 Doe 1 (12.5%) 0 1 (9.1%) 2 (7.7%) \n INV ID NGA-5 / Dr. NGA-5 Doe 0 0 1 (9.1%) 1 (3.8%) \n INV ID NGA-6 / Dr. NGA-6 Doe 0 0 1 (9.1%) 1 (3.8%) \nAsia 91 (67.9%) 94 (70.1%) 83 (62.9%) 268 (67.0%) \n CHN 74 (55.2%) 81 (60.4%) 64 (48.5%) 219 (54.8%) \n INV ID CHN-1 / Dr. CHN-1 Doe 21 (28.4%) 20 (24.7%) 16 (25%) 57 (26%) \n INV ID CHN-10 / Dr. CHN-10 Doe 0 1 (1.2%) 0 1 (0.5%) \n INV ID CHN-11 / Dr. CHN-11 Doe 12 (16.2%) 20 (24.7%) 16 (25%) 48 (21.9%) \n INV ID CHN-12 / Dr. CHN-12 Doe 4 (5.4%) 3 (3.7%) 1 (1.6%) 8 (3.7%) \n INV ID CHN-13 / Dr. CHN-13 Doe 2 (2.7%) 6 (7.4%) 0 8 (3.7%) \n INV ID CHN-14 / Dr. CHN-14 Doe 4 (5.4%) 2 (2.5%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-15 / Dr. CHN-15 Doe 2 (2.7%) 0 4 (6.2%) 6 (2.7%) \n INV ID CHN-16 / Dr. CHN-16 Doe 0 3 (3.7%) 3 (4.7%) 6 (2.7%) \n INV ID CHN-17 / Dr. CHN-17 Doe 4 (5.4%) 4 (4.9%) 3 (4.7%) 11 (5%) \n INV ID CHN-18 / Dr. CHN-18 Doe 1 (1.4%) 0 2 (3.1%) 3 (1.4%) \n INV ID CHN-2 / Dr. CHN-2 Doe 9 (12.2%) 4 (4.9%) 3 (4.7%) 16 (7.3%) \n INV ID CHN-3 / Dr. CHN-3 Doe 5 (6.8%) 1 (1.2%) 5 (7.8%) 11 (5%) \n INV ID CHN-4 / Dr. CHN-4 Doe 3 (4.1%) 3 (3.7%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-5 / Dr. CHN-5 Doe 4 (5.4%) 3 (3.7%) 4 (6.2%) 11 (5%) \n INV ID CHN-6 / Dr. CHN-6 Doe 1 (1.4%) 3 (3.7%) 0 4 (1.8%) \n INV ID CHN-7 / Dr. CHN-7 Doe 0 5 (6.2%) 1 (1.6%) 6 (2.7%) \n INV ID CHN-8 / Dr. CHN-8 Doe 1 (1.4%) 1 (1.2%) 0 2 (0.9%) \n INV ID CHN-9 / Dr. CHN-9 Doe 1 (1.4%) 2 (2.5%) 0 3 (1.4%) \n PAK 12 (9.0%) 9 (6.7%) 10 (7.6%) 31 (7.8%) \n INV ID PAK-1 / Dr. PAK-1 Doe 2 (16.7%) 4 (44.4%) 4 (40%) 10 (32.3%) \n INV ID PAK-11 / Dr. PAK-11 Doe 4 (33.3%) 3 (33.3%) 2 (20%) 9 (29%) \n INV ID PAK-12 / Dr. PAK-12 Doe 2 (16.7%) 0 0 2 (6.5%) \n INV ID PAK-13 / Dr. PAK-13 Doe 1 (8.3%) 1 (11.1%) 0 2 (6.5%) \n INV ID PAK-14 / Dr. PAK-14 Doe 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-15 / Dr. PAK-15 Doe 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-2 / Dr. PAK-2 Doe 1 (8.3%) 0 2 (20%) 3 (9.7%) \n INV ID PAK-4 / Dr. PAK-4 Doe 0 1 (11.1%) 1 (10%) 2 (6.5%) \n INV ID PAK-5 / Dr. PAK-5 Doe 0 0 1 (10%) 1 (3.2%) \n JPN 5 (3.7%) 4 (3.0%) 9 (6.8%) 18 (4.5%) \n INV ID JPN-1 / Dr. JPN-1 Doe 2 (40%) 2 (50%) 1 (11.1%) 5 (27.8%) \n INV ID JPN-11 / Dr. JPN-11 Doe 0 0 3 (33.3%) 3 (16.7%) \n INV ID JPN-12 / Dr. JPN-12 Doe 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-14 / Dr. JPN-14 Doe 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-17 / Dr. JPN-17 Doe 0 0 2 (22.2%) 2 (11.1%) \n INV ID JPN-18 / Dr. JPN-18 Doe 1 (20%) 0 0 1 (5.6%) \n INV ID JPN-2 / Dr. JPN-2 Doe 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-3 / Dr. JPN-3 Doe 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-5 / Dr. JPN-5 Doe 1 (20%) 0 1 (11.1%) 2 (11.1%) \n INV ID JPN-6 / Dr. JPN-6 Doe 1 (20%) 0 0 1 (5.6%) \nEurasia 5 (3.7%) 8 (6.0%) 6 (4.5%) 19 (4.8%) \n RUS 5 (3.7%) 8 (6.0%) 6 (4.5%) 19 (4.8%) \n INV ID RUS-1 / Dr. RUS-1 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-11 / Dr. RUS-11 Doe 0 2 (25%) 2 (33.3%) 4 (21.1%) \n INV ID RUS-12 / Dr. RUS-12 Doe 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-13 / Dr. RUS-13 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-14 / Dr. RUS-14 Doe 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-16 / Dr. RUS-16 Doe 1 (20%) 1 (12.5%) 0 2 (10.5%) \n INV ID RUS-18 / Dr. RUS-18 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-2 / Dr. RUS-2 Doe 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-3 / Dr. RUS-3 Doe 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-4 / Dr. RUS-4 Doe 0 2 (25%) 1 (16.7%) 3 (15.8%) \n INV ID RUS-5 / Dr. RUS-5 Doe 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-6 / Dr. RUS-6 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-7 / Dr. RUS-7 Doe 0 0 1 (16.7%) 1 (5.3%) \nEurope 4 (3.0%) 3 (2.2%) 2 (1.5%) 9 (2.2%) \n GBR 4 (3.0%) 3 (2.2%) 2 (1.5%) 9 (2.2%) \n INV ID GBR-1 / Dr. GBR-1 Doe 2 (50%) 0 1 (50%) 3 (33.3%) \n INV ID GBR-11 / Dr. GBR-11 Doe 0 1 (33.3%) 1 (50%) 2 (22.2%) \n INV ID GBR-13 / Dr. GBR-13 Doe 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-15 / Dr. GBR-15 Doe 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-17 / Dr. GBR-17 Doe 0 1 (33.3%) 0 1 (11.1%) \n INV ID GBR-6 / Dr. GBR-6 Doe 0 1 (33.3%) 0 1 (11.1%) \nNorth America 13 (9.7%) 15 (11.2%) 20 (15.2%) 48 (12.0%) \n USA 10 (7.5%) 13 (9.7%) 17 (12.9%) 40 (10.0%) \n INV ID USA-1 / Dr. USA-1 Doe 1 (10%) 4 (30.8%) 5 (29.4%) 10 (25%) \n INV ID USA-11 / Dr. USA-11 Doe 4 (40%) 2 (15.4%) 3 (17.6%) 9 (22.5%) \n INV ID USA-12 / Dr. USA-12 Doe 1 (10%) 2 (15.4%) 3 (17.6%) 6 (15%) \n INV ID USA-14 / Dr. USA-14 Doe 1 (10%) 0 0 1 (2.5%) \n INV ID USA-15 / Dr. USA-15 Doe 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-17 / Dr. USA-17 Doe 1 (10%) 1 (7.7%) 0 2 (5%) \n INV ID USA-19 / Dr. USA-19 Doe 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-2 / Dr. USA-2 Doe 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-3 / Dr. USA-3 Doe 1 (10%) 0 1 (5.9%) 2 (5%) \n INV ID USA-4 / Dr. USA-4 Doe 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-5 / Dr. USA-5 Doe 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-6 / Dr. USA-6 Doe 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-8 / Dr. USA-8 Doe 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-9 / Dr. USA-9 Doe 1 (10%) 0 0 1 (2.5%) \n CAN 3 (2.2%) 2 (1.5%) 3 (2.3%) 8 (2.0%) \n INV ID CAN-1 / Dr. CAN-1 Doe 1 (33.3%) 1 (50%) 0 2 (25%) \n INV ID CAN-11 / Dr. CAN-11 Doe 1 (33.3%) 0 1 (33.3%) 2 (25%) \n INV ID CAN-14 / Dr. CAN-14 Doe 1 (33.3%) 0 0 1 (12.5%) \n INV ID CAN-4 / Dr. CAN-4 Doe 0 1 (50%) 1 (33.3%) 2 (25%) \n INV ID CAN-5 / Dr. CAN-5 Doe 0 0 1 (33.3%) 1 (12.5%) \nSouth America 13 (9.7%) 7 (5.2%) 10 (7.6%) 30 (7.5%) \n BRA 13 (9.7%) 7 (5.2%) 10 (7.6%) 30 (7.5%) \n INV ID BRA-1 / Dr. BRA-1 Doe 4 (30.8%) 2 (28.6%) 2 (20%) 8 (26.7%) \n INV ID BRA-11 / Dr. BRA-11 Doe 4 (30.8%) 0 4 (40%) 8 (26.7%) \n INV ID BRA-12 / Dr. BRA-12 Doe 0 1 (14.3%) 0 1 (3.3%) \n INV ID BRA-13 / Dr. BRA-13 Doe 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-14 / Dr. BRA-14 Doe 1 (7.7%) 0 1 (10%) 2 (6.7%) \n INV ID BRA-15 / Dr. BRA-15 Doe 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-2 / Dr. BRA-2 Doe 1 (7.7%) 1 (14.3%) 0 2 (6.7%) \n INV ID BRA-3 / Dr. BRA-3 Doe 0 2 (28.6%) 0 2 (6.7%) \n INV ID BRA-4 / Dr. BRA-4 Doe 0 1 (14.3%) 1 (10%) 2 (6.7%) \n INV ID BRA-5 / Dr. BRA-5 Doe 0 0 1 (10%) 1 (3.3%) \n INV ID BRA-6 / Dr. BRA-6 Doe 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-7 / Dr. BRA-7 Doe 0 0 1 (10%) 1 (3.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n add_overall_col(label = \"All Patients\") %>%\n split_rows_by(\"COUNTRY\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adsl$COUNTRY)) %>%\n summarize_row_groups() %>%\n analyze_vars(\"INVID_INVNAM\", .stats = \"count_fraction\") %>%\n append_varlabels(adsl, \"INVID_INVNAM\", 1L)\n\nresult <- build_table(lyt, adsl) %>%\n prune_table()\n\nresult\n\nCountry A: Drug X B: Placebo C: Combination All Patients\n Investigator Number/Name (N=134) (N=134) (N=132) (N=400) \n——————————————————————————————————————————————————————————————————————————————————————————\nCHN 74 (55.2%) 81 (60.4%) 64 (48.5%) 219 (54.8%) \n INV ID CHN-1 / Dr. CHN-1 Doe 21 (28.4%) 20 (24.7%) 16 (25%) 57 (26%) \n INV ID CHN-10 / Dr. CHN-10 Doe 0 1 (1.2%) 0 1 (0.5%) \n INV ID CHN-11 / Dr. CHN-11 Doe 12 (16.2%) 20 (24.7%) 16 (25%) 48 (21.9%) \n INV ID CHN-12 / Dr. CHN-12 Doe 4 (5.4%) 3 (3.7%) 1 (1.6%) 8 (3.7%) \n INV ID CHN-13 / Dr. CHN-13 Doe 2 (2.7%) 6 (7.4%) 0 8 (3.7%) \n INV ID CHN-14 / Dr. CHN-14 Doe 4 (5.4%) 2 (2.5%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-15 / Dr. CHN-15 Doe 2 (2.7%) 0 4 (6.2%) 6 (2.7%) \n INV ID CHN-16 / Dr. CHN-16 Doe 0 3 (3.7%) 3 (4.7%) 6 (2.7%) \n INV ID CHN-17 / Dr. CHN-17 Doe 4 (5.4%) 4 (4.9%) 3 (4.7%) 11 (5%) \n INV ID CHN-18 / Dr. CHN-18 Doe 1 (1.4%) 0 2 (3.1%) 3 (1.4%) \n INV ID CHN-2 / Dr. CHN-2 Doe 9 (12.2%) 4 (4.9%) 3 (4.7%) 16 (7.3%) \n INV ID CHN-3 / Dr. CHN-3 Doe 5 (6.8%) 1 (1.2%) 5 (7.8%) 11 (5%) \n INV ID CHN-4 / Dr. CHN-4 Doe 3 (4.1%) 3 (3.7%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-5 / Dr. CHN-5 Doe 4 (5.4%) 3 (3.7%) 4 (6.2%) 11 (5%) \n INV ID CHN-6 / Dr. CHN-6 Doe 1 (1.4%) 3 (3.7%) 0 4 (1.8%) \n INV ID CHN-7 / Dr. CHN-7 Doe 0 5 (6.2%) 1 (1.6%) 6 (2.7%) \n INV ID CHN-8 / Dr. CHN-8 Doe 1 (1.4%) 1 (1.2%) 0 2 (0.9%) \n INV ID CHN-9 / Dr. CHN-9 Doe 1 (1.4%) 2 (2.5%) 0 3 (1.4%) \nUSA 10 (7.5%) 13 (9.7%) 17 (12.9%) 40 (10.0%) \n INV ID USA-1 / Dr. USA-1 Doe 1 (10%) 4 (30.8%) 5 (29.4%) 10 (25%) \n INV ID USA-11 / Dr. USA-11 Doe 4 (40%) 2 (15.4%) 3 (17.6%) 9 (22.5%) \n INV ID USA-12 / Dr. USA-12 Doe 1 (10%) 2 (15.4%) 3 (17.6%) 6 (15%) \n INV ID USA-14 / Dr. USA-14 Doe 1 (10%) 0 0 1 (2.5%) \n INV ID USA-15 / Dr. USA-15 Doe 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-17 / Dr. USA-17 Doe 1 (10%) 1 (7.7%) 0 2 (5%) \n INV ID USA-19 / Dr. USA-19 Doe 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-2 / Dr. USA-2 Doe 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-3 / Dr. USA-3 Doe 1 (10%) 0 1 (5.9%) 2 (5%) \n INV ID USA-4 / Dr. USA-4 Doe 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-5 / Dr. USA-5 Doe 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-6 / Dr. USA-6 Doe 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-8 / Dr. USA-8 Doe 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-9 / Dr. USA-9 Doe 1 (10%) 0 0 1 (2.5%) \nBRA 13 (9.7%) 7 (5.2%) 10 (7.6%) 30 (7.5%) \n INV ID BRA-1 / Dr. BRA-1 Doe 4 (30.8%) 2 (28.6%) 2 (20%) 8 (26.7%) \n INV ID BRA-11 / Dr. BRA-11 Doe 4 (30.8%) 0 4 (40%) 8 (26.7%) \n INV ID BRA-12 / Dr. BRA-12 Doe 0 1 (14.3%) 0 1 (3.3%) \n INV ID BRA-13 / Dr. BRA-13 Doe 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-14 / Dr. BRA-14 Doe 1 (7.7%) 0 1 (10%) 2 (6.7%) \n INV ID BRA-15 / Dr. BRA-15 Doe 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-2 / Dr. BRA-2 Doe 1 (7.7%) 1 (14.3%) 0 2 (6.7%) \n INV ID BRA-3 / Dr. BRA-3 Doe 0 2 (28.6%) 0 2 (6.7%) \n INV ID BRA-4 / Dr. BRA-4 Doe 0 1 (14.3%) 1 (10%) 2 (6.7%) \n INV ID BRA-5 / Dr. BRA-5 Doe 0 0 1 (10%) 1 (3.3%) \n INV ID BRA-6 / Dr. BRA-6 Doe 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-7 / Dr. BRA-7 Doe 0 0 1 (10%) 1 (3.3%) \nPAK 12 (9.0%) 9 (6.7%) 10 (7.6%) 31 (7.8%) \n INV ID PAK-1 / Dr. PAK-1 Doe 2 (16.7%) 4 (44.4%) 4 (40%) 10 (32.3%) \n INV ID PAK-11 / Dr. PAK-11 Doe 4 (33.3%) 3 (33.3%) 2 (20%) 9 (29%) \n INV ID PAK-12 / Dr. PAK-12 Doe 2 (16.7%) 0 0 2 (6.5%) \n INV ID PAK-13 / Dr. PAK-13 Doe 1 (8.3%) 1 (11.1%) 0 2 (6.5%) \n INV ID PAK-14 / Dr. PAK-14 Doe 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-15 / Dr. PAK-15 Doe 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-2 / Dr. PAK-2 Doe 1 (8.3%) 0 2 (20%) 3 (9.7%) \n INV ID PAK-4 / Dr. PAK-4 Doe 0 1 (11.1%) 1 (10%) 2 (6.5%) \n INV ID PAK-5 / Dr. PAK-5 Doe 0 0 1 (10%) 1 (3.2%) \nNGA 8 (6.0%) 7 (5.2%) 11 (8.3%) 26 (6.5%) \n INV ID NGA-1 / Dr. NGA-1 Doe 3 (37.5%) 3 (42.9%) 4 (36.4%) 10 (38.5%) \n INV ID NGA-11 / Dr. NGA-11 Doe 1 (12.5%) 2 (28.6%) 3 (27.3%) 6 (23.1%) \n INV ID NGA-12 / Dr. NGA-12 Doe 0 1 (14.3%) 1 (9.1%) 2 (7.7%) \n INV ID NGA-17 / Dr. NGA-17 Doe 2 (25%) 0 0 2 (7.7%) \n INV ID NGA-2 / Dr. NGA-2 Doe 1 (12.5%) 1 (14.3%) 0 2 (7.7%) \n INV ID NGA-4 / Dr. NGA-4 Doe 1 (12.5%) 0 1 (9.1%) 2 (7.7%) \n INV ID NGA-5 / Dr. NGA-5 Doe 0 0 1 (9.1%) 1 (3.8%) \n INV ID NGA-6 / Dr. NGA-6 Doe 0 0 1 (9.1%) 1 (3.8%) \nRUS 5 (3.7%) 8 (6.0%) 6 (4.5%) 19 (4.8%) \n INV ID RUS-1 / Dr. RUS-1 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-11 / Dr. RUS-11 Doe 0 2 (25%) 2 (33.3%) 4 (21.1%) \n INV ID RUS-12 / Dr. RUS-12 Doe 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-13 / Dr. RUS-13 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-14 / Dr. RUS-14 Doe 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-16 / Dr. RUS-16 Doe 1 (20%) 1 (12.5%) 0 2 (10.5%) \n INV ID RUS-18 / Dr. RUS-18 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-2 / Dr. RUS-2 Doe 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-3 / Dr. RUS-3 Doe 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-4 / Dr. RUS-4 Doe 0 2 (25%) 1 (16.7%) 3 (15.8%) \n INV ID RUS-5 / Dr. RUS-5 Doe 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-6 / Dr. RUS-6 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-7 / Dr. RUS-7 Doe 0 0 1 (16.7%) 1 (5.3%) \nJPN 5 (3.7%) 4 (3.0%) 9 (6.8%) 18 (4.5%) \n INV ID JPN-1 / Dr. JPN-1 Doe 2 (40%) 2 (50%) 1 (11.1%) 5 (27.8%) \n INV ID JPN-11 / Dr. JPN-11 Doe 0 0 3 (33.3%) 3 (16.7%) \n INV ID JPN-12 / Dr. JPN-12 Doe 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-14 / Dr. JPN-14 Doe 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-17 / Dr. JPN-17 Doe 0 0 2 (22.2%) 2 (11.1%) \n INV ID JPN-18 / Dr. JPN-18 Doe 1 (20%) 0 0 1 (5.6%) \n INV ID JPN-2 / Dr. JPN-2 Doe 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-3 / Dr. JPN-3 Doe 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-5 / Dr. JPN-5 Doe 1 (20%) 0 1 (11.1%) 2 (11.1%) \n INV ID JPN-6 / Dr. JPN-6 Doe 1 (20%) 0 0 1 (5.6%) \nGBR 4 (3.0%) 3 (2.2%) 2 (1.5%) 9 (2.2%) \n INV ID GBR-1 / Dr. GBR-1 Doe 2 (50%) 0 1 (50%) 3 (33.3%) \n INV ID GBR-11 / Dr. GBR-11 Doe 0 1 (33.3%) 1 (50%) 2 (22.2%) \n INV ID GBR-13 / Dr. GBR-13 Doe 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-15 / Dr. GBR-15 Doe 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-17 / Dr. GBR-17 Doe 0 1 (33.3%) 0 1 (11.1%) \n INV ID GBR-6 / Dr. GBR-6 Doe 0 1 (33.3%) 0 1 (11.1%) \nCAN 3 (2.2%) 2 (1.5%) 3 (2.3%) 8 (2.0%) \n INV ID CAN-1 / Dr. CAN-1 Doe 1 (33.3%) 1 (50%) 0 2 (25%) \n INV ID CAN-11 / Dr. CAN-11 Doe 1 (33.3%) 0 1 (33.3%) 2 (25%) \n INV ID CAN-14 / Dr. CAN-14 Doe 1 (33.3%) 0 0 1 (12.5%) \n INV ID CAN-4 / Dr. CAN-4 Doe 0 1 (50%) 1 (33.3%) 2 (25%) \n INV ID CAN-5 / Dr. CAN-5 Doe 0 0 1 (33.3%) 1 (12.5%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(forcats)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\n\nadsl <- adsl %>%\n mutate(\n REGION1 = droplevels(REGION1),\n COUNTRY = droplevels(COUNTRY),\n INVID_INVNAM = paste(INVID, INVNAM, sep = \" / \")\n ) %>%\n mutate(\n INVID = factor(INVID),\n SITEID = factor(SITEID),\n INVNAM = factor(INVNAM),\n INVID_INVNAM = factor(INVID_INVNAM)\n ) %>%\n var_relabel(\n INVID_INVNAM = \"Investigator Number/Name\",\n REGION1 = \"Geographic Region 1\",\n COUNTRY = \"Country\",\n INVID = \"Investigator Identifier\"\n ) %>%\n arrange(REGION1, COUNTRY, INVID)", + "text": "Output\n\n\nStandard Table\nTable with Customized Queries\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecriteria_fun <- function(tr) !is(tr, \"ContentRow\") && all_zero_or_na(tr)\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\"\n )\n ) %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = trim_levels_in_group(\"AEDECOD\", drop_outlevs = FALSE),\n label_pos = \"topleft\",\n split_label = \"Standardized MedDRA Query\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = -1L,\n drop = FALSE\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt,\n df = adae_smq_1,\n alt_counts_df = adsl\n) %>%\n sort_at_path(path = c(\"SMQ\"), scorefun = cont_n_allcols) %>%\n sort_at_path(path = c(\"SMQ\", \"*\", \"AEDECOD\"), scorefun = score_occurrences, na.pos = \"last\") %>%\n trim_rows(criteria = criteria_fun)\n\nresult\n\nStandardized MedDRA Query ARM A ARM B ARM C \n Dictionary-Derived Term (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 72 (53.7%) 79 (59.0%) 75 (56.8%)\nC.1.1.1.3/B.2.2.3.1 AESI(BROAD) \n Total number of patients with at least one adverse event 72 (53.7%) 79 (59.0%) 75 (56.8%)\n Total number of events 119 139 141 \n dcd B.2.2.3.1 48 (35.8%) 54 (40.3%) 51 (38.6%)\n dcd C.1.1.1.3 43 (32.1%) 46 (34.3%) 43 (32.6%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecriteria_fun <- function(tr) {\n !is(tr, \"ContentRow\") && all_zero_or_na(tr) && !grepl(\"Total number of\", obj_label(tr))\n}\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\"\n )\n ) %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = trim_levels_in_group(\"AEDECOD\", drop_outlevs = FALSE),\n label_pos = \"topleft\",\n split_label = \"Standardized MedDRA Query\"\n ) %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n ),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n drop = FALSE\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nscore_ae_pts <- function(tt) {\n count_vals <- cell_values(tree_children(tt)[[\"USUBJID\"]])[[1]]\n sum(matrix(unlist(count_vals), nrow = length(count_vals), byrow = TRUE)[, 1])\n}\n\nresult <- build_table(\n lyt,\n df = adae_smq_all,\n alt_counts_df = adsl\n) %>%\n sort_at_path(path = c(\"SMQ\"), scorefun = score_ae_pts) %>%\n sort_at_path(path = c(\"SMQ\", \"*\", \"AEDECOD\"), scorefun = score_occurrences, na.pos = \"last\") %>%\n trim_rows(criteria = criteria_fun)\n\nresult\n\nStandardized MedDRA Query ARM A ARM B ARM C \n Dictionary-Derived Term (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 95 (70.9%) 103 (76.9%) 108 (81.8%)\nD.2.1.5.3/A.1.1.1.1 AESI \n Total number of patients with at least one adverse event 74 (55.2%) 80 (59.7%) 87 (65.9%) \n Total number of events 126 134 162 \n dcd D.2.1.5.3 47 (35.1%) 58 (43.3%) 57 (43.2%) \n dcd A.1.1.1.1 50 (37.3%) 45 (33.6%) 63 (47.7%) \nC.1.1.1.3/B.2.2.3.1 AESI(BROAD) \n Total number of patients with at least one adverse event 72 (53.7%) 79 (59.0%) 75 (56.8%) \n Total number of events 119 139 141 \n dcd B.2.2.3.1 48 (35.8%) 54 (40.3%) 51 (38.6%) \n dcd C.1.1.1.3 43 (32.1%) 46 (34.3%) 43 (32.6%) \nnon observed SMQ02NAM level(BROAD) \n Total number of patients with at least one adverse event 0 0 0 \n Total number of events 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(stringr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\n# Simulate a random AAG dataset.\naag <- data.frame(\n NAMVAR = c(\"SMQ01NAM\", \"SMQ01NAM\", \"SMQ02NAM\", \"CQ01NAM\", \"CQ01NAM\"),\n SRCVAR = rep(\"AEDECOD\", 5),\n GRPTYPE = c(\"SMQ\", \"SMQ\", \"SMQ\", \"CUSTOM\", \"CUSTOM\"),\n REFID = c(1, 1, 2, 3, 3),\n REFNAME = c(rep(\"C.1.1.1.3/B.2.2.3.1 AESI\", 2), \"non observed SMQ02NAM level\", rep(\"D.2.1.5.3/A.1.1.1.1 AESI\", 2)),\n SCOPE = c(\"BROAD\", \"BROAD\", \"BROAD\", \"\", \"\"),\n REFTERM = c(\"C.1.1.1.3\", \"B.2.2.3.1\", \"Z.9.9.9.9\", \"D.2.1.5.3\", \"A.1.1.1.1\"),\n stringsAsFactors = FALSE\n)\n\n# Create summary AAG dataset (used for labelling).\n# Note it's important to incorporate SCOPE into the basket names for SMQs so as to\n# match the flags present in ADAE.\naag_summary <- aag %>%\n select(NAMVAR, REFNAME, SCOPE) %>%\n unique() %>%\n mutate(\n REFNAME_SCOPE = ifelse(SCOPE == \"\", REFNAME, paste0(REFNAME, \"(\", SCOPE, \")\"))\n ) %>%\n rename(basket = NAMVAR, basket_name = REFNAME_SCOPE) %>%\n select(basket, basket_name)\n\n# Make a summary of the full ADAE based on AAG by using h_stack_by_baskets helper function\nadae_smq_all <- h_stack_by_baskets(\n df = adae,\n aag_summary = aag_summary,\n keys = c(\"STUDYID\", \"USUBJID\", \"ACTARMCD\", \"AEDECOD\")\n)\n\n# Post-process adae_smq_all to keep only certain baskets of interest for variant 1\n# Not need to drop baskets for variant 2 as all baskets will be considered.\nbaskets_to_drop_variant <- aag_summary$basket_name[!aag_summary$basket %in% c(\"SMQ01NAM\")]\n\n# Adjust the analysis dataset based on basket subset for variant 1.\nadae_smq_1 <- adae_smq_all %>%\n filter(!adae_smq_all$SMQ %in% baskets_to_drop_variant) %>%\n mutate(\n SMQ = tern::fct_discard(SMQ, discard = baskets_to_drop_variant)\n )", "crumbs": [ "Tables", - "Safety", - "ENTXX" + "Adverse Events", + "AET02_SMQ" ] }, { - "objectID": "tables/safety/enrollment01.html#teal-app", - "href": "tables/safety/enrollment01.html#teal-app", - "title": "ENTXX", + "objectID": "tables/adverse-events/aet02_smq.html#teal-app", + "href": "tables/adverse-events/aet02_smq.html#teal-app", + "title": "AET02_SMQ", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\nNote that for this module application, only the variables passed into by_vars are used when row_groups is selected. Variables passed into analyze_vars are additionally used when row_groups is deselected.\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n\n adsl_labels <- col_labels(ADSL)\n\n ADSL <- ADSL %>%\n mutate(\n REGION1 = droplevels(REGION1),\n COUNTRY = droplevels(COUNTRY),\n INVID_INVNAM = paste(INVID, INVNAM, sep = \" / \")\n ) %>%\n arrange(REGION1, COUNTRY, INVID) %>%\n mutate(\n INVID = factor(INVID),\n SITEID = factor(SITEID),\n INVNAM = factor(INVNAM),\n INVID_INVNAM = factor(INVID_INVNAM)\n )\n\n col_labels(ADSL) <- c(adsl_labels, c(INVID_INVNAM = \"Investigator Number/Name\"))\n})\ndatanames <- \"ADSL\"\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Enrollment Table\",\n dataname = \"ADSL\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADSL, c(\"REGION1\", \"COUNTRY\", \"SITEID\", \"INVID\", \"INVNAM\", \"INVID_INVNAM\")),\n selected = c(\"REGION1\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADSL, c(\"REGION1\", \"COUNTRY\", \"SITEID\", \"INVID\", \"INVNAM\", \"INVID_INVNAM\")),\n selected = c(\"SITEID\")\n ),\n denominator = choices_selected(\n choices = c(\"n\", \"N\", \"omit\"),\n selected = \"N\",\n fixed = TRUE\n ),\n useNA = \"ifany\",\n row_groups = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n\n adsl_labels <- col_labels(ADSL)\n\n ADSL <- ADSL %>%\n mutate(\n REGION1 = droplevels(REGION1),\n COUNTRY = droplevels(COUNTRY),\n INVID_INVNAM = paste(INVID, INVNAM, sep = \" / \")\n ) %>%\n arrange(REGION1, COUNTRY, INVID) %>%\n mutate(\n INVID = factor(INVID),\n SITEID = factor(SITEID),\n INVNAM = factor(INVNAM),\n INVID_INVNAM = factor(INVID_INVNAM)\n )\n\n col_labels(ADSL) <- c(adsl_labels, c(INVID_INVNAM = \"Investigator Number/Name\"))\n})\ndatanames <- \"ADSL\"\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Enrollment Table\",\n dataname = \"ADSL\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADSL, c(\"REGION1\", \"COUNTRY\", \"SITEID\", \"INVID\", \"INVNAM\", \"INVID_INVNAM\")),\n selected = c(\"REGION1\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADSL, c(\"REGION1\", \"COUNTRY\", \"SITEID\", \"INVID\", \"INVNAM\", \"INVID_INVNAM\")),\n selected = c(\"SITEID\")\n ),\n denominator = choices_selected(\n choices = c(\"n\", \"N\", \"omit\"),\n selected = \"N\",\n fixed = TRUE\n ),\n useNA = \"ifany\",\n row_groups = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\nnames_baskets <- grep(\"^(SMQ|CQ).*NAM$\", names(ADAE), value = TRUE)\nnames_scopes <- grep(\"^SMQ.*SC$\", names(ADAE), value = TRUE)\n\ncs_baskets <- choices_selected(\n choices = variable_choices(ADAE, subset = names_baskets),\n selected = names_baskets\n)\ncs_scopes <- choices_selected(\n choices = variable_choices(ADAE, subset = names_scopes),\n selected = names_scopes,\n fixed = TRUE\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_smq(\n label = \"Adverse events by `SMQ` Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"SEX\")),\n selected = \"ARM\"\n ),\n add_total = FALSE,\n baskets = cs_baskets,\n scopes = cs_scopes,\n llt = choices_selected(\n choices = variable_choices(ADAE, subset = c(\"AEDECOD\")),\n selected = \"AEDECOD\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\nnames_baskets <- grep(\"^(SMQ|CQ).*NAM$\", names(ADAE), value = TRUE)\nnames_scopes <- grep(\"^SMQ.*SC$\", names(ADAE), value = TRUE)\n\ncs_baskets <- choices_selected(\n choices = variable_choices(ADAE, subset = names_baskets),\n selected = names_baskets\n)\ncs_scopes <- choices_selected(\n choices = variable_choices(ADAE, subset = names_scopes),\n selected = names_scopes,\n fixed = TRUE\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_smq(\n label = \"Adverse events by `SMQ` Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"SEX\")),\n selected = \"ARM\"\n ),\n add_total = FALSE,\n baskets = cs_baskets,\n scopes = cs_scopes,\n llt = choices_selected(\n choices = variable_choices(ADAE, subset = c(\"AEDECOD\")),\n selected = \"AEDECOD\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Safety", - "ENTXX" + "Adverse Events", + "AET02_SMQ" ] }, { - "objectID": "tables/safety/enrollment01.html#reproducibility", - "href": "tables/safety/enrollment01.html#reproducibility", - "title": "ENTXX", + "objectID": "tables/adverse-events/aet02_smq.html#reproducibility", + "href": "tables/adverse-events/aet02_smq.html#reproducibility", + "title": "AET02_SMQ", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:55:08 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats * 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:52:10 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr * 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Safety", - "ENTXX" + "Adverse Events", + "AET02_SMQ" ] }, { - "objectID": "tables/deaths/dtht01.html#output", - "href": "tables/deaths/dtht01.html#output", - "title": "DTHT01", + "objectID": "tables/adverse-events/aet01_aesi.html#output", + "href": "tables/adverse-events/aet01_aesi.html#output", + "title": "AET01_AESI", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Selecting Sections to Display\nTable for Studies Collecting Death Information from Public Records\nTable Adding Details for “All other causes” Category for Studies Collecting Death Information from Public Records\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\", split_fun = add_overall_level(\"All Patients\", first = FALSE)) %>%\n count_values(\n \"DTHFL\",\n values = \"Y\",\n .labels = c(count_fraction = \"Total number of deaths\"),\n .formats = c(count_fraction = \"xx (xx.x%)\")\n ) %>%\n analyze_vars(vars = c(\"DTHCAT\"), var_labels = c(\"Primary Cause of Death\"))\n\nresult <- build_table(lyt, df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n————————————————————————————————————————————————————————————————————————————————\nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) 70 (17.5%) \nPrimary Cause of Death \n n 25 23 22 70 \n ADVERSE EVENT 9 (36%) 7 (30.4%) 10 (45.5%) 26 (37.1%) \n PROGRESSIVE DISEASE 8 (32%) 6 (26.1%) 6 (27.3%) 20 (28.6%) \n OTHER 8 (32%) 10 (43.5%) 6 (27.3%) 24 (34.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\", split_fun = add_overall_level(\"All Patients\", first = FALSE)) %>%\n count_values(\n \"DTHFL\",\n values = \"Y\",\n .labels = c(count_fraction = \"Total number of deaths\"),\n .formats = c(count_fraction = \"xx (xx.x%)\")\n ) %>%\n analyze_vars(vars = c(\"DTHCAT\"), var_labels = c(\"Primary Cause of Death\")) %>%\n split_rows_by(\"DTHCAT\", split_fun = keep_split_levels(\"OTHER\"), child_labels = \"hidden\") %>%\n analyze_vars(\n \"DTHCAUS\",\n .stats = \"count_fraction\",\n .indent_mods = c(\"count_fraction\" = 2L),\n show_labels = \"hidden\"\n ) %>%\n analyze_vars(\n vars = \"LDDTHGR1\",\n nested = FALSE,\n var_labels = \"Days from last drug administration\",\n show_labels = \"visible\"\n ) %>%\n split_rows_by(\n \"LDDTHGR1\",\n split_fun = remove_split_levels(\"<Missing>\"),\n split_label = \"Primary cause by days from last study drug administration\",\n label_pos = \"visible\"\n ) %>%\n analyze_vars(\"DTHCAT\")\n\nresult <- build_table(lyt, df = adsl) %>% prune_table()\n\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) 70 (17.5%) \nPrimary Cause of Death \n n 25 23 22 70 \n ADVERSE EVENT 9 (36%) 7 (30.4%) 10 (45.5%) 26 (37.1%) \n PROGRESSIVE DISEASE 8 (32%) 6 (26.1%) 6 (27.3%) 20 (28.6%) \n OTHER 8 (32%) 10 (43.5%) 6 (27.3%) 24 (34.3%) \n LOST TO FOLLOW UP 2 (25%) 2 (20%) 2 (33.3%) 6 (25%) \n MISSING 2 (25%) 3 (30%) 2 (33.3%) 7 (29.2%) \n Post-study reporting of death 1 (12.5%) 2 (20%) 1 (16.7%) 4 (16.7%) \n SUICIDE 2 (25%) 2 (20%) 1 (16.7%) 5 (20.8%) \n UNKNOWN 1 (12.5%) 1 (10%) 0 2 (8.3%) \nDays from last drug administration \n n 25 23 22 70 \n <=30 14 (56%) 11 (47.8%) 14 (63.6%) 39 (55.7%) \n >30 11 (44%) 12 (52.2%) 8 (36.4%) 31 (44.3%) \nPrimary cause by days from last study drug administration \n <=30 \n n 14 11 14 39 \n ADVERSE EVENT 4 (28.6%) 2 (18.2%) 6 (42.9%) 12 (30.8%) \n PROGRESSIVE DISEASE 6 (42.9%) 3 (27.3%) 4 (28.6%) 13 (33.3%) \n OTHER 4 (28.6%) 6 (54.5%) 4 (28.6%) 14 (35.9%) \n >30 \n n 11 12 8 31 \n ADVERSE EVENT 5 (45.5%) 5 (41.7%) 4 (50%) 14 (45.2%) \n PROGRESSIVE DISEASE 2 (18.2%) 3 (25%) 2 (25%) 7 (22.6%) \n OTHER 4 (36.4%) 4 (33.3%) 2 (25%) 10 (32.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodedthcaus_levels <- levels(adsl[adsl$DTHCAT == \"OTHER\", ]$DTHCAUS)\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\", split_fun = add_overall_level(\"All Patients\", first = FALSE)) %>%\n count_values(\n \"DTHFL\",\n values = \"Y\",\n .labels = c(count_fraction = \"Total number of deaths\"),\n .formats = c(count_fraction = \"xx (xx.x%)\")\n ) %>%\n analyze_vars(\n vars = c(\"DTHCAT\"),\n var_labels = c(\"Primary Cause of Death\"),\n table_names = \"primary_cause\"\n ) %>%\n split_rows_by(\n \"DTHCAT\",\n split_fun = keep_split_levels(\"OTHER\"),\n child_labels = \"hidden\"\n ) %>%\n count_values(\n \"DTHCAUS\",\n values = dthcaus_levels[5],\n .labels = c(count_fraction = \"Post-study reportings of death\"),\n .formats = c(count_fraction = \"xx (xx.x%)\"),\n .indent_mods = c(count_fraction = 2L),\n table_names = \"post_study_deaths\"\n ) %>%\n count_values(\n \"DTHCAUS\",\n values = dthcaus_levels[-5],\n .labels = c(count_fraction = \"All other causes\"),\n .formats = c(count_fraction = \"xx (xx.x%)\"),\n .indent_mods = c(count_fraction = 2L),\n table_names = \"all_other_causes\"\n )\n\nresult <- build_table(lyt, df = adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) 70 (17.5%) \nPrimary Cause of Death \n n 25 23 22 70 \n ADVERSE EVENT 9 (36%) 7 (30.4%) 10 (45.5%) 26 (37.1%) \n PROGRESSIVE DISEASE 8 (32%) 6 (26.1%) 6 (27.3%) 20 (28.6%) \n OTHER 8 (32%) 10 (43.5%) 6 (27.3%) 24 (34.3%) \n Post-study reportings of death 1 (12.5%) 2 (20.0%) 1 (16.7%) 4 (16.7%) \n All other causes 7 (87.5%) 8 (80.0%) 5 (83.3%) 20 (83.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodedthcaus_levels <- levels(adsl[adsl$DTHCAT == \"OTHER\", ]$DTHCAUS)\n\n# create a helper variable DTHCAUS_other\nadsl <- adsl %>%\n mutate(\n DTHCAUS_other = factor(ifelse(\n DTHCAT == \"OTHER\" & DTHCAUS != \"Post-study reporting of death\", as.character(DTHCAUS), NA\n ), levels = c(\"LOST TO FOLLOW UP\", \"SUICIDE\", \"UNKNOWN\", \"MISSING\")) %>% explicit_na()\n )\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\", split_fun = add_overall_level(\"All Patients\", first = FALSE)) %>%\n count_values(\n \"DTHFL\",\n values = \"Y\",\n .labels = c(count_fraction = \"Total number of deaths\"),\n .formats = c(count_fraction = \"xx (xx.x%)\")\n ) %>%\n analyze_vars(\n vars = c(\"DTHCAT\"),\n var_labels = c(\"Primary Cause of Death\"),\n table_names = \"primary_cause\"\n ) %>%\n split_rows_by(\"DTHCAT\", split_fun = keep_split_levels(\"OTHER\"), child_labels = \"hidden\") %>%\n count_values(\n \"DTHCAUS\",\n values = dthcaus_levels[5],\n .labels = c(count_fraction = \"Post-study reportings of death\"),\n .formats = c(count_fraction = \"xx (xx.x%)\"),\n .indent_mods = c(count_fraction = 2L),\n table_names = \"post_study_deaths\"\n ) %>%\n count_values(\n \"DTHCAUS\",\n values = dthcaus_levels[-5],\n .labels = c(count_fraction = \"All other causes\"),\n .formats = c(count_fraction = \"xx (xx.x%)\"),\n .indent_mods = c(count_fraction = 2L),\n table_names = \"all_other_causes\"\n ) %>%\n analyze_vars(\n \"DTHCAUS_other\",\n .stats = \"count_fraction\",\n .indent_mods = c(\"count_fraction\" = 3L),\n show_labels = \"hidden\"\n )\n\nresult <- build_table(lyt, df = adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) 70 (17.5%) \nPrimary Cause of Death \n n 25 23 22 70 \n ADVERSE EVENT 9 (36%) 7 (30.4%) 10 (45.5%) 26 (37.1%) \n PROGRESSIVE DISEASE 8 (32%) 6 (26.1%) 6 (27.3%) 20 (28.6%) \n OTHER 8 (32%) 10 (43.5%) 6 (27.3%) 24 (34.3%) \n Post-study reportings of death 1 (12.5%) 2 (20.0%) 1 (16.7%) 4 (16.7%) \n All other causes 7 (87.5%) 8 (80.0%) 5 (83.3%) 20 (83.3%) \n LOST TO FOLLOW UP 2 (28.6%) 2 (25%) 2 (40%) 6 (30%) \n SUICIDE 2 (28.6%) 2 (25%) 1 (20%) 5 (25%) \n UNKNOWN 1 (14.3%) 1 (12.5%) 0 2 (10%) \n MISSING 2 (28.6%) 3 (37.5%) 2 (40%) 7 (35%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl) %>% filter(SAFFL == \"Y\")\n\n# Reorder the levels in \"DTHCAT\" to put Other category at the end.\nadsl$DTHCAT <- factor(adsl$DTHCAT, levels = c(\"ADVERSE EVENT\", \"PROGRESSIVE DISEASE\", \"OTHER\", \"<Missing>\"))", - "crumbs": [ - "Tables", - "Deaths", - "DTHT01" - ] - }, - { - "objectID": "tables/deaths/dtht01.html#reproducibility", - "href": "tables/deaths/dtht01.html#reproducibility", - "title": "DTHT01", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:54:16 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Output\n\n\nStandard Table\nTable with Optional Lines\nTable For Studies with Multiple Drugs\nTable of AEs by SMQ\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeaesi_vars <- c(\"WD\", \"DSM\", \"CONTRT\", \"ALL_RESOLVED\", \"NOT_RESOLVED\", \"SER\", \"REL\")\n\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_patients_with_event(\n vars = \"USUBJID\",\n filters = c(\"ANL01FL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients with at least one AE\")\n ) %>%\n count_values(\n \"ANL01FL\",\n values = \"Y\",\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n var_labels = \"Total number of patients with at least one AE by worst grade\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\"USUBJID\", flag_variables = aesi_vars, denom = \"N_col\")\n\nresult <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one AE 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of AEs 502 480 604 \nTotal number of patients with at least one AE by worst grade \n Grade 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n Grade 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n Grade 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 (fatal outcome) 64 (47.8%) 52 (38.8%) 64 (48.5%) \nTotal number of patients with study drug withdrawn due to AE 22 (16.4%) 21 (15.7%) 28 (21.2%) \nTotal number of patients with dose modified/interrupted due to AE 55 (41.0%) 62 (46.3%) 64 (48.5%) \nTotal number of patients with treatment received for AE 80 (59.7%) 80 (59.7%) 89 (67.4%) \nTotal number of patients with all non-fatal AEs resolved 17 (12.7%) 12 (9.0%) 11 (8.3%) \nTotal number of patients with at least one unresolved or ongoing non-fatal AE 83 (61.9%) 86 (64.2%) 92 (69.7%) \nTotal number of patients with at least one serious AE 85 (63.4%) 80 (59.7%) 87 (65.9%) \nTotal number of patients with at least one related AE 86 (64.2%) 85 (63.4%) 92 (69.7%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeaesi_vars <- c(\"WD\", \"DSM\", \"CONTRT\")\naesi_resolved <- c(\"ALL_RESOLVED\", \"ALL_RESOLVED_WD\", \"ALL_RESOLVED_DSM\", \"ALL_RESOLVED_CONTRT\")\naesi_not_resolved <- c(\"NOT_RESOLVED\", \"NOT_RESOLVED_WD\", \"NOT_RESOLVED_DSM\", \"NOT_RESOLVED_CONTRT\")\naesi_ser <- c(\"SER\", \"SERWD\", \"SERDSM\", \"SERCONTRT\")\naesi_rel <- c(\"REL\", \"RELWD\", \"RELDSM\", \"RELCONTRT\", \"RELSER\")\n\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_patients_with_event(\n vars = \"USUBJID\",\n filters = c(\"ANL01FL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients with at least one AE\")\n ) %>%\n count_values(\n \"ANL01FL\",\n values = \"Y\",\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n var_labels = \"Total number of patients with at least one AE by worst grade\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(aesi_vars, aesi_resolved[1]), denom = \"N_col\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_resolved[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_res\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_not_resolved[1], denom = \"N_col\", table_names = \"fl_notres_main\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_not_resolved[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_notres\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_ser[1], denom = \"N_col\", table_names = \"fl_ser_main\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_ser[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_ser\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_rel[1], denom = \"N_col\", table_names = \"fl_rel_main\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_rel[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_rel\"\n )\n\nresult <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one AE 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of AEs 502 480 604 \nTotal number of patients with at least one AE by worst grade \n Grade 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n Grade 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n Grade 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 (fatal outcome) 64 (47.8%) 52 (38.8%) 64 (48.5%) \nTotal number of patients with study drug withdrawn due to AE 22 (16.4%) 21 (15.7%) 28 (21.2%) \nTotal number of patients with dose modified/interrupted due to AE 55 (41.0%) 62 (46.3%) 64 (48.5%) \nTotal number of patients with treatment received for AE 80 (59.7%) 80 (59.7%) 89 (67.4%) \nTotal number of patients with all non-fatal AEs resolved 17 (12.7%) 12 (9.0%) 11 (8.3%) \n No. of patients with study drug withdrawn due to resolved AE 0 1 (0.7%) 2 (1.5%) \n No. of patients with dose modified/interrupted due to resolved AE 3 (2.2%) 4 (3.0%) 2 (1.5%) \n No. of patients with treatment received for resolved AE 9 (6.7%) 7 (5.2%) 7 (5.3%) \nTotal number of patients with at least one unresolved or ongoing non-fatal AE 83 (61.9%) 86 (64.2%) 92 (69.7%) \n No. of patients with study drug withdrawn due to unresolved or ongoing AE 22 (16.4%) 20 (14.9%) 26 (19.7%) \n No. of patients with dose modified/interrupted due to unresolved or ongoing AE 52 (38.8%) 58 (43.3%) 62 (47.0%) \n No. of patients with treatment received for unresolved or ongoing AE 71 (53.0%) 73 (54.5%) 82 (62.1%) \nTotal number of patients with at least one serious AE 85 (63.4%) 80 (59.7%) 87 (65.9%) \n No. of patients with study drug withdrawn due to serious AE 9 (6.7%) 4 (3.0%) 10 (7.6%) \n No. of patients with treatment received for serious AE 21 (15.7%) 22 (16.4%) 28 (21.2%) \n No. of patients with dose modified/interrupted due to serious AE 59 (44.0%) 58 (43.3%) 53 (40.2%) \nTotal number of patients with at least one related AE 86 (64.2%) 85 (63.4%) 92 (69.7%) \n No. of patients with study drug withdrawn due to related AE 5 (3.7%) 10 (7.5%) 7 (5.3%) \n No. of patients with dose modified/interrupted due to related AE 24 (17.9%) 32 (23.9%) 34 (25.8%) \n No. of patients with treatment received for related AE 53 (39.6%) 58 (43.3%) 60 (45.5%) \n No. of patients with serious, related AE 64 (47.8%) 52 (38.8%) 64 (48.5%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadsl <- random.cdisc.data::cadsl\nadae_mult <- random.cdisc.data::cadae\n\nadsl <- filter(adsl, SAFFL == \"Y\")\nadae_mult <- filter(adae_mult, ANL01FL == \"Y\" & SAFFL == \"Y\")\n\nadsl <- df_explicit_na(adsl)\nadae_mult <- df_explicit_na(adae_mult)\n\n# for illustration purposes only, create AEREL1, AEREL2, AEACN1, AEACN2 from respective variables\nadae_mult <- adae_mult %>%\n mutate(\n AEREL1 = AEREL,\n AEREL2 = AEREL,\n AEACN1 = AEACN,\n AEACN2 = AEACN\n )\n\nnot_resolved <- adae_mult %>%\n filter(!(AEOUT %in% c(\"RECOVERED/RESOLVED\", \"FATAL\", \"RECOVERED/RESOLVED WITH SEQUELAE\"))) %>%\n distinct(USUBJID) %>%\n mutate(NOT_RESOLVED = \"Y\")\n\nadae_mult <- adae_mult %>%\n left_join(not_resolved, by = c(\"USUBJID\")) %>%\n mutate(\n ALL_RESOLVED = with_label(\n is.na(NOT_RESOLVED),\n \"Total number of patients with all non-fatal AEs resolved\"\n ),\n NOT_RESOLVED = with_label(\n !is.na(NOT_RESOLVED),\n \"Total number of patients with at least one non-fatal unresolved or ongoing AE\"\n )\n )\n\nadae_mult <- adae_mult %>%\n mutate(\n AEDECOD = as.character(AEDECOD),\n WD1 = with_label(\n AEACN1 == \"DRUG WITHDRAWN\",\n \"Total number of patients with study drug 1 withdrawn due to AE\"\n ),\n WD2 = with_label(\n AEACN2 == \"DRUG WITHDRAWN\",\n \"Total number of patients with study drug 2 withdrawn due to AE\"\n ),\n DSM1 = with_label(\n AEACN1 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Total number of patients with dose of study drug 1 modified/interrupted due to AE\"\n ),\n DSM2 = with_label(\n AEACN2 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Total number of patients with dose of study drug 2 modified/interrupted due to AE\"\n ),\n CONTRT = with_label(\n AECONTRT == \"Y\",\n \"Total number of patients with treatment received for AE\"\n ),\n SER = with_label(\n AESER == \"Y\",\n \"Total number of patients with at least one serious AE\"\n ),\n REL1 = with_label(\n AEREL1 == \"Y\",\n \"Total number of patients with at least one AE related to study drug 1\"\n ),\n REL2 = with_label(\n AEREL2 == \"Y\",\n \"Total number of patients with at least one AE related to study drug 2\"\n ),\n ALL_RESOLVED_WD1 = with_label(\n WD1 == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with study drug 1 withdrawn due to resolved AE\"\n ),\n ALL_RESOLVED_DSM1 = with_label(\n DSM1 == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with dose of study drug 1 modified/interrupted due to resolved AE\"\n ),\n ALL_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with treatment received for resolved AE\"\n ),\n ALL_RESOLVED_WD2 = with_label(\n WD2 == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with study drug 2 withdrawn due to resolved AE\"\n ),\n ALL_RESOLVED_DSM2 = with_label(\n DSM2 == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with dose of study drug 2 modified/interrupted due to resolved AE\"\n ),\n NOT_RESOLVED_WD1 = with_label(\n WD1 == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with study drug 1 withdrawn due to unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_DSM1 = with_label(\n DSM1 == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with dose of study drug 1 modified/interrupted due to unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with treatment received for unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_WD2 = with_label(\n WD2 == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with study drug 2 withdrawn due to unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_DSM2 = with_label(\n DSM2 == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with dose of study drug 2 modified/interrupted due to unresolved or ongoing AE\"\n ),\n SERWD1 = with_label(\n AESER == \"Y\" & AEACN1 == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug 1 withdrawn due to serious AE\"\n ),\n SERWD2 = with_label(\n AESER == \"Y\" & AEACN2 == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug 2 withdrawn due to serious AE\"\n ),\n SERCONTRT = with_label(\n AECONTRT == \"Y\" & AESER == \"Y\",\n \"No. of patients with treatment received for serious AE\"\n ),\n SERDSM1 = with_label(\n AESER == \"Y\" & AEACN1 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose of study drug 1 modified/interrupted due to serious AE\"\n ),\n SERDSM2 = with_label(\n AESER == \"Y\" & AEACN2 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose of study drug 2 modified/interrupted due to serious AE\"\n ),\n REL1WD1 = with_label(\n AEREL1 == \"Y\" & AEACN1 == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug 1 withdrawn due to AE related to study drug 1\"\n ),\n REL1WD2 = with_label(\n AEREL1 == \"Y\" & AEACN2 == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug 1 withdrawn due to AE related to study drug 2\"\n ),\n REL2WD1 = with_label(\n AEREL1 == \"Y\" & AEACN1 == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug 2 withdrawn due to AE related to study drug 1\"\n ),\n REL2WD2 = with_label(\n AEREL1 == \"Y\" & AEACN2 == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug 2 withdrawn due to AE related to study drug 2\"\n ),\n REL1DSM1 = with_label(\n AEREL1 == \"Y\" & AEACN1 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose of study drug 1 modified/interrupted due to AE related to study drug 1\"\n ),\n REL2DSM1 = with_label(\n AEREL2 == \"Y\" & AEACN1 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose of study drug 2 modified/interrupted due to AE related to study drug 1\"\n ),\n REL1DSM2 = with_label(\n AEREL1 == \"Y\" & AEACN2 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose of study drug 1 modified/interrupted due to AE related to study drug 2\"\n ),\n REL2DSM2 = with_label(\n AEREL2 == \"Y\" & AEACN2 %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose of study drug 2 modified/interrupted due to AE related to study drug 2\"\n ),\n REL1CONTRT = with_label(\n AECONTRT == \"Y\" & AEREL1 == \"Y\",\n \"No. of patients with treatment received for AE related to study drug 1\"\n ),\n REL2CONTRT = with_label(\n AECONTRT == \"Y\" & AEREL2 == \"Y\",\n \"No. of patients with treatment received for AE related to study drug 2\"\n ),\n REL1SER = with_label(\n AESER == \"Y\" & AEREL1 == \"Y\",\n \"No. of patients with serious AE related to study drug 1\"\n ),\n REL2SER = with_label(\n AESER == \"Y\" & AEREL2 == \"Y\",\n \"No. of patients with serious AE related to study drug 2\"\n )\n )\n\nadae_mult <- adae_mult %>%\n mutate(AETOXGR = forcats::fct_recode(\n AETOXGR,\n \"Grade 1\" = \"1\",\n \"Grade 2\" = \"2\",\n \"Grade 3\" = \"3\",\n \"Grade 4\" = \"4\",\n \"Grade 5 (fatal outcome)\" = \"5\"\n ))\n\naesi_vars <- c(\"WD1\", \"WD2\", \"DSM1\", \"DSM2\", \"CONTRT\")\naesi_res <- c(\n \"ALL_RESOLVED\",\n \"ALL_RESOLVED_WD1\",\n \"ALL_RESOLVED_WD2\",\n \"ALL_RESOLVED_DSM1\",\n \"ALL_RESOLVED_DSM2\",\n \"ALL_RESOLVED_CONTRT\"\n)\naesi_not_res <- c(\n \"NOT_RESOLVED\",\n \"NOT_RESOLVED_WD1\",\n \"NOT_RESOLVED_WD2\",\n \"NOT_RESOLVED_DSM1\",\n \"NOT_RESOLVED_DSM2\",\n \"NOT_RESOLVED_CONTRT\"\n)\naesi_ser <- c(\"SER\", \"SERWD1\", \"SERWD2\", \"SERDSM1\", \"SERDSM2\", \"SERCONTRT\")\naesi_rel1 <- c(\"REL1\", \"REL1WD1\", \"REL1WD2\", \"REL1DSM1\", \"REL1DSM2\", \"REL1CONTRT\", \"REL1SER\")\naesi_rel2 <- c(\"REL2\", \"REL2WD1\", \"REL2WD2\", \"REL2DSM1\", \"REL2DSM2\", \"REL2CONTRT\", \"REL2SER\")\n\nlyt_adae_mult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_patients_with_event(\n vars = \"USUBJID\",\n filters = c(\"ANL01FL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients with at least one AE\")\n ) %>%\n count_values(\n \"ANL01FL\",\n values = \"Y\",\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n var_labels = \"Total number of patients with at least one AE by worst grade\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(aesi_vars, aesi_res[1]), denom = \"N_col\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_res[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_res\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_not_res[1], denom = \"N_col\", table_names = \"fl_notres_main\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_not_res[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_notres\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_ser[1], denom = \"N_col\", table_names = \"fl_ser_main\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_ser[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_ser\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_rel1[1], denom = \"N_col\", table_names = \"fl_rel1_main\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_rel1[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_rel1\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_rel2[1], denom = \"N_col\", table_names = \"fl_rel2_main\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_rel2[-1], denom = \"N_col\", .indent_mods = 1L, table_names = \"fl_rel2\"\n )\n\nresult <- build_table(lyt_adae_mult, df = adae_mult, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one AE 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of AEs 502 480 604 \nTotal number of patients with at least one AE by worst grade \n Grade 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n Grade 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n Grade 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 (fatal outcome) 64 (47.8%) 52 (38.8%) 64 (48.5%) \nTotal number of patients with study drug 1 withdrawn due to AE 22 (16.4%) 21 (15.7%) 28 (21.2%) \nTotal number of patients with study drug 2 withdrawn due to AE 22 (16.4%) 21 (15.7%) 28 (21.2%) \nTotal number of patients with dose of study drug 1 modified/interrupted due to AE 55 (41.0%) 62 (46.3%) 64 (48.5%) \nTotal number of patients with dose of study drug 2 modified/interrupted due to AE 55 (41.0%) 62 (46.3%) 64 (48.5%) \nTotal number of patients with treatment received for AE 80 (59.7%) 80 (59.7%) 89 (67.4%) \nTotal number of patients with all non-fatal AEs resolved 17 (12.7%) 12 (9.0%) 11 (8.3%) \n No. of patients with study drug 1 withdrawn due to resolved AE 0 1 (0.7%) 2 (1.5%) \n No. of patients with study drug 2 withdrawn due to resolved AE 0 1 (0.7%) 2 (1.5%) \n No. of patients with dose of study drug 1 modified/interrupted due to resolved AE 3 (2.2%) 4 (3.0%) 2 (1.5%) \n No. of patients with dose of study drug 2 modified/interrupted due to resolved AE 3 (2.2%) 4 (3.0%) 2 (1.5%) \n No. of patients with treatment received for resolved AE 9 (6.7%) 7 (5.2%) 7 (5.3%) \nTotal number of patients with at least one non-fatal unresolved or ongoing AE 83 (61.9%) 86 (64.2%) 92 (69.7%) \n No. of patients with study drug 1 withdrawn due to unresolved or ongoing AE 22 (16.4%) 20 (14.9%) 26 (19.7%) \n No. of patients with study drug 2 withdrawn due to unresolved or ongoing AE 22 (16.4%) 20 (14.9%) 26 (19.7%) \n No. of patients with dose of study drug 1 modified/interrupted due to unresolved or ongoing AE 52 (38.8%) 58 (43.3%) 62 (47.0%) \n No. of patients with dose of study drug 2 modified/interrupted due to unresolved or ongoing AE 52 (38.8%) 58 (43.3%) 62 (47.0%) \n No. of patients with treatment received for unresolved or ongoing AE 71 (53.0%) 73 (54.5%) 82 (62.1%) \nTotal number of patients with at least one serious AE 85 (63.4%) 80 (59.7%) 87 (65.9%) \n No. of patients with study drug 1 withdrawn due to serious AE 9 (6.7%) 4 (3.0%) 10 (7.6%) \n No. of patients with study drug 2 withdrawn due to serious AE 9 (6.7%) 4 (3.0%) 10 (7.6%) \n No. of patients with dose of study drug 1 modified/interrupted due to serious AE 21 (15.7%) 22 (16.4%) 28 (21.2%) \n No. of patients with dose of study drug 2 modified/interrupted due to serious AE 21 (15.7%) 22 (16.4%) 28 (21.2%) \n No. of patients with treatment received for serious AE 59 (44.0%) 58 (43.3%) 53 (40.2%) \nTotal number of patients with at least one AE related to study drug 1 86 (64.2%) 85 (63.4%) 92 (69.7%) \n No. of patients with study drug 1 withdrawn due to AE related to study drug 1 5 (3.7%) 10 (7.5%) 7 (5.3%) \n No. of patients with study drug 1 withdrawn due to AE related to study drug 2 5 (3.7%) 10 (7.5%) 7 (5.3%) \n No. of patients with dose of study drug 1 modified/interrupted due to AE related to study drug 1 24 (17.9%) 32 (23.9%) 34 (25.8%) \n No. of patients with dose of study drug 1 modified/interrupted due to AE related to study drug 2 24 (17.9%) 32 (23.9%) 34 (25.8%) \n No. of patients with treatment received for AE related to study drug 1 53 (39.6%) 58 (43.3%) 60 (45.5%) \n No. of patients with serious AE related to study drug 1 64 (47.8%) 52 (38.8%) 64 (48.5%) \nTotal number of patients with at least one AE related to study drug 2 86 (64.2%) 85 (63.4%) 92 (69.7%) \n No. of patients with study drug 2 withdrawn due to AE related to study drug 1 5 (3.7%) 10 (7.5%) 7 (5.3%) \n No. of patients with study drug 2 withdrawn due to AE related to study drug 2 5 (3.7%) 10 (7.5%) 7 (5.3%) \n No. of patients with dose of study drug 2 modified/interrupted due to AE related to study drug 1 24 (17.9%) 32 (23.9%) 34 (25.8%) \n No. of patients with dose of study drug 2 modified/interrupted due to AE related to study drug 2 24 (17.9%) 32 (23.9%) 34 (25.8%) \n No. of patients with treatment received for AE related to study drug 2 53 (39.6%) 58 (43.3%) 60 (45.5%) \n No. of patients with serious AE related to study drug 2 64 (47.8%) 52 (38.8%) 64 (48.5%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\nadsl <- filter(adsl, SAFFL == \"Y\")\nadae <- filter(adae, ANL01FL == \"Y\" & SAFFL == \"Y\")\n\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\nstack_adae_by_smq <- function(adae, smq) {\n adae_labels <- c(var_labels(adae), \"Standardized MedDRA Query\")\n l_df <- lapply(smq, function(ae_grp) {\n ae_scope <- gsub(\"NAM\", \"SC\", ae_grp)\n keep <- adae[[ae_grp]] != \"<Missing>\"\n df <- adae[keep, ]\n if (substr(ae_grp, 1, 3) == \"SMQ\") {\n df[[\"SMQ\"]] <- aesi_label(as.character(df[[ae_grp]]), scope = as.character(df[[ae_scope]]))\n } else {\n df[[\"SMQ\"]] <- df[[ae_grp]]\n }\n df\n })\n result <- do.call(rbind, l_df)\n var_labels(result) <- adae_labels\n result\n}\n\nadae_smq <- stack_adae_by_smq(adae, c(\"SMQ01NAM\", \"SMQ02NAM\", \"CQ01NAM\"))\n\nnot_resolved <- adae_smq %>%\n filter(!(AEOUT %in% c(\"RECOVERED/RESOLVED\", \"FATAL\", \"RECOVERED/RESOLVED WITH SEQUELAE\"))) %>%\n distinct(USUBJID) %>%\n mutate(NOT_RESOLVED = \"Y\")\n\nadae_smq <- adae_smq %>%\n left_join(not_resolved, by = c(\"USUBJID\")) %>%\n mutate(\n ALL_RESOLVED = with_label(\n is.na(NOT_RESOLVED),\n \"Total number of patients with all non-fatal AEs resolved\"\n ),\n NOT_RESOLVED = with_label(\n !is.na(NOT_RESOLVED),\n \"Total number of patients with at least one non-fatal unresolved or ongoing AE\"\n )\n )\n\nadae_smq <- adae_smq %>%\n mutate(\n AEDECOD = as.character(AEDECOD),\n WD = with_label(\n AEACN == \"DRUG WITHDRAWN\",\n \"Total number of patients with study drug withdrawn due to AE\"\n ),\n DSM = with_label(\n AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Total number of patients with dose modified/interrupted due to AE\"\n ),\n CONTRT = with_label(\n AECONTRT == \"Y\",\n \"Total number of patients with treatment received for AE\"\n ),\n SER = with_label(\n AESER == \"Y\",\n \"Total number of patients with at least one serious AE\"\n ),\n REL = with_label(\n AEREL == \"Y\",\n \"Total number of patients with at least one related AE\"\n ),\n ALL_RESOLVED_WD = with_label(\n WD == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with study drug withdrawn due to resolved AE\"\n ),\n ALL_RESOLVED_DSM = with_label(\n DSM == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with dose modified/interrupted due to resolved AE\"\n ),\n ALL_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with treatment received for resolved AE\"\n ),\n NOT_RESOLVED_WD = with_label(\n WD == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with study drug withdrawn due to unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_DSM = with_label(\n DSM == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with dose modified/interrupted due to unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with treatment received for unresolved or ongoing AE\"\n ),\n SERWD = with_label(\n AESER == \"Y\" & AEACN == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug withdrawn due to serious AE\"\n ),\n SERCONTRT = with_label(\n AECONTRT == \"Y\" & AESER == \"Y\",\n \"No. of patients with treatment received for serious AE\"\n ),\n SERDSM = with_label(\n AESER == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose modified/interrupted due to serious AE\"\n ),\n RELWD = with_label(\n AEREL == \"Y\" & AEACN == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug withdrawn due to related AE\"\n ),\n RELDSM = with_label(\n AEREL == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose modified/interrupted due to related AE\"\n ),\n RELCONTRT = with_label(\n AECONTRT == \"Y\" & AEREL == \"Y\",\n \"No. of patients with treatment received for related AE\"\n ),\n RELSER = with_label(\n AESER == \"Y\" & AEREL == \"Y\",\n \"No. of patients with serious, related AE\"\n )\n )\n\nadae_smq <- adae_smq %>%\n mutate(\n AETOXGR = forcats::fct_recode(AETOXGR,\n \"Grade 1\" = \"1\",\n \"Grade 2\" = \"2\",\n \"Grade 3\" = \"3\",\n \"Grade 4\" = \"4\",\n \"Grade 5 (fatal outcome)\" = \"5\"\n )\n )\n\nsplit_fun <- remove_split_levels(\"<Missing>\")\naesi_vars <- c(\"WD\", \"DSM\", \"CONTRT\", \"ALL_RESOLVED\", \"NOT_RESOLVED\", \"SER\", \"REL\")\n\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n split_fun = split_fun,\n split_label = \"Standardized MedDRA Query\",\n label_pos = \"topleft\"\n ) %>%\n count_patients_with_event(\n vars = \"USUBJID\",\n filters = c(\"ANL01FL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients with at least one AE\")\n ) %>%\n count_values(\n \"ANL01FL\",\n values = \"Y\",\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n var_labels = \"Total number of patients with at least one AE by worst grade\",\n .show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\"USUBJID\", flag_variables = aesi_vars, denom = \"N_col\")\n\nresult <- build_table(lyt_adae, df = adae_smq, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination\nStandardized MedDRA Query (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nC.1.1.1.3/B.2.2.3.1 AESI (BROAD) \n Total number of patients with at least one AE 58 (43.3%) 60 (44.8%) 66 (50.0%) \n Total number of AEs 97 106 122 \n Total number of patients with at least one AE by worst grade \n Grade 1 22 (16.4%) 26 (19.4%) 30 (22.7%) \n Grade 2 0 0 0 \n Grade 3 0 0 0 \n Grade 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 5 (fatal outcome) 0 0 0 \n Total number of patients with study drug withdrawn due to AE 5 (3.7%) 6 (4.5%) 9 (6.8%) \n Total number of patients with dose modified/interrupted due to AE 21 (15.7%) 21 (15.7%) 24 (18.2%) \n Total number of patients with treatment received for AE 32 (23.9%) 35 (26.1%) 44 (33.3%) \n Total number of patients with all non-fatal AEs resolved 7 (5.2%) 9 (6.7%) 8 (6.1%) \n Total number of patients with at least one non-fatal unresolved or ongoing AE 51 (38.1%) 51 (38.1%) 58 (43.9%) \n Total number of patients with at least one serious AE 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Total number of patients with at least one related AE 36 (26.9%) 34 (25.4%) 36 (27.3%) \nD.2.1.5.3/A.1.1.1.1 AESI \n Total number of patients with at least one AE 62 (46.3%) 61 (45.5%) 76 (57.6%) \n Total number of AEs 106 100 139 \n Total number of patients with at least one AE by worst grade \n Grade 1 62 (46.3%) 61 (45.5%) 76 (57.6%) \n Grade 2 0 0 0 \n Grade 3 0 0 0 \n Grade 4 0 0 0 \n Grade 5 (fatal outcome) 0 0 0 \n Total number of patients with study drug withdrawn due to AE 6 (4.5%) 8 (6.0%) 4 (3.0%) \n Total number of patients with dose modified/interrupted due to AE 23 (17.2%) 20 (14.9%) 26 (19.7%) \n Total number of patients with treatment received for AE 33 (24.6%) 37 (27.6%) 33 (25.0%) \n Total number of patients with all non-fatal AEs resolved 4 (3.0%) 5 (3.7%) 14 (10.6%) \n Total number of patients with at least one non-fatal unresolved or ongoing AE 58 (43.3%) 56 (41.8%) 62 (47.0%) \n Total number of patients with at least one serious AE 0 0 0 \n Total number of patients with at least one related AE 37 (27.6%) 46 (34.3%) 50 (37.9%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nTo illustrate, additional variables such as flags (TRUE/FALSE) for selected AEs of interest. Please consult your SAP on how to handle missing AE grades.\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\nadsl <- filter(adsl, SAFFL == \"Y\")\nadae <- filter(adae, ANL01FL == \"Y\" & SAFFL == \"Y\")\n\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\nnot_resolved <- adae %>%\n filter(!(AEOUT %in% c(\"RECOVERED/RESOLVED\", \"FATAL\", \"RECOVERED/RESOLVED WITH SEQUELAE\"))) %>%\n distinct(USUBJID) %>%\n mutate(NOT_RESOLVED = \"Y\")\n\nadae <- adae %>%\n left_join(not_resolved, by = c(\"USUBJID\")) %>%\n mutate(\n ALL_RESOLVED = with_label(\n is.na(NOT_RESOLVED),\n \"Total number of patients with all non-fatal AEs resolved\"\n ),\n NOT_RESOLVED = with_label(\n !is.na(NOT_RESOLVED),\n \"Total number of patients with at least one unresolved or ongoing non-fatal AE\"\n )\n )\n\nadae <- adae %>%\n mutate(\n AEDECOD = as.character(AEDECOD),\n WD = with_label(\n AEACN == \"DRUG WITHDRAWN\",\n \"Total number of patients with study drug withdrawn due to AE\"\n ),\n DSM = with_label(\n AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Total number of patients with dose modified/interrupted due to AE\"\n ),\n CONTRT = with_label(\n AECONTRT == \"Y\",\n \"Total number of patients with treatment received for AE\"\n ),\n SER = with_label(\n AESER == \"Y\",\n \"Total number of patients with at least one serious AE\"\n ),\n REL = with_label(\n AEREL == \"Y\",\n \"Total number of patients with at least one related AE\"\n ),\n ALL_RESOLVED_WD = with_label(\n WD == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with study drug withdrawn due to resolved AE\"\n ),\n ALL_RESOLVED_DSM = with_label(\n DSM == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with dose modified/interrupted due to resolved AE\"\n ),\n ALL_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & ALL_RESOLVED == TRUE,\n \"No. of patients with treatment received for resolved AE\"\n ),\n NOT_RESOLVED_WD = with_label(\n WD == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with study drug withdrawn due to unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_DSM = with_label(\n DSM == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with dose modified/interrupted due to unresolved or ongoing AE\"\n ),\n NOT_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & NOT_RESOLVED == TRUE,\n \"No. of patients with treatment received for unresolved or ongoing AE\"\n ),\n SERWD = with_label(\n AESER == \"Y\" & AEACN == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug withdrawn due to serious AE\"\n ),\n SERCONTRT = with_label(\n AECONTRT == \"Y\" & AESER == \"Y\",\n \"No. of patients with dose modified/interrupted due to serious AE\"\n ),\n SERDSM = with_label(\n AESER == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with treatment received for serious AE\"\n ),\n RELWD = with_label(\n AEREL == \"Y\" & AEACN == \"DRUG WITHDRAWN\",\n \"No. of patients with study drug withdrawn due to related AE\"\n ),\n RELDSM = with_label(\n AEREL == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"No. of patients with dose modified/interrupted due to related AE\"\n ),\n RELCONTRT = with_label(\n AECONTRT == \"Y\" & AEREL == \"Y\",\n \"No. of patients with treatment received for related AE\"\n ),\n RELSER = with_label(\n AESER == \"Y\" & AEREL == \"Y\",\n \"No. of patients with serious, related AE\"\n )\n )\n\nadae <- adae %>%\n mutate(\n AETOXGR = forcats::fct_recode(AETOXGR,\n \"Grade 1\" = \"1\",\n \"Grade 2\" = \"2\",\n \"Grade 3\" = \"3\",\n \"Grade 4\" = \"4\",\n \"Grade 5 (fatal outcome)\" = \"5\"\n )\n )", "crumbs": [ "Tables", - "Deaths", - "DTHT01" + "Adverse Events", + "AET01_AESI" ] }, { - "objectID": "tables/lab-results/lbt10_bl.html#output", - "href": "tables/lab-results/lbt10_bl.html#output", - "title": "LBT10_BL", - "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Selecting Sections\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodetbl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n split_rows_by(\"PARAMCAT\") %>%\n split_rows_by(\"PARAM\", split_fun = drop_split_levels, child_labels = \"hidden\") %>%\n count_occurrences(\n vars = \"AVALC_FORMAT\",\n .stats = c(\"fraction\"),\n denom = \"n\",\n drop = TRUE\n ) %>%\n build_table(anl, alt_counts_df = adsl)\n\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n ifelse(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- tbl %>% trim_rows(criteria = criteria_fun)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————\nTotal Bilirubin <= 2xULN \n ALT >3xULN at 2 Visits 25/134 (18.7%) 20/134 (14.9%) 27/132 (20.5%)\n AST >3xULN at 2 Visits 22/134 (16.4%) 14/134 (10.4%) 37/132 (28.0%)\nTotal Bilirubin > 2xULN \n ALT >3xULN at 2 Visits 26/134 (19.4%) 31/134 (23.1%) 23/132 (17.4%)\n AST >3xULN at 2 Visits 30/134 (22.4%) 27/134 (20.1%) 26/132 (19.7%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodetbl2 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n split_rows_by(\"PARAMCAT\", split_fun = remove_split_levels(\"Total Bilirubin > 2xULN\")) %>%\n split_rows_by(\"PARAM\", split_fun = drop_split_levels, child_labels = \"hidden\") %>%\n count_occurrences(\n vars = \"AVALC_FORMAT\",\n .stats = c(\"fraction\"),\n denom = \"n\",\n drop = TRUE\n ) %>%\n build_table(anl, alt_counts_df = adsl)\n\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n ifelse(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- tbl2 %>% trim_rows(criteria = criteria_fun)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————\nTotal Bilirubin <= 2xULN \n ALT >3xULN at 2 Visits 25/134 (18.7%) 20/134 (14.9%) 27/132 (20.5%)\n AST >3xULN at 2 Visits 22/134 (16.4%) 14/134 (10.4%) 37/132 (28.0%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadhy <- random.cdisc.data::cadhy\n\nadhy_liver <- adhy %>%\n filter(PARAMCD %in% c(\n \"BL2AL2CB\", \"BL2AS2CB\", \"BG2AL2CB\", \"BG2AS2CB\", \"B2A2L2CB\", \"B2A2S2CB\", \"B2A5L2CB\", \"B2A5S2CB\"\n )) %>%\n mutate(PARAMCAT = case_when(\n PARAMCD %in% c(\"BL2AL2CB\", \"BL2AS2CB\") ~ \"Total Bilirubin <= 2xULN\",\n PARAMCD %in% c(\"BG2AL2CB\", \"BG2AS2CB\") ~ \"Total Bilirubin > 2xULN\",\n PARAMCD %in% c(\"B2A2L2CB\", \"B2A2S2CB\") ~ \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 2xULN\",\n PARAMCD %in% c(\"B2A5L2CB\", \"B2A5S2CB\") ~ \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 5xULN\"\n )) %>%\n mutate(AVALC_FORMAT = case_when(\n PARAMCD %in% c(\"BL2AL2CB\", \"BG2AL2CB\", \"B2A2L2CB\", \"B2A5L2CB\") & AVALC == \"Y\" ~ \"ALT >3xULN at 2 Visits\",\n PARAMCD %in% c(\"BL2AS2CB\", \"BG2AS2CB\", \"B2A2S2CB\", \"B2A5S2CB\") & AVALC == \"Y\" ~ \"AST >3xULN at 2 Visits\",\n TRUE ~ \"Criteria not met\"\n ))\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nanl <- df_explicit_na(adhy_liver)", + "objectID": "tables/adverse-events/aet01_aesi.html#teal-app", + "href": "tables/adverse-events/aet01_aesi.html#teal-app", + "title": "AET01_AESI", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n ADAE <- filter(ADAE, ANL01FL == \"Y\" & SAFFL == \"Y\")\n\n not_resolved <- ADAE %>%\n filter(!(AEOUT %in% c(\"RECOVERED/RESOLVED\", \"FATAL\", \"RECOVERED/RESOLVED WITH SEQUELAE\"))) %>%\n distinct(USUBJID) %>%\n mutate(NOT_RESOLVED = \"Y\")\n\n ADAE <- ADAE %>%\n left_join(not_resolved, by = c(\"USUBJID\")) %>%\n mutate(\n ALL_RESOLVED = with_label(is.na(NOT_RESOLVED), \"All non-fatal AEs resolved\"),\n NOT_RESOLVED = with_label(!is.na(NOT_RESOLVED), \"At least one non-fatal unresolved or ongoing AE\")\n )\n\n ADAE <- ADAE %>%\n mutate(\n AEDECOD = as.character(AEDECOD),\n WD = with_label(AEACN == \"DRUG WITHDRAWN\", \"AE that led to study drug withdrawal\"),\n DSM = with_label(\n AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"AE that led to study drug dose modified/interrupted\"\n ),\n CONTRT = with_label(AECONTRT == \"Y\", \"AE that required treatment\"),\n SER = with_label(AESER == \"Y\", \"Serious AE\"),\n REL = with_label(AEREL == \"Y\", \"Related AE\"),\n ALL_RESOLVED_WD = with_label(\n WD == TRUE & ALL_RESOLVED == TRUE,\n \"Resolved AE that led to study drug withdrawal\"\n ),\n ALL_RESOLVED_DSM = with_label(\n DSM == TRUE & ALL_RESOLVED == TRUE,\n \"Resolved AE that led to study drug dose modified/interrupted\"\n ),\n ALL_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & ALL_RESOLVED == TRUE,\n \"Resolved AE that required treatment\"\n ),\n NOT_RESOLVED_WD = with_label(\n WD == TRUE & NOT_RESOLVED == TRUE,\n \"Unresolved AE that led to study drug withdrawal\"\n ),\n NOT_RESOLVED_DSM = with_label(\n DSM == TRUE & NOT_RESOLVED == TRUE,\n \"Unresolved AE that led to study drug dose modified/interrupted\"\n ),\n NOT_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & NOT_RESOLVED == TRUE,\n \"Unresolved AE that required treatment\"\n ),\n SERWD = with_label(\n AESER == \"Y\" & AEACN == \"DRUG WITHDRAWN\",\n \"Serious AE that led to study drug withdrawal\"\n ),\n SERCONTRT = with_label(\n AECONTRT == \"Y\" & AESER == \"Y\",\n \"Serious AE that required treatment\"\n ),\n SERDSM = with_label(\n AESER == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Serious AE that led to study drug dose modified/interrupted\"\n ),\n RELWD = with_label(\n AEREL == \"Y\" & AEACN == \"DRUG WITHDRAWN\", \"Related AE that led to study drug withdrawal\"\n ),\n RELDSM = with_label(\n AEREL == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Related AE that led to study drug dose modified/interrupted\"\n ),\n RELCONTRT = with_label(AECONTRT == \"Y\" & AEREL == \"Y\", \"Related AE that required treatment\"),\n RELSER = with_label(AESER == \"Y\" & AEREL == \"Y\", \"Serious related AE\")\n )\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\naesi_vars <- c(\n \"WD\", \"DSM\", \"CONTRT\", \"ALL_RESOLVED_WD\", \"ALL_RESOLVED_DSM\", \"ALL_RESOLVED_CONTRT\",\n \"NOT_RESOLVED_WD\", \"NOT_RESOLVED_DSM\", \"NOT_RESOLVED_CONTRT\", \"SER\", \"SERWD\", \"SERDSM\",\n \"SERCONTRT\", \"REL\", \"RELWD\", \"RELDSM\", \"RELCONTRT\", \"RELSER\"\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_summary(\n label = \"Adverse Events Summary\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(\"ADSL\", c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n flag_var_anl = choices_selected(\n choices = variable_choices(\"ADAE\", aesi_vars),\n selected = aesi_vars[1],\n keep_order = TRUE,\n fixed = FALSE\n ),\n add_total = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n ADAE <- filter(ADAE, ANL01FL == \"Y\" & SAFFL == \"Y\")\n\n not_resolved <- ADAE %>%\n filter(!(AEOUT %in% c(\"RECOVERED/RESOLVED\", \"FATAL\", \"RECOVERED/RESOLVED WITH SEQUELAE\"))) %>%\n distinct(USUBJID) %>%\n mutate(NOT_RESOLVED = \"Y\")\n\n ADAE <- ADAE %>%\n left_join(not_resolved, by = c(\"USUBJID\")) %>%\n mutate(\n ALL_RESOLVED = with_label(is.na(NOT_RESOLVED), \"All non-fatal AEs resolved\"),\n NOT_RESOLVED = with_label(!is.na(NOT_RESOLVED), \"At least one non-fatal unresolved or ongoing AE\")\n )\n\n ADAE <- ADAE %>%\n mutate(\n AEDECOD = as.character(AEDECOD),\n WD = with_label(AEACN == \"DRUG WITHDRAWN\", \"AE that led to study drug withdrawal\"),\n DSM = with_label(\n AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"AE that led to study drug dose modified/interrupted\"\n ),\n CONTRT = with_label(AECONTRT == \"Y\", \"AE that required treatment\"),\n SER = with_label(AESER == \"Y\", \"Serious AE\"),\n REL = with_label(AEREL == \"Y\", \"Related AE\"),\n ALL_RESOLVED_WD = with_label(\n WD == TRUE & ALL_RESOLVED == TRUE,\n \"Resolved AE that led to study drug withdrawal\"\n ),\n ALL_RESOLVED_DSM = with_label(\n DSM == TRUE & ALL_RESOLVED == TRUE,\n \"Resolved AE that led to study drug dose modified/interrupted\"\n ),\n ALL_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & ALL_RESOLVED == TRUE,\n \"Resolved AE that required treatment\"\n ),\n NOT_RESOLVED_WD = with_label(\n WD == TRUE & NOT_RESOLVED == TRUE,\n \"Unresolved AE that led to study drug withdrawal\"\n ),\n NOT_RESOLVED_DSM = with_label(\n DSM == TRUE & NOT_RESOLVED == TRUE,\n \"Unresolved AE that led to study drug dose modified/interrupted\"\n ),\n NOT_RESOLVED_CONTRT = with_label(\n CONTRT == TRUE & NOT_RESOLVED == TRUE,\n \"Unresolved AE that required treatment\"\n ),\n SERWD = with_label(\n AESER == \"Y\" & AEACN == \"DRUG WITHDRAWN\",\n \"Serious AE that led to study drug withdrawal\"\n ),\n SERCONTRT = with_label(\n AECONTRT == \"Y\" & AESER == \"Y\",\n \"Serious AE that required treatment\"\n ),\n SERDSM = with_label(\n AESER == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Serious AE that led to study drug dose modified/interrupted\"\n ),\n RELWD = with_label(\n AEREL == \"Y\" & AEACN == \"DRUG WITHDRAWN\", \"Related AE that led to study drug withdrawal\"\n ),\n RELDSM = with_label(\n AEREL == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Related AE that led to study drug dose modified/interrupted\"\n ),\n RELCONTRT = with_label(AECONTRT == \"Y\" & AEREL == \"Y\", \"Related AE that required treatment\"),\n RELSER = with_label(AESER == \"Y\" & AEREL == \"Y\", \"Serious related AE\")\n )\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\naesi_vars <- c(\n \"WD\", \"DSM\", \"CONTRT\", \"ALL_RESOLVED_WD\", \"ALL_RESOLVED_DSM\", \"ALL_RESOLVED_CONTRT\",\n \"NOT_RESOLVED_WD\", \"NOT_RESOLVED_DSM\", \"NOT_RESOLVED_CONTRT\", \"SER\", \"SERWD\", \"SERDSM\",\n \"SERCONTRT\", \"REL\", \"RELWD\", \"RELDSM\", \"RELCONTRT\", \"RELSER\"\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_summary(\n label = \"Adverse Events Summary\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(\"ADSL\", c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n flag_var_anl = choices_selected(\n choices = variable_choices(\"ADAE\", aesi_vars),\n selected = aesi_vars[1],\n keep_order = TRUE,\n fixed = FALSE\n ),\n add_total = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Lab Results", - "LBT10_BL" + "Adverse Events", + "AET01_AESI" ] }, { - "objectID": "tables/lab-results/lbt10_bl.html#reproducibility", - "href": "tables/lab-results/lbt10_bl.html#reproducibility", - "title": "LBT10_BL", + "objectID": "tables/adverse-events/aet01_aesi.html#reproducibility", + "href": "tables/adverse-events/aet01_aesi.html#reproducibility", + "title": "AET01_AESI", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:53:39 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:51:29 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Lab Results", - "LBT10_BL" + "Adverse Events", + "AET01_AESI" ] }, { - "objectID": "tables/lab-results/lbt11.html#output", - "href": "tables/lab-results/lbt11.html#output", - "title": "LBT11", + "objectID": "tables/adverse-events/aet01.html#output", + "href": "tables/adverse-events/aet01.html#output", + "title": "AET01", "section": "Output", - "text": "Output\n\n\nTime-To-Event Summary\nTime-To-Event Summary Selecting Sections to Display\nTime-To-Event Summary with Stratified Analysis\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARMCD\", ref_group = \"ARM A\") %>%\n count_occurrences(vars = \"event_grp\") %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = paste0(\"Time to 1st LLT Event (\", levels(anl$AVALU), \")\"),\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = \"Unstratified Analysis\",\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"coxph_unstratified\"\n )\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_safl)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————\nPatients with LLT event (%) 20 (14.9%) 9 (6.7%) 9 (6.8%) \nPatients without LLT event (%) 114 (85.1%) 125 (93.3%) 123 (93.2%) \nTime to 1st LLT Event (DAYS) \n Median NA NA 728.0 \n 95% CI NA (724.0, NA) NA \n 25% and 75%-ile 618.0, NA 724.0, NA 728.0, 728.0 \n Range 1.0 to 731.0 {1} 1.0 to 728.0 {1} 1.0 to 728.0 {2}\nUnstratified Analysis \n p-value (log-rank) 0.0295 0.1687 \n Hazard Ratio 0.43 0.58 \n 95% CI (0.19, 0.94) (0.26, 1.27) \n———————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observations: range minimum & maximum\n{2} - Censored observation: range minimum\n———————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARMCD\", ref_group = \"ARM A\") %>%\n count_occurrences(vars = \"event_grp\") %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = paste0(\"Time to 1st LLT Event (\", levels(anl$AVALU), \")\"),\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n )\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_safl)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————\nPatients with LLT event (%) 20 (14.9%) 9 (6.7%) 9 (6.8%) \nPatients without LLT event (%) 114 (85.1%) 125 (93.3%) 123 (93.2%) \nTime to 1st LLT Event (DAYS) \n Median NA NA 728.0 \n 95% CI NA (724.0, NA) NA \n 25% and 75%-ile 618.0, NA 724.0, NA 728.0, 728.0 \n Range 1.0 to 731.0 {1} 1.0 to 728.0 {1} 1.0 to 728.0 {2}\n———————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observations: range minimum & maximum\n{2} - Censored observation: range minimum\n———————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodestrata <- c(\"RACE\", \"SEX\")\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARMCD\", ref_group = \"ARM A\") %>%\n count_occurrences(vars = \"event_grp\") %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = paste0(\"Time to 1st LLT Event (\", levels(anl$AVALU), \")\"),\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = \"Unstratified Analysis\",\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"coxph_unstratified\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = paste0(\"Stratified By: \", paste(strata, collapse = \", \")),\n strata = strata,\n table_names = \"coxph_stratified\"\n )\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_safl)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————\nPatients with LLT event (%) 20 (14.9%) 9 (6.7%) 9 (6.8%) \nPatients without LLT event (%) 114 (85.1%) 125 (93.3%) 123 (93.2%) \nTime to 1st LLT Event (DAYS) \n Median NA NA 728.0 \n 95% CI NA (724.0, NA) NA \n 25% and 75%-ile 618.0, NA 724.0, NA 728.0, 728.0 \n Range 1.0 to 731.0 {1} 1.0 to 728.0 {1} 1.0 to 728.0 {2}\nUnstratified Analysis \n p-value (log-rank) 0.0295 0.1687 \n Hazard Ratio 0.43 0.58 \n 95% CI (0.19, 0.94) (0.26, 1.27) \nStratified By: RACE, SEX \n p-value (log-rank) 0.0858 0.1605 \n Hazard Ratio 0.51 0.57 \n 95% CI (0.23, 1.12) (0.26, 1.26) \n———————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observations: range minimum & maximum\n{2} - Censored observation: range minimum\n———————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadaette <- random.cdisc.data::cadaette\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadaette <- df_explicit_na(adaette)\n\nadsl_safl <- dplyr::filter(adsl, .data$SAFFL == \"Y\")\n\nanl <- adaette %>%\n dplyr::filter(\n SAFFL == \"Y\",\n PARAMCD == \"HYSTTEUL\"\n ) %>%\n dplyr::mutate(\n AVAL = .data$AVAL * dplyr::case_when( # convert to days, if possible\n .data$AVALU == \"WEEKS\" ~ 7,\n .data$AVALU == \"MONTHS\" ~ 30.4375,\n .data$AVALU == \"YEARS\" ~ 365,\n TRUE ~ 1\n ),\n AVALU = factor(dplyr::case_when(\n .data$AVALU %in% c(\"WEEKS\", \"MONTHS\", \"YEARS\") ~ factor(\"DAYS\"),\n TRUE ~ .data$AVALU\n ), levels = \"DAYS\"),\n is_event = CNSR == 0, # this will be a LLT event\n event_grp = factor(\n dplyr::case_when(\n CNSR == 0 ~ \"Patients with LLT event (%)\",\n CNSR == 1 ~ \"Patients without LLT event (%)\"\n ),\n levels = c(\n \"Patients with LLT event (%)\",\n \"Patients without LLT event (%)\"\n )\n )\n )", + "text": "Output\n\n\nStandard Table\nTable with Medical Concepts Section\nTable with Modified Rows\nTable with Rows Counting Events & Additional Sections\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeaesi_vars <- c(\"FATAL\", \"SER\", \"SERWD\", \"SERDSM\", \"RELSER\", \"WD\", \"DSM\", \"REL\", \"RELWD\", \"RELDSM\", \"SEV\")\n\n# Layout for variables from adsl dataset.\nlyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DTHFL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of deaths\")\n ) %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DCSREAS\" = \"ADVERSE EVENT\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients withdrawn from study due to an AE\"),\n table_names = \"tot_wd\"\n )\n\nresult_adsl <- build_table(lyt_adsl, df = adsl, alt_counts_df = adsl)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one AE\",\n nonunique = \"Total number of AEs\"\n ),\n .formats = list(unique = format_count_fraction_fixed_dp, nonunique = \"xx\"),\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_vars,\n denom = \"N_col\",\n var_labels = \"Total number of patients with at least one\",\n show_labels = \"visible\"\n )\n\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adae[1:2, ],\n result_adsl,\n result_adae[3:nrow(result_adae), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one AE 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of AEs 502 480 604 \nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) \nTotal number of patients withdrawn from study due to an AE 3 (2.2%) 6 (4.5%) 5 (3.8%) \nTotal number of patients with at least one \n AE with fatal outcome 5 (3.7%) 5 (3.7%) 6 (4.5%) \n Serious AE 85 (63.4%) 80 (59.7%) 87 (65.9%) \n Serious AE leading to withdrawal from treatment 6 (4.5%) 12 (9.0%) 9 (6.8%) \n Serious AE leading to dose modification/interruption 36 (26.9%) 40 (29.9%) 47 (35.6%) \n Related Serious AE 64 (47.8%) 52 (38.8%) 64 (48.5%) \n AE leading to withdrawal from treatment 20 (14.9%) 24 (17.9%) 26 (19.7%) \n AE leading to dose modification/interruption 63 (47.0%) 70 (52.2%) 77 (58.3%) \n Related AE 86 (64.2%) 85 (63.4%) 92 (69.7%) \n Related AE leading to withdrawal from treatment 10 (7.5%) 9 (6.7%) 12 (9.1%) \n Related AE leading to dose modification/interruption 44 (32.8%) 44 (32.8%) 51 (38.6%) \n Severe AE (at greatest intensity) 77 (57.5%) 70 (52.2%) 79 (59.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeaesi_vars <- c(\"FATAL\", \"SER\", \"SERWD\", \"SERDSM\", \"RELSER\", \"WD\", \"DSM\", \"REL\", \"RELWD\", \"RELDSM\", \"CTC35\")\nbasket_vars <- c(\"SMQ01\", \"SMQ02\", \"CQ01\")\n\n# Layout for variables from adsl dataset.\nlyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DTHFL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of deaths\")\n ) %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DCSREAS\" = \"ADVERSE EVENT\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients withdrawn from study due to an AE\"),\n table_names = \"tot_wd\"\n )\n\nresult_adsl <- build_table(lyt_adsl, df = adsl, alt_counts_df = adsl)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one AE\",\n nonunique = \"Total number of AEs\"\n ),\n .formats = list(unique = format_count_fraction_fixed_dp, nonunique = \"xx\"),\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_vars,\n denom = \"N_col\",\n var_labels = \"Total number of patients with at least one\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = basket_vars,\n table_names = \"table_aesi\",\n denom = \"N_col\",\n var_labels = \"Total number of patients with at least one\",\n show_labels = \"visible\"\n )\n\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adae[1:2, ],\n result_adsl,\n result_adae[3:nrow(result_adae), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one AE 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of AEs 502 480 604 \nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) \nTotal number of patients withdrawn from study due to an AE 3 (2.2%) 6 (4.5%) 5 (3.8%) \nTotal number of patients with at least one \n AE with fatal outcome 5 (3.7%) 5 (3.7%) 6 (4.5%) \n Serious AE 85 (63.4%) 80 (59.7%) 87 (65.9%) \n Serious AE leading to withdrawal from treatment 6 (4.5%) 12 (9.0%) 9 (6.8%) \n Serious AE leading to dose modification/interruption 36 (26.9%) 40 (29.9%) 47 (35.6%) \n Related Serious AE 64 (47.8%) 52 (38.8%) 64 (48.5%) \n AE leading to withdrawal from treatment 20 (14.9%) 24 (17.9%) 26 (19.7%) \n AE leading to dose modification/interruption 63 (47.0%) 70 (52.2%) 77 (58.3%) \n Related AE 86 (64.2%) 85 (63.4%) 92 (69.7%) \n Related AE leading to withdrawal from treatment 10 (7.5%) 9 (6.7%) 12 (9.1%) \n Related AE leading to dose modification/interruption 44 (32.8%) 44 (32.8%) 51 (38.6%) \n Grade 3-5 AE 90 (67.2%) 83 (61.9%) 93 (70.5%) \nTotal number of patients with at least one \n C.1.1.1.3/B.2.2.3.1 AESI (BROAD) 58 (43.3%) 60 (44.8%) 66 (50.0%) \n SMQ 02 Reference Name 0 0 0 \n D.2.1.5.3/A.1.1.1.1 AESI 62 (46.3%) 61 (45.5%) 76 (57.6%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeaesi_vars <- c(\"FATAL\", \"SER\", \"WD\", \"REL\", \"CTC35\", \"CTC45\")\n# Layout for variables from adsl dataset.\nlyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DTHFL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of deaths\")\n ) %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DCSREAS\" = \"ADVERSE EVENT\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients withdrawn from study due to an AE\"),\n table_names = \"tot_wd\"\n ) %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DCSREAS\" = \"WITHDRAWAL BY SUBJECT\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients withdrawn informed consent\"),\n table_names = \"tot_dscsreas_wd\"\n )\nresult_adsl <- build_table(lyt_adsl, df = adsl, alt_counts_df = adsl)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one AE\",\n nonunique = \"Total number of AEs\"\n ),\n .formats = list(unique = format_count_fraction_fixed_dp, nonunique = \"xx\"),\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_vars,\n denom = \"N_col\",\n var_labels = \"Total number of patients with at least one\",\n show_labels = \"visible\"\n )\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adae[1:2, ],\n result_adsl,\n result_adae[3:nrow(result_adae), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one AE 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of AEs 502 480 604 \nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) \nTotal number of patients withdrawn from study due to an AE 3 (2.2%) 6 (4.5%) 5 (3.8%) \nTotal number of patients withdrawn informed consent 1 (0.7%) 1 (0.7%) 1 (0.8%) \nTotal number of patients with at least one \n AE with fatal outcome 5 (3.7%) 5 (3.7%) 6 (4.5%) \n Serious AE 85 (63.4%) 80 (59.7%) 87 (65.9%) \n AE leading to withdrawal from treatment 20 (14.9%) 24 (17.9%) 26 (19.7%) \n Related AE 86 (64.2%) 85 (63.4%) 92 (69.7%) \n Grade 3-5 AE 90 (67.2%) 83 (61.9%) 93 (70.5%) \n Grade 4/5 AE 77 (57.5%) 70 (52.2%) 79 (59.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecount_subj_vars <- c(\"FATAL\", \"SER\", \"WD\", \"DSM\", \"REL\", \"CTC35\")\ncount_term_vars <- c(\"SER\", \"DSM\", \"REL\", \"CTC35\", \"CTC45\")\ncount_ae_vars <- c(\"SER\", \"DSM\", \"REL\", \"CTC35\", \"CTC45\")\n\n# Layout for variables from adsl dataset.\nlyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DTHFL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of deaths\")\n ) %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DCSREAS\" = \"ADVERSE EVENT\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients withdrawn from study due to an AE\"),\n table_names = \"tot_wd\"\n )\n\nresult_adsl <- build_table(lyt_adsl, df = adsl, alt_counts_df = adsl)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one AE\",\n nonunique = \"Total number of AEs\"\n ),\n .formats = list(unique = format_count_fraction_fixed_dp, nonunique = \"xx\"),\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = count_subj_vars,\n denom = \"N_col\",\n var_labels = \"Total number of patients with at least one\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"AEDECOD\",\n flag_variables = count_term_vars,\n .stats = \"count\",\n .formats = c(count = \"xx\"),\n table_names = \"table_term\",\n var_labels = \"Total number of unique preferred terms which are\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID_AESEQ\",\n flag_variables = count_ae_vars,\n .stats = \"count\",\n .formats = c(count = \"xx\"),\n table_names = \"table_ae\",\n var_labels = \"Total number of adverse events which are\",\n show_labels = \"visible\"\n )\n\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adae[1:2, ],\n result_adsl,\n result_adae[3:nrow(result_adae), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one AE 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of AEs 502 480 604 \nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) \nTotal number of patients withdrawn from study due to an AE 3 (2.2%) 6 (4.5%) 5 (3.8%) \nTotal number of patients with at least one \n AE with fatal outcome 5 (3.7%) 5 (3.7%) 6 (4.5%) \n Serious AE 85 (63.4%) 80 (59.7%) 87 (65.9%) \n AE leading to withdrawal from treatment 20 (14.9%) 24 (17.9%) 26 (19.7%) \n AE leading to dose modification/interruption 63 (47.0%) 70 (52.2%) 77 (58.3%) \n Related AE 86 (64.2%) 85 (63.4%) 92 (69.7%) \n Grade 3-5 AE 90 (67.2%) 83 (61.9%) 93 (70.5%) \nTotal number of unique preferred terms which are \n Serious AE 4 4 4 \n AE leading to dose modification/interruption 10 10 10 \n Related AE 5 5 5 \n Grade 3-5 AE 5 5 5 \n Grade 4/5 AE 3 3 3 \nTotal number of adverse events which are \n Serious AE 204 194 245 \n AE leading to dose modification/interruption 123 135 158 \n Related AE 231 231 290 \n Grade 3-5 AE 249 229 277 \n Grade 4/5 AE 143 134 168 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nTo illustrate, additional variables such as flags (TRUE/FALSE) for select AEs of interest and select AE baskets are added to the adae dataset.\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(\n adae,\n omit_columns = c(\"SMQ01NAM\", \"SMQ01SC\", \"SMQ02NAM\", \"SMQ02SC\", \"CQ01NAM\", \"STUDYID\", \"USUBJID\")\n)\n\nset.seed(99)\n\nadae <- adae %>%\n mutate(\n AEDECOD = with_label(as.character(AEDECOD), \"Dictionary-Derived Term\"),\n AESDTH = with_label(\n sample(c(\"N\", \"Y\"), size = nrow(adae), replace = TRUE, prob = c(0.99, 0.01)),\n \"Results in Death\"\n ),\n AEACN = with_label(\n sample(\n c(\"DOSE NOT CHANGED\", \"DOSE INCREASED\", \"DRUG INTERRUPTED\", \"DRUG WITHDRAWN\"),\n size = nrow(adae),\n replace = TRUE, prob = c(0.68, 0.02, 0.25, 0.05)\n ),\n \"Action Taken with Study Treatment\"\n ),\n FATAL = with_label(AESDTH == \"Y\", \"AE with fatal outcome\"),\n SEV = with_label(AESEV == \"SEVERE\", \"Severe AE (at greatest intensity)\"),\n SER = with_label(AESER == \"Y\", \"Serious AE\"),\n SERWD = with_label(AESER == \"Y\" & AEACN == \"DRUG WITHDRAWN\", \"Serious AE leading to withdrawal from treatment\"),\n SERDSM = with_label(\n AESER == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Serious AE leading to dose modification/interruption\"\n ),\n RELSER = with_label(AESER == \"Y\" & AEREL == \"Y\", \"Related Serious AE\"),\n WD = with_label(AEACN == \"DRUG WITHDRAWN\", \"AE leading to withdrawal from treatment\"),\n DSM = with_label(\n AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"), \"AE leading to dose modification/interruption\"\n ),\n REL = with_label(AEREL == \"Y\", \"Related AE\"),\n RELWD = with_label(AEREL == \"Y\" & AEACN == \"DRUG WITHDRAWN\", \"Related AE leading to withdrawal from treatment\"),\n RELDSM = with_label(\n AEREL == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Related AE leading to dose modification/interruption\"\n ),\n CTC35 = with_label(AETOXGR %in% c(\"3\", \"4\", \"5\"), \"Grade 3-5 AE\"),\n CTC45 = with_label(AETOXGR %in% c(\"4\", \"5\"), \"Grade 4/5 AE\"),\n SMQ01 = with_label(SMQ01NAM != \"\", aesi_label(adae$SMQ01NAM, adae$SMQ01SC)),\n SMQ02 = with_label(SMQ02NAM != \"\", aesi_label(adae$SMQ02NAM, adae$SMQ02SC)),\n CQ01 = with_label(CQ01NAM != \"\", aesi_label(adae$CQ01NAM)),\n USUBJID_AESEQ = paste(USUBJID, AESEQ, sep = \"@@\") # Create unique ID per AE in dataset.\n ) %>%\n filter(ANL01FL == \"Y\")", "crumbs": [ "Tables", - "Lab Results", - "LBT11" + "Adverse Events", + "AET01" ] }, { - "objectID": "tables/lab-results/lbt11.html#teal-app", - "href": "tables/lab-results/lbt11.html#teal-app", - "title": "LBT11", + "objectID": "tables/adverse-events/aet01.html#teal-app", + "href": "tables/adverse-events/aet01.html#teal-app", + "title": "AET01", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n ADSL <- filter(ADSL, .data$SAFFL == \"Y\")\n ADAETTE <- filter(ADAETTE, .data$SAFFL == \"Y\")\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To LLT Event Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n variable_choices(data[[\"ADSL\"]], c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(data[[\"ADAETTE\"]], \"PARAMCD\", \"PARAM\"),\n \"HYSTTEUL\"\n ),\n strata_var = choices_selected(\n variable_choices(data[[\"ADSL\"]], c(\"RACE\", \"SEX\")),\n c(\"RACE\", \"SEX\")\n ),\n time_points = choices_selected(0, NULL),\n event_desc_var = choices_selected(\"EVNTDESC\", \"EVNTDESC\", fixed = TRUE)\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n ADSL <- filter(ADSL, .data$SAFFL == \"Y\")\n ADAETTE <- filter(ADAETTE, .data$SAFFL == \"Y\")\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To LLT Event Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n variable_choices(data[[\"ADSL\"]], c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(data[[\"ADAETTE\"]], \"PARAMCD\", \"PARAM\"),\n \"HYSTTEUL\"\n ),\n strata_var = choices_selected(\n variable_choices(data[[\"ADSL\"]], c(\"RACE\", \"SEX\")),\n c(\"RACE\", \"SEX\")\n ),\n time_points = choices_selected(0, NULL),\n event_desc_var = choices_selected(\"EVNTDESC\", \"EVNTDESC\", fixed = TRUE)\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n add_event_flags <- function(dat) {\n dat %>%\n mutate(\n TMPFL_SER = AESER == \"Y\",\n TMPFL_REL = AEREL == \"Y\",\n TMPFL_GR5 = AETOXGR == \"5\",\n TMP_SMQ01 = !is.na(SMQ01NAM),\n TMP_SMQ02 = !is.na(SMQ02NAM),\n TMP_CQ01 = !is.na(CQ01NAM)\n ) %>%\n col_relabel(\n TMPFL_SER = \"Serious AE\",\n TMPFL_REL = \"Related AE\",\n TMPFL_GR5 = \"Grade 5 AE\",\n TMP_SMQ01 = aesi_label(dat[[\"SMQ01NAM\"]], dat[[\"SMQ01SC\"]]),\n TMP_SMQ02 = aesi_label(dat[[\"SMQ02NAM\"]], dat[[\"SMQ02SC\"]]),\n TMP_CQ01 = aesi_label(dat[[\"CQ01NAM\"]])\n )\n }\n\n # Generating user-defined event flags.\n ADAE <- ADAE %>% add_event_flags()\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\nae_anl_vars <- names(ADAE)[startsWith(names(ADAE), \"TMPFL_\")]\naesi_vars <- names(ADAE)[startsWith(names(ADAE), \"TMP_\")]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_summary(\n label = \"Adverse Events Summary\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(\"ADSL\", c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n flag_var_anl = choices_selected(\n choices = variable_choices(\"ADAE\", ae_anl_vars),\n selected = ae_anl_vars[1],\n keep_order = TRUE,\n fixed = FALSE\n ),\n flag_var_aesi = choices_selected(\n choices = variable_choices(\"ADAE\", aesi_vars),\n selected = aesi_vars[1],\n keep_order = TRUE,\n fixed = FALSE\n ),\n add_total = TRUE\n )\n )\n)\n\nWarning in rlang::hash(list(data = data, modules = modules)):\n'package:teal.modules.clinical' may not be available when loading\n\nCodeshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n add_event_flags <- function(dat) {\n dat %>%\n mutate(\n TMPFL_SER = AESER == \"Y\",\n TMPFL_REL = AEREL == \"Y\",\n TMPFL_GR5 = AETOXGR == \"5\",\n TMP_SMQ01 = !is.na(SMQ01NAM),\n TMP_SMQ02 = !is.na(SMQ02NAM),\n TMP_CQ01 = !is.na(CQ01NAM)\n ) %>%\n col_relabel(\n TMPFL_SER = \"Serious AE\",\n TMPFL_REL = \"Related AE\",\n TMPFL_GR5 = \"Grade 5 AE\",\n TMP_SMQ01 = aesi_label(dat[[\"SMQ01NAM\"]], dat[[\"SMQ01SC\"]]),\n TMP_SMQ02 = aesi_label(dat[[\"SMQ02NAM\"]], dat[[\"SMQ02SC\"]]),\n TMP_CQ01 = aesi_label(dat[[\"CQ01NAM\"]])\n )\n }\n\n # Generating user-defined event flags.\n ADAE <- ADAE %>% add_event_flags()\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\nae_anl_vars <- names(ADAE)[startsWith(names(ADAE), \"TMPFL_\")]\naesi_vars <- names(ADAE)[startsWith(names(ADAE), \"TMP_\")]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_summary(\n label = \"Adverse Events Summary\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(\"ADSL\", c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n flag_var_anl = choices_selected(\n choices = variable_choices(\"ADAE\", ae_anl_vars),\n selected = ae_anl_vars[1],\n keep_order = TRUE,\n fixed = FALSE\n ),\n flag_var_aesi = choices_selected(\n choices = variable_choices(\"ADAE\", aesi_vars),\n selected = aesi_vars[1],\n keep_order = TRUE,\n fixed = FALSE\n ),\n add_total = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Lab Results", - "LBT11" + "Adverse Events", + "AET01" ] }, { - "objectID": "tables/lab-results/lbt11.html#reproducibility", - "href": "tables/lab-results/lbt11.html#reproducibility", - "title": "LBT11", + "objectID": "tables/adverse-events/aet01.html#reproducibility", + "href": "tables/adverse-events/aet01.html#reproducibility", + "title": "AET01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:53:20 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:50:47 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Lab Results", - "LBT11" + "Adverse Events", + "AET01" ] }, { - "objectID": "tables/lab-results/lbt13.html#output", - "href": "tables/lab-results/lbt13.html#output", - "title": "LBT13", + "objectID": "tables/adverse-events/aet09_smq.html#output", + "href": "tables/adverse-events/aet09_smq.html#output", + "title": "AET09_SMQ", "section": "Output", - "text": "Output\n\n\nStandard Table (Low)\nStandard Table (High)\nTable Without Patients with Missing Baseline (Low)\nTable with Missing Baseline Considered as Grade 0 (High)\nTable with Fill-In of Grades (High)\nData Setup\n\n\n\nNote that the worst laboratory flag (below WGRLOVFL) must be selected appropriately to match the direction of abnormality (here Low). New grouping variables ATOXGR_GP and BTOXGR_GP are created to display the correct output.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRLOVFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- adsl_f %>%\n h_adsl_adlb_merge_using_worst_flag(\n adlb_f,\n worst_flag = c(\"WGRLOVFL\" = \"Y\"),\n by_visit = TRUE,\n no_fillin_visits = c(\"SCREENING\", \"BASELINE\", \"UNSCHEDULED\")\n )\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = case_when(\n ATOXGR %in% c(0, 1, 2, 3, 4) ~ \"Not Low\",\n ATOXGR == -1 ~ \"1\",\n ATOXGR == -2 ~ \"2\",\n ATOXGR == -3 ~ \"3\",\n ATOXGR == -4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n )\n ) %>%\n mutate(\n BTOXGR_GP = case_when(\n BTOXGR %in% c(0, 1, 2, 3, 4) ~ \"Not Low\",\n BTOXGR == -1 ~ \"1\",\n BTOXGR == -2 ~ \"2\",\n BTOXGR == -3 ~ \"3\",\n BTOXGR == -4 ~ \"4\",\n BTOXGR == \"<Missing>\" ~ \"Missing\"\n )\n )\n\nadlb_out <- adlb_out %>% mutate(\n AVISIT = forcats::fct_reorder(AVISIT, AVISITN),\n ATOXGR_GP = factor(ATOXGR_GP, levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\", \"Missing\")),\n BTOXGR_GP = factor(BTOXGR_GP, levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n)\n\nadlb_out <- adlb_out %>%\n var_relabel(\n PARAMCD = \"Parameter Code\",\n AVISIT = \"Visit\",\n ATOXGR_GP = \"NCI CTCAE Grade at Visit\",\n BTOXGR_GP = \"Baseline NCI CTCAE Grade\"\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAMCD\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$PARAMCD)\n ) %>%\n split_rows_by(\n \"AVISIT\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$AVISIT)\n ) %>%\n split_rows_by(\n \"ATOXGR_GP\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$ATOXGR_GP)\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\")) %>%\n count_occurrences(\"BTOXGR_GP\", denom = \"n\", drop = TRUE) %>%\n append_varlabels(adlb_out, \"BTOXGR_GP\", indent = 3L) %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f)\n\nresult\n\nParameter Code \n Visit \n NCI CTCAE Grade at Visit A: Drug X B: Placebo C: Combination\n Baseline NCI CTCAE Grade (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————\nCRP \n WEEK 1 DAY 8 \n Not Low (n) 116 110 101 \n Not Low 103 (88.8%) 91 (82.7%) 88 (87.1%) \n 1 3 (2.6%) 5 (4.5%) 6 (5.9%) \n 2 4 (3.4%) 9 (8.2%) 2 (2.0%) \n 3 3 (2.6%) 4 (3.6%) 4 (4.0%) \n 4 3 (2.6%) 1 (0.9%) 1 (1.0%) \n 1 (n) 4 7 5 \n Not Low 3 (75.0%) 7 (100%) 4 (80.0%) \n 3 1 (25.0%) 0 1 (20.0%) \n 2 (n) 5 6 11 \n Not Low 5 (100%) 5 (83.3%) 8 (72.7%) \n 1 0 0 1 (9.1%) \n 3 0 0 2 (18.2%) \n 4 0 1 (16.7%) 0 \n 3 (n) 6 8 5 \n Not Low 6 (100%) 7 (87.5%) 5 (100%) \n 3 0 1 (12.5%) 0 \n 4 (n) 3 3 10 \n Not Low 2 (66.7%) 3 (100%) 7 (70.0%) \n 1 0 0 2 (20.0%) \n 2 1 (33.3%) 0 0 \n 4 0 0 1 (10.0%) \n WEEK 2 DAY 15 \n Not Low (n) 106 111 116 \n Not Low 93 (87.7%) 93 (83.8%) 100 (86.2%) \n 1 3 (2.8%) 4 (3.6%) 8 (6.9%) \n 2 5 (4.7%) 7 (6.3%) 2 (1.7%) \n 3 2 (1.9%) 5 (4.5%) 6 (5.2%) \n 4 3 (2.8%) 2 (1.8%) 0 \n 1 (n) 15 9 2 \n Not Low 13 (86.7%) 8 (88.9%) 1 (50.0%) \n 2 0 1 (11.1%) 0 \n 3 2 (13.3%) 0 0 \n 4 0 0 1 (50.0%) \n 2 (n) 3 3 6 \n Not Low 3 (100%) 3 (100%) 4 (66.7%) \n 1 0 0 1 (16.7%) \n 3 0 0 1 (16.7%) \n 3 (n) 7 7 6 \n Not Low 7 (100%) 6 (85.7%) 5 (83.3%) \n 2 0 1 (14.3%) 0 \n 4 0 0 1 (16.7%) \n 4 (n) 3 4 2 \n Not Low 3 (100%) 3 (75.0%) 2 (100%) \n 1 0 1 (25.0%) 0 \n WEEK 3 DAY 22 \n Not Low (n) 119 110 114 \n Not Low 104 (87.4%) 92 (83.6%) 94 (82.5%) \n 1 3 (2.5%) 4 (3.6%) 9 (7.9%) \n 2 5 (4.2%) 7 (6.4%) 2 (1.8%) \n 3 4 (3.4%) 5 (4.5%) 7 (6.1%) \n 4 3 (2.5%) 2 (1.8%) 2 (1.8%) \n 1 (n) 9 9 6 \n Not Low 9 (100%) 7 (77.8%) 6 (100%) \n 2 0 2 (22.2%) 0 \n 2 (n) 1 7 3 \n Not Low 1 (100%) 6 (85.7%) 3 (100%) \n 1 0 1 (14.3%) 0 \n 3 (n) 4 5 4 \n Not Low 4 (100%) 5 (100%) 4 (100%) \n 4 (n) 1 3 5 \n Not Low 1 (100%) 3 (100%) 5 (100%) \n WEEK 4 DAY 29 \n Not Low (n) 101 119 111 \n Not Low 89 (88.1%) 100 (84.0%) 96 (86.5%) \n 1 3 (3.0%) 4 (3.4%) 6 (5.4%) \n 2 4 (4.0%) 8 (6.7%) 1 (0.9%) \n 3 2 (2.0%) 5 (4.2%) 6 (5.4%) \n 4 3 (3.0%) 2 (1.7%) 2 (1.8%) \n 1 (n) 10 5 6 \n Not Low 9 (90.0%) 5 (100%) 5 (83.3%) \n 1 0 0 1 (16.7%) \n 2 1 (10.0%) 0 0 \n 2 (n) 13 4 6 \n Not Low 13 (100%) 3 (75.0%) 5 (83.3%) \n 1 0 0 1 (16.7%) \n 2 0 1 (25.0%) 0 \n 3 (n) 8 2 6 \n Not Low 6 (75.0%) 1 (50.0%) 5 (83.3%) \n 1 0 1 (50.0%) 0 \n 2 0 0 1 (16.7%) \n 3 2 (25.0%) 0 0 \n 4 (n) 2 4 3 \n Not Low 2 (100%) 4 (100%) 1 (33.3%) \n 1 0 0 1 (33.3%) \n 3 0 0 1 (33.3%) \n WEEK 5 DAY 36 \n Not Low (n) 115 112 111 \n Not Low 102 (88.7%) 94 (83.9%) 96 (86.5%) \n 1 2 (1.7%) 4 (3.6%) 6 (5.4%) \n 2 5 (4.3%) 7 (6.2%) 2 (1.8%) \n 3 3 (2.6%) 5 (4.5%) 5 (4.5%) \n 4 3 (2.6%) 2 (1.8%) 2 (1.8%) \n 1 (n) 5 7 6 \n Not Low 5 (100%) 4 (57.1%) 5 (83.3%) \n 1 0 1 (14.3%) 1 (16.7%) \n 2 0 2 (28.6%) 0 \n 2 (n) 5 11 6 \n Not Low 5 (100%) 11 (100%) 6 (100%) \n 3 (n) 8 2 7 \n Not Low 6 (75.0%) 2 (100%) 4 (57.1%) \n 1 1 (12.5%) 0 1 (14.3%) \n 3 1 (12.5%) 0 2 (28.6%) \n 4 (n) 1 2 2 \n Not Low 1 (100%) 2 (100%) 1 (50.0%) \n 1 0 0 1 (50.0%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote that the worst laboratory flag (below WGRHIVFL) must be selected appropriately to match the direction of abnormality (here High). New grouping variables ATOXGR_GP and BTOXGR_GP are created to display the correct output.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRHIVFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- adsl_f %>%\n h_adsl_adlb_merge_using_worst_flag(\n adlb_f,\n worst_flag = c(\"WGRHIVFL\" = \"Y\"),\n by_visit = TRUE,\n no_fillin_visits = c(\"SCREENING\", \"BASELINE\", \"UNSCHEDULED\")\n )\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = case_when(\n ATOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n ATOXGR == 1 ~ \"1\",\n ATOXGR == 2 ~ \"2\",\n ATOXGR == 3 ~ \"3\",\n ATOXGR == 4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n )\n ) %>%\n mutate(\n BTOXGR_GP = case_when(\n BTOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n BTOXGR == 1 ~ \"1\",\n BTOXGR == 2 ~ \"2\",\n BTOXGR == 3 ~ \"3\",\n BTOXGR == 4 ~ \"4\",\n BTOXGR == \"<Missing>\" ~ \"Missing\"\n )\n )\n\nadlb_out <- adlb_out %>% mutate(\n AVISIT = forcats::fct_reorder(AVISIT, AVISITN),\n ATOXGR_GP = factor(ATOXGR_GP, levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\")),\n BTOXGR_GP = factor(BTOXGR_GP, levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n)\n\nadlb_out <- adlb_out %>%\n var_relabel(\n PARAMCD = \"Parameter Code\",\n AVISIT = \"Visit\",\n ATOXGR_GP = \"NCI CTCAE Grade at Visit\",\n BTOXGR_GP = \"Baseline NCI CTCAE Grade\"\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAMCD\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$PARAMCD)\n ) %>%\n split_rows_by(\n \"AVISIT\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$AVISIT)\n ) %>%\n split_rows_by(\n \"ATOXGR_GP\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$ATOXGR_GP)\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\")) %>%\n count_occurrences(\"BTOXGR_GP\", denom = \"n\", drop = TRUE) %>%\n append_varlabels(adlb_out, \"BTOXGR_GP\", indent = 3L) %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f)\n\nresult\n\nParameter Code \n Visit \n NCI CTCAE Grade at Visit A: Drug X B: Placebo C: Combination\n Baseline NCI CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————\nCRP \n WEEK 1 DAY 8 \n Not High (n) 111 110 112 \n Not High 93 (83.8%) 92 (83.6%) 98 (87.5%) \n 1 8 (7.2%) 7 (6.4%) 5 (4.5%) \n 2 2 (1.8%) 6 (5.5%) 7 (6.2%) \n 3 6 (5.4%) 3 (2.7%) 2 (1.8%) \n 4 2 (1.8%) 2 (1.8%) 0 \n 1 (n) 8 11 6 \n Not High 7 (87.5%) 11 (100%) 5 (83.3%) \n 3 1 (12.5%) 0 1 (16.7%) \n 2 (n) 6 4 5 \n Not High 6 (100%) 1 (25.0%) 4 (80.0%) \n 1 0 3 (75.0%) 1 (20.0%) \n 3 (n) 8 3 4 \n Not High 7 (87.5%) 3 (100%) 4 (100%) \n 4 1 (12.5%) 0 0 \n 4 (n) 1 6 5 \n Not High 1 (100%) 5 (83.3%) 4 (80.0%) \n 1 0 0 1 (20.0%) \n 3 0 1 (16.7%) 0 \n WEEK 2 DAY 15 \n Not High (n) 117 113 113 \n Not High 99 (84.6%) 95 (84.1%) 100 (88.5%) \n 1 7 (6.0%) 6 (5.3%) 4 (3.5%) \n 2 2 (1.7%) 6 (5.3%) 6 (5.3%) \n 3 6 (5.1%) 4 (3.5%) 3 (2.7%) \n 4 3 (2.6%) 2 (1.8%) 0 \n 1 (n) 6 9 7 \n Not High 5 (83.3%) 8 (88.9%) 6 (85.7%) \n 1 0 1 (11.1%) 0 \n 2 0 0 1 (14.3%) \n 3 1 (16.7%) 0 0 \n 2 (n) 4 4 6 \n Not High 4 (100%) 4 (100%) 3 (50.0%) \n 1 0 0 3 (50.0%) \n 3 (n) 5 3 5 \n Not High 4 (80.0%) 2 (66.7%) 5 (100%) \n 1 1 (20.0%) 1 (33.3%) 0 \n 4 (n) 2 5 1 \n Not High 2 (100%) 3 (60.0%) 1 (100%) \n 1 0 2 (40.0%) 0 \n WEEK 3 DAY 22 \n Not High (n) 110 111 114 \n Not High 92 (83.6%) 94 (84.7%) 98 (86.0%) \n 1 8 (7.3%) 9 (8.1%) 7 (6.1%) \n 2 2 (1.8%) 5 (4.5%) 6 (5.3%) \n 3 5 (4.5%) 2 (1.8%) 3 (2.6%) \n 4 3 (2.7%) 1 (0.9%) 0 \n 1 (n) 7 8 7 \n Not High 7 (100%) 5 (62.5%) 6 (85.7%) \n 1 0 1 (12.5%) 0 \n 2 0 1 (12.5%) 1 (14.3%) \n 3 0 1 (12.5%) 0 \n 2 (n) 9 7 5 \n Not High 9 (100%) 6 (85.7%) 5 (100%) \n 3 0 1 (14.3%) 0 \n 3 (n) 6 3 4 \n Not High 5 (83.3%) 2 (66.7%) 4 (100%) \n 3 1 (16.7%) 0 0 \n 4 0 1 (33.3%) 0 \n 4 (n) 2 5 2 \n Not High 1 (50.0%) 5 (100%) 2 (100%) \n 3 1 (50.0%) 0 0 \n WEEK 4 DAY 29 \n Not High (n) 115 117 113 \n Not High 97 (84.3%) 101 (86.3%) 99 (87.6%) \n 1 8 (7.0%) 7 (6.0%) 6 (5.3%) \n 2 2 (1.7%) 6 (5.1%) 5 (4.4%) \n 3 7 (6.1%) 3 (2.6%) 3 (2.7%) \n 4 1 (0.9%) 0 0 \n 1 (n) 4 3 11 \n Not High 4 (100%) 2 (66.7%) 10 (90.9%) \n 2 0 0 1 (9.1%) \n 4 0 1 (33.3%) 0 \n 2 (n) 6 4 2 \n Not High 6 (100%) 3 (75.0%) 2 (100%) \n 1 0 1 (25.0%) 0 \n 3 (n) 6 7 4 \n Not High 5 (83.3%) 4 (57.1%) 4 (100%) \n 1 0 1 (14.3%) 0 \n 3 0 1 (14.3%) 0 \n 4 1 (16.7%) 1 (14.3%) 0 \n 4 (n) 3 3 2 \n Not High 2 (66.7%) 2 (66.7%) 0 \n 1 0 1 (33.3%) 1 (50.0%) \n 2 0 0 1 (50.0%) \n 4 1 (33.3%) 0 0 \n WEEK 5 DAY 36 \n Not High (n) 111 111 119 \n Not High 95 (85.6%) 95 (85.6%) 104 (87.4%) \n 1 6 (5.4%) 8 (7.2%) 6 (5.0%) \n 2 1 (0.9%) 5 (4.5%) 6 (5.0%) \n 3 6 (5.4%) 2 (1.8%) 3 (2.5%) \n 4 3 (2.7%) 1 (0.9%) 0 \n 1 (n) 8 11 5 \n Not High 7 (87.5%) 9 (81.8%) 4 (80.0%) \n 1 0 1 (9.1%) 0 \n 2 0 0 1 (20.0%) \n 3 1 (12.5%) 1 (9.1%) 0 \n 2 (n) 7 6 3 \n Not High 5 (71.4%) 3 (50.0%) 2 (66.7%) \n 1 1 (14.3%) 1 (16.7%) 1 (33.3%) \n 2 1 (14.3%) 1 (16.7%) 0 \n 4 0 1 (16.7%) 0 \n 3 (n) 3 3 4 \n Not High 3 (100%) 3 (100%) 4 (100%) \n 4 (n) 5 3 1 \n Not High 4 (80.0%) 2 (66.7%) 1 (100%) \n 1 1 (20.0%) 0 0 \n 3 0 1 (33.3%) 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote that missing baseline values are filtered out in the pre-processing step.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRLOVFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- adsl_f %>%\n h_adsl_adlb_merge_using_worst_flag(\n adlb_f,\n worst_flag = c(\"WGRLOVFL\" = \"Y\"),\n by_visit = TRUE,\n no_fillin_visits = c(\"SCREENING\", \"BASELINE\", \"UNSCHEDULED\")\n )\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n filter(BTOXGR != \"<Missing>\") %>% # filter out missing baseline grade\n mutate(\n ATOXGR_GP = case_when(\n ATOXGR %in% c(0, 1, 2, 3, 4) ~ \"Not Low\",\n ATOXGR == -1 ~ \"1\",\n ATOXGR == -2 ~ \"2\",\n ATOXGR == -3 ~ \"3\",\n ATOXGR == -4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n )\n ) %>%\n mutate(\n BTOXGR_GP = case_when(\n BTOXGR %in% c(0, 1, 2, 3, 4) ~ \"Not Low\",\n BTOXGR == -1 ~ \"1\",\n BTOXGR == -2 ~ \"2\",\n BTOXGR == -3 ~ \"3\",\n BTOXGR == -4 ~ \"4\"\n )\n )\n\nadlb_out <- adlb_out %>% mutate(\n AVISIT = forcats::fct_reorder(AVISIT, AVISITN),\n ATOXGR_GP = factor(ATOXGR_GP, levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\", \"Missing\")),\n BTOXGR_GP = factor(BTOXGR_GP, levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\"))\n)\n\nadlb_out <- adlb_out %>%\n var_relabel(\n PARAMCD = \"Parameter Code\",\n AVISIT = \"Visit\",\n ATOXGR_GP = \"NCI CTCAE Grade at Visit\",\n BTOXGR_GP = \"Baseline NCI CTCAE Grade\"\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAMCD\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$PARAMCD)\n ) %>%\n split_rows_by(\n \"AVISIT\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$AVISIT)\n ) %>%\n split_rows_by(\n \"ATOXGR_GP\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$ATOXGR_GP)\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\")) %>%\n count_occurrences(\"BTOXGR_GP\", denom = \"n\", drop = TRUE) %>%\n append_varlabels(adlb_out, \"BTOXGR_GP\", indent = 3L) %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f)\n\nresult\n\nParameter Code \n Visit \n NCI CTCAE Grade at Visit A: Drug X B: Placebo C: Combination\n Baseline NCI CTCAE Grade (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————\nCRP \n WEEK 1 DAY 8 \n Not Low (n) 116 110 101 \n Not Low 103 (88.8%) 91 (82.7%) 88 (87.1%) \n 1 3 (2.6%) 5 (4.5%) 6 (5.9%) \n 2 4 (3.4%) 9 (8.2%) 2 (2.0%) \n 3 3 (2.6%) 4 (3.6%) 4 (4.0%) \n 4 3 (2.6%) 1 (0.9%) 1 (1.0%) \n 1 (n) 4 7 5 \n Not Low 3 (75.0%) 7 (100%) 4 (80.0%) \n 3 1 (25.0%) 0 1 (20.0%) \n 2 (n) 5 6 11 \n Not Low 5 (100%) 5 (83.3%) 8 (72.7%) \n 1 0 0 1 (9.1%) \n 3 0 0 2 (18.2%) \n 4 0 1 (16.7%) 0 \n 3 (n) 6 8 5 \n Not Low 6 (100%) 7 (87.5%) 5 (100%) \n 3 0 1 (12.5%) 0 \n 4 (n) 3 3 10 \n Not Low 2 (66.7%) 3 (100%) 7 (70.0%) \n 1 0 0 2 (20.0%) \n 2 1 (33.3%) 0 0 \n 4 0 0 1 (10.0%) \n WEEK 2 DAY 15 \n Not Low (n) 106 111 116 \n Not Low 93 (87.7%) 93 (83.8%) 100 (86.2%) \n 1 3 (2.8%) 4 (3.6%) 8 (6.9%) \n 2 5 (4.7%) 7 (6.3%) 2 (1.7%) \n 3 2 (1.9%) 5 (4.5%) 6 (5.2%) \n 4 3 (2.8%) 2 (1.8%) 0 \n 1 (n) 15 9 2 \n Not Low 13 (86.7%) 8 (88.9%) 1 (50.0%) \n 2 0 1 (11.1%) 0 \n 3 2 (13.3%) 0 0 \n 4 0 0 1 (50.0%) \n 2 (n) 3 3 6 \n Not Low 3 (100%) 3 (100%) 4 (66.7%) \n 1 0 0 1 (16.7%) \n 3 0 0 1 (16.7%) \n 3 (n) 7 7 6 \n Not Low 7 (100%) 6 (85.7%) 5 (83.3%) \n 2 0 1 (14.3%) 0 \n 4 0 0 1 (16.7%) \n 4 (n) 3 4 2 \n Not Low 3 (100%) 3 (75.0%) 2 (100%) \n 1 0 1 (25.0%) 0 \n WEEK 3 DAY 22 \n Not Low (n) 119 110 114 \n Not Low 104 (87.4%) 92 (83.6%) 94 (82.5%) \n 1 3 (2.5%) 4 (3.6%) 9 (7.9%) \n 2 5 (4.2%) 7 (6.4%) 2 (1.8%) \n 3 4 (3.4%) 5 (4.5%) 7 (6.1%) \n 4 3 (2.5%) 2 (1.8%) 2 (1.8%) \n 1 (n) 9 9 6 \n Not Low 9 (100%) 7 (77.8%) 6 (100%) \n 2 0 2 (22.2%) 0 \n 2 (n) 1 7 3 \n Not Low 1 (100%) 6 (85.7%) 3 (100%) \n 1 0 1 (14.3%) 0 \n 3 (n) 4 5 4 \n Not Low 4 (100%) 5 (100%) 4 (100%) \n 4 (n) 1 3 5 \n Not Low 1 (100%) 3 (100%) 5 (100%) \n WEEK 4 DAY 29 \n Not Low (n) 101 119 111 \n Not Low 89 (88.1%) 100 (84.0%) 96 (86.5%) \n 1 3 (3.0%) 4 (3.4%) 6 (5.4%) \n 2 4 (4.0%) 8 (6.7%) 1 (0.9%) \n 3 2 (2.0%) 5 (4.2%) 6 (5.4%) \n 4 3 (3.0%) 2 (1.7%) 2 (1.8%) \n 1 (n) 10 5 6 \n Not Low 9 (90.0%) 5 (100%) 5 (83.3%) \n 1 0 0 1 (16.7%) \n 2 1 (10.0%) 0 0 \n 2 (n) 13 4 6 \n Not Low 13 (100%) 3 (75.0%) 5 (83.3%) \n 1 0 0 1 (16.7%) \n 2 0 1 (25.0%) 0 \n 3 (n) 8 2 6 \n Not Low 6 (75.0%) 1 (50.0%) 5 (83.3%) \n 1 0 1 (50.0%) 0 \n 2 0 0 1 (16.7%) \n 3 2 (25.0%) 0 0 \n 4 (n) 2 4 3 \n Not Low 2 (100%) 4 (100%) 1 (33.3%) \n 1 0 0 1 (33.3%) \n 3 0 0 1 (33.3%) \n WEEK 5 DAY 36 \n Not Low (n) 115 112 111 \n Not Low 102 (88.7%) 94 (83.9%) 96 (86.5%) \n 1 2 (1.7%) 4 (3.6%) 6 (5.4%) \n 2 5 (4.3%) 7 (6.2%) 2 (1.8%) \n 3 3 (2.6%) 5 (4.5%) 5 (4.5%) \n 4 3 (2.6%) 2 (1.8%) 2 (1.8%) \n 1 (n) 5 7 6 \n Not Low 5 (100%) 4 (57.1%) 5 (83.3%) \n 1 0 1 (14.3%) 1 (16.7%) \n 2 0 2 (28.6%) 0 \n 2 (n) 5 11 6 \n Not Low 5 (100%) 11 (100%) 6 (100%) \n 3 (n) 8 2 7 \n Not Low 6 (75.0%) 2 (100%) 4 (57.1%) \n 1 1 (12.5%) 0 1 (14.3%) \n 3 1 (12.5%) 0 2 (28.6%) \n 4 (n) 1 2 2 \n Not Low 1 (100%) 2 (100%) 1 (50.0%) \n 1 0 0 1 (50.0%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote that when BTOXGR is missing, the grouping variable BTOXGR_GP is now \"Not High\" instead of \"Missing\" compared to Standard Table (High).\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRHIVFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- adsl_f %>%\n h_adsl_adlb_merge_using_worst_flag(\n adlb_f,\n worst_flag = c(\"WGRHIVFL\" = \"Y\"),\n by_visit = TRUE,\n no_fillin_visits = c(\"SCREENING\", \"BASELINE\", \"UNSCHEDULED\")\n )\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = case_when(\n ATOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n ATOXGR == 1 ~ \"1\",\n ATOXGR == 2 ~ \"2\",\n ATOXGR == 3 ~ \"3\",\n ATOXGR == 4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n )\n ) %>%\n mutate(\n BTOXGR_GP = case_when(\n BTOXGR %in% c(0, -1, -2, -3, -4, \"<Missing>\") ~ \"Not High\", # Missing BTOXGR now grouped to \"Not High\"\n BTOXGR == 1 ~ \"1\",\n BTOXGR == 2 ~ \"2\",\n BTOXGR == 3 ~ \"3\",\n BTOXGR == 4 ~ \"4\"\n )\n )\n\nadlb_out <- adlb_out %>% mutate(\n AVISIT = forcats::fct_reorder(AVISIT, AVISITN),\n ATOXGR_GP = factor(ATOXGR_GP, levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\")),\n BTOXGR_GP = factor(BTOXGR_GP, levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n)\n\nadlb_out <- adlb_out %>%\n var_relabel(\n PARAMCD = \"Parameter Code\",\n AVISIT = \"Visit\",\n ATOXGR_GP = \"NCI CTCAE Grade at Visit\",\n BTOXGR_GP = \"Baseline NCI CTCAE Grade\"\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAMCD\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$PARAMCD)\n ) %>%\n split_rows_by(\n \"AVISIT\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$AVISIT)\n ) %>%\n split_rows_by(\n \"ATOXGR_GP\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$ATOXGR_GP)\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\")) %>%\n count_occurrences(\"BTOXGR_GP\", denom = \"n\", drop = TRUE) %>%\n append_varlabels(adlb_out, \"BTOXGR_GP\", indent = 3L) %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f)\n\nresult\n\nParameter Code \n Visit \n NCI CTCAE Grade at Visit A: Drug X B: Placebo C: Combination\n Baseline NCI CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————\nCRP \n WEEK 1 DAY 8 \n Not High (n) 111 110 112 \n Not High 93 (83.8%) 92 (83.6%) 98 (87.5%) \n 1 8 (7.2%) 7 (6.4%) 5 (4.5%) \n 2 2 (1.8%) 6 (5.5%) 7 (6.2%) \n 3 6 (5.4%) 3 (2.7%) 2 (1.8%) \n 4 2 (1.8%) 2 (1.8%) 0 \n 1 (n) 8 11 6 \n Not High 7 (87.5%) 11 (100%) 5 (83.3%) \n 3 1 (12.5%) 0 1 (16.7%) \n 2 (n) 6 4 5 \n Not High 6 (100%) 1 (25.0%) 4 (80.0%) \n 1 0 3 (75.0%) 1 (20.0%) \n 3 (n) 8 3 4 \n Not High 7 (87.5%) 3 (100%) 4 (100%) \n 4 1 (12.5%) 0 0 \n 4 (n) 1 6 5 \n Not High 1 (100%) 5 (83.3%) 4 (80.0%) \n 1 0 0 1 (20.0%) \n 3 0 1 (16.7%) 0 \n WEEK 2 DAY 15 \n Not High (n) 117 113 113 \n Not High 99 (84.6%) 95 (84.1%) 100 (88.5%) \n 1 7 (6.0%) 6 (5.3%) 4 (3.5%) \n 2 2 (1.7%) 6 (5.3%) 6 (5.3%) \n 3 6 (5.1%) 4 (3.5%) 3 (2.7%) \n 4 3 (2.6%) 2 (1.8%) 0 \n 1 (n) 6 9 7 \n Not High 5 (83.3%) 8 (88.9%) 6 (85.7%) \n 1 0 1 (11.1%) 0 \n 2 0 0 1 (14.3%) \n 3 1 (16.7%) 0 0 \n 2 (n) 4 4 6 \n Not High 4 (100%) 4 (100%) 3 (50.0%) \n 1 0 0 3 (50.0%) \n 3 (n) 5 3 5 \n Not High 4 (80.0%) 2 (66.7%) 5 (100%) \n 1 1 (20.0%) 1 (33.3%) 0 \n 4 (n) 2 5 1 \n Not High 2 (100%) 3 (60.0%) 1 (100%) \n 1 0 2 (40.0%) 0 \n WEEK 3 DAY 22 \n Not High (n) 110 111 114 \n Not High 92 (83.6%) 94 (84.7%) 98 (86.0%) \n 1 8 (7.3%) 9 (8.1%) 7 (6.1%) \n 2 2 (1.8%) 5 (4.5%) 6 (5.3%) \n 3 5 (4.5%) 2 (1.8%) 3 (2.6%) \n 4 3 (2.7%) 1 (0.9%) 0 \n 1 (n) 7 8 7 \n Not High 7 (100%) 5 (62.5%) 6 (85.7%) \n 1 0 1 (12.5%) 0 \n 2 0 1 (12.5%) 1 (14.3%) \n 3 0 1 (12.5%) 0 \n 2 (n) 9 7 5 \n Not High 9 (100%) 6 (85.7%) 5 (100%) \n 3 0 1 (14.3%) 0 \n 3 (n) 6 3 4 \n Not High 5 (83.3%) 2 (66.7%) 4 (100%) \n 3 1 (16.7%) 0 0 \n 4 0 1 (33.3%) 0 \n 4 (n) 2 5 2 \n Not High 1 (50.0%) 5 (100%) 2 (100%) \n 3 1 (50.0%) 0 0 \n WEEK 4 DAY 29 \n Not High (n) 115 117 113 \n Not High 97 (84.3%) 101 (86.3%) 99 (87.6%) \n 1 8 (7.0%) 7 (6.0%) 6 (5.3%) \n 2 2 (1.7%) 6 (5.1%) 5 (4.4%) \n 3 7 (6.1%) 3 (2.6%) 3 (2.7%) \n 4 1 (0.9%) 0 0 \n 1 (n) 4 3 11 \n Not High 4 (100%) 2 (66.7%) 10 (90.9%) \n 2 0 0 1 (9.1%) \n 4 0 1 (33.3%) 0 \n 2 (n) 6 4 2 \n Not High 6 (100%) 3 (75.0%) 2 (100%) \n 1 0 1 (25.0%) 0 \n 3 (n) 6 7 4 \n Not High 5 (83.3%) 4 (57.1%) 4 (100%) \n 1 0 1 (14.3%) 0 \n 3 0 1 (14.3%) 0 \n 4 1 (16.7%) 1 (14.3%) 0 \n 4 (n) 3 3 2 \n Not High 2 (66.7%) 2 (66.7%) 0 \n 1 0 1 (33.3%) 1 (50.0%) \n 2 0 0 1 (50.0%) \n 4 1 (33.3%) 0 0 \n WEEK 5 DAY 36 \n Not High (n) 111 111 119 \n Not High 95 (85.6%) 95 (85.6%) 104 (87.4%) \n 1 6 (5.4%) 8 (7.2%) 6 (5.0%) \n 2 1 (0.9%) 5 (4.5%) 6 (5.0%) \n 3 6 (5.4%) 2 (1.8%) 3 (2.5%) \n 4 3 (2.7%) 1 (0.9%) 0 \n 1 (n) 8 11 5 \n Not High 7 (87.5%) 9 (81.8%) 4 (80.0%) \n 1 0 1 (9.1%) 0 \n 2 0 0 1 (20.0%) \n 3 1 (12.5%) 1 (9.1%) 0 \n 2 (n) 7 6 3 \n Not High 5 (71.4%) 3 (50.0%) 2 (66.7%) \n 1 1 (14.3%) 1 (16.7%) 1 (33.3%) \n 2 1 (14.3%) 1 (16.7%) 0 \n 4 0 1 (16.7%) 0 \n 3 (n) 3 3 4 \n Not High 3 (100%) 3 (100%) 4 (100%) \n 4 (n) 5 3 1 \n Not High 4 (80.0%) 2 (66.7%) 1 (100%) \n 1 1 (20.0%) 0 0 \n 3 0 1 (33.3%) 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPre-processing is the same as for Standard Table (High), but in order to keep all levels, the drop argument in count_occurrences is set to FALSE.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRHIVFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- adsl_f %>%\n h_adsl_adlb_merge_using_worst_flag(\n adlb_f,\n worst_flag = c(\"WGRHIVFL\" = \"Y\"),\n by_visit = TRUE,\n no_fillin_visits = c(\"SCREENING\", \"BASELINE\", \"UNSCHEDULED\")\n )\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = case_when(\n ATOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n ATOXGR == 1 ~ \"1\",\n ATOXGR == 2 ~ \"2\",\n ATOXGR == 3 ~ \"3\",\n ATOXGR == 4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n )\n ) %>%\n mutate(\n BTOXGR_GP = case_when(\n BTOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n BTOXGR == 1 ~ \"1\",\n BTOXGR == 2 ~ \"2\",\n BTOXGR == 3 ~ \"3\",\n BTOXGR == 4 ~ \"4\",\n BTOXGR == \"<Missing>\" ~ \"Missing\"\n )\n )\n\nadlb_out <- adlb_out %>% mutate(\n AVISIT = forcats::fct_reorder(AVISIT, AVISITN),\n ATOXGR_GP = factor(ATOXGR_GP, levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\")),\n BTOXGR_GP = factor(BTOXGR_GP, levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n)\n\nadlb_out <- adlb_out %>%\n var_relabel(\n PARAMCD = \"Parameter Code\",\n AVISIT = \"Visit\",\n ATOXGR_GP = \"NCI CTCAE Grade at Visit\",\n BTOXGR_GP = \"Baseline NCI CTCAE Grade\"\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAMCD\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$PARAMCD)\n ) %>%\n split_rows_by(\n \"AVISIT\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$AVISIT)\n ) %>%\n split_rows_by(\n \"ATOXGR_GP\",\n split_fun = keep_split_levels(c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\")),\n label_pos = \"topleft\",\n split_label = obj_label(adlb_out$ATOXGR_GP)\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\")) %>%\n count_occurrences(\"BTOXGR_GP\", denom = \"n\", drop = FALSE) %>%\n append_varlabels(adlb_out, \"BTOXGR_GP\", indent = 3L) %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f)\n\nresult\n\nParameter Code \n Visit \n NCI CTCAE Grade at Visit A: Drug X B: Placebo C: Combination\n Baseline NCI CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————\nCRP \n WEEK 1 DAY 8 \n Not High (n) 111 110 112 \n Not High 93 (83.8%) 92 (83.6%) 98 (87.5%) \n 1 8 (7.2%) 7 (6.4%) 5 (4.5%) \n 2 2 (1.8%) 6 (5.5%) 7 (6.2%) \n 3 6 (5.4%) 3 (2.7%) 2 (1.8%) \n 4 2 (1.8%) 2 (1.8%) 0 \n Missing 0 0 0 \n 1 (n) 8 11 6 \n Not High 7 (87.5%) 11 (100%) 5 (83.3%) \n 1 0 0 0 \n 2 0 0 0 \n 3 1 (12.5%) 0 1 (16.7%) \n 4 0 0 0 \n Missing 0 0 0 \n 2 (n) 6 4 5 \n Not High 6 (100%) 1 (25.0%) 4 (80.0%) \n 1 0 3 (75.0%) 1 (20.0%) \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 3 (n) 8 3 4 \n Not High 7 (87.5%) 3 (100%) 4 (100%) \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 1 (12.5%) 0 0 \n Missing 0 0 0 \n 4 (n) 1 6 5 \n Not High 1 (100%) 5 (83.3%) 4 (80.0%) \n 1 0 0 1 (20.0%) \n 2 0 0 0 \n 3 0 1 (16.7%) 0 \n 4 0 0 0 \n Missing 0 0 0 \n Missing (n) 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n WEEK 2 DAY 15 \n Not High (n) 117 113 113 \n Not High 99 (84.6%) 95 (84.1%) 100 (88.5%) \n 1 7 (6.0%) 6 (5.3%) 4 (3.5%) \n 2 2 (1.7%) 6 (5.3%) 6 (5.3%) \n 3 6 (5.1%) 4 (3.5%) 3 (2.7%) \n 4 3 (2.6%) 2 (1.8%) 0 \n Missing 0 0 0 \n 1 (n) 6 9 7 \n Not High 5 (83.3%) 8 (88.9%) 6 (85.7%) \n 1 0 1 (11.1%) 0 \n 2 0 0 1 (14.3%) \n 3 1 (16.7%) 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 2 (n) 4 4 6 \n Not High 4 (100%) 4 (100%) 3 (50.0%) \n 1 0 0 3 (50.0%) \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 3 (n) 5 3 5 \n Not High 4 (80.0%) 2 (66.7%) 5 (100%) \n 1 1 (20.0%) 1 (33.3%) 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 4 (n) 2 5 1 \n Not High 2 (100%) 3 (60.0%) 1 (100%) \n 1 0 2 (40.0%) 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n Missing (n) 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n WEEK 3 DAY 22 \n Not High (n) 110 111 114 \n Not High 92 (83.6%) 94 (84.7%) 98 (86.0%) \n 1 8 (7.3%) 9 (8.1%) 7 (6.1%) \n 2 2 (1.8%) 5 (4.5%) 6 (5.3%) \n 3 5 (4.5%) 2 (1.8%) 3 (2.6%) \n 4 3 (2.7%) 1 (0.9%) 0 \n Missing 0 0 0 \n 1 (n) 7 8 7 \n Not High 7 (100%) 5 (62.5%) 6 (85.7%) \n 1 0 1 (12.5%) 0 \n 2 0 1 (12.5%) 1 (14.3%) \n 3 0 1 (12.5%) 0 \n 4 0 0 0 \n Missing 0 0 0 \n 2 (n) 9 7 5 \n Not High 9 (100%) 6 (85.7%) 5 (100%) \n 1 0 0 0 \n 2 0 0 0 \n 3 0 1 (14.3%) 0 \n 4 0 0 0 \n Missing 0 0 0 \n 3 (n) 6 3 4 \n Not High 5 (83.3%) 2 (66.7%) 4 (100%) \n 1 0 0 0 \n 2 0 0 0 \n 3 1 (16.7%) 0 0 \n 4 0 1 (33.3%) 0 \n Missing 0 0 0 \n 4 (n) 2 5 2 \n Not High 1 (50.0%) 5 (100%) 2 (100%) \n 1 0 0 0 \n 2 0 0 0 \n 3 1 (50.0%) 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n Missing (n) 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n WEEK 4 DAY 29 \n Not High (n) 115 117 113 \n Not High 97 (84.3%) 101 (86.3%) 99 (87.6%) \n 1 8 (7.0%) 7 (6.0%) 6 (5.3%) \n 2 2 (1.7%) 6 (5.1%) 5 (4.4%) \n 3 7 (6.1%) 3 (2.6%) 3 (2.7%) \n 4 1 (0.9%) 0 0 \n Missing 0 0 0 \n 1 (n) 4 3 11 \n Not High 4 (100%) 2 (66.7%) 10 (90.9%) \n 1 0 0 0 \n 2 0 0 1 (9.1%) \n 3 0 0 0 \n 4 0 1 (33.3%) 0 \n Missing 0 0 0 \n 2 (n) 6 4 2 \n Not High 6 (100%) 3 (75.0%) 2 (100%) \n 1 0 1 (25.0%) 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 3 (n) 6 7 4 \n Not High 5 (83.3%) 4 (57.1%) 4 (100%) \n 1 0 1 (14.3%) 0 \n 2 0 0 0 \n 3 0 1 (14.3%) 0 \n 4 1 (16.7%) 1 (14.3%) 0 \n Missing 0 0 0 \n 4 (n) 3 3 2 \n Not High 2 (66.7%) 2 (66.7%) 0 \n 1 0 1 (33.3%) 1 (50.0%) \n 2 0 0 1 (50.0%) \n 3 0 0 0 \n 4 1 (33.3%) 0 0 \n Missing 0 0 0 \n Missing (n) 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n WEEK 5 DAY 36 \n Not High (n) 111 111 119 \n Not High 95 (85.6%) 95 (85.6%) 104 (87.4%) \n 1 6 (5.4%) 8 (7.2%) 6 (5.0%) \n 2 1 (0.9%) 5 (4.5%) 6 (5.0%) \n 3 6 (5.4%) 2 (1.8%) 3 (2.5%) \n 4 3 (2.7%) 1 (0.9%) 0 \n Missing 0 0 0 \n 1 (n) 8 11 5 \n Not High 7 (87.5%) 9 (81.8%) 4 (80.0%) \n 1 0 1 (9.1%) 0 \n 2 0 0 1 (20.0%) \n 3 1 (12.5%) 1 (9.1%) 0 \n 4 0 0 0 \n Missing 0 0 0 \n 2 (n) 7 6 3 \n Not High 5 (71.4%) 3 (50.0%) 2 (66.7%) \n 1 1 (14.3%) 1 (16.7%) 1 (33.3%) \n 2 1 (14.3%) 1 (16.7%) 0 \n 3 0 0 0 \n 4 0 1 (16.7%) 0 \n Missing 0 0 0 \n 3 (n) 3 3 4 \n Not High 3 (100%) 3 (100%) 4 (100%) \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 4 (n) 5 3 1 \n Not High 4 (80.0%) 2 (66.7%) 1 (100%) \n 1 1 (20.0%) 0 0 \n 2 0 0 0 \n 3 0 1 (33.3%) 0 \n 4 0 0 0 \n Missing 0 0 0 \n Missing (n) 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPlease note that for each variant, the adlb dataset needs to be filtered on correct flags like WGRLOVFL, WGRHIVFL, et al., otherwise the layout function will not return the correct counts. There is an option to create a record for a lab test where no record is found at that visit. If you specified add_derived_type = \"PHANTOM\" & dtype_phantom_cond, you don’t have to use the h_adsl_adlb_merge_using_worst_flag function to preprocess your adlb dataset. Otherwise please follow the pre-processing steps below before applying the layout functions.\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\nadsl <- df_explicit_na(adsl)\nadlb <- df_explicit_na(adlb)\n\n# Please note that in real clinical data, population flag like SAFFL, and parameter category like PARCAT2 needs to be\n# selected properly.\nadsl_f <- adsl %>% filter(SAFFL == \"Y\")\nadlb <- adlb %>% filter(PARAMCD == \"CRP\" & SAFFL == \"Y\")", + "text": "Output\n\n\nStandard Table\nTable with Customized Queries\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecriteria_fun <- function(tr) !is(tr, \"ContentRow\") && all_zero_or_na(tr)\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\"\n )\n ) %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = trim_levels_in_group(\"AEDECOD\", drop_outlevs = FALSE),\n label_pos = \"topleft\",\n split_label = \"Standardized MedDRA Query\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = -1L,\n drop = FALSE\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt,\n df = adae_smq_1,\n alt_counts_df = adsl\n) %>%\n sort_at_path(path = c(\"SMQ\"), scorefun = cont_n_allcols) %>%\n sort_at_path(path = c(\"SMQ\", \"*\", \"AEDECOD\"), scorefun = score_occurrences, na.pos = \"last\") %>%\n trim_rows(criteria = criteria_fun)\n\nresult\n\nStandardized MedDRA Query ARM A ARM B ARM C \n Dictionary-Derived Term (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 43 (32.1%) 46 (34.3%) 43 (32.6%)\nC.1.1.1.3/B.2.2.3.1 AESI(BROAD) \n Total number of patients with at least one adverse event 43 (32.1%) 46 (34.3%) 43 (32.6%)\n Total number of events 55 63 64 \n dcd C.1.1.1.3 43 (32.1%) 46 (34.3%) 43 (32.6%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecriteria_fun <- function(tr) {\n !is(tr, \"ContentRow\") && all_zero_or_na(tr) && !grepl(\"Total number of\", obj_label(tr))\n}\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\"\n )\n ) %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = trim_levels_in_group(\"AEDECOD\", drop_outlevs = FALSE),\n label_pos = \"topleft\",\n split_label = \"Standardized MedDRA Query\"\n ) %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n ),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n drop = FALSE\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nscore_ae_pts <- function(tt) {\n count_vals <- cell_values(tree_children(tt)[[\"USUBJID\"]])[[1]]\n sum(matrix(unlist(count_vals), nrow = length(count_vals), byrow = TRUE)[, 1])\n}\n\nresult <- build_table(\n lyt,\n df = adae_smq_all,\n alt_counts_df = adsl\n) %>%\n sort_at_path(path = c(\"SMQ\"), scorefun = score_ae_pts) %>%\n sort_at_path(path = c(\"SMQ\", \"*\", \"AEDECOD\"), scorefun = score_occurrences, na.pos = \"last\") %>%\n trim_rows(criteria = criteria_fun)\n\nresult\n\nStandardized MedDRA Query ARM A ARM B ARM C \n Dictionary-Derived Term (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 69 (51.5%) 78 (58.2%) 77 (58.3%)\nD.2.1.5.3/A.1.1.1.1 AESI \n Total number of patients with at least one adverse event 47 (35.1%) 58 (43.3%) 57 (43.2%)\n Total number of events 62 72 74 \n dcd D.2.1.5.3 47 (35.1%) 58 (43.3%) 57 (43.2%)\nC.1.1.1.3/B.2.2.3.1 AESI(BROAD) \n Total number of patients with at least one adverse event 43 (32.1%) 46 (34.3%) 43 (32.6%)\n Total number of events 55 63 64 \n dcd C.1.1.1.3 43 (32.1%) 46 (34.3%) 43 (32.6%)\nnon observed SMQ02NAM level(BROAD) \n Total number of patients with at least one adverse event 0 0 0 \n Total number of events 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(stringr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing\n# levels. For details, refer to Teal and Study Data article.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\n# AEs are filtered for relatedness to study drug.\nadae_rel <- adae %>% filter(AEREL == \"Y\")\n\n# Simulate a random AAG dataset.\naag <- data.frame(\n NAMVAR = c(\"SMQ01NAM\", \"SMQ01NAM\", \"SMQ02NAM\", \"CQ01NAM\", \"CQ01NAM\"),\n SRCVAR = rep(\"AEDECOD\", 5),\n GRPTYPE = c(\"SMQ\", \"SMQ\", \"SMQ\", \"CUSTOM\", \"CUSTOM\"),\n REFID = c(1, 1, 2, 3, 3),\n REFNAME = c(rep(\"C.1.1.1.3/B.2.2.3.1 AESI\", 2), \"non observed SMQ02NAM level\", rep(\"D.2.1.5.3/A.1.1.1.1 AESI\", 2)),\n SCOPE = c(\"BROAD\", \"BROAD\", \"BROAD\", \"\", \"\"),\n REFTERM = c(\"C.1.1.1.3\", \"B.2.2.3.1\", \"Z.9.9.9.9\", \"D.2.1.5.3\", \"A.1.1.1.1\"),\n stringsAsFactors = FALSE\n)\n\n# Create summary AAG dataset (used for labelling).\n# Note it's important to incorporate SCOPE into the basket names for SMQs so as to\n# match the flags present in ADAE.\naag_summary <- aag %>%\n select(NAMVAR, REFNAME, SCOPE) %>%\n unique() %>%\n mutate(\n REFNAME_SCOPE = ifelse(SCOPE == \"\", REFNAME, paste0(REFNAME, \"(\", SCOPE, \")\"))\n ) %>%\n rename(basket = NAMVAR, basket_name = REFNAME_SCOPE) %>%\n select(basket, basket_name)\n\n# Make a summary of the full ADAE based on AAG by using h_stack_by_baskets helper function\nadae_smq_all <- h_stack_by_baskets(\n df = adae_rel,\n aag_summary = aag_summary,\n keys = c(\"STUDYID\", \"USUBJID\", \"ACTARMCD\", \"AEDECOD\")\n)\n\n# Post-process adae_smq_all to keep only certain baskets of interest for variant 1\n# Not need to drop baskets for variant 2 as all baskets will be considered.\nbaskets_to_drop_variant <- aag_summary$basket_name[!aag_summary$basket %in% c(\"SMQ01NAM\")]\n\n# Adjust the analysis dataset based on basket subset for variant 1.\nadae_smq_1 <- adae_smq_all %>%\n filter(!adae_smq_all$SMQ %in% baskets_to_drop_variant) %>%\n mutate(\n SMQ = tern::fct_discard(SMQ, discard = baskets_to_drop_variant)\n )", "crumbs": [ "Tables", - "Lab Results", - "LBT13" + "Adverse Events", + "AET09_SMQ" ] }, { - "objectID": "tables/lab-results/lbt13.html#teal-app", - "href": "tables/lab-results/lbt13.html#teal-app", - "title": "LBT13", + "objectID": "tables/adverse-events/aet09_smq.html#teal-app", + "href": "tables/adverse-events/aet09_smq.html#teal-app", + "title": "AET09_SMQ", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_shift_by_grade(\n label = \"Grade Laboratory Abnormality Table\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"ALT\"\n ),\n worst_flag_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"WGRLOVFL\", \"WGRLOFL\", \"WGRHIVFL\", \"WGRHIFL\")),\n selected = c(\"WGRLOVFL\")\n ),\n worst_flag_indicator = choices_selected(\n value_choices(ADLB, \"WGRLOVFL\"),\n selected = \"Y\", fixed = TRUE\n ),\n anl_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"ATOXGR\")),\n selected = c(\"ATOXGR\"),\n fixed = TRUE\n ),\n base_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"BTOXGR\")),\n selected = c(\"BTOXGR\"),\n fixed = TRUE\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_shift_by_grade(\n label = \"Grade Laboratory Abnormality Table\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"ALT\"\n ),\n worst_flag_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"WGRLOVFL\", \"WGRLOFL\", \"WGRHIVFL\", \"WGRHIFL\")),\n selected = c(\"WGRLOVFL\")\n ),\n worst_flag_indicator = choices_selected(\n value_choices(ADLB, \"WGRLOVFL\"),\n selected = \"Y\", fixed = TRUE\n ),\n anl_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"ATOXGR\")),\n selected = c(\"ATOXGR\"),\n fixed = TRUE\n ),\n base_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"BTOXGR\")),\n selected = c(\"BTOXGR\"),\n fixed = TRUE\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\nNote that filtering AEs for relatedness to study drug is not a necessary data pre-processing step for the module. It can be achieved using the teal module filter panel. The example here pre-sets the filters using AEREL = \"Y\" in adae.\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\n\nnames_baskets <- grep(\"^(SMQ|CQ).*NAM$\", names(ADAE), value = TRUE)\nnames_scopes <- grep(\"^SMQ.*SC$\", names(ADAE), value = TRUE)\n\ncs_baskets <- choices_selected(\n choices = variable_choices(ADAE, subset = names_baskets),\n selected = names_baskets\n)\ncs_scopes <- choices_selected(\n choices = variable_choices(ADAE, subset = names_scopes),\n selected = names_scopes,\n fixed = TRUE\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_smq(\n label = \"Adverse Events by SMQ Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"SEX\")),\n selected = \"ARM\"\n ),\n add_total = FALSE,\n baskets = cs_baskets,\n scopes = cs_scopes,\n llt = choices_selected(\n choices = variable_choices(ADAE, subset = c(\"AEDECOD\")),\n selected = \"AEDECOD\"\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADAE\", \"AEREL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\n\nnames_baskets <- grep(\"^(SMQ|CQ).*NAM$\", names(ADAE), value = TRUE)\nnames_scopes <- grep(\"^SMQ.*SC$\", names(ADAE), value = TRUE)\n\ncs_baskets <- choices_selected(\n choices = variable_choices(ADAE, subset = names_baskets),\n selected = names_baskets\n)\ncs_scopes <- choices_selected(\n choices = variable_choices(ADAE, subset = names_scopes),\n selected = names_scopes,\n fixed = TRUE\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_smq(\n label = \"Adverse Events by SMQ Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"SEX\")),\n selected = \"ARM\"\n ),\n add_total = FALSE,\n baskets = cs_baskets,\n scopes = cs_scopes,\n llt = choices_selected(\n choices = variable_choices(ADAE, subset = c(\"AEDECOD\")),\n selected = \"AEDECOD\"\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADAE\", \"AEREL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Lab Results", - "LBT13" + "Adverse Events", + "AET09_SMQ" ] }, { - "objectID": "tables/lab-results/lbt13.html#reproducibility", - "href": "tables/lab-results/lbt13.html#reproducibility", - "title": "LBT13", + "objectID": "tables/adverse-events/aet09_smq.html#reproducibility", + "href": "tables/adverse-events/aet09_smq.html#reproducibility", + "title": "AET09_SMQ", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:52:51 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:49:59 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr * 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Lab Results", - "LBT13" + "Adverse Events", + "AET09_SMQ" ] }, { - "objectID": "tables/lab-results/lbt08.html#output", - "href": "tables/lab-results/lbt08.html#output", - "title": "LBT08", + "objectID": "tables/adverse-events/aet07.html#output", + "href": "tables/adverse-events/aet07.html#output", + "title": "AET07", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\nNote: The direction of the shift table for each lab test is based on metadata and NCI CTCAE specifications. In addition, the worst laboratory flags must be selected appropriately to match the direction of abnormality. For example, if any lab requires a shift table for both directions, then both worst_flag_low and worst_flag_high must be specified in h_adlb_worsen. If all labs requires a shift table for only one direction, then the matching worst lab flag variable must be selected in h_adlb_worsen.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARMCD\") %>%\n split_rows_by(\"PARAMCD\", label_pos = \"topleft\", split_label = obj_label(df$PARAMCD)) %>%\n split_rows_by(\"GRADDR\", label_pos = \"topleft\", split_label = obj_label(df$GRADDR)) %>%\n count_abnormal_lab_worsen_by_baseline(\n var = \"ATOXGR\",\n variables = list(\n id = \"USUBJID\",\n baseline_var = \"BTOXGR\",\n direction_var = \"GRADDR\"\n )\n ) %>%\n append_topleft(\" Highest NCI CTCAE Grade\") %>%\n build_table(df = df, alt_counts_df = adsl)\n\nresult\n\nParameter Code \n Direction of Abnormality ARM A ARM B ARM C \n Highest NCI CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————\nALT \n Low \n 1 11/113 (9.7%) 9/117 (7.7%) 15/123 (12.2%)\n 2 15/119 (12.6%) 23/123 (18.7%) 16/127 (12.6%)\n 3 15/127 (11.8%) 22/128 (17.2%) 14/128 (10.9%)\n 4 17/130 (13.1%) 10/131 (7.6%) 18/130 (13.8%)\n Any 58/130 (44.6%) 64/131 (48.9%) 63/130 (48.5%)\nCRP \n High \n 1 18/114 (15.8%) 18/112 (16.1%) 19/115 (16.5%)\n 2 20/122 (16.4%) 13/122 (10.7%) 14/122 (11.5%)\n 3 23/124 (18.5%) 14/128 (10.9%) 20/129 (15.5%)\n 4 12/131 (9.2%) 20/132 (15.2%) 11/132 (8.3%) \n Any 73/131 (55.7%) 65/132 (49.2%) 64/132 (48.5%)\n Low \n 1 20/119 (16.8%) 18/113 (15.9%) 11/112 (9.8%) \n 2 24/122 (19.7%) 21/118 (17.8%) 17/121 (14%) \n 3 26/127 (20.5%) 20/127 (15.7%) 22/123 (17.9%)\n 4 10/131 (7.6%) 16/132 (12.1%) 21/130 (16.2%)\n Any 80/131 (61.1%) 75/132 (56.8%) 71/130 (54.6%)\nIGA \n High \n 1 18/119 (15.1%) 11/116 (9.5%) 15/113 (13.3%)\n 2 15/124 (12.1%) 23/120 (19.2%) 19/115 (16.5%)\n 3 21/128 (16.4%) 21/124 (16.9%) 20/120 (16.7%)\n 4 12/132 (9.1%) 12/129 (9.3%) 9/131 (6.9%) \n Any 66/132 (50%) 67/129 (51.9%) 63/131 (48.1%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\nadlb <- adlb %>%\n mutate(\n GRADDR = case_when(\n PARAMCD == \"ALT\" ~ \"L\",\n PARAMCD == \"CRP\" ~ \"B\",\n PARAMCD == \"IGA\" ~ \"H\"\n )\n ) %>%\n filter(SAFFL == \"Y\" & ONTRTFL == \"Y\" & GRADDR != \"\")\n\nadsl <- df_explicit_na(adsl)\nadlb <- df_explicit_na(adlb)\n\ndf <- h_adlb_worsen(\n adlb,\n worst_flag_low = c(\"WGRLOFL\" = \"Y\"),\n worst_flag_high = c(\"WGRHIFL\" = \"Y\"),\n direction_var = \"GRADDR\"\n)\n\nattributes(df$GRADDR) <- list(\"label\" = \"Direction of Abnormality\")", + "text": "Output\n\n\nStandard Table\nTable with Fill-In of Treatment Groups without Deaths\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\", split_fun = drop_split_levels) %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = \"unique\",\n .labels = c(unique = \"Total number of deaths\"),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(\n vars = \"SOC_PT\"\n ) %>%\n append_topleft(\"MedDRA SOC and Preferred Term\")\n\nresult <- build_table(\n lyt = lyt,\n df = adae_f,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n sort_at_path(\n path = \"SOC_PT\",\n scorefun = score_occurrences,\n decreasing = TRUE\n )\n\nresult\n\n B: Placebo C: Combination\nMedDRA SOC and Preferred Term (N=134) (N=132) \n———————————————————————————————————————————————————————————\nTotal number of deaths 70 (52.2%) 75 (56.8%) \ncl D.1 / dcd D.1.1.1.1 42 (31.3%) 51 (38.6%) \ncl B.1 / dcd B.1.1.1.1 49 (36.6%) 43 (32.6%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = \"unique\",\n .labels = c(unique = \"Total number of deaths\"),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(\n vars = \"SOC_PT\"\n ) %>%\n append_topleft(\"MedDRA SOC and Preferred Term\")\n\nresult <- build_table(\n lyt = lyt,\n df = adae_f,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n sort_at_path(\n path = \"SOC_PT\",\n scorefun = score_occurrences,\n decreasing = TRUE\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination\nMedDRA SOC and Preferred Term (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————\nTotal number of deaths 0 70 (52.2%) 75 (56.8%) \ncl D.1 / dcd D.1.1.1.1 0 42 (31.3%) 51 (38.6%) \ncl B.1 / dcd B.1.1.1.1 0 49 (36.6%) 43 (32.6%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nFor illustrative purposes, we will pre-process AESDTH in ADAE so there are no deaths in arm A and concatenate AEBODSYS and AEDECOD as per GDSR output standards for AET07.\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\nadae_f <- adae %>%\n mutate(\n AESDTH = as.character(AESDTH), # characterizing AESDTH for next step\n AESDTH = case_when(\n ARM == \"A: Drug X\" ~ NA_character_, # For demonstration purpose only,\n TRUE ~ AESDTH\n ), # make \"A: Drug X\" as the arm without AE leading to death\n AESDTH = as.factor(AESDTH),\n SOC_PT = factor(paste(AEBODSYS, \"/\", AEDECOD))\n ) %>%\n filter(AESDTH == \"Y\") %>%\n mutate(ARM = droplevels(ARM))", "crumbs": [ "Tables", - "Lab Results", - "LBT08" + "Adverse Events", + "AET07" ] }, { - "objectID": "tables/lab-results/lbt08.html#reproducibility", - "href": "tables/lab-results/lbt08.html#reproducibility", - "title": "LBT08", + "objectID": "tables/adverse-events/aet07.html#teal-app", + "href": "tables/adverse-events/aet07.html#teal-app", + "title": "AET07", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n\n ADSL <- ADSL %>%\n mutate(\n DTHFL = case_when(\n !is.na(DTHDT) ~ \"Y\",\n TRUE ~ \"\"\n )\n ) %>%\n col_relabel(\n DTHFL = \"Subject Death Flag\"\n )\n\n ADAE <- ADAE %>%\n mutate(\n AESDTH = as.character(AESDTH), # characterizing AESDTH for next step\n AESDTH = case_when(\n ARM == \"A: Drug X\" ~ NA_character_, # For demonstration purpose only,\n TRUE ~ AESDTH\n ), # make \"A: Drug X\" as the arm without AE leading to death\n AESDTH = as.factor(AESDTH),\n SOC_PT = factor(paste(AEBODSYS, \"/\", AEDECOD))\n ) %>%\n filter(AESDTH == \"Y\") %>%\n mutate(ARM = droplevels(ARM)) %>%\n col_relabel(SOC_PT = \"MedDRA SOC and Preferred Term\")\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\", \"SOC_PT\")),\n selected = c(\"SOC_PT\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\", \"SOC_PT\")),\n selected = NULL\n ),\n add_total = FALSE,\n event_type = \"adverse event\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n\n ADSL <- ADSL %>%\n mutate(\n DTHFL = case_when(\n !is.na(DTHDT) ~ \"Y\",\n TRUE ~ \"\"\n )\n ) %>%\n col_relabel(\n DTHFL = \"Subject Death Flag\"\n )\n\n ADAE <- ADAE %>%\n mutate(\n AESDTH = as.character(AESDTH), # characterizing AESDTH for next step\n AESDTH = case_when(\n ARM == \"A: Drug X\" ~ NA_character_, # For demonstration purpose only,\n TRUE ~ AESDTH\n ), # make \"A: Drug X\" as the arm without AE leading to death\n AESDTH = as.factor(AESDTH),\n SOC_PT = factor(paste(AEBODSYS, \"/\", AEDECOD))\n ) %>%\n filter(AESDTH == \"Y\") %>%\n mutate(ARM = droplevels(ARM)) %>%\n col_relabel(SOC_PT = \"MedDRA SOC and Preferred Term\")\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\", \"SOC_PT\")),\n selected = c(\"SOC_PT\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\", \"SOC_PT\")),\n selected = NULL\n ),\n add_total = FALSE,\n event_type = \"adverse event\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "crumbs": [ + "Tables", + "Adverse Events", + "AET07" + ] + }, + { + "objectID": "tables/adverse-events/aet07.html#reproducibility", + "href": "tables/adverse-events/aet07.html#reproducibility", + "title": "AET07", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:52:04 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:49:12 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Lab Results", - "LBT08" + "Adverse Events", + "AET07" ] }, { - "objectID": "tables/lab-results/lbt11_bl.html#output", - "href": "tables/lab-results/lbt11_bl.html#output", - "title": "LBT11_BL", + "objectID": "tables/adverse-events/aet05.html#output", + "href": "tables/adverse-events/aet05.html#output", + "title": "AET05", "section": "Output", - "text": "Output\n\n\nTime-To-Event Summary\nTime-To-Event Summary Selecting Sections to Display\nTime-To-Event Summary with Stratified Analysis\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARMCD\", ref_group = \"ARM A\") %>%\n count_occurrences(vars = \"event_grp\") %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = paste0(\"Time to 1st LLT Event (\", levels(anl$AVALU), \")\"),\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = \"Unstratified Analysis\",\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"coxph_unstratified\"\n )\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_safl)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————\nPatients with LLT event (%) 14 (10.4%) 18 (13.4%) 15 (11.4%) \nPatients without LLT event (%) 120 (89.6%) 116 (86.6%) 117 (88.6%) \nTime to 1st LLT Event (DAYS) \n Median NA NA 721.0 \n 95% CI NA (681.0, NA) (691.0, NA) \n 25% and 75%-ile 608.0, NA 558.0, NA 644.0, NA \n Range 1.0 to 728.0 {1} 1.0 to 726.0 {1} 1.0 to 724.0 {1}\nUnstratified Analysis \n p-value (log-rank) 0.5013 0.6413 \n Hazard Ratio 1.27 0.84 \n 95% CI (0.63, 2.56) (0.40, 1.75) \n———————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observations: range minimum & maximum\n———————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARMCD\", ref_group = \"ARM A\") %>%\n count_occurrences(vars = \"event_grp\") %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = paste0(\"Time to 1st LLT Event (\", levels(anl$AVALU), \")\"),\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n )\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_safl)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————\nPatients with LLT event (%) 14 (10.4%) 18 (13.4%) 15 (11.4%) \nPatients without LLT event (%) 120 (89.6%) 116 (86.6%) 117 (88.6%) \nTime to 1st LLT Event (DAYS) \n Median NA NA 721.0 \n 95% CI NA (681.0, NA) (691.0, NA) \n 25% and 75%-ile 608.0, NA 558.0, NA 644.0, NA \n Range 1.0 to 728.0 {1} 1.0 to 726.0 {1} 1.0 to 724.0 {1}\n———————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observations: range minimum & maximum\n———————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodestrata <- c(\"RACE\", \"SEX\")\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARMCD\", ref_group = \"ARM A\") %>%\n count_occurrences(vars = \"event_grp\") %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = paste0(\"Time to 1st LLT Event (\", levels(anl$AVALU), \")\"),\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = \"Unstratified Analysis\",\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"coxph_unstratified\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = paste0(\"Stratified By: \", paste(strata, collapse = \", \")),\n strata = strata,\n table_names = \"coxph_stratified\"\n )\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_safl)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————\nPatients with LLT event (%) 14 (10.4%) 18 (13.4%) 15 (11.4%) \nPatients without LLT event (%) 120 (89.6%) 116 (86.6%) 117 (88.6%) \nTime to 1st LLT Event (DAYS) \n Median NA NA 721.0 \n 95% CI NA (681.0, NA) (691.0, NA) \n 25% and 75%-ile 608.0, NA 558.0, NA 644.0, NA \n Range 1.0 to 728.0 {1} 1.0 to 726.0 {1} 1.0 to 724.0 {1}\nUnstratified Analysis \n p-value (log-rank) 0.5013 0.6413 \n Hazard Ratio 1.27 0.84 \n 95% CI (0.63, 2.56) (0.40, 1.75) \nStratified By: RACE, SEX \n p-value (log-rank) 0.3886 0.7970 \n Hazard Ratio 1.39 0.91 \n 95% CI (0.65, 2.97) (0.43, 1.93) \n———————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observations: range minimum & maximum\n———————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadaette <- random.cdisc.data::cadaette\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadaette <- df_explicit_na(adaette)\n\nadsl_safl <- dplyr::filter(adsl, .data$SAFFL == \"Y\")\n\nanl <- adaette %>%\n dplyr::filter(\n SAFFL == \"Y\",\n PARAMCD == \"HYSTTEBL\"\n ) %>%\n dplyr::mutate(\n AVAL = .data$AVAL * dplyr::case_when( # convert to days, if possible\n .data$AVALU == \"WEEKS\" ~ 7,\n .data$AVALU == \"MONTHS\" ~ 30.4375,\n .data$AVALU == \"YEARS\" ~ 365,\n TRUE ~ 1\n ),\n AVALU = factor(dplyr::case_when(\n .data$AVALU %in% c(\"WEEKS\", \"MONTHS\", \"YEARS\") ~ factor(\"DAYS\"),\n TRUE ~ .data$AVALU\n ), levels = \"DAYS\"),\n is_event = CNSR == 0, # this will be a LLT event\n event_grp = factor(\n dplyr::case_when(\n CNSR == 0 ~ \"Patients with LLT event (%)\",\n CNSR == 1 ~ \"Patients without LLT event (%)\"\n ),\n levels = c(\n \"Patients with LLT event (%)\",\n \"Patients without LLT event (%)\"\n )\n )\n )", + "text": "Output\n\n\nStandard Table\nTable Setting Type of Confidence Interval\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n estimate_incidence_rate(\n vars = \"AVAL\",\n n_events = \"n_events\",\n control = control_incidence_rate(num_pt_year = 100)\n )\n\nresult <- build_table(lyt, anl, alt_counts_df = adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\nTotal patient-years at risk 162.4 103.9 172.6 \nNumber of adverse events observed 78 104 67 \nAE rate per 100 patient-years 48.03 100.14 38.82 \n95% CI (37.37, 58.69) (80.89, 119.38) (29.53, 48.12)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe type of confidence interval can be specified through the conf_type argument.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n estimate_incidence_rate(\n vars = \"AVAL\",\n n_events = \"n_events\",\n control = control_incidence_rate(\n conf_level = 0.95,\n conf_type = \"exact\",\n num_pt_year = 100\n )\n )\n\nresult <- build_table(lyt, anl, alt_counts_df = adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\nTotal patient-years at risk 162.4 103.9 172.6 \nNumber of adverse events observed 78 104 67 \nAE rate per 100 patient-years 48.03 100.14 38.82 \n95% CI (37.97, 59.94) (81.82, 121.34) (30.09, 49.30)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadaette <- random.cdisc.data::cadaette\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadaette <- df_explicit_na(adaette)\n\nanl <- adaette %>%\n dplyr::filter(PARAM == \"Time to first occurrence of any adverse event\") %>%\n dplyr::mutate(is_event = CNSR == 0) %>%\n dplyr::mutate(n_events = as.integer(is_event))", "crumbs": [ "Tables", - "Lab Results", - "LBT11_BL" + "Adverse Events", + "AET05" ] }, { - "objectID": "tables/lab-results/lbt11_bl.html#teal-app", - "href": "tables/lab-results/lbt11_bl.html#teal-app", - "title": "LBT11_BL", + "objectID": "tables/adverse-events/aet05.html#teal-app", + "href": "tables/adverse-events/aet05.html#teal-app", + "title": "AET05", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n ADSL <- filter(ADSL, .data$SAFFL == \"Y\")\n ADAETTE <- filter(ADAETTE, .data$SAFFL == \"Y\")\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To LLT Event Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADAETTE, \"PARAMCD\", \"PARAM\"),\n \"HYSTTEBL\"\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"RACE\", \"SEX\")),\n c(\"RACE\", \"SEX\")\n ),\n time_points = choices_selected(0, NULL),\n event_desc_var = choices_selected(\"EVNTDESC\", \"EVNTDESC\", fixed = TRUE)\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n ADSL <- filter(ADSL, .data$SAFFL == \"Y\")\n ADAETTE <- filter(ADAETTE, .data$SAFFL == \"Y\")\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To LLT Event Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADAETTE, \"PARAMCD\", \"PARAM\"),\n \"HYSTTEBL\"\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"RACE\", \"SEX\")),\n c(\"RACE\", \"SEX\")\n ),\n time_points = choices_selected(0, NULL),\n event_desc_var = choices_selected(\"EVNTDESC\", \"EVNTDESC\", fixed = TRUE)\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n ADAETTE <- ADAETTE %>%\n filter(PARAMCD %in% c(\"AETTE1\", \"AETTE2\", \"AETTE3\")) %>%\n mutate(is_event = CNSR == 0) %>%\n mutate(n_events = as.integer(is_event))\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_patyear(\n label = \"AE rate adjusted for patient-years at risk Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARMCD\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADAETTE, \"PARAMCD\", \"PARAM\"),\n selected = \"AETTE1\"\n ),\n events_var = choices_selected(\n choices = variable_choices(ADAETTE, \"n_events\"),\n selected = \"n_events\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n ADAETTE <- ADAETTE %>%\n filter(PARAMCD %in% c(\"AETTE1\", \"AETTE2\", \"AETTE3\")) %>%\n mutate(is_event = CNSR == 0) %>%\n mutate(n_events = as.integer(is_event))\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_patyear(\n label = \"AE rate adjusted for patient-years at risk Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARMCD\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADAETTE, \"PARAMCD\", \"PARAM\"),\n selected = \"AETTE1\"\n ),\n events_var = choices_selected(\n choices = variable_choices(ADAETTE, \"n_events\"),\n selected = \"n_events\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Lab Results", - "LBT11_BL" + "Adverse Events", + "AET05" ] }, { - "objectID": "tables/lab-results/lbt11_bl.html#reproducibility", - "href": "tables/lab-results/lbt11_bl.html#reproducibility", - "title": "LBT11_BL", + "objectID": "tables/adverse-events/aet05.html#reproducibility", + "href": "tables/adverse-events/aet05.html#reproducibility", + "title": "AET05", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:51:31 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:48:32 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Lab Results", - "LBT11_BL" + "Adverse Events", + "AET05" ] }, { - "objectID": "tables/lab-results/lbt03.html#output", - "href": "tables/lab-results/lbt03.html#output", - "title": "LBT03", - "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\nThe LBT03 template is the result of a junction between the analysis of AVAL at baseline and CHG at visit time. AVAL is summarized for baseline visits and and CHG is summarized for post-baseline visits.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_rows_by(\"AVISIT\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adlb_f$AVISIT)) %>%\n summarize_change(\n \"CHG\",\n variables = list(value = \"AVAL\", baseline_flag = \"ABLFLL\"),\n na.rm = TRUE\n )\n\nresult <- build_table(\n lyt = lyt,\n df = adlb_f,\n alt_counts_df = adsl\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\nAnalysis Visit (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————\nBASELINE \n n 134 134 132 \n Mean (SD) 9.06 (0.93) 8.99 (0.98) 8.98 (0.89) \n Median 9.07 8.92 8.96 \n Min - Max 6.21 - 11.87 6.23 - 11.63 6.24 - 11.18 \nWEEK 1 DAY 8 \n n 134 0 132 \n Mean (SD) -0.05 (1.38) NA -0.02 (1.30) \n Median -0.17 NA 0.02 \n Min - Max -3.56 - 3.48 NA -3.28 - 3.33 \nWEEK 2 DAY 15 \n n 134 134 132 \n Mean (SD) -0.19 (1.47) 0.01 (1.45) 0.15 (1.25) \n Median -0.27 -0.00 0.15 \n Min - Max -4.53 - 4.45 -3.79 - 3.43 -2.92 - 3.28 \nWEEK 3 DAY 22 \n n 134 134 132 \n Mean (SD) 0.03 (1.38) -0.02 (1.49) 0.02 (1.34) \n Median 0.15 -0.04 0.20 \n Min - Max -3.95 - 2.99 -4.28 - 4.24 -2.76 - 3.26 \nWEEK 4 DAY 29 \n n 134 134 132 \n Mean (SD) -0.26 (1.45) 0.05 (1.24) -0.01 (1.17) \n Median -0.37 0.10 -0.06 \n Min - Max -3.74 - 4.15 -3.34 - 3.71 -3.06 - 3.22 \nWEEK 5 DAY 36 \n n 134 134 132 \n Mean (SD) -0.02 (1.50) 0.07 (1.34) 0.03 (1.27) \n Median 0.01 0.15 0.05 \n Min - Max -4.15 - 3.96 -3.50 - 3.53 -3.63 - 4.78 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nIn the final step, a new variable is derived from AVISIT that can specify the method of estimation of the evaluated change.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb_f %>% mutate(AVISIT_header = recode(AVISIT,\n \"BASELINE\" = \"BASELINE\",\n \"WEEK 1 DAY 8\" = \"WEEK 1 DAY 8 value minus baseline\",\n \"WEEK 2 DAY 15\" = \"WEEK 2 DAY 15 value minus baseline\",\n \"WEEK 3 DAY 22\" = \"WEEK 3 DAY 22 value minus baseline\",\n \"WEEK 4 DAY 29\" = \"WEEK 4 DAY 29 value minus baseline\",\n \"WEEK 5 DAY 36\" = \"WEEK 5 DAY 36 value minus baseline\"\n))\n\n# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_rows_by(\"AVISIT_header\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adlb_f$AVISIT)\n ) %>%\n summarize_change(\n \"CHG\",\n variables = list(value = \"AVAL\", baseline_flag = \"ABLFLL\"),\n na.rm = TRUE\n )\n\nresult <- build_table(\n lyt = lyt,\n df = adlb_f,\n alt_counts_df = adsl\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\nAnalysis Visit (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————\nBASELINE \n n 134 134 132 \n Mean (SD) 9.06 (0.93) 8.99 (0.98) 8.98 (0.89) \n Median 9.07 8.92 8.96 \n Min - Max 6.21 - 11.87 6.23 - 11.63 6.24 - 11.18 \nWEEK 1 DAY 8 value minus baseline \n n 134 0 132 \n Mean (SD) -0.05 (1.38) NA -0.02 (1.30) \n Median -0.17 NA 0.02 \n Min - Max -3.56 - 3.48 NA -3.28 - 3.33 \nWEEK 2 DAY 15 value minus baseline \n n 134 134 132 \n Mean (SD) -0.19 (1.47) 0.01 (1.45) 0.15 (1.25) \n Median -0.27 -0.00 0.15 \n Min - Max -4.53 - 4.45 -3.79 - 3.43 -2.92 - 3.28 \nWEEK 3 DAY 22 value minus baseline \n n 134 134 132 \n Mean (SD) 0.03 (1.38) -0.02 (1.49) 0.02 (1.34) \n Median 0.15 -0.04 0.20 \n Min - Max -3.95 - 2.99 -4.28 - 4.24 -2.76 - 3.26 \nWEEK 4 DAY 29 value minus baseline \n n 134 134 132 \n Mean (SD) -0.26 (1.45) 0.05 (1.24) -0.01 (1.17) \n Median -0.37 0.10 -0.06 \n Min - Max -3.74 - 4.15 -3.34 - 3.71 -3.06 - 3.22 \nWEEK 5 DAY 36 value minus baseline \n n 134 134 132 \n Mean (SD) -0.02 (1.50) 0.07 (1.34) 0.03 (1.27) \n Median 0.01 0.15 0.05 \n Min - Max -4.15 - 3.96 -3.50 - 3.53 -3.63 - 4.78 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nFor illustration purposes, this example focuses on “C-Reactive Protein Measurement” starting from baseline, while excluding visit at week 1 for subjects who were randomized to the placebo group.\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadlb <- df_explicit_na(adlb)\n\nsaved_labels <- var_labels(adlb)\n\nadlb_f <- adlb %>%\n filter(\n PARAM == \"C-Reactive Protein Measurement\",\n !(ARM == \"B: Placebo\" & AVISIT == \"WEEK 1 DAY 8\"),\n AVISIT != \"SCREENING\"\n ) %>%\n dplyr::mutate(\n AVISIT = droplevels(AVISIT),\n ABLFLL = ABLFL == \"Y\"\n )\n\nvar_labels(adlb_f) <- c(saved_labels, \"\")", + "objectID": "tables/adverse-events/aet04.html#output", + "href": "tables/adverse-events/aet04.html#output", + "title": "AET04", + "section": "Output", + "text": "Output\n\n\nStandard Table\nTable with Fill-In of Treatment Groups\nTable with Fill-In of Grades\nTable with Collapsing of Grades\nTable Using Worst Grade Flags from ADAE\nTable with an Incidence Rate \\(\\geq\\) 40%, Totals Restricted\nTable with an Incidence Rate \\(\\geq\\) X%, Totals Unrestricted\nTable with an Incidence Rate \\(\\geq\\) 58 Patients\nTable with a Difference in Incidence Rate \\(\\geq\\) 10%\nTable with an Incidence Rate \\(\\geq\\) 5%, SOCs < 5% Removed\nTable with an Incidence Rate \\(\\geq\\) 40%, All SOCs w/o Preferred Terms Removed\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n var = \"TOTAL_VAR\",\n label_pos = \"hidden\",\n child_labels = \"visible\",\n indent_mod = -1L\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 7L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 6L\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = drop_split_levels,\n split_label = var_labels(adae)[[\"AEBODSYS\"]],\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n \"AEDECOD\",\n child_labels = \"visible\",\n split_fun = add_overall_level(\"- Overall -\", trim = TRUE),\n split_label = var_labels(adae)[[\"AEDECOD\"]],\n label_pos = \"topleft\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 6L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 5L\n ) %>%\n append_topleft(\" Grade\")\n\nresult <- lyt %>%\n build_table(adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = \"AEBODSYS\",\n scorefun = score_all_sum,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_all_sum,\n decreasing = TRUE\n )\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 98 (73.1%) 103 (78.0%) \n Grade 1-2 10 (7.5%) 15 (11.2%) 10 (7.6%) \n 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3-4 26 (19.4%) 31 (23.1%) 29 (22.0%) \n 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 64 (47.8%) 52 (38.8%) 64 (48.5%) \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Grade 1-2 68 (50.7%) 58 (43.3%) 76 (57.6%) \n 1 27 (20.1%) 19 (14.2%) 34 (25.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n Grade 1-2 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 1-2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Grade 1-2 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 1 23 (17.2%) 22 (16.4%) 28 (21.2%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Grade 1-2 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Grade 3-4 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 3 22 (16.4%) 22 (16.4%) 22 (16.7%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Grade 3-4 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 3 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadae2 <- adae %>% filter(ACTARM == \"A: Drug X\")\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n var = \"TOTAL_VAR\",\n label_pos = \"hidden\",\n child_labels = \"visible\",\n indent_mod = -1L\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 7L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 6L\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = drop_split_levels,\n split_label = var_labels(adae)[[\"AEBODSYS\"]],\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n \"AEDECOD\",\n child_labels = \"visible\",\n split_fun = add_overall_level(\"- Overall -\", trim = TRUE),\n split_label = var_labels(adae)[[\"AEDECOD\"]],\n label_pos = \"topleft\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 6L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 5L\n ) %>%\n append_topleft(\" Grade\")\n\nresult <- lyt %>%\n build_table(adae2, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = \"AEBODSYS\",\n scorefun = score_all_sum,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_all_sum,\n decreasing = TRUE\n )\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 0 0 \n Grade 1-2 10 (7.5%) 0 0 \n 1 5 (3.7%) 0 0 \n 2 5 (3.7%) 0 0 \n Grade 3-4 26 (19.4%) 0 0 \n 3 13 (9.7%) 0 0 \n 4 13 (9.7%) 0 0 \n Grade 5 64 (47.8%) 0 0 \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 0 0 \n Grade 1-2 68 (50.7%) 0 0 \n 1 27 (20.1%) 0 0 \n 2 41 (30.6%) 0 0 \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 0 0 \n Grade 1-2 45 (33.6%) 0 0 \n 1 45 (33.6%) 0 0 \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 0 0 \n Grade 1-2 41 (30.6%) 0 0 \n 2 41 (30.6%) 0 0 \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 0 0 \n Grade 3-4 22 (16.4%) 0 0 \n 3 22 (16.4%) 0 0 \n Grade 5 42 (31.3%) 0 0 \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 0 0 \n Grade 5 42 (31.3%) 0 0 \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 0 0 \n Grade 3-4 38 (28.4%) 0 0 \n 3 38 (28.4%) 0 0 \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 0 0 \n Grade 1-2 23 (17.2%) 0 0 \n 1 23 (17.2%) 0 0 \n Grade 3-4 39 (29.1%) 0 0 \n 3 39 (29.1%) 0 0 \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 0 0 \n Grade 3-4 39 (29.1%) 0 0 \n 3 39 (29.1%) 0 0 \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 0 0 \n Grade 1-2 38 (28.4%) 0 0 \n 1 38 (28.4%) 0 0 \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 0 0 \n Grade 5 38 (28.4%) 0 0 \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 0 0 \n Grade 5 38 (28.4%) 0 0 \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 0 0 \n Grade 1-2 37 (27.6%) 0 0 \n 1 37 (27.6%) 0 0 \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 0 0 \n Grade 1-2 37 (27.6%) 0 0 \n 1 37 (27.6%) 0 0 \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 0 0 \n Grade 3-4 36 (26.9%) 0 0 \n 4 36 (26.9%) 0 0 \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 0 0 \n Grade 3-4 36 (26.9%) 0 0 \n 4 36 (26.9%) 0 0 \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 0 0 \n Grade 1-2 28 (20.9%) 0 0 \n 2 28 (20.9%) 0 0 \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 0 0 \n Grade 1-2 28 (20.9%) 0 0 \n 2 28 (20.9%) 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n var = \"TOTAL_VAR\",\n label_pos = \"hidden\",\n child_labels = \"visible\",\n indent_mod = -1L\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 7L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 6L\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = drop_split_levels,\n split_label = var_labels(adae)[[\"AEBODSYS\"]],\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n \"AEDECOD\",\n child_labels = \"visible\",\n split_fun = add_overall_level(\"- Overall -\", trim = TRUE),\n split_label = var_labels(adae)[[\"AEDECOD\"]],\n label_pos = \"topleft\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 6L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 5L\n ) %>%\n append_topleft(\" Grade\")\n\nresult <- lyt %>%\n build_table(adae, alt_counts_df = adsl) %>%\n sort_at_path(\n path = \"AEBODSYS\",\n scorefun = score_all_sum,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_all_sum,\n decreasing = TRUE\n )\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 98 (73.1%) 103 (78.0%) \n Grade 1-2 10 (7.5%) 15 (11.2%) 10 (7.6%) \n 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3-4 26 (19.4%) 31 (23.1%) 29 (22.0%) \n 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 64 (47.8%) 52 (38.8%) 64 (48.5%) \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Grade 1-2 68 (50.7%) 58 (43.3%) 76 (57.6%) \n 1 27 (20.1%) 19 (14.2%) 34 (25.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n Grade 1-2 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 2 0 0 0 \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 1-2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n 1 0 0 0 \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Grade 1-2 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 1 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 2 0 0 0 \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 4 0 0 0 \n Grade 5 0 0 0 \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Grade 1-2 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 2 0 0 0 \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 4 0 0 0 \n Grade 5 0 0 0 \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 3 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 4 0 0 0 \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 3 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 4 0 0 0 \n Grade 5 0 0 0 \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 2 0 0 0 \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 2 0 0 0 \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 1 0 0 0 \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 1 0 0 0 \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 3 0 0 0 \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 5 0 0 0 \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 3 0 0 0 \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 5 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodegrade_groups_1 <- list(\n \"Grade 1-2\" = c(\"1\", \"2\"),\n \"Grade 3-5\" = c(\"3\", \"4\", \"5\")\n)\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n var = \"TOTAL_VAR\",\n label_pos = \"hidden\",\n child_labels = \"visible\",\n indent_mod = -1L\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 7L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups_1,\n .indent_mods = 6L\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = drop_split_levels,\n split_label = var_labels(adae)[[\"AEBODSYS\"]],\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n \"AEDECOD\",\n child_labels = \"visible\",\n split_fun = add_overall_level(\"- Overall -\", trim = TRUE),\n split_label = var_labels(adae)[[\"AEDECOD\"]],\n label_pos = \"topleft\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 6L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups_1,\n .indent_mods = 5L\n ) %>%\n append_topleft(\" Grade\")\n\nresult <- lyt %>%\n build_table(adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = \"AEBODSYS\",\n scorefun = score_all_sum,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_all_sum,\n decreasing = TRUE\n )\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 98 (73.1%) 103 (78.0%) \n Grade 1-2 10 (7.5%) 15 (11.2%) 10 (7.6%) \n 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3-5 90 (67.2%) 83 (61.9%) 93 (70.5%) \n 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n 5 64 (47.8%) 52 (38.8%) 64 (48.5%) \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Grade 1-2 68 (50.7%) 58 (43.3%) 76 (57.6%) \n 1 27 (20.1%) 19 (14.2%) 34 (25.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n Grade 1-2 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 1-2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Grade 1-2 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 1 23 (17.2%) 22 (16.4%) 28 (21.2%) \n Grade 3-5 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Grade 1-2 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Grade 3-5 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Grade 3-5 64 (47.8%) 54 (40.3%) 68 (51.5%) \n 3 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Grade 3-5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Grade 3-5 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 3 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 3-5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 3-5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-5 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-5 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCode# No Worst Grade Flags found in the ADAE data set.\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Simple wrapper to return subset ADAE to a threshold of xx%.\nget_adae_trimmed <- function(adsl, adae, cutoff_rate) {\n n_per_arm <- adsl %>%\n dplyr::count(ACTARM)\n\n anl_terms <- adae %>%\n dplyr::group_by(ACTARM, AEBODSYS, AEDECOD) %>%\n dplyr::count(\n unique_terms = n_distinct(USUBJID)\n ) %>%\n dplyr::select(-n) %>%\n dplyr::ungroup()\n\n anl_terms <- dplyr::left_join(\n anl_terms,\n n_per_arm,\n by = \"ACTARM\"\n ) %>%\n dplyr::mutate(\n ae_rate = unique_terms / n\n ) %>%\n dplyr::filter(ae_rate >= cutoff_rate) %>%\n dplyr::select(AEDECOD) %>%\n unique()\n\n anl <- dplyr::left_join(\n anl_terms,\n adae,\n by = \"AEDECOD\"\n )\n anl\n}\n\nadae6 <- get_adae_trimmed(adsl, adae, cutoff_rate = 0.4)\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n var = \"TOTAL_VAR\",\n label_pos = \"hidden\",\n child_labels = \"visible\",\n indent_mod = -1L\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 7L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 6L\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = drop_split_levels,\n split_label = var_labels(adae)[[\"AEBODSYS\"]],\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n \"AEDECOD\",\n child_labels = \"visible\",\n split_fun = add_overall_level(\"- Overall -\", trim = TRUE),\n split_label = var_labels(adae)[[\"AEDECOD\"]],\n label_pos = \"topleft\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 6L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 5L\n ) %>%\n append_topleft(\" Grade\")\n\nresult <- lyt %>%\n build_table(adae6, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = \"AEBODSYS\",\n scorefun = score_all_sum,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_all_sum,\n decreasing = TRUE\n )\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 98 (73.1%) 103 (78.0%) \n Grade 1-2 10 (7.5%) 15 (11.2%) 10 (7.6%) \n 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3-4 26 (19.4%) 31 (23.1%) 29 (22.0%) \n 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 64 (47.8%) 52 (38.8%) 64 (48.5%) \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Grade 1-2 68 (50.7%) 58 (43.3%) 76 (57.6%) \n 1 27 (20.1%) 19 (14.2%) 34 (25.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n Grade 1-2 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 1-2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Grade 1-2 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 1 23 (17.2%) 22 (16.4%) 28 (21.2%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Grade 1-2 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Grade 3-4 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 3 22 (16.4%) 22 (16.4%) 22 (16.7%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Grade 3-4 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 3 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nVariant 7 was not created. With this variant, the SOC level is not trimmed (even if there are no terms left).\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecutoff <- 58L\nrow_condition <- has_count_in_any_col(atleast = cutoff, col_names = levels(adsl$ACTARM))\n\nresult <- prune_table(raw_table, keep_content_rows(my_row_condition(row_condition)))\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 98 (73.1%) 103 (78.0%) \n Grade 1-2 10 (7.5%) 15 (11.2%) 10 (7.6%) \n 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3-4 26 (19.4%) 31 (23.1%) 29 (22.0%) \n 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 64 (47.8%) 52 (38.8%) 64 (48.5%) \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Grade 1-2 68 (50.7%) 58 (43.3%) 76 (57.6%) \n 1 27 (20.1%) 19 (14.2%) 34 (25.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n Grade 1-2 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 1-2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Grade 1-2 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 1 23 (17.2%) 22 (16.4%) 28 (21.2%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Grade 1-2 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Grade 3-4 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 3 22 (16.4%) 22 (16.4%) 22 (16.7%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Grade 3-4 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 3 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecutoff <- 0.1\nrow_condition <- has_fractions_difference(atleast = cutoff, col_names = levels(adsl$ACTARM))\n\nresult <- prune_table(raw_table, keep_content_rows(my_row_condition(row_condition)))\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 98 (73.1%) 103 (78.0%) \n Grade 1-2 10 (7.5%) 15 (11.2%) 10 (7.6%) \n 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3-4 26 (19.4%) 31 (23.1%) 29 (22.0%) \n 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 64 (47.8%) 52 (38.8%) 64 (48.5%) \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Grade 1-2 68 (50.7%) 58 (43.3%) 76 (57.6%) \n 1 27 (20.1%) 19 (14.2%) 34 (25.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n Grade 1-2 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 1-2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Grade 1-2 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 1 23 (17.2%) 22 (16.4%) 28 (21.2%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Grade 1-2 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Grade 3-4 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 3 22 (16.4%) 22 (16.4%) 22 (16.7%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Grade 3-4 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 3 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nVariant 10 was not done With this variant, SOC levels above the threshold are still in the table even if there are no terms left.\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecutoff <- 0.4\nrow_condition <- has_fraction_in_any_col(atleast = cutoff, col_names = levels(adsl$ACTARM))\n\nresult <- prune_table(raw_table, keep_content_rows(my_row_condition(row_condition)))\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 98 (73.1%) 103 (78.0%) \n Grade 1-2 10 (7.5%) 15 (11.2%) 10 (7.6%) \n 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3-4 26 (19.4%) 31 (23.1%) 29 (22.0%) \n 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 64 (47.8%) 52 (38.8%) 64 (48.5%) \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Grade 1-2 68 (50.7%) 58 (43.3%) 76 (57.6%) \n 1 27 (20.1%) 19 (14.2%) 34 (25.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n Grade 1-2 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 1-2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Grade 1-2 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 1 23 (17.2%) 22 (16.4%) 28 (21.2%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Grade 1-2 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Grade 3-4 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 3 22 (16.4%) 22 (16.4%) 22 (16.7%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Grade 3-4 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 3 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl) %>% filter(TRT01A != \"<Missing>\")\nadae <- df_explicit_na(adae) %>%\n var_relabel(\n AEBODSYS = \"MedDRA System Organ Class\",\n AEDECOD = \"MedDRA Preferred Term\"\n ) %>%\n filter(\n ANL01FL == \"Y\",\n AETOXGR != \"<Missing>\"\n )\n\n# Pre-Processing\ngrade_groups <- list(\n \"Grade 1-2\" = c(\"1\", \"2\"),\n \"Grade 3-4\" = c(\"3\", \"4\"),\n \"Grade 5\" = \"5\"\n)\nadae$TOTAL_VAR <- \"- Any adverse events - \"\n\n# Helper function to avoid filtering also the first part of the table, where general information is given.\nmy_row_condition <- function(row_fnc_condition) {\n function(table_row) {\n if (indent_mod(table_row) == 0) {\n return(TRUE)\n } else {\n row_fnc_condition(table_row)\n }\n }\n}\n\n# Helper function to calculate sum from first nested row\nscore_all_sum <- function(tt) {\n cleaf <- collect_leaves(tt)[[1]]\n if (NROW(cleaf) == 0) {\n stop(\"score_all_sum score function used at subtable [\", obj_name(tt), \"] that has no content.\")\n }\n sum(sapply(row_values(cleaf), function(cv) cv[1]))\n}\n\n# Raw table used by variant 8/10\nraw_table <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n var = \"TOTAL_VAR\",\n label_pos = \"hidden\",\n child_labels = \"visible\",\n indent_mod = -1L\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 7L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 6L\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = drop_split_levels,\n split_label = var_labels(adae)[[\"AEBODSYS\"]],\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n \"AEDECOD\",\n child_labels = \"visible\",\n split_fun = add_overall_level(\"- Overall -\", trim = TRUE),\n split_label = var_labels(adae)[[\"AEDECOD\"]],\n label_pos = \"topleft\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 6L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 5L\n ) %>%\n append_topleft(\" Grade\") %>%\n build_table(adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = \"AEBODSYS\",\n scorefun = score_all_sum,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_all_sum,\n decreasing = TRUE\n )", + "crumbs": [ + "Tables", + "Adverse Events", + "AET04" + ] + }, + { + "objectID": "tables/adverse-events/aet04.html#teal-app", + "href": "tables/adverse-events/aet04.html#teal-app", + "title": "AET04", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_by_grade(\n label = \"Adverse Events by Grade Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n grade = choices_selected(\n choices = variable_choices(ADAE, c(\"AETOXGR\", \"AESEV\")),\n selected = \"AETOXGR\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_by_grade(\n label = \"Adverse Events by Grade Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n grade = choices_selected(\n choices = variable_choices(ADAE, c(\"AETOXGR\", \"AESEV\")),\n selected = \"AETOXGR\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "crumbs": [ + "Tables", + "Adverse Events", + "AET04" + ] + }, + { + "objectID": "tables/adverse-events/aet04.html#reproducibility", + "href": "tables/adverse-events/aet04.html#reproducibility", + "title": "AET04", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:47:52 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "crumbs": [ + "Tables", + "Adverse Events", + "AET04" + ] + }, + { + "objectID": "tables/lab-results/lbt11.html#output", + "href": "tables/lab-results/lbt11.html#output", + "title": "LBT11", + "section": "Output", + "text": "Output\n\n\nTime-To-Event Summary\nTime-To-Event Summary Selecting Sections to Display\nTime-To-Event Summary with Stratified Analysis\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARMCD\", ref_group = \"ARM A\") %>%\n count_occurrences(vars = \"event_grp\") %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = paste0(\"Time to 1st LLT Event (\", levels(anl$AVALU), \")\"),\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = \"Unstratified Analysis\",\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"coxph_unstratified\"\n )\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_safl)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————\nPatients with LLT event (%) 20 (14.9%) 9 (6.7%) 9 (6.8%) \nPatients without LLT event (%) 114 (85.1%) 125 (93.3%) 123 (93.2%) \nTime to 1st LLT Event (DAYS) \n Median NA NA 728.0 \n 95% CI NA (724.0, NA) NA \n 25% and 75%-ile 618.0, NA 724.0, NA 728.0, 728.0 \n Range 1.0 to 731.0 {1} 1.0 to 728.0 {1} 1.0 to 728.0 {2}\nUnstratified Analysis \n p-value (log-rank) 0.0295 0.1687 \n Hazard Ratio 0.43 0.58 \n 95% CI (0.19, 0.94) (0.26, 1.27) \n———————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observations: range minimum & maximum\n{2} - Censored observation: range minimum\n———————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARMCD\", ref_group = \"ARM A\") %>%\n count_occurrences(vars = \"event_grp\") %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = paste0(\"Time to 1st LLT Event (\", levels(anl$AVALU), \")\"),\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n )\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_safl)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————\nPatients with LLT event (%) 20 (14.9%) 9 (6.7%) 9 (6.8%) \nPatients without LLT event (%) 114 (85.1%) 125 (93.3%) 123 (93.2%) \nTime to 1st LLT Event (DAYS) \n Median NA NA 728.0 \n 95% CI NA (724.0, NA) NA \n 25% and 75%-ile 618.0, NA 724.0, NA 728.0, 728.0 \n Range 1.0 to 731.0 {1} 1.0 to 728.0 {1} 1.0 to 728.0 {2}\n———————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observations: range minimum & maximum\n{2} - Censored observation: range minimum\n———————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodestrata <- c(\"RACE\", \"SEX\")\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARMCD\", ref_group = \"ARM A\") %>%\n count_occurrences(vars = \"event_grp\") %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = paste0(\"Time to 1st LLT Event (\", levels(anl$AVALU), \")\"),\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = \"Unstratified Analysis\",\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"coxph_unstratified\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = paste0(\"Stratified By: \", paste(strata, collapse = \", \")),\n strata = strata,\n table_names = \"coxph_stratified\"\n )\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_safl)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————\nPatients with LLT event (%) 20 (14.9%) 9 (6.7%) 9 (6.8%) \nPatients without LLT event (%) 114 (85.1%) 125 (93.3%) 123 (93.2%) \nTime to 1st LLT Event (DAYS) \n Median NA NA 728.0 \n 95% CI NA (724.0, NA) NA \n 25% and 75%-ile 618.0, NA 724.0, NA 728.0, 728.0 \n Range 1.0 to 731.0 {1} 1.0 to 728.0 {1} 1.0 to 728.0 {2}\nUnstratified Analysis \n p-value (log-rank) 0.0295 0.1687 \n Hazard Ratio 0.43 0.58 \n 95% CI (0.19, 0.94) (0.26, 1.27) \nStratified By: RACE, SEX \n p-value (log-rank) 0.0858 0.1605 \n Hazard Ratio 0.51 0.57 \n 95% CI (0.23, 1.12) (0.26, 1.26) \n———————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observations: range minimum & maximum\n{2} - Censored observation: range minimum\n———————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadaette <- random.cdisc.data::cadaette\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadaette <- df_explicit_na(adaette)\n\nadsl_safl <- dplyr::filter(adsl, .data$SAFFL == \"Y\")\n\nanl <- adaette %>%\n dplyr::filter(\n SAFFL == \"Y\",\n PARAMCD == \"HYSTTEUL\"\n ) %>%\n dplyr::mutate(\n AVAL = .data$AVAL * dplyr::case_when( # convert to days, if possible\n .data$AVALU == \"WEEKS\" ~ 7,\n .data$AVALU == \"MONTHS\" ~ 30.4375,\n .data$AVALU == \"YEARS\" ~ 365,\n TRUE ~ 1\n ),\n AVALU = factor(dplyr::case_when(\n .data$AVALU %in% c(\"WEEKS\", \"MONTHS\", \"YEARS\") ~ factor(\"DAYS\"),\n TRUE ~ .data$AVALU\n ), levels = \"DAYS\"),\n is_event = CNSR == 0, # this will be a LLT event\n event_grp = factor(\n dplyr::case_when(\n CNSR == 0 ~ \"Patients with LLT event (%)\",\n CNSR == 1 ~ \"Patients without LLT event (%)\"\n ),\n levels = c(\n \"Patients with LLT event (%)\",\n \"Patients without LLT event (%)\"\n )\n )\n )", "crumbs": [ "Tables", "Lab Results", - "LBT03" + "LBT11" ] }, { - "objectID": "tables/lab-results/lbt03.html#teal-app", - "href": "tables/lab-results/lbt03.html#teal-app", - "title": "LBT03", + "objectID": "tables/lab-results/lbt11.html#teal-app", + "href": "tables/lab-results/lbt11.html#teal-app", + "title": "LBT11", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\nHere, we pre-process and manually define the variable “Baseline or Absolute Change from Baseline”.\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- df_explicit_na(random.cdisc.data::cadsl)\n ADLB <- df_explicit_na(random.cdisc.data::cadlb) %>%\n filter(\n !(ARM == \"B: Placebo\" & AVISIT == \"WEEK 1 DAY 8\"),\n AVISIT != \"SCREENING\"\n ) %>%\n mutate(\n AVISIT = droplevels(AVISIT),\n ABLFLL = ABLFL == \"Y\",\n AVISIT_header = recode(AVISIT,\n \"BASELINE\" = \"BASELINE\",\n \"WEEK 1 DAY 8\" = \"WEEK 1 DAY 8 value minus baseline\",\n \"WEEK 2 DAY 15\" = \"WEEK 2 DAY 15 value minus baseline\",\n \"WEEK 3 DAY 22\" = \"WEEK 3 DAY 22 value minus baseline\",\n \"WEEK 4 DAY 29\" = \"WEEK 4 DAY 29 value minus baseline\",\n \"WEEK 5 DAY 36\" = \"WEEK 5 DAY 36 value minus baseline\"\n )\n ) %>%\n group_by(USUBJID, PARAM) %>%\n mutate(\n AVAL_CHG = AVAL - (!ABLFLL) * sum(AVAL * ABLFLL)\n ) %>%\n ungroup() %>%\n col_relabel(\n AVAL_CHG = \"Baseline or Absolute Change from Baseline\",\n ABLFLL = \"Baseline Flag (TRUE/FALSE)\",\n AVISIT_header = \"Analysis Visit\"\n )\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Laboratory Test Results Change from Baseline by Visit\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n # note: order matters here. If `PARAM` is first, the split will be first by `PARAM`and then by `AVISIT`\n choices = variable_choices(ADLB, c(\"PARAM\", \"AVISIT_header\")),\n selected = c(\"PARAM\", \"AVISIT_header\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADLB, c(\"AVAL\", \"CHG\", \"AVAL_CHG\")),\n selected = c(\"AVAL_CHG\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"CRP\"\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADLB\", \"AVAL\", selected = NULL))\n)\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- df_explicit_na(random.cdisc.data::cadsl)\n ADLB <- df_explicit_na(random.cdisc.data::cadlb) %>%\n filter(\n !(ARM == \"B: Placebo\" & AVISIT == \"WEEK 1 DAY 8\"),\n AVISIT != \"SCREENING\"\n ) %>%\n mutate(\n AVISIT = droplevels(AVISIT),\n ABLFLL = ABLFL == \"Y\",\n AVISIT_header = recode(AVISIT,\n \"BASELINE\" = \"BASELINE\",\n \"WEEK 1 DAY 8\" = \"WEEK 1 DAY 8 value minus baseline\",\n \"WEEK 2 DAY 15\" = \"WEEK 2 DAY 15 value minus baseline\",\n \"WEEK 3 DAY 22\" = \"WEEK 3 DAY 22 value minus baseline\",\n \"WEEK 4 DAY 29\" = \"WEEK 4 DAY 29 value minus baseline\",\n \"WEEK 5 DAY 36\" = \"WEEK 5 DAY 36 value minus baseline\"\n )\n ) %>%\n group_by(USUBJID, PARAM) %>%\n mutate(\n AVAL_CHG = AVAL - (!ABLFLL) * sum(AVAL * ABLFLL)\n ) %>%\n ungroup() %>%\n col_relabel(\n AVAL_CHG = \"Baseline or Absolute Change from Baseline\",\n ABLFLL = \"Baseline Flag (TRUE/FALSE)\",\n AVISIT_header = \"Analysis Visit\"\n )\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Laboratory Test Results Change from Baseline by Visit\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n # note: order matters here. If `PARAM` is first, the split will be first by `PARAM`and then by `AVISIT`\n choices = variable_choices(ADLB, c(\"PARAM\", \"AVISIT_header\")),\n selected = c(\"PARAM\", \"AVISIT_header\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADLB, c(\"AVAL\", \"CHG\", \"AVAL_CHG\")),\n selected = c(\"AVAL_CHG\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"CRP\"\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADLB\", \"AVAL\", selected = NULL))\n)\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n ADSL <- filter(ADSL, .data$SAFFL == \"Y\")\n ADAETTE <- filter(ADAETTE, .data$SAFFL == \"Y\")\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To LLT Event Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n variable_choices(data[[\"ADSL\"]], c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(data[[\"ADAETTE\"]], \"PARAMCD\", \"PARAM\"),\n \"HYSTTEUL\"\n ),\n strata_var = choices_selected(\n variable_choices(data[[\"ADSL\"]], c(\"RACE\", \"SEX\")),\n c(\"RACE\", \"SEX\")\n ),\n time_points = choices_selected(0, NULL),\n event_desc_var = choices_selected(\"EVNTDESC\", \"EVNTDESC\", fixed = TRUE)\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n ADSL <- filter(ADSL, .data$SAFFL == \"Y\")\n ADAETTE <- filter(ADAETTE, .data$SAFFL == \"Y\")\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To LLT Event Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n variable_choices(data[[\"ADSL\"]], c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(data[[\"ADAETTE\"]], \"PARAMCD\", \"PARAM\"),\n \"HYSTTEUL\"\n ),\n strata_var = choices_selected(\n variable_choices(data[[\"ADSL\"]], c(\"RACE\", \"SEX\")),\n c(\"RACE\", \"SEX\")\n ),\n time_points = choices_selected(0, NULL),\n event_desc_var = choices_selected(\"EVNTDESC\", \"EVNTDESC\", fixed = TRUE)\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", "Lab Results", - "LBT03" + "LBT11" ] }, { - "objectID": "tables/lab-results/lbt03.html#reproducibility", - "href": "tables/lab-results/lbt03.html#reproducibility", - "title": "LBT03", + "objectID": "tables/lab-results/lbt11.html#reproducibility", + "href": "tables/lab-results/lbt11.html#reproducibility", + "title": "LBT11", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:50:48 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:46:50 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", "Lab Results", - "LBT03" + "LBT11" ] }, { - "objectID": "tables/lab-results/lbt15.html#output", - "href": "tables/lab-results/lbt15.html#output", - "title": "LBT15", + "objectID": "tables/lab-results/lbt13.html#output", + "href": "tables/lab-results/lbt13.html#output", + "title": "LBT13", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Modifying Cut Point\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Argument exclude_base_abn must be TRUE to include patients with normal or abnormal in the opposite\n# direction in the denom.\n# So for \"High\" direction, subjects with baseline grade 3-4 are not in the denom.\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n add_overall_col(\"All Patients\") %>%\n split_rows_by(\n \"PARCAT1\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb$PARCAT1)\n ) %>%\n split_rows_by(\n \"PARAM\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb$PARAM)\n ) %>%\n count_abnormal(\n var = \"ANRIND\",\n abnormal = list(Low = \"LOW\", High = \"HIGH\"),\n variables = list(id = \"USUBJID\", baseline = \"BNRIND\"),\n exclude_base_abn = TRUE,\n .indent_mods = 4L\n ) %>%\n append_topleft(\" Direction of Abnormality\")\n\nresult <- build_table(lyt, adlb, alt_counts_df = adsl)\nresult\n\nCategory for Lab Test \n Parameter A: Drug X B: Placebo C: Combination All Patients \n Direction of Abnormality (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————\nCHEMISTRY \n Alanine Aminotransferase Measurement \n Low 32/127 (25.2%) 32/128 (25%) 32/128 (25%) 96/383 (25.1%) \n High 0/134 0/134 0/132 0/400 \n C-Reactive Protein Measurement \n Low 36/127 (28.3%) 36/127 (28.3%) 42/123 (34.1%) 114/377 (30.2%)\n High 34/124 (27.4%) 33/128 (25.8%) 31/129 (24%) 98/381 (25.7%) \nIMMUNOLOGY \n Immunoglobulin A Measurement \n Low 0/134 0/134 0/132 0/400 \n High 33/128 (25.8%) 32/124 (25.8%) 28/120 (23.3%) 93/372 (25%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- build_table(lyt, adlb_alt_cut, alt_counts_df = adsl)\nresult\n\nCategory for Lab Test \n Parameter A: Drug X B: Placebo C: Combination All Patients \n Direction of Abnormality (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————\nCHEMISTRY \n Alanine Aminotransferase Measurement \n Low 46/119 (38.7%) 54/123 (43.9%) 47/127 (37%) 147/369 (39.8%)\n High 0/134 0/134 0/132 0/400 \n C-Reactive Protein Measurement \n Low 59/122 (48.4%) 56/118 (47.5%) 58/121 (47.9%) 173/361 (47.9%)\n High 54/122 (44.3%) 46/122 (37.7%) 44/122 (36.1%) 144/366 (39.3%)\nIMMUNOLOGY \n Immunoglobulin A Measurement \n Low 0/134 0/134 0/132 0/400 \n High 47/124 (37.9%) 54/120 (45%) 47/115 (40.9%) 148/359 (41.2%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nBecause the random.cdisc.data dataset adlb doesn’t have the PARCAT1 variable, this variable is created from LBCAT in pre-processing.\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(forcats)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\nadlb <- adlb %>%\n mutate(\n PARAM = with_label(.data$PARAM, \"Laboratory Test\"),\n ANRIND = with_label(.data$ANRIND, \"Direction of Abnormality\")\n ) %>%\n mutate(\n PARCAT1 = LBCAT\n ) %>%\n mutate(\n ANRIND = fct_collapse(.data$ATOXGR,\n \"LOW\" = c(\"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-2\", \"-1\", \"0\", \"1\", \"2\"),\n \"HIGH\" = c(\"3\", \"4\")\n ),\n BNRIND = fct_collapse(.data$BTOXGR,\n \"LOW\" = c(\"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-2\", \"-1\", \"0\", \"1\", \"2\"),\n \"HIGH\" = c(\"3\", \"4\")\n ),\n PARCAT1 = LBCAT\n ) %>%\n filter(ONTRTFL == \"Y\")\n\n\nadlb_alt_cut <- adlb %>%\n mutate(\n ANRIND = fct_collapse(.data$ATOXGR,\n \"LOW\" = c(\"-2\", \"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-1\", \"0\", \"1\"),\n \"HIGH\" = c(\"2\", \"3\", \"4\")\n ),\n BNRIND = fct_collapse(.data$BTOXGR,\n \"LOW\" = c(\"-2\", \"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-1\", \"0\", \"1\"),\n \"HIGH\" = c(\"2\", \"3\", \"4\")\n )\n ) %>%\n filter(ONTRTFL == \"Y\")\n\nadlb <- adlb %>% var_relabel(\n PARCAT1 = \"Category for Lab Test\",\n PARAM = \"Parameter\"\n)", + "text": "Output\n\n\nStandard Table (Low)\nStandard Table (High)\nTable Without Patients with Missing Baseline (Low)\nTable with Missing Baseline Considered as Grade 0 (High)\nTable with Fill-In of Grades (High)\nData Setup\n\n\n\nNote that the worst laboratory flag (below WGRLOVFL) must be selected appropriately to match the direction of abnormality (here Low). New grouping variables ATOXGR_GP and BTOXGR_GP are created to display the correct output.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRLOVFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- adsl_f %>%\n h_adsl_adlb_merge_using_worst_flag(\n adlb_f,\n worst_flag = c(\"WGRLOVFL\" = \"Y\"),\n by_visit = TRUE,\n no_fillin_visits = c(\"SCREENING\", \"BASELINE\", \"UNSCHEDULED\")\n )\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = case_when(\n ATOXGR %in% c(0, 1, 2, 3, 4) ~ \"Not Low\",\n ATOXGR == -1 ~ \"1\",\n ATOXGR == -2 ~ \"2\",\n ATOXGR == -3 ~ \"3\",\n ATOXGR == -4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n )\n ) %>%\n mutate(\n BTOXGR_GP = case_when(\n BTOXGR %in% c(0, 1, 2, 3, 4) ~ \"Not Low\",\n BTOXGR == -1 ~ \"1\",\n BTOXGR == -2 ~ \"2\",\n BTOXGR == -3 ~ \"3\",\n BTOXGR == -4 ~ \"4\",\n BTOXGR == \"<Missing>\" ~ \"Missing\"\n )\n )\n\nadlb_out <- adlb_out %>% mutate(\n AVISIT = forcats::fct_reorder(AVISIT, AVISITN),\n ATOXGR_GP = factor(ATOXGR_GP, levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\", \"Missing\")),\n BTOXGR_GP = factor(BTOXGR_GP, levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n)\n\nadlb_out <- adlb_out %>%\n var_relabel(\n PARAMCD = \"Parameter Code\",\n AVISIT = \"Visit\",\n ATOXGR_GP = \"NCI CTCAE Grade at Visit\",\n BTOXGR_GP = \"Baseline NCI CTCAE Grade\"\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAMCD\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$PARAMCD)\n ) %>%\n split_rows_by(\n \"AVISIT\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$AVISIT)\n ) %>%\n split_rows_by(\n \"ATOXGR_GP\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$ATOXGR_GP)\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\")) %>%\n count_occurrences(\"BTOXGR_GP\", denom = \"n\", drop = TRUE) %>%\n append_varlabels(adlb_out, \"BTOXGR_GP\", indent = 3L) %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f)\n\nresult\n\nParameter Code \n Visit \n NCI CTCAE Grade at Visit A: Drug X B: Placebo C: Combination\n Baseline NCI CTCAE Grade (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————\nCRP \n WEEK 1 DAY 8 \n Not Low (n) 116 110 101 \n Not Low 103 (88.8%) 91 (82.7%) 88 (87.1%) \n 1 3 (2.6%) 5 (4.5%) 6 (5.9%) \n 2 4 (3.4%) 9 (8.2%) 2 (2.0%) \n 3 3 (2.6%) 4 (3.6%) 4 (4.0%) \n 4 3 (2.6%) 1 (0.9%) 1 (1.0%) \n 1 (n) 4 7 5 \n Not Low 3 (75.0%) 7 (100%) 4 (80.0%) \n 3 1 (25.0%) 0 1 (20.0%) \n 2 (n) 5 6 11 \n Not Low 5 (100%) 5 (83.3%) 8 (72.7%) \n 1 0 0 1 (9.1%) \n 3 0 0 2 (18.2%) \n 4 0 1 (16.7%) 0 \n 3 (n) 6 8 5 \n Not Low 6 (100%) 7 (87.5%) 5 (100%) \n 3 0 1 (12.5%) 0 \n 4 (n) 3 3 10 \n Not Low 2 (66.7%) 3 (100%) 7 (70.0%) \n 1 0 0 2 (20.0%) \n 2 1 (33.3%) 0 0 \n 4 0 0 1 (10.0%) \n WEEK 2 DAY 15 \n Not Low (n) 106 111 116 \n Not Low 93 (87.7%) 93 (83.8%) 100 (86.2%) \n 1 3 (2.8%) 4 (3.6%) 8 (6.9%) \n 2 5 (4.7%) 7 (6.3%) 2 (1.7%) \n 3 2 (1.9%) 5 (4.5%) 6 (5.2%) \n 4 3 (2.8%) 2 (1.8%) 0 \n 1 (n) 15 9 2 \n Not Low 13 (86.7%) 8 (88.9%) 1 (50.0%) \n 2 0 1 (11.1%) 0 \n 3 2 (13.3%) 0 0 \n 4 0 0 1 (50.0%) \n 2 (n) 3 3 6 \n Not Low 3 (100%) 3 (100%) 4 (66.7%) \n 1 0 0 1 (16.7%) \n 3 0 0 1 (16.7%) \n 3 (n) 7 7 6 \n Not Low 7 (100%) 6 (85.7%) 5 (83.3%) \n 2 0 1 (14.3%) 0 \n 4 0 0 1 (16.7%) \n 4 (n) 3 4 2 \n Not Low 3 (100%) 3 (75.0%) 2 (100%) \n 1 0 1 (25.0%) 0 \n WEEK 3 DAY 22 \n Not Low (n) 119 110 114 \n Not Low 104 (87.4%) 92 (83.6%) 94 (82.5%) \n 1 3 (2.5%) 4 (3.6%) 9 (7.9%) \n 2 5 (4.2%) 7 (6.4%) 2 (1.8%) \n 3 4 (3.4%) 5 (4.5%) 7 (6.1%) \n 4 3 (2.5%) 2 (1.8%) 2 (1.8%) \n 1 (n) 9 9 6 \n Not Low 9 (100%) 7 (77.8%) 6 (100%) \n 2 0 2 (22.2%) 0 \n 2 (n) 1 7 3 \n Not Low 1 (100%) 6 (85.7%) 3 (100%) \n 1 0 1 (14.3%) 0 \n 3 (n) 4 5 4 \n Not Low 4 (100%) 5 (100%) 4 (100%) \n 4 (n) 1 3 5 \n Not Low 1 (100%) 3 (100%) 5 (100%) \n WEEK 4 DAY 29 \n Not Low (n) 101 119 111 \n Not Low 89 (88.1%) 100 (84.0%) 96 (86.5%) \n 1 3 (3.0%) 4 (3.4%) 6 (5.4%) \n 2 4 (4.0%) 8 (6.7%) 1 (0.9%) \n 3 2 (2.0%) 5 (4.2%) 6 (5.4%) \n 4 3 (3.0%) 2 (1.7%) 2 (1.8%) \n 1 (n) 10 5 6 \n Not Low 9 (90.0%) 5 (100%) 5 (83.3%) \n 1 0 0 1 (16.7%) \n 2 1 (10.0%) 0 0 \n 2 (n) 13 4 6 \n Not Low 13 (100%) 3 (75.0%) 5 (83.3%) \n 1 0 0 1 (16.7%) \n 2 0 1 (25.0%) 0 \n 3 (n) 8 2 6 \n Not Low 6 (75.0%) 1 (50.0%) 5 (83.3%) \n 1 0 1 (50.0%) 0 \n 2 0 0 1 (16.7%) \n 3 2 (25.0%) 0 0 \n 4 (n) 2 4 3 \n Not Low 2 (100%) 4 (100%) 1 (33.3%) \n 1 0 0 1 (33.3%) \n 3 0 0 1 (33.3%) \n WEEK 5 DAY 36 \n Not Low (n) 115 112 111 \n Not Low 102 (88.7%) 94 (83.9%) 96 (86.5%) \n 1 2 (1.7%) 4 (3.6%) 6 (5.4%) \n 2 5 (4.3%) 7 (6.2%) 2 (1.8%) \n 3 3 (2.6%) 5 (4.5%) 5 (4.5%) \n 4 3 (2.6%) 2 (1.8%) 2 (1.8%) \n 1 (n) 5 7 6 \n Not Low 5 (100%) 4 (57.1%) 5 (83.3%) \n 1 0 1 (14.3%) 1 (16.7%) \n 2 0 2 (28.6%) 0 \n 2 (n) 5 11 6 \n Not Low 5 (100%) 11 (100%) 6 (100%) \n 3 (n) 8 2 7 \n Not Low 6 (75.0%) 2 (100%) 4 (57.1%) \n 1 1 (12.5%) 0 1 (14.3%) \n 3 1 (12.5%) 0 2 (28.6%) \n 4 (n) 1 2 2 \n Not Low 1 (100%) 2 (100%) 1 (50.0%) \n 1 0 0 1 (50.0%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote that the worst laboratory flag (below WGRHIVFL) must be selected appropriately to match the direction of abnormality (here High). New grouping variables ATOXGR_GP and BTOXGR_GP are created to display the correct output.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRHIVFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- adsl_f %>%\n h_adsl_adlb_merge_using_worst_flag(\n adlb_f,\n worst_flag = c(\"WGRHIVFL\" = \"Y\"),\n by_visit = TRUE,\n no_fillin_visits = c(\"SCREENING\", \"BASELINE\", \"UNSCHEDULED\")\n )\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = case_when(\n ATOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n ATOXGR == 1 ~ \"1\",\n ATOXGR == 2 ~ \"2\",\n ATOXGR == 3 ~ \"3\",\n ATOXGR == 4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n )\n ) %>%\n mutate(\n BTOXGR_GP = case_when(\n BTOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n BTOXGR == 1 ~ \"1\",\n BTOXGR == 2 ~ \"2\",\n BTOXGR == 3 ~ \"3\",\n BTOXGR == 4 ~ \"4\",\n BTOXGR == \"<Missing>\" ~ \"Missing\"\n )\n )\n\nadlb_out <- adlb_out %>% mutate(\n AVISIT = forcats::fct_reorder(AVISIT, AVISITN),\n ATOXGR_GP = factor(ATOXGR_GP, levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\")),\n BTOXGR_GP = factor(BTOXGR_GP, levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n)\n\nadlb_out <- adlb_out %>%\n var_relabel(\n PARAMCD = \"Parameter Code\",\n AVISIT = \"Visit\",\n ATOXGR_GP = \"NCI CTCAE Grade at Visit\",\n BTOXGR_GP = \"Baseline NCI CTCAE Grade\"\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAMCD\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$PARAMCD)\n ) %>%\n split_rows_by(\n \"AVISIT\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$AVISIT)\n ) %>%\n split_rows_by(\n \"ATOXGR_GP\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$ATOXGR_GP)\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\")) %>%\n count_occurrences(\"BTOXGR_GP\", denom = \"n\", drop = TRUE) %>%\n append_varlabels(adlb_out, \"BTOXGR_GP\", indent = 3L) %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f)\n\nresult\n\nParameter Code \n Visit \n NCI CTCAE Grade at Visit A: Drug X B: Placebo C: Combination\n Baseline NCI CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————\nCRP \n WEEK 1 DAY 8 \n Not High (n) 111 110 112 \n Not High 93 (83.8%) 92 (83.6%) 98 (87.5%) \n 1 8 (7.2%) 7 (6.4%) 5 (4.5%) \n 2 2 (1.8%) 6 (5.5%) 7 (6.2%) \n 3 6 (5.4%) 3 (2.7%) 2 (1.8%) \n 4 2 (1.8%) 2 (1.8%) 0 \n 1 (n) 8 11 6 \n Not High 7 (87.5%) 11 (100%) 5 (83.3%) \n 3 1 (12.5%) 0 1 (16.7%) \n 2 (n) 6 4 5 \n Not High 6 (100%) 1 (25.0%) 4 (80.0%) \n 1 0 3 (75.0%) 1 (20.0%) \n 3 (n) 8 3 4 \n Not High 7 (87.5%) 3 (100%) 4 (100%) \n 4 1 (12.5%) 0 0 \n 4 (n) 1 6 5 \n Not High 1 (100%) 5 (83.3%) 4 (80.0%) \n 1 0 0 1 (20.0%) \n 3 0 1 (16.7%) 0 \n WEEK 2 DAY 15 \n Not High (n) 117 113 113 \n Not High 99 (84.6%) 95 (84.1%) 100 (88.5%) \n 1 7 (6.0%) 6 (5.3%) 4 (3.5%) \n 2 2 (1.7%) 6 (5.3%) 6 (5.3%) \n 3 6 (5.1%) 4 (3.5%) 3 (2.7%) \n 4 3 (2.6%) 2 (1.8%) 0 \n 1 (n) 6 9 7 \n Not High 5 (83.3%) 8 (88.9%) 6 (85.7%) \n 1 0 1 (11.1%) 0 \n 2 0 0 1 (14.3%) \n 3 1 (16.7%) 0 0 \n 2 (n) 4 4 6 \n Not High 4 (100%) 4 (100%) 3 (50.0%) \n 1 0 0 3 (50.0%) \n 3 (n) 5 3 5 \n Not High 4 (80.0%) 2 (66.7%) 5 (100%) \n 1 1 (20.0%) 1 (33.3%) 0 \n 4 (n) 2 5 1 \n Not High 2 (100%) 3 (60.0%) 1 (100%) \n 1 0 2 (40.0%) 0 \n WEEK 3 DAY 22 \n Not High (n) 110 111 114 \n Not High 92 (83.6%) 94 (84.7%) 98 (86.0%) \n 1 8 (7.3%) 9 (8.1%) 7 (6.1%) \n 2 2 (1.8%) 5 (4.5%) 6 (5.3%) \n 3 5 (4.5%) 2 (1.8%) 3 (2.6%) \n 4 3 (2.7%) 1 (0.9%) 0 \n 1 (n) 7 8 7 \n Not High 7 (100%) 5 (62.5%) 6 (85.7%) \n 1 0 1 (12.5%) 0 \n 2 0 1 (12.5%) 1 (14.3%) \n 3 0 1 (12.5%) 0 \n 2 (n) 9 7 5 \n Not High 9 (100%) 6 (85.7%) 5 (100%) \n 3 0 1 (14.3%) 0 \n 3 (n) 6 3 4 \n Not High 5 (83.3%) 2 (66.7%) 4 (100%) \n 3 1 (16.7%) 0 0 \n 4 0 1 (33.3%) 0 \n 4 (n) 2 5 2 \n Not High 1 (50.0%) 5 (100%) 2 (100%) \n 3 1 (50.0%) 0 0 \n WEEK 4 DAY 29 \n Not High (n) 115 117 113 \n Not High 97 (84.3%) 101 (86.3%) 99 (87.6%) \n 1 8 (7.0%) 7 (6.0%) 6 (5.3%) \n 2 2 (1.7%) 6 (5.1%) 5 (4.4%) \n 3 7 (6.1%) 3 (2.6%) 3 (2.7%) \n 4 1 (0.9%) 0 0 \n 1 (n) 4 3 11 \n Not High 4 (100%) 2 (66.7%) 10 (90.9%) \n 2 0 0 1 (9.1%) \n 4 0 1 (33.3%) 0 \n 2 (n) 6 4 2 \n Not High 6 (100%) 3 (75.0%) 2 (100%) \n 1 0 1 (25.0%) 0 \n 3 (n) 6 7 4 \n Not High 5 (83.3%) 4 (57.1%) 4 (100%) \n 1 0 1 (14.3%) 0 \n 3 0 1 (14.3%) 0 \n 4 1 (16.7%) 1 (14.3%) 0 \n 4 (n) 3 3 2 \n Not High 2 (66.7%) 2 (66.7%) 0 \n 1 0 1 (33.3%) 1 (50.0%) \n 2 0 0 1 (50.0%) \n 4 1 (33.3%) 0 0 \n WEEK 5 DAY 36 \n Not High (n) 111 111 119 \n Not High 95 (85.6%) 95 (85.6%) 104 (87.4%) \n 1 6 (5.4%) 8 (7.2%) 6 (5.0%) \n 2 1 (0.9%) 5 (4.5%) 6 (5.0%) \n 3 6 (5.4%) 2 (1.8%) 3 (2.5%) \n 4 3 (2.7%) 1 (0.9%) 0 \n 1 (n) 8 11 5 \n Not High 7 (87.5%) 9 (81.8%) 4 (80.0%) \n 1 0 1 (9.1%) 0 \n 2 0 0 1 (20.0%) \n 3 1 (12.5%) 1 (9.1%) 0 \n 2 (n) 7 6 3 \n Not High 5 (71.4%) 3 (50.0%) 2 (66.7%) \n 1 1 (14.3%) 1 (16.7%) 1 (33.3%) \n 2 1 (14.3%) 1 (16.7%) 0 \n 4 0 1 (16.7%) 0 \n 3 (n) 3 3 4 \n Not High 3 (100%) 3 (100%) 4 (100%) \n 4 (n) 5 3 1 \n Not High 4 (80.0%) 2 (66.7%) 1 (100%) \n 1 1 (20.0%) 0 0 \n 3 0 1 (33.3%) 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote that missing baseline values are filtered out in the pre-processing step.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRLOVFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- adsl_f %>%\n h_adsl_adlb_merge_using_worst_flag(\n adlb_f,\n worst_flag = c(\"WGRLOVFL\" = \"Y\"),\n by_visit = TRUE,\n no_fillin_visits = c(\"SCREENING\", \"BASELINE\", \"UNSCHEDULED\")\n )\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n filter(BTOXGR != \"<Missing>\") %>% # filter out missing baseline grade\n mutate(\n ATOXGR_GP = case_when(\n ATOXGR %in% c(0, 1, 2, 3, 4) ~ \"Not Low\",\n ATOXGR == -1 ~ \"1\",\n ATOXGR == -2 ~ \"2\",\n ATOXGR == -3 ~ \"3\",\n ATOXGR == -4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n )\n ) %>%\n mutate(\n BTOXGR_GP = case_when(\n BTOXGR %in% c(0, 1, 2, 3, 4) ~ \"Not Low\",\n BTOXGR == -1 ~ \"1\",\n BTOXGR == -2 ~ \"2\",\n BTOXGR == -3 ~ \"3\",\n BTOXGR == -4 ~ \"4\"\n )\n )\n\nadlb_out <- adlb_out %>% mutate(\n AVISIT = forcats::fct_reorder(AVISIT, AVISITN),\n ATOXGR_GP = factor(ATOXGR_GP, levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\", \"Missing\")),\n BTOXGR_GP = factor(BTOXGR_GP, levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\"))\n)\n\nadlb_out <- adlb_out %>%\n var_relabel(\n PARAMCD = \"Parameter Code\",\n AVISIT = \"Visit\",\n ATOXGR_GP = \"NCI CTCAE Grade at Visit\",\n BTOXGR_GP = \"Baseline NCI CTCAE Grade\"\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAMCD\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$PARAMCD)\n ) %>%\n split_rows_by(\n \"AVISIT\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$AVISIT)\n ) %>%\n split_rows_by(\n \"ATOXGR_GP\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$ATOXGR_GP)\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\")) %>%\n count_occurrences(\"BTOXGR_GP\", denom = \"n\", drop = TRUE) %>%\n append_varlabels(adlb_out, \"BTOXGR_GP\", indent = 3L) %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f)\n\nresult\n\nParameter Code \n Visit \n NCI CTCAE Grade at Visit A: Drug X B: Placebo C: Combination\n Baseline NCI CTCAE Grade (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————\nCRP \n WEEK 1 DAY 8 \n Not Low (n) 116 110 101 \n Not Low 103 (88.8%) 91 (82.7%) 88 (87.1%) \n 1 3 (2.6%) 5 (4.5%) 6 (5.9%) \n 2 4 (3.4%) 9 (8.2%) 2 (2.0%) \n 3 3 (2.6%) 4 (3.6%) 4 (4.0%) \n 4 3 (2.6%) 1 (0.9%) 1 (1.0%) \n 1 (n) 4 7 5 \n Not Low 3 (75.0%) 7 (100%) 4 (80.0%) \n 3 1 (25.0%) 0 1 (20.0%) \n 2 (n) 5 6 11 \n Not Low 5 (100%) 5 (83.3%) 8 (72.7%) \n 1 0 0 1 (9.1%) \n 3 0 0 2 (18.2%) \n 4 0 1 (16.7%) 0 \n 3 (n) 6 8 5 \n Not Low 6 (100%) 7 (87.5%) 5 (100%) \n 3 0 1 (12.5%) 0 \n 4 (n) 3 3 10 \n Not Low 2 (66.7%) 3 (100%) 7 (70.0%) \n 1 0 0 2 (20.0%) \n 2 1 (33.3%) 0 0 \n 4 0 0 1 (10.0%) \n WEEK 2 DAY 15 \n Not Low (n) 106 111 116 \n Not Low 93 (87.7%) 93 (83.8%) 100 (86.2%) \n 1 3 (2.8%) 4 (3.6%) 8 (6.9%) \n 2 5 (4.7%) 7 (6.3%) 2 (1.7%) \n 3 2 (1.9%) 5 (4.5%) 6 (5.2%) \n 4 3 (2.8%) 2 (1.8%) 0 \n 1 (n) 15 9 2 \n Not Low 13 (86.7%) 8 (88.9%) 1 (50.0%) \n 2 0 1 (11.1%) 0 \n 3 2 (13.3%) 0 0 \n 4 0 0 1 (50.0%) \n 2 (n) 3 3 6 \n Not Low 3 (100%) 3 (100%) 4 (66.7%) \n 1 0 0 1 (16.7%) \n 3 0 0 1 (16.7%) \n 3 (n) 7 7 6 \n Not Low 7 (100%) 6 (85.7%) 5 (83.3%) \n 2 0 1 (14.3%) 0 \n 4 0 0 1 (16.7%) \n 4 (n) 3 4 2 \n Not Low 3 (100%) 3 (75.0%) 2 (100%) \n 1 0 1 (25.0%) 0 \n WEEK 3 DAY 22 \n Not Low (n) 119 110 114 \n Not Low 104 (87.4%) 92 (83.6%) 94 (82.5%) \n 1 3 (2.5%) 4 (3.6%) 9 (7.9%) \n 2 5 (4.2%) 7 (6.4%) 2 (1.8%) \n 3 4 (3.4%) 5 (4.5%) 7 (6.1%) \n 4 3 (2.5%) 2 (1.8%) 2 (1.8%) \n 1 (n) 9 9 6 \n Not Low 9 (100%) 7 (77.8%) 6 (100%) \n 2 0 2 (22.2%) 0 \n 2 (n) 1 7 3 \n Not Low 1 (100%) 6 (85.7%) 3 (100%) \n 1 0 1 (14.3%) 0 \n 3 (n) 4 5 4 \n Not Low 4 (100%) 5 (100%) 4 (100%) \n 4 (n) 1 3 5 \n Not Low 1 (100%) 3 (100%) 5 (100%) \n WEEK 4 DAY 29 \n Not Low (n) 101 119 111 \n Not Low 89 (88.1%) 100 (84.0%) 96 (86.5%) \n 1 3 (3.0%) 4 (3.4%) 6 (5.4%) \n 2 4 (4.0%) 8 (6.7%) 1 (0.9%) \n 3 2 (2.0%) 5 (4.2%) 6 (5.4%) \n 4 3 (3.0%) 2 (1.7%) 2 (1.8%) \n 1 (n) 10 5 6 \n Not Low 9 (90.0%) 5 (100%) 5 (83.3%) \n 1 0 0 1 (16.7%) \n 2 1 (10.0%) 0 0 \n 2 (n) 13 4 6 \n Not Low 13 (100%) 3 (75.0%) 5 (83.3%) \n 1 0 0 1 (16.7%) \n 2 0 1 (25.0%) 0 \n 3 (n) 8 2 6 \n Not Low 6 (75.0%) 1 (50.0%) 5 (83.3%) \n 1 0 1 (50.0%) 0 \n 2 0 0 1 (16.7%) \n 3 2 (25.0%) 0 0 \n 4 (n) 2 4 3 \n Not Low 2 (100%) 4 (100%) 1 (33.3%) \n 1 0 0 1 (33.3%) \n 3 0 0 1 (33.3%) \n WEEK 5 DAY 36 \n Not Low (n) 115 112 111 \n Not Low 102 (88.7%) 94 (83.9%) 96 (86.5%) \n 1 2 (1.7%) 4 (3.6%) 6 (5.4%) \n 2 5 (4.3%) 7 (6.2%) 2 (1.8%) \n 3 3 (2.6%) 5 (4.5%) 5 (4.5%) \n 4 3 (2.6%) 2 (1.8%) 2 (1.8%) \n 1 (n) 5 7 6 \n Not Low 5 (100%) 4 (57.1%) 5 (83.3%) \n 1 0 1 (14.3%) 1 (16.7%) \n 2 0 2 (28.6%) 0 \n 2 (n) 5 11 6 \n Not Low 5 (100%) 11 (100%) 6 (100%) \n 3 (n) 8 2 7 \n Not Low 6 (75.0%) 2 (100%) 4 (57.1%) \n 1 1 (12.5%) 0 1 (14.3%) \n 3 1 (12.5%) 0 2 (28.6%) \n 4 (n) 1 2 2 \n Not Low 1 (100%) 2 (100%) 1 (50.0%) \n 1 0 0 1 (50.0%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote that when BTOXGR is missing, the grouping variable BTOXGR_GP is now \"Not High\" instead of \"Missing\" compared to Standard Table (High).\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRHIVFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- adsl_f %>%\n h_adsl_adlb_merge_using_worst_flag(\n adlb_f,\n worst_flag = c(\"WGRHIVFL\" = \"Y\"),\n by_visit = TRUE,\n no_fillin_visits = c(\"SCREENING\", \"BASELINE\", \"UNSCHEDULED\")\n )\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = case_when(\n ATOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n ATOXGR == 1 ~ \"1\",\n ATOXGR == 2 ~ \"2\",\n ATOXGR == 3 ~ \"3\",\n ATOXGR == 4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n )\n ) %>%\n mutate(\n BTOXGR_GP = case_when(\n BTOXGR %in% c(0, -1, -2, -3, -4, \"<Missing>\") ~ \"Not High\", # Missing BTOXGR now grouped to \"Not High\"\n BTOXGR == 1 ~ \"1\",\n BTOXGR == 2 ~ \"2\",\n BTOXGR == 3 ~ \"3\",\n BTOXGR == 4 ~ \"4\"\n )\n )\n\nadlb_out <- adlb_out %>% mutate(\n AVISIT = forcats::fct_reorder(AVISIT, AVISITN),\n ATOXGR_GP = factor(ATOXGR_GP, levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\")),\n BTOXGR_GP = factor(BTOXGR_GP, levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n)\n\nadlb_out <- adlb_out %>%\n var_relabel(\n PARAMCD = \"Parameter Code\",\n AVISIT = \"Visit\",\n ATOXGR_GP = \"NCI CTCAE Grade at Visit\",\n BTOXGR_GP = \"Baseline NCI CTCAE Grade\"\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAMCD\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$PARAMCD)\n ) %>%\n split_rows_by(\n \"AVISIT\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$AVISIT)\n ) %>%\n split_rows_by(\n \"ATOXGR_GP\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$ATOXGR_GP)\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\")) %>%\n count_occurrences(\"BTOXGR_GP\", denom = \"n\", drop = TRUE) %>%\n append_varlabels(adlb_out, \"BTOXGR_GP\", indent = 3L) %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f)\n\nresult\n\nParameter Code \n Visit \n NCI CTCAE Grade at Visit A: Drug X B: Placebo C: Combination\n Baseline NCI CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————\nCRP \n WEEK 1 DAY 8 \n Not High (n) 111 110 112 \n Not High 93 (83.8%) 92 (83.6%) 98 (87.5%) \n 1 8 (7.2%) 7 (6.4%) 5 (4.5%) \n 2 2 (1.8%) 6 (5.5%) 7 (6.2%) \n 3 6 (5.4%) 3 (2.7%) 2 (1.8%) \n 4 2 (1.8%) 2 (1.8%) 0 \n 1 (n) 8 11 6 \n Not High 7 (87.5%) 11 (100%) 5 (83.3%) \n 3 1 (12.5%) 0 1 (16.7%) \n 2 (n) 6 4 5 \n Not High 6 (100%) 1 (25.0%) 4 (80.0%) \n 1 0 3 (75.0%) 1 (20.0%) \n 3 (n) 8 3 4 \n Not High 7 (87.5%) 3 (100%) 4 (100%) \n 4 1 (12.5%) 0 0 \n 4 (n) 1 6 5 \n Not High 1 (100%) 5 (83.3%) 4 (80.0%) \n 1 0 0 1 (20.0%) \n 3 0 1 (16.7%) 0 \n WEEK 2 DAY 15 \n Not High (n) 117 113 113 \n Not High 99 (84.6%) 95 (84.1%) 100 (88.5%) \n 1 7 (6.0%) 6 (5.3%) 4 (3.5%) \n 2 2 (1.7%) 6 (5.3%) 6 (5.3%) \n 3 6 (5.1%) 4 (3.5%) 3 (2.7%) \n 4 3 (2.6%) 2 (1.8%) 0 \n 1 (n) 6 9 7 \n Not High 5 (83.3%) 8 (88.9%) 6 (85.7%) \n 1 0 1 (11.1%) 0 \n 2 0 0 1 (14.3%) \n 3 1 (16.7%) 0 0 \n 2 (n) 4 4 6 \n Not High 4 (100%) 4 (100%) 3 (50.0%) \n 1 0 0 3 (50.0%) \n 3 (n) 5 3 5 \n Not High 4 (80.0%) 2 (66.7%) 5 (100%) \n 1 1 (20.0%) 1 (33.3%) 0 \n 4 (n) 2 5 1 \n Not High 2 (100%) 3 (60.0%) 1 (100%) \n 1 0 2 (40.0%) 0 \n WEEK 3 DAY 22 \n Not High (n) 110 111 114 \n Not High 92 (83.6%) 94 (84.7%) 98 (86.0%) \n 1 8 (7.3%) 9 (8.1%) 7 (6.1%) \n 2 2 (1.8%) 5 (4.5%) 6 (5.3%) \n 3 5 (4.5%) 2 (1.8%) 3 (2.6%) \n 4 3 (2.7%) 1 (0.9%) 0 \n 1 (n) 7 8 7 \n Not High 7 (100%) 5 (62.5%) 6 (85.7%) \n 1 0 1 (12.5%) 0 \n 2 0 1 (12.5%) 1 (14.3%) \n 3 0 1 (12.5%) 0 \n 2 (n) 9 7 5 \n Not High 9 (100%) 6 (85.7%) 5 (100%) \n 3 0 1 (14.3%) 0 \n 3 (n) 6 3 4 \n Not High 5 (83.3%) 2 (66.7%) 4 (100%) \n 3 1 (16.7%) 0 0 \n 4 0 1 (33.3%) 0 \n 4 (n) 2 5 2 \n Not High 1 (50.0%) 5 (100%) 2 (100%) \n 3 1 (50.0%) 0 0 \n WEEK 4 DAY 29 \n Not High (n) 115 117 113 \n Not High 97 (84.3%) 101 (86.3%) 99 (87.6%) \n 1 8 (7.0%) 7 (6.0%) 6 (5.3%) \n 2 2 (1.7%) 6 (5.1%) 5 (4.4%) \n 3 7 (6.1%) 3 (2.6%) 3 (2.7%) \n 4 1 (0.9%) 0 0 \n 1 (n) 4 3 11 \n Not High 4 (100%) 2 (66.7%) 10 (90.9%) \n 2 0 0 1 (9.1%) \n 4 0 1 (33.3%) 0 \n 2 (n) 6 4 2 \n Not High 6 (100%) 3 (75.0%) 2 (100%) \n 1 0 1 (25.0%) 0 \n 3 (n) 6 7 4 \n Not High 5 (83.3%) 4 (57.1%) 4 (100%) \n 1 0 1 (14.3%) 0 \n 3 0 1 (14.3%) 0 \n 4 1 (16.7%) 1 (14.3%) 0 \n 4 (n) 3 3 2 \n Not High 2 (66.7%) 2 (66.7%) 0 \n 1 0 1 (33.3%) 1 (50.0%) \n 2 0 0 1 (50.0%) \n 4 1 (33.3%) 0 0 \n WEEK 5 DAY 36 \n Not High (n) 111 111 119 \n Not High 95 (85.6%) 95 (85.6%) 104 (87.4%) \n 1 6 (5.4%) 8 (7.2%) 6 (5.0%) \n 2 1 (0.9%) 5 (4.5%) 6 (5.0%) \n 3 6 (5.4%) 2 (1.8%) 3 (2.5%) \n 4 3 (2.7%) 1 (0.9%) 0 \n 1 (n) 8 11 5 \n Not High 7 (87.5%) 9 (81.8%) 4 (80.0%) \n 1 0 1 (9.1%) 0 \n 2 0 0 1 (20.0%) \n 3 1 (12.5%) 1 (9.1%) 0 \n 2 (n) 7 6 3 \n Not High 5 (71.4%) 3 (50.0%) 2 (66.7%) \n 1 1 (14.3%) 1 (16.7%) 1 (33.3%) \n 2 1 (14.3%) 1 (16.7%) 0 \n 4 0 1 (16.7%) 0 \n 3 (n) 3 3 4 \n Not High 3 (100%) 3 (100%) 4 (100%) \n 4 (n) 5 3 1 \n Not High 4 (80.0%) 2 (66.7%) 1 (100%) \n 1 1 (20.0%) 0 0 \n 3 0 1 (33.3%) 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPre-processing is the same as for Standard Table (High), but in order to keep all levels, the drop argument in count_occurrences is set to FALSE.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRHIVFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- adsl_f %>%\n h_adsl_adlb_merge_using_worst_flag(\n adlb_f,\n worst_flag = c(\"WGRHIVFL\" = \"Y\"),\n by_visit = TRUE,\n no_fillin_visits = c(\"SCREENING\", \"BASELINE\", \"UNSCHEDULED\")\n )\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = case_when(\n ATOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n ATOXGR == 1 ~ \"1\",\n ATOXGR == 2 ~ \"2\",\n ATOXGR == 3 ~ \"3\",\n ATOXGR == 4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n )\n ) %>%\n mutate(\n BTOXGR_GP = case_when(\n BTOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n BTOXGR == 1 ~ \"1\",\n BTOXGR == 2 ~ \"2\",\n BTOXGR == 3 ~ \"3\",\n BTOXGR == 4 ~ \"4\",\n BTOXGR == \"<Missing>\" ~ \"Missing\"\n )\n )\n\nadlb_out <- adlb_out %>% mutate(\n AVISIT = forcats::fct_reorder(AVISIT, AVISITN),\n ATOXGR_GP = factor(ATOXGR_GP, levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\")),\n BTOXGR_GP = factor(BTOXGR_GP, levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n)\n\nadlb_out <- adlb_out %>%\n var_relabel(\n PARAMCD = \"Parameter Code\",\n AVISIT = \"Visit\",\n ATOXGR_GP = \"NCI CTCAE Grade at Visit\",\n BTOXGR_GP = \"Baseline NCI CTCAE Grade\"\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAMCD\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$PARAMCD)\n ) %>%\n split_rows_by(\n \"AVISIT\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb_out$AVISIT)\n ) %>%\n split_rows_by(\n \"ATOXGR_GP\",\n split_fun = keep_split_levels(c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\")),\n label_pos = \"topleft\",\n split_label = obj_label(adlb_out$ATOXGR_GP)\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\")) %>%\n count_occurrences(\"BTOXGR_GP\", denom = \"n\", drop = FALSE) %>%\n append_varlabels(adlb_out, \"BTOXGR_GP\", indent = 3L) %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f)\n\nresult\n\nParameter Code \n Visit \n NCI CTCAE Grade at Visit A: Drug X B: Placebo C: Combination\n Baseline NCI CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————\nCRP \n WEEK 1 DAY 8 \n Not High (n) 111 110 112 \n Not High 93 (83.8%) 92 (83.6%) 98 (87.5%) \n 1 8 (7.2%) 7 (6.4%) 5 (4.5%) \n 2 2 (1.8%) 6 (5.5%) 7 (6.2%) \n 3 6 (5.4%) 3 (2.7%) 2 (1.8%) \n 4 2 (1.8%) 2 (1.8%) 0 \n Missing 0 0 0 \n 1 (n) 8 11 6 \n Not High 7 (87.5%) 11 (100%) 5 (83.3%) \n 1 0 0 0 \n 2 0 0 0 \n 3 1 (12.5%) 0 1 (16.7%) \n 4 0 0 0 \n Missing 0 0 0 \n 2 (n) 6 4 5 \n Not High 6 (100%) 1 (25.0%) 4 (80.0%) \n 1 0 3 (75.0%) 1 (20.0%) \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 3 (n) 8 3 4 \n Not High 7 (87.5%) 3 (100%) 4 (100%) \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 1 (12.5%) 0 0 \n Missing 0 0 0 \n 4 (n) 1 6 5 \n Not High 1 (100%) 5 (83.3%) 4 (80.0%) \n 1 0 0 1 (20.0%) \n 2 0 0 0 \n 3 0 1 (16.7%) 0 \n 4 0 0 0 \n Missing 0 0 0 \n Missing (n) 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n WEEK 2 DAY 15 \n Not High (n) 117 113 113 \n Not High 99 (84.6%) 95 (84.1%) 100 (88.5%) \n 1 7 (6.0%) 6 (5.3%) 4 (3.5%) \n 2 2 (1.7%) 6 (5.3%) 6 (5.3%) \n 3 6 (5.1%) 4 (3.5%) 3 (2.7%) \n 4 3 (2.6%) 2 (1.8%) 0 \n Missing 0 0 0 \n 1 (n) 6 9 7 \n Not High 5 (83.3%) 8 (88.9%) 6 (85.7%) \n 1 0 1 (11.1%) 0 \n 2 0 0 1 (14.3%) \n 3 1 (16.7%) 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 2 (n) 4 4 6 \n Not High 4 (100%) 4 (100%) 3 (50.0%) \n 1 0 0 3 (50.0%) \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 3 (n) 5 3 5 \n Not High 4 (80.0%) 2 (66.7%) 5 (100%) \n 1 1 (20.0%) 1 (33.3%) 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 4 (n) 2 5 1 \n Not High 2 (100%) 3 (60.0%) 1 (100%) \n 1 0 2 (40.0%) 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n Missing (n) 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n WEEK 3 DAY 22 \n Not High (n) 110 111 114 \n Not High 92 (83.6%) 94 (84.7%) 98 (86.0%) \n 1 8 (7.3%) 9 (8.1%) 7 (6.1%) \n 2 2 (1.8%) 5 (4.5%) 6 (5.3%) \n 3 5 (4.5%) 2 (1.8%) 3 (2.6%) \n 4 3 (2.7%) 1 (0.9%) 0 \n Missing 0 0 0 \n 1 (n) 7 8 7 \n Not High 7 (100%) 5 (62.5%) 6 (85.7%) \n 1 0 1 (12.5%) 0 \n 2 0 1 (12.5%) 1 (14.3%) \n 3 0 1 (12.5%) 0 \n 4 0 0 0 \n Missing 0 0 0 \n 2 (n) 9 7 5 \n Not High 9 (100%) 6 (85.7%) 5 (100%) \n 1 0 0 0 \n 2 0 0 0 \n 3 0 1 (14.3%) 0 \n 4 0 0 0 \n Missing 0 0 0 \n 3 (n) 6 3 4 \n Not High 5 (83.3%) 2 (66.7%) 4 (100%) \n 1 0 0 0 \n 2 0 0 0 \n 3 1 (16.7%) 0 0 \n 4 0 1 (33.3%) 0 \n Missing 0 0 0 \n 4 (n) 2 5 2 \n Not High 1 (50.0%) 5 (100%) 2 (100%) \n 1 0 0 0 \n 2 0 0 0 \n 3 1 (50.0%) 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n Missing (n) 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n WEEK 4 DAY 29 \n Not High (n) 115 117 113 \n Not High 97 (84.3%) 101 (86.3%) 99 (87.6%) \n 1 8 (7.0%) 7 (6.0%) 6 (5.3%) \n 2 2 (1.7%) 6 (5.1%) 5 (4.4%) \n 3 7 (6.1%) 3 (2.6%) 3 (2.7%) \n 4 1 (0.9%) 0 0 \n Missing 0 0 0 \n 1 (n) 4 3 11 \n Not High 4 (100%) 2 (66.7%) 10 (90.9%) \n 1 0 0 0 \n 2 0 0 1 (9.1%) \n 3 0 0 0 \n 4 0 1 (33.3%) 0 \n Missing 0 0 0 \n 2 (n) 6 4 2 \n Not High 6 (100%) 3 (75.0%) 2 (100%) \n 1 0 1 (25.0%) 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 3 (n) 6 7 4 \n Not High 5 (83.3%) 4 (57.1%) 4 (100%) \n 1 0 1 (14.3%) 0 \n 2 0 0 0 \n 3 0 1 (14.3%) 0 \n 4 1 (16.7%) 1 (14.3%) 0 \n Missing 0 0 0 \n 4 (n) 3 3 2 \n Not High 2 (66.7%) 2 (66.7%) 0 \n 1 0 1 (33.3%) 1 (50.0%) \n 2 0 0 1 (50.0%) \n 3 0 0 0 \n 4 1 (33.3%) 0 0 \n Missing 0 0 0 \n Missing (n) 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n WEEK 5 DAY 36 \n Not High (n) 111 111 119 \n Not High 95 (85.6%) 95 (85.6%) 104 (87.4%) \n 1 6 (5.4%) 8 (7.2%) 6 (5.0%) \n 2 1 (0.9%) 5 (4.5%) 6 (5.0%) \n 3 6 (5.4%) 2 (1.8%) 3 (2.5%) \n 4 3 (2.7%) 1 (0.9%) 0 \n Missing 0 0 0 \n 1 (n) 8 11 5 \n Not High 7 (87.5%) 9 (81.8%) 4 (80.0%) \n 1 0 1 (9.1%) 0 \n 2 0 0 1 (20.0%) \n 3 1 (12.5%) 1 (9.1%) 0 \n 4 0 0 0 \n Missing 0 0 0 \n 2 (n) 7 6 3 \n Not High 5 (71.4%) 3 (50.0%) 2 (66.7%) \n 1 1 (14.3%) 1 (16.7%) 1 (33.3%) \n 2 1 (14.3%) 1 (16.7%) 0 \n 3 0 0 0 \n 4 0 1 (16.7%) 0 \n Missing 0 0 0 \n 3 (n) 3 3 4 \n Not High 3 (100%) 3 (100%) 4 (100%) \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 4 (n) 5 3 1 \n Not High 4 (80.0%) 2 (66.7%) 1 (100%) \n 1 1 (20.0%) 0 0 \n 2 0 0 0 \n 3 0 1 (33.3%) 0 \n 4 0 0 0 \n Missing 0 0 0 \n Missing (n) 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPlease note that for each variant, the adlb dataset needs to be filtered on correct flags like WGRLOVFL, WGRHIVFL, et al., otherwise the layout function will not return the correct counts. There is an option to create a record for a lab test where no record is found at that visit. If you specified add_derived_type = \"PHANTOM\" & dtype_phantom_cond, you don’t have to use the h_adsl_adlb_merge_using_worst_flag function to preprocess your adlb dataset. Otherwise please follow the pre-processing steps below before applying the layout functions.\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\nadsl <- df_explicit_na(adsl)\nadlb <- df_explicit_na(adlb)\n\n# Please note that in real clinical data, population flag like SAFFL, and parameter category like PARCAT2 needs to be\n# selected properly.\nadsl_f <- adsl %>% filter(SAFFL == \"Y\")\nadlb <- adlb %>% filter(PARAMCD == \"CRP\" & SAFFL == \"Y\")", "crumbs": [ "Tables", "Lab Results", - "LBT15" + "LBT13" ] }, { - "objectID": "tables/lab-results/lbt15.html#teal-app", - "href": "tables/lab-results/lbt15.html#teal-app", - "title": "LBT15", + "objectID": "tables/lab-results/lbt13.html#teal-app", + "href": "tables/lab-results/lbt13.html#teal-app", + "title": "LBT13", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\nThe current module tm_t_abnormality is only displaying rows that are not all-zero, so the result could be a little different from static output where all-zero rows can be shown.\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n library(forcats)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb %>%\n mutate(\n ANRIND = fct_collapse(ATOXGR,\n \"LOW\" = c(\"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-2\", \"-1\", \"0\", \"1\", \"2\"),\n \"HIGH\" = c(\"3\", \"4\")\n ),\n BNRIND = fct_collapse(.data$BTOXGR,\n \"LOW\" = c(\"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-2\", \"-1\", \"0\", \"1\", \"2\"),\n \"HIGH\" = c(\"3\", \"4\")\n )\n ) %>%\n filter(ONTRTFL == \"Y\") %>%\n col_relabel(ANRIND = \"Direction of Abnormality\")\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality(\n label = \"Abnormality Table\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"PARAM\")),\n selected = c(\"PARAM\"),\n keep_order = TRUE\n ),\n grade = choices_selected(\n choices = variable_choices(ADLB, subset = \"ANRIND\"),\n selected = \"ANRIND\",\n fixed = TRUE\n ),\n baseline_var = choices_selected(\n choices = variable_choices(ADLB, subset = \"BNRIND\"),\n selected = \"BNRIND\",\n fixed = TRUE\n ),\n abnormal = list(Low = \"LOW\", High = \"HIGH\"),\n exclude_base_abn = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n library(forcats)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb %>%\n mutate(\n ANRIND = fct_collapse(ATOXGR,\n \"LOW\" = c(\"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-2\", \"-1\", \"0\", \"1\", \"2\"),\n \"HIGH\" = c(\"3\", \"4\")\n ),\n BNRIND = fct_collapse(.data$BTOXGR,\n \"LOW\" = c(\"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-2\", \"-1\", \"0\", \"1\", \"2\"),\n \"HIGH\" = c(\"3\", \"4\")\n )\n ) %>%\n filter(ONTRTFL == \"Y\") %>%\n col_relabel(ANRIND = \"Direction of Abnormality\")\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality(\n label = \"Abnormality Table\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"PARAM\")),\n selected = c(\"PARAM\"),\n keep_order = TRUE\n ),\n grade = choices_selected(\n choices = variable_choices(ADLB, subset = \"ANRIND\"),\n selected = \"ANRIND\",\n fixed = TRUE\n ),\n baseline_var = choices_selected(\n choices = variable_choices(ADLB, subset = \"BNRIND\"),\n selected = \"BNRIND\",\n fixed = TRUE\n ),\n abnormal = list(Low = \"LOW\", High = \"HIGH\"),\n exclude_base_abn = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_shift_by_grade(\n label = \"Grade Laboratory Abnormality Table\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"ALT\"\n ),\n worst_flag_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"WGRLOVFL\", \"WGRLOFL\", \"WGRHIVFL\", \"WGRHIFL\")),\n selected = c(\"WGRLOVFL\")\n ),\n worst_flag_indicator = choices_selected(\n value_choices(ADLB, \"WGRLOVFL\"),\n selected = \"Y\", fixed = TRUE\n ),\n anl_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"ATOXGR\")),\n selected = c(\"ATOXGR\"),\n fixed = TRUE\n ),\n base_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"BTOXGR\")),\n selected = c(\"BTOXGR\"),\n fixed = TRUE\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_shift_by_grade(\n label = \"Grade Laboratory Abnormality Table\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"ALT\"\n ),\n worst_flag_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"WGRLOVFL\", \"WGRLOFL\", \"WGRHIVFL\", \"WGRHIFL\")),\n selected = c(\"WGRLOVFL\")\n ),\n worst_flag_indicator = choices_selected(\n value_choices(ADLB, \"WGRLOVFL\"),\n selected = \"Y\", fixed = TRUE\n ),\n anl_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"ATOXGR\")),\n selected = c(\"ATOXGR\"),\n fixed = TRUE\n ),\n base_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"BTOXGR\")),\n selected = c(\"BTOXGR\"),\n fixed = TRUE\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", "Lab Results", - "LBT15" + "LBT13" ] }, { - "objectID": "tables/lab-results/lbt15.html#reproducibility", - "href": "tables/lab-results/lbt15.html#reproducibility", - "title": "LBT15", + "objectID": "tables/lab-results/lbt13.html#reproducibility", + "href": "tables/lab-results/lbt13.html#reproducibility", + "title": "LBT13", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:50:18 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats * 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:46:22 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", "Lab Results", - "LBT15" + "LBT13" ] }, { @@ -1393,7 +1338,7 @@ "href": "tables/lab-results/lbt01.html#reproducibility", "title": "LBT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:49:48 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:45:32 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", "Lab Results", @@ -1401,1610 +1346,1598 @@ ] }, { - "objectID": "tables/lab-results/lbt09.html#output", - "href": "tables/lab-results/lbt09.html#output", - "title": "LBT09", + "objectID": "tables/lab-results/lbt08.html#output", + "href": "tables/lab-results/lbt08.html#output", + "title": "LBT08", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Selecting Sections\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table() %>%\n split_cols_by(\"ARM\") %>%\n split_cols_by(\"AVISIT\") %>%\n split_rows_by(\"TBILI_CAT\") %>%\n # below split helps us get the right denominator between ALT/AST but it can be hidden\n split_rows_by(\"ALTAST_ind\", split_fun = trim_levels_to_map(map), child_labels = \"hidden\") %>%\n count_occurrences(\n vars = \"ALTAST_CAT\",\n .stats = \"fraction\",\n denom = \"n\",\n drop = FALSE\n ) %>%\n append_topleft(\"Liver Laboratory Test Criterion\") %>%\n build_table(df = adhy_liver)\n\n# trim away rows with criteria not met\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n ifelse(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- result %>% trim_rows(criteria = criteria_fun)\nresult\n\n A: Drug X B: Placebo C: Combination \nLiver Laboratory Test Criterion BASELINE POST-BASELINE BASELINE POST-BASELINE BASELINE POST-BASELINE \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal Bilirubin <= 2xULN \n ALT >3 - <= 5xULN 23/134 (17.2%) 15/134 (11.2%) 25/134 (18.7%) 27/134 (20.1%) 27/132 (20.5%) 30/132 (22.7%)\n ALT >5 - <= 10xULN 28/134 (20.9%) 29/134 (21.6%) 29/134 (21.6%) 19/134 (14.2%) 36/132 (27.3%) 29/132 (22.0%)\n ALT >10 - <= 20xULN 24/134 (17.9%) 30/134 (22.4%) 32/134 (23.9%) 33/134 (24.6%) 28/132 (21.2%) 24/132 (18.2%)\n ALT > 20xULN 32/134 (23.9%) 35/134 (26.1%) 24/134 (17.9%) 23/134 (17.2%) 20/132 (15.2%) 26/132 (19.7%)\n AST >3 - <= 5xULN 31/134 (23.1%) 34/134 (25.4%) 30/134 (22.4%) 26/134 (19.4%) 34/132 (25.8%) 24/132 (18.2%)\n AST >5 - <= 10xULN 25/134 (18.7%) 25/134 (18.7%) 26/134 (19.4%) 26/134 (19.4%) 22/132 (16.7%) 27/132 (20.5%)\n AST >10 - <= 20xULN 22/134 (16.4%) 29/134 (21.6%) 16/134 (11.9%) 22/134 (16.4%) 34/132 (25.8%) 19/132 (14.4%)\n AST > 20xULN 20/134 (14.9%) 16/134 (11.9%) 28/134 (20.9%) 31/134 (23.1%) 21/132 (15.9%) 39/132 (29.5%)\nTotal Bilirubin > 2xULN \n ALT >3 - <= 5xULN 40/134 (29.9%) 28/134 (20.9%) 31/134 (23.1%) 28/134 (20.9%) 18/132 (13.6%) 32/132 (24.2%)\n ALT >5 - <= 10xULN 24/134 (17.9%) 29/134 (21.6%) 30/134 (22.4%) 37/134 (27.6%) 33/132 (25.0%) 24/132 (18.2%)\n ALT >10 - <= 20xULN 24/134 (17.9%) 22/134 (16.4%) 26/134 (19.4%) 18/134 (13.4%) 21/132 (15.9%) 30/132 (22.7%)\n ALT > 20xULN 19/134 (14.2%) 33/134 (24.6%) 23/134 (17.2%) 19/134 (14.2%) 30/132 (22.7%) 22/132 (16.7%)\n AST >3 - <= 5xULN 17/134 (12.7%) 27/134 (20.1%) 36/134 (26.9%) 25/134 (18.7%) 26/132 (19.7%) 34/132 (25.8%)\n AST >5 - <= 10xULN 25/134 (18.7%) 28/134 (20.9%) 24/134 (17.9%) 28/134 (20.9%) 20/132 (15.2%) 23/132 (17.4%)\n AST >10 - <= 20xULN 36/134 (26.9%) 28/134 (20.9%) 16/134 (11.9%) 26/134 (19.4%) 33/132 (25.0%) 26/132 (19.7%)\n AST > 20xULN 30/134 (22.4%) 21/134 (15.7%) 30/134 (22.4%) 24/134 (17.9%) 24/132 (18.2%) 25/132 (18.9%)\nTotal Bilirubin > 2xULN and Alkaline Phosphatase <= 2xULN \n ALT >3 - <= 5xULN 24/134 (17.9%) 22/134 (16.4%) 28/134 (20.9%) 23/134 (17.2%) 38/132 (28.8%) 23/132 (17.4%)\n ALT >5 - <= 10xULN 26/134 (19.4%) 25/134 (18.7%) 19/134 (14.2%) 22/134 (16.4%) 32/132 (24.2%) 32/132 (24.2%)\n ALT >10 - <= 20xULN 26/134 (19.4%) 30/134 (22.4%) 31/134 (23.1%) 30/134 (22.4%) 21/132 (15.9%) 27/132 (20.5%)\n ALT > 20xULN 30/134 (22.4%) 28/134 (20.9%) 24/134 (17.9%) 36/134 (26.9%) 20/132 (15.2%) 23/132 (17.4%)\n AST >3 - <= 5xULN 37/134 (27.6%) 25/134 (18.7%) 31/134 (23.1%) 26/134 (19.4%) 24/132 (18.2%) 36/132 (27.3%)\n AST >5 - <= 10xULN 25/134 (18.7%) 32/134 (23.9%) 29/134 (21.6%) 30/134 (22.4%) 26/132 (19.7%) 24/132 (18.2%)\n AST >10 - <= 20xULN 25/134 (18.7%) 31/134 (23.1%) 28/134 (20.9%) 22/134 (16.4%) 29/132 (22.0%) 23/132 (17.4%)\n AST > 20xULN 26/134 (19.4%) 25/134 (18.7%) 23/134 (17.2%) 30/134 (22.4%) 23/132 (17.4%) 24/132 (18.2%)\nTotal Bilirubin > 2xULN and Alkaline Phosphatase <= 5xULN \n ALT >3 - <= 5xULN 24/134 (17.9%) 21/134 (15.7%) 30/134 (22.4%) 17/134 (12.7%) 28/132 (21.2%) 31/132 (23.5%)\n ALT >5 - <= 10xULN 36/134 (26.9%) 28/134 (20.9%) 25/134 (18.7%) 27/134 (20.1%) 26/132 (19.7%) 29/132 (22.0%)\n ALT >10 - <= 20xULN 30/134 (22.4%) 21/134 (15.7%) 28/134 (20.9%) 36/134 (26.9%) 25/132 (18.9%) 24/132 (18.2%)\n ALT > 20xULN 14/134 (10.4%) 28/134 (20.9%) 25/134 (18.7%) 27/134 (20.1%) 31/132 (23.5%) 23/132 (17.4%)\n AST >3 - <= 5xULN 21/134 (15.7%) 26/134 (19.4%) 29/134 (21.6%) 31/134 (23.1%) 33/132 (25.0%) 19/132 (14.4%)\n AST >5 - <= 10xULN 29/134 (21.6%) 26/134 (19.4%) 24/134 (17.9%) 26/134 (19.4%) 23/132 (17.4%) 32/132 (24.2%)\n AST >10 - <= 20xULN 29/134 (21.6%) 31/134 (23.1%) 28/134 (20.9%) 22/134 (16.4%) 22/132 (16.7%) 21/132 (15.9%)\n AST > 20xULN 34/134 (25.4%) 21/134 (15.7%) 19/134 (14.2%) 28/134 (20.9%) 21/132 (15.9%) 33/132 (25.0%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table() %>%\n split_cols_by(\"ARM\") %>%\n split_cols_by(\"AVISIT\") %>%\n split_rows_by(\n \"TBILI_CAT\",\n split_fun = remove_split_levels(\"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 2xULN\")\n ) %>%\n # below split helps us get the right denominator between ALT/AST but it can be hidden\n split_rows_by(\n \"ALTAST_ind\",\n split_fun = trim_levels_to_map(map), child_labels = \"hidden\"\n ) %>%\n count_occurrences(\n vars = \"ALTAST_CAT\",\n .stats = \"fraction\",\n denom = \"n\",\n drop = FALSE\n ) %>%\n append_topleft(\"Liver Laboratory Test Criterion\") %>%\n build_table(df = adhy_liver)\n\n# trim away rows with criteria not met\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n ifelse(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- result %>% trim_rows(criteria = criteria_fun)\nresult\n\n A: Drug X B: Placebo C: Combination \nLiver Laboratory Test Criterion BASELINE POST-BASELINE BASELINE POST-BASELINE BASELINE POST-BASELINE \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal Bilirubin <= 2xULN \n ALT >3 - <= 5xULN 23/134 (17.2%) 15/134 (11.2%) 25/134 (18.7%) 27/134 (20.1%) 27/132 (20.5%) 30/132 (22.7%)\n ALT >5 - <= 10xULN 28/134 (20.9%) 29/134 (21.6%) 29/134 (21.6%) 19/134 (14.2%) 36/132 (27.3%) 29/132 (22.0%)\n ALT >10 - <= 20xULN 24/134 (17.9%) 30/134 (22.4%) 32/134 (23.9%) 33/134 (24.6%) 28/132 (21.2%) 24/132 (18.2%)\n ALT > 20xULN 32/134 (23.9%) 35/134 (26.1%) 24/134 (17.9%) 23/134 (17.2%) 20/132 (15.2%) 26/132 (19.7%)\n AST >3 - <= 5xULN 31/134 (23.1%) 34/134 (25.4%) 30/134 (22.4%) 26/134 (19.4%) 34/132 (25.8%) 24/132 (18.2%)\n AST >5 - <= 10xULN 25/134 (18.7%) 25/134 (18.7%) 26/134 (19.4%) 26/134 (19.4%) 22/132 (16.7%) 27/132 (20.5%)\n AST >10 - <= 20xULN 22/134 (16.4%) 29/134 (21.6%) 16/134 (11.9%) 22/134 (16.4%) 34/132 (25.8%) 19/132 (14.4%)\n AST > 20xULN 20/134 (14.9%) 16/134 (11.9%) 28/134 (20.9%) 31/134 (23.1%) 21/132 (15.9%) 39/132 (29.5%)\nTotal Bilirubin > 2xULN \n ALT >3 - <= 5xULN 40/134 (29.9%) 28/134 (20.9%) 31/134 (23.1%) 28/134 (20.9%) 18/132 (13.6%) 32/132 (24.2%)\n ALT >5 - <= 10xULN 24/134 (17.9%) 29/134 (21.6%) 30/134 (22.4%) 37/134 (27.6%) 33/132 (25.0%) 24/132 (18.2%)\n ALT >10 - <= 20xULN 24/134 (17.9%) 22/134 (16.4%) 26/134 (19.4%) 18/134 (13.4%) 21/132 (15.9%) 30/132 (22.7%)\n ALT > 20xULN 19/134 (14.2%) 33/134 (24.6%) 23/134 (17.2%) 19/134 (14.2%) 30/132 (22.7%) 22/132 (16.7%)\n AST >3 - <= 5xULN 17/134 (12.7%) 27/134 (20.1%) 36/134 (26.9%) 25/134 (18.7%) 26/132 (19.7%) 34/132 (25.8%)\n AST >5 - <= 10xULN 25/134 (18.7%) 28/134 (20.9%) 24/134 (17.9%) 28/134 (20.9%) 20/132 (15.2%) 23/132 (17.4%)\n AST >10 - <= 20xULN 36/134 (26.9%) 28/134 (20.9%) 16/134 (11.9%) 26/134 (19.4%) 33/132 (25.0%) 26/132 (19.7%)\n AST > 20xULN 30/134 (22.4%) 21/134 (15.7%) 30/134 (22.4%) 24/134 (17.9%) 24/132 (18.2%) 25/132 (18.9%)\nTotal Bilirubin > 2xULN and Alkaline Phosphatase <= 5xULN \n ALT >3 - <= 5xULN 24/134 (17.9%) 21/134 (15.7%) 30/134 (22.4%) 17/134 (12.7%) 28/132 (21.2%) 31/132 (23.5%)\n ALT >5 - <= 10xULN 36/134 (26.9%) 28/134 (20.9%) 25/134 (18.7%) 27/134 (20.1%) 26/132 (19.7%) 29/132 (22.0%)\n ALT >10 - <= 20xULN 30/134 (22.4%) 21/134 (15.7%) 28/134 (20.9%) 36/134 (26.9%) 25/132 (18.9%) 24/132 (18.2%)\n ALT > 20xULN 14/134 (10.4%) 28/134 (20.9%) 25/134 (18.7%) 27/134 (20.1%) 31/132 (23.5%) 23/132 (17.4%)\n AST >3 - <= 5xULN 21/134 (15.7%) 26/134 (19.4%) 29/134 (21.6%) 31/134 (23.1%) 33/132 (25.0%) 19/132 (14.4%)\n AST >5 - <= 10xULN 29/134 (21.6%) 26/134 (19.4%) 24/134 (17.9%) 26/134 (19.4%) 23/132 (17.4%) 32/132 (24.2%)\n AST >10 - <= 20xULN 29/134 (21.6%) 31/134 (23.1%) 28/134 (20.9%) 22/134 (16.4%) 22/132 (16.7%) 21/132 (15.9%)\n AST > 20xULN 34/134 (25.4%) 21/134 (15.7%) 19/134 (14.2%) 28/134 (20.9%) 21/132 (15.9%) 33/132 (25.0%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadhy <- random.cdisc.data::cadhy\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadhy_liver <- df_explicit_na(adhy)\n\n# Define values of interest in PARAMCD variable.\nparamcd_tbili_alt <- c(\"BLAL\", \"BGAL\", \"BA2AL\", \"BA5AL\")\nparamcd_tbili_ast <- c(\"BLAS\", \"BGAS\", \"BA2AS\", \"BA5AS\")\n\n# Select LBT09 parameters.\nadhy_liver <- adhy_liver %>%\n filter(\n SAFFL == \"Y\",\n AVISIT %in% c(\"BASELINE\", \"POST-BASELINE\"),\n PARAMCD %in% c(paramcd_tbili_alt, paramcd_tbili_ast)\n )\n\n# Let's be explicit about factor levels for AVISIT and PARAMCD.\nadhy_liver <- adhy_liver %>%\n mutate(\n AVISIT = factor(AVISIT, levels = c(\"BASELINE\", \"POST-BASELINE\")),\n PARAMCD = factor(PARAMCD, levels = c(paramcd_tbili_alt, paramcd_tbili_ast))\n )\n\n# Create indicator and category variables.\nadhy_liver <- adhy_liver %>%\n mutate(\n # Create TBILI_CAT categories variable - this is needed so we get the right nesting in the table.\n TBILI_CAT = factor(\n case_when(\n PARAMCD %in% c(paramcd_tbili_alt[1], paramcd_tbili_ast[1]) ~ \"Total Bilirubin <= 2xULN\",\n PARAMCD %in% c(paramcd_tbili_alt[2], paramcd_tbili_ast[2]) ~ \"Total Bilirubin > 2xULN\",\n PARAMCD %in% c(paramcd_tbili_alt[3], paramcd_tbili_ast[3]) ~\n \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 2xULN\",\n PARAMCD %in% c(paramcd_tbili_alt[4], paramcd_tbili_ast[4]) ~\n \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 5xULN\"\n ),\n levels = c(\n \"Total Bilirubin <= 2xULN\",\n \"Total Bilirubin > 2xULN\",\n \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 2xULN\",\n \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 5xULN\"\n )\n ),\n # Create ALTAST_CAT categories variable\n # this will be the labels for different ALT/AST categories displayed in the table.\n ALTAST_CAT = factor(\n case_when(\n PARAMCD %in% paramcd_tbili_alt & AVALC == \">3-5ULN\" ~ \"ALT >3 - <= 5xULN\",\n PARAMCD %in% paramcd_tbili_alt & AVALC == \">5-10ULN\" ~ \"ALT >5 - <= 10xULN\",\n PARAMCD %in% paramcd_tbili_alt & AVALC == \">10-20ULN\" ~ \"ALT >10 - <= 20xULN\",\n PARAMCD %in% paramcd_tbili_alt & AVALC == \">20ULN\" ~ \"ALT > 20xULN\",\n PARAMCD %in% paramcd_tbili_ast & AVALC == \">3-5ULN\" ~ \"AST >3 - <= 5xULN\",\n PARAMCD %in% paramcd_tbili_ast & AVALC == \">5-10ULN\" ~ \"AST >5 - <= 10xULN\",\n PARAMCD %in% paramcd_tbili_ast & AVALC == \">10-20ULN\" ~ \"AST >10 - <= 20xULN\",\n PARAMCD %in% paramcd_tbili_ast & AVALC == \">20ULN\" ~ \"AST > 20xULN\",\n TRUE ~ \"Criteria not met\"\n ),\n levels = c(\n \"ALT >3 - <= 5xULN\", \"ALT >5 - <= 10xULN\", \"ALT >10 - <= 20xULN\",\n \"20\" = \"ALT > 20xULN\",\n \"AST >3 - <= 5xULN\", \"AST >5 - <= 10xULN\", \"AST >10 - <= 20xULN\", \"AST > 20xULN\",\n \"Criteria not met\"\n )\n ),\n ALTAST_ind = factor(\n case_when(\n PARAMCD %in% paramcd_tbili_alt ~ \"ALT\",\n PARAMCD %in% paramcd_tbili_ast ~ \"AST\"\n ),\n levels = c(\"ALT\", \"AST\")\n )\n )\n\nmap <- data.frame(\n ALTAST_ind = c(rep(\"ALT\", 5), rep(\"AST\", 5)),\n ALTAST_CAT = c(\n \"ALT >3 - <= 5xULN\", \"ALT >5 - <= 10xULN\", \"ALT >10 - <= 20xULN\",\n \"20\" = \"ALT > 20xULN\", \"Criteria not met\",\n \"AST >3 - <= 5xULN\", \"AST >5 - <= 10xULN\", \"AST >10 - <= 20xULN\", \"AST > 20xULN\", \"Criteria not met\"\n ),\n stringsAsFactors = FALSE\n)", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\nNote: The direction of the shift table for each lab test is based on metadata and NCI CTCAE specifications. In addition, the worst laboratory flags must be selected appropriately to match the direction of abnormality. For example, if any lab requires a shift table for both directions, then both worst_flag_low and worst_flag_high must be specified in h_adlb_worsen. If all labs requires a shift table for only one direction, then the matching worst lab flag variable must be selected in h_adlb_worsen.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARMCD\") %>%\n split_rows_by(\"PARAMCD\", label_pos = \"topleft\", split_label = obj_label(df$PARAMCD)) %>%\n split_rows_by(\"GRADDR\", label_pos = \"topleft\", split_label = obj_label(df$GRADDR)) %>%\n count_abnormal_lab_worsen_by_baseline(\n var = \"ATOXGR\",\n variables = list(\n id = \"USUBJID\",\n baseline_var = \"BTOXGR\",\n direction_var = \"GRADDR\"\n )\n ) %>%\n append_topleft(\" Highest NCI CTCAE Grade\") %>%\n build_table(df = df, alt_counts_df = adsl)\n\nresult\n\nParameter Code \n Direction of Abnormality ARM A ARM B ARM C \n Highest NCI CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————\nALT \n Low \n 1 11/113 (9.7%) 9/117 (7.7%) 15/123 (12.2%)\n 2 15/119 (12.6%) 23/123 (18.7%) 16/127 (12.6%)\n 3 15/127 (11.8%) 22/128 (17.2%) 14/128 (10.9%)\n 4 17/130 (13.1%) 10/131 (7.6%) 18/130 (13.8%)\n Any 58/130 (44.6%) 64/131 (48.9%) 63/130 (48.5%)\nCRP \n High \n 1 18/114 (15.8%) 18/112 (16.1%) 19/115 (16.5%)\n 2 20/122 (16.4%) 13/122 (10.7%) 14/122 (11.5%)\n 3 23/124 (18.5%) 14/128 (10.9%) 20/129 (15.5%)\n 4 12/131 (9.2%) 20/132 (15.2%) 11/132 (8.3%) \n Any 73/131 (55.7%) 65/132 (49.2%) 64/132 (48.5%)\n Low \n 1 20/119 (16.8%) 18/113 (15.9%) 11/112 (9.8%) \n 2 24/122 (19.7%) 21/118 (17.8%) 17/121 (14%) \n 3 26/127 (20.5%) 20/127 (15.7%) 22/123 (17.9%)\n 4 10/131 (7.6%) 16/132 (12.1%) 21/130 (16.2%)\n Any 80/131 (61.1%) 75/132 (56.8%) 71/130 (54.6%)\nIGA \n High \n 1 18/119 (15.1%) 11/116 (9.5%) 15/113 (13.3%)\n 2 15/124 (12.1%) 23/120 (19.2%) 19/115 (16.5%)\n 3 21/128 (16.4%) 21/124 (16.9%) 20/120 (16.7%)\n 4 12/132 (9.1%) 12/129 (9.3%) 9/131 (6.9%) \n Any 66/132 (50%) 67/129 (51.9%) 63/131 (48.1%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\nadlb <- adlb %>%\n mutate(\n GRADDR = case_when(\n PARAMCD == \"ALT\" ~ \"L\",\n PARAMCD == \"CRP\" ~ \"B\",\n PARAMCD == \"IGA\" ~ \"H\"\n )\n ) %>%\n filter(SAFFL == \"Y\" & ONTRTFL == \"Y\" & GRADDR != \"\")\n\nadsl <- df_explicit_na(adsl)\nadlb <- df_explicit_na(adlb)\n\ndf <- h_adlb_worsen(\n adlb,\n worst_flag_low = c(\"WGRLOFL\" = \"Y\"),\n worst_flag_high = c(\"WGRHIFL\" = \"Y\"),\n direction_var = \"GRADDR\"\n)\n\nattributes(df$GRADDR) <- list(\"label\" = \"Direction of Abnormality\")", "crumbs": [ "Tables", "Lab Results", - "LBT09" + "LBT08" ] }, { - "objectID": "tables/lab-results/lbt09.html#reproducibility", - "href": "tables/lab-results/lbt09.html#reproducibility", - "title": "LBT09", + "objectID": "tables/lab-results/lbt08.html#reproducibility", + "href": "tables/lab-results/lbt08.html#reproducibility", + "title": "LBT08", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:49:25 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:44:58 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", "Lab Results", - "LBT09" + "LBT08" ] }, { - "objectID": "tables/risk-management-plan/rmpt04.html#output", - "href": "tables/risk-management-plan/rmpt04.html#output", - "title": "RMPT04", + "objectID": "tables/lab-results/lbt12_bl.html#output", + "href": "tables/lab-results/lbt12_bl.html#output", + "title": "LBT12_BL", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(\n title = \"Extent of Exposure by Ethnic Origin: Safety-Evaluable Patients\",\n main_footer = \"* Patient Time is the sum of exposure across all patients in days.\",\n show_colcounts = TRUE\n) %>%\n analyze_patients_exposure_in_cols(\n var = \"ETHNIC\",\n col_split = TRUE,\n add_total_level = TRUE,\n custom_label = \"Total\"\n ) %>%\n append_topleft(c(\"\", \"Ethnicity\"))\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_f)\nresult\n\nExtent of Exposure by Ethnic Origin: Safety-Evaluable Patients\n\n——————————————————————————————————————————————————\n Patients Person time\nEthnicity (N=400) (N=400) \n——————————————————————————————————————————————————\nHISPANIC OR LATINO 28 (7.0%) 2423 \nNOT HISPANIC OR LATINO 165 (41.2%) 15570 \nNOT REPORTED 18 (4.5%) 2085 \nUNKNOWN 6 (1.5%) 563 \nTotal 217 (54.2%) 20641 \n——————————————————————————————————————————————————\n\n* Patient Time is the sum of exposure across all patients in days.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadex <- random.cdisc.data::cadex\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadex <- df_explicit_na(adex)\n\n# Simulate ADEX records with PARAMCD == \"TDURD\" as they are not in sample random.cdisc.data dataset.\nset.seed(1, kind = \"Mersenne-Twister\")\nadex2 <- adex %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE)\n ) %>%\n bind_rows(adex)\n\n\n# Now pre-processing steps are carried out.\nanl <- adex2 %>%\n filter(\n PARAMCD == \"TDURD\",\n PARCAT2 == \"Drug A\",\n SAFFL == \"Y\"\n )\n\nadsl_f <- adsl %>% filter(adsl$SAFFL == \"Y\")", - "crumbs": [ - "Tables", - "Risk Management Plan", - "RMPT04" - ] - }, - { - "objectID": "tables/risk-management-plan/rmpt04.html#teal-app", - "href": "tables/risk-management-plan/rmpt04.html#teal-app", - "title": "RMPT04", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n\n labels <- col_labels(ADEX)\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\"\n ) %>%\n bind_rows(ADEX)\n\n col_labels(ADEX) <- labels\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ETHNIC\", \"SEX\")),\n selected = \"ETHNIC\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n\n labels <- col_labels(ADEX)\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\"\n ) %>%\n bind_rows(ADEX)\n\n col_labels(ADEX) <- labels\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ETHNIC\", \"SEX\")),\n selected = \"ETHNIC\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table() %>%\n split_cols_by(\"TITLE\") %>%\n split_cols_by(\"APERIODC\") %>%\n split_rows_by(\"PARAM\") %>%\n split_rows_by(\"ACTARM\", split_fun = drop_split_levels, child_labels = \"hidden\") %>%\n count_occurrences(\"ARM_AVALC\", .stats = \"fraction\", denom = \"n\", drop = TRUE) %>%\n build_table(anl)\n\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n dplyr::if_else(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- result %>% trim_rows(criteria = criteria_fun)\nresult\n\n First Elevated Result Occurring During \n PERIOD 1 PERIOD 2 \n——————————————————————————————————————————————————————————————————————————————\nAST>3x Baseline \n A: Drug X 14/134 (10.4%) 8/134 (6.0%) \n B: Placebo 11/134 (8.2%) 11/134 (8.2%) \n C: Combination 15/132 (11.4%) 14/132 (10.6%) \nALT>3x Baseline \n A: Drug X 7/134 (5.2%) 20/134 (14.9%) \n B: Placebo 10/134 (7.5%) 9/134 (6.7%) \n C: Combination 12/132 (9.1%) 8/132 (6.1%) \nAST>3x Baseline or ALT>3x Baseline \n A: Drug X 8/134 (6.0%) 22/134 (16.4%) \n B: Placebo 19/134 (14.2%) 15/134 (11.2%) \n C: Combination 14/132 (10.6%) 13/132 (9.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadhy <- random.cdisc.data::cadhy\n\nanl <- adhy\nanl$APERIODC <- as.factor(anl$APERIODC) # to ensure the table is built even if there is no patients after filtering\nanl$ACTARM <- as.factor(anl$ACTARM) # to ensure the table is built even if there is no patients after filtering\n\nanl <- anl %>%\n filter(\n SAFFL == \"Y\",\n PARAMCD %in% c(\"ASTPBASE\", \"ALTPBASE\", \"ALTASTPB\") & AVISIT == \"POST-BASELINE\"\n ) %>%\n mutate(\n ARM_AVALC = factor(\n case_when(\n AVALC == \"Y\" ~ as.character(ACTARM),\n TRUE ~ \"Criteria not met\"\n ),\n levels = c(levels(anl$ACTARM), \"Criteria not met\")\n ),\n PARAM = factor(\n case_when(\n PARAMCD == \"ASTPBASE\" ~ \"AST>3x Baseline\",\n PARAMCD == \"ALTPBASE\" ~ \"ALT>3x Baseline\",\n PARAMCD == \"ALTASTPB\" ~ \"AST>3x Baseline or ALT>3x Baseline\"\n ),\n levels = c(\"AST>3x Baseline\", \"ALT>3x Baseline\", \"AST>3x Baseline or ALT>3x Baseline\")\n ),\n TITLE = factor(\"First Elevated Result Occurring During\")\n )\n\nanl <- df_explicit_na(anl)", "crumbs": [ "Tables", - "Risk Management Plan", - "RMPT04" + "Lab Results", + "LBT12_BL" ] }, { - "objectID": "tables/risk-management-plan/rmpt04.html#reproducibility", - "href": "tables/risk-management-plan/rmpt04.html#reproducibility", - "title": "RMPT04", + "objectID": "tables/lab-results/lbt12_bl.html#reproducibility", + "href": "tables/lab-results/lbt12_bl.html#reproducibility", + "title": "LBT12_BL", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:48:51 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:44:43 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Risk Management Plan", - "RMPT04" + "Lab Results", + "LBT12_BL" ] }, { - "objectID": "tables/risk-management-plan/rmpt06.html#output", - "href": "tables/risk-management-plan/rmpt06.html#output", - "title": "RMPT06", + "objectID": "tables/lab-results/lbt14.html#output", + "href": "tables/lab-results/lbt14.html#output", + "title": "LBT14", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Selecting Sections to Display\nTable with Differences\nTable Modifying Alpha Level and Type of Confidence Interval\nTable by SMQ\nData Setup\n\n\n\nPlease note that by default the percentage analysis uses Wald’s confidence interval with continuity correction and the default confidence interval for percentage is 95%. To use a different method for confidence interval calculation, the method name needs to be provided to method argument.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n estimate_proportion(\n vars = \"AEFL\",\n method = \"clopper-pearson\",\n .labels = c(\n n_prop = \"Number of patients with at least one adverse event\",\n prop_ci = \"95% CI for % of patients with at least one AE (Clopper-Pearson)\"\n ),\n table_names = \"est_prop\"\n )\n\nresult_adsl <- build_table(lyt_adsl, df = adsl1, alt_counts_df = adsl1)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_values(\n \"STUDYID\",\n values = as.character(unique(adae$STUDYID)),\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences(\n \"WTOXGR\",\n var_labels = \"Number of patients with at least one AE by worst grade\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"fl_ser\"\n ) %>%\n count_occurrences(\n \"AEOUT\",\n denom = \"n\",\n var_labels = \"Number of patients with at least one AE by outcome\",\n show_labels = \"visible\"\n )\n\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adsl,\n result_adae[seq_len(nrow(result_adae)), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————\nNumber of patients with at least one adverse event 122 (91.0%) 123 (91.8%) 120 (90.9%) \n95% CI for % of patients with at least one AE (Clopper-Pearson) (84.9, 95.3) (85.8, 95.8) (84.7, 95.2) \nTotal number of AEs 609 622 703 \nNumber of patients with at least one AE by worst grade \n Grade 1 7 (5.2%) 9 (6.7%) 4 (3.0%) \n Grade 2 6 (4.5%) 10 (7.5%) 7 (5.3%) \n Grade 3 18 (13.4%) 14 (10.4%) 16 (12.1%) \n Grade 4 15 (11.2%) 20 (14.9%) 18 (13.6%) \n Grade 5 76 (56.7%) 70 (52.2%) 75 (56.8%) \nNumber of patients with at least one serious AE 104 (85.2%) 101 (82.1%) 99 (82.5%) \nNumber of patients with at least one AE by outcome \n Fatal outcome 76 (62.3%) 70 (56.9%) 75 (62.5%) \n Unresolved 66 (54.1%) 64 (52.0%) 70 (58.3%) \n Recovered/Resolved 73 (59.8%) 83 (67.5%) 88 (73.3%) \n Resolved with sequelae 44 (36.1%) 40 (32.5%) 43 (35.8%) \n Recovering/Resolving 81 (66.4%) 84 (68.3%) 88 (73.3%) \n Unknown outcome 38 (31.1%) 49 (39.8%) 44 (36.7%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n estimate_proportion(\n vars = \"AEFL\",\n method = \"clopper-pearson\",\n .labels = c(\n n_prop = \"Number of patients with at least one adverse event\",\n prop_ci = \"95% CI for % of patients with at least one AE (Clopper-Pearson)\"\n ),\n table_names = \"est_prop\"\n )\n\nresult_adsl <- build_table(lyt_adsl, df = adsl1, alt_counts_df = adsl1)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_values(\n \"STUDYID\",\n values = as.character(unique(adae$STUDYID)),\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences(\n \"WTOXGR\",\n var_labels = \"Number of patients with at least one AE by worst grade\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"fl_ser\",\n denom = \"N_col\"\n )\n\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adsl,\n result_adae[seq_len(nrow(result_adae)), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————\nNumber of patients with at least one adverse event 122 (91.0%) 123 (91.8%) 120 (90.9%) \n95% CI for % of patients with at least one AE (Clopper-Pearson) (84.9, 95.3) (85.8, 95.8) (84.7, 95.2) \nTotal number of AEs 609 622 703 \nNumber of patients with at least one AE by worst grade \n Grade 1 7 (5.2%) 9 (6.7%) 4 (3.0%) \n Grade 2 6 (4.5%) 10 (7.5%) 7 (5.3%) \n Grade 3 18 (13.4%) 14 (10.4%) 16 (12.1%) \n Grade 4 15 (11.2%) 20 (14.9%) 18 (13.6%) \n Grade 5 76 (56.7%) 70 (52.2%) 75 (56.8%) \nNumber of patients with at least one serious AE 104 (77.6%) 101 (75.4%) 99 (75.0%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPlease note that by default the percentage difference analysis also uses Wald’s confidence interval with continuity correction and the default confidence interval is 95%.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\", ref_group = \"A: Drug X\") %>%\n estimate_proportion(\n vars = \"AEFL\",\n method = \"clopper-pearson\",\n .labels = c(\n n_prop = \"Number of patients with at least one adverse event\",\n prop_ci = \"95% CI for % of patients with at least one AE\"\n ),\n table_names = \"est_prop\"\n ) %>%\n estimate_proportion_diff(\n vars = \"AEFL\",\n .labels = c(\n diff = \"Difference in % of patients with at least one AE\",\n diff_ci = \"95% CI of difference (Wald, with correction)\"\n ),\n table_names = \"est_prop_diff\"\n )\n\nresult_adsl <- build_table(lyt_adsl, df = adsl1, alt_counts_df = adsl1)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_values(\n \"STUDYID\",\n values = as.character(unique(adae$STUDYID)),\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences(\n \"WTOXGR\",\n var_labels = \"Number of patients with at least one AE by worst grade\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"fl_ser\",\n denom = \"N_col\"\n ) %>%\n count_occurrences(\n \"AEOUT\",\n denom = \"n\",\n var_labels = \"Number of patients with at least one AE by outcome\",\n show_labels = \"visible\"\n )\n\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adsl,\n result_adae[seq_len(nrow(result_adae)), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————————\nNumber of patients with at least one adverse event 122 (91.0%) 123 (91.8%) 120 (90.9%) \n95% CI for % of patients with at least one AE (84.9, 95.3) (85.8, 95.8) (84.7, 95.2) \nDifference in % of patients with at least one AE 0.7 -0.1 \n 95% CI of difference (Wald, with correction) (-6.7, 8.2) (-7.8, 7.5) \nTotal number of AEs 609 622 703 \nNumber of patients with at least one AE by worst grade \n Grade 1 7 (5.2%) 9 (6.7%) 4 (3.0%) \n Grade 2 6 (4.5%) 10 (7.5%) 7 (5.3%) \n Grade 3 18 (13.4%) 14 (10.4%) 16 (12.1%) \n Grade 4 15 (11.2%) 20 (14.9%) 18 (13.6%) \n Grade 5 76 (56.7%) 70 (52.2%) 75 (56.8%) \nNumber of patients with at least one serious AE 104 (77.6%) 101 (75.4%) 99 (75.0%) \nNumber of patients with at least one AE by outcome \n Fatal outcome 76 (62.3%) 70 (56.9%) 75 (62.5%) \n Unresolved 66 (54.1%) 64 (52.0%) 70 (58.3%) \n Recovered/Resolved 73 (59.8%) 83 (67.5%) 88 (73.3%) \n Resolved with sequelae 44 (36.1%) 40 (32.5%) 43 (35.8%) \n Recovering/Resolving 81 (66.4%) 84 (68.3%) 88 (73.3%) \n Unknown outcome 38 (31.1%) 49 (39.8%) 44 (36.7%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe confidence level can be changed through the conf_level argument.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\", ref_group = \"A: Drug X\") %>%\n estimate_proportion(\n vars = \"AEFL\",\n conf_level = 0.90,\n method = \"clopper-pearson\",\n .labels = c(\n n_prop = \"Number of patients with at least one adverse event\",\n prop_ci = \"90% CI for % of patients with at least one AE (Clopper-Pearson)\"\n ),\n table_names = \"est_prop\"\n ) %>%\n estimate_proportion_diff(\n vars = \"AEFL\",\n conf_level = 0.90,\n method = \"newcombe\",\n .labels = c(\n diff = \"Difference in % of patients with at least one AE\",\n diff_ci = \"90% CI of difference (Newcombe)\"\n ),\n table_names = \"est_prop_diff\"\n )\n\nresult_adsl <- build_table(lyt_adsl, df = adsl1, alt_counts_df = adsl1)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_values(\n \"STUDYID\",\n values = as.character(unique(adae$STUDYID)),\n .stats = \"count\",\n .labels = c(count = \"Total number of AEs\"),\n table_names = \"total_aes\"\n ) %>%\n count_occurrences(\n \"WTOXGR\",\n var_labels = \"Number of patients with at least one AE by worst grade\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"fl_ser\",\n denom = \"N_col\"\n ) %>%\n count_occurrences(\n \"AEOUT\",\n denom = \"n\",\n var_labels = \"Number of patients with at least one AE by outcome\",\n show_labels = \"visible\"\n )\n\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adsl,\n result_adae[seq_len(nrow(result_adae)), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————\nNumber of patients with at least one adverse event 122 (91.0%) 123 (91.8%) 120 (90.9%) \n90% CI for % of patients with at least one AE (Clopper-Pearson) (85.9, 94.8) (86.8, 95.3) (85.7, 94.7) \nDifference in % of patients with at least one AE 0.7 -0.1 \n 90% CI of difference (Newcombe) (-5.1, 6.6) (-6.1, 5.8) \nTotal number of AEs 609 622 703 \nNumber of patients with at least one AE by worst grade \n Grade 1 7 (5.2%) 9 (6.7%) 4 (3.0%) \n Grade 2 6 (4.5%) 10 (7.5%) 7 (5.3%) \n Grade 3 18 (13.4%) 14 (10.4%) 16 (12.1%) \n Grade 4 15 (11.2%) 20 (14.9%) 18 (13.6%) \n Grade 5 76 (56.7%) 70 (52.2%) 75 (56.8%) \nNumber of patients with at least one serious AE 104 (77.6%) 101 (75.4%) 99 (75.0%) \nNumber of patients with at least one AE by outcome \n Fatal outcome 76 (62.3%) 70 (56.9%) 75 (62.5%) \n Unresolved 66 (54.1%) 64 (52.0%) 70 (58.3%) \n Recovered/Resolved 73 (59.8%) 83 (67.5%) 88 (73.3%) \n Resolved with sequelae 44 (36.1%) 40 (32.5%) 43 (35.8%) \n Recovering/Resolving 81 (66.4%) 84 (68.3%) 88 (73.3%) \n Unknown outcome 38 (31.1%) 49 (39.8%) 44 (36.7%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCode# In progress\n\n\n\n\nThe adae and adsl datasets need to undergo data processing before table production. Some new variables are added to these datasets to create the desired tables.\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(\n adae,\n omit_columns = c(\"SMQ01NAM\", \"SMQ01SC\", \"SMQ02NAM\", \"SMQ02SC\", \"CQ01NAM\", \"STUDYID\", \"USUBJID\")\n)\n\ndf_max <- aggregate(as.numeric(AETOXGR) ~ USUBJID, data = adae, FUN = max, drop = FALSE)\ncolnames(df_max) <- c(\"USUBJID\", \"WTOXGR\")\n\nadae <- adae %>%\n left_join(df_max, by = c(\"USUBJID\")) %>%\n mutate(\n WTOXGR = factor(WTOXGR, levels = c(\"1\", \"2\", \"3\", \"4\", \"5\")),\n fl_ser = AESER == \"Y\"\n ) %>%\n mutate(\n WTOXGR = forcats::fct_recode(\n WTOXGR,\n \"Grade 1\" = \"1\",\n \"Grade 2\" = \"2\",\n \"Grade 3\" = \"3\",\n \"Grade 4\" = \"4\",\n \"Grade 5\" = \"5\"\n ),\n AEOUT = forcats::fct_recode(\n AEOUT,\n \"Fatal outcome\" = \"FATAL\",\n \"Unresolved\" = \"NOT RECOVERED/NOT RESOLVED\",\n \"Recovered/Resolved\" = \"RECOVERED/RESOLVED\",\n \"Resolved with sequelae\" = \"RECOVERED/RESOLVED WITH SEQUELAE\",\n \"Recovering/Resolving\" = \"RECOVERING/RESOLVING\",\n \"Unknown outcome\" = \"UNKNOWN\"\n )\n ) %>%\n var_relabel(\n WTOXGR = \"Worst overall grade\",\n fl_ser = \"Number of patients with at least one serious AE\"\n )\n\n# Add AE flag to adsl.\nadsl1 <- adsl %>%\n mutate(AEFL = ifelse(USUBJID %in% adae$USUBJID, TRUE, FALSE)) %>%\n var_relabel(AEFL = \"At least one AE\")", + "text": "Output\n\n\nStandard Table (High)\nStandard Table (Low)\nTable Without Patients with Missing Baseline (High)\nTable with Missing Baseline Considered as Grade 0 (Low)\nTable with Fill-In of Grades\nData Setup\n\n\n\nNote that the worst laboratory flag (below WGRHIFL) must be selected appropriately in the pre-processing step. New grouping variables ATOXGR_GP (post-baseline) and BTOXGR_GP (baseline) are created to display the correct output.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRHIFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- h_adsl_adlb_merge_using_worst_flag(adsl_f, adlb_f, worst_flag = c(\"WGRHIFL\" = \"Y\"))\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = factor(case_when(\n ATOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n ATOXGR == 1 ~ \"1\",\n ATOXGR == 2 ~ \"2\",\n ATOXGR == 3 ~ \"3\",\n ATOXGR == 4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n ) %>%\n mutate(\n BTOXGR_GP = factor(case_when(\n BTOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n BTOXGR == 1 ~ \"1\",\n BTOXGR == 2 ~ \"2\",\n BTOXGR == 3 ~ \"3\",\n BTOXGR == 4 ~ \"4\",\n BTOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = drop_split_levels,\n label_pos = \"topleft\",\n split_label = \"Parameter\"\n ) %>%\n split_rows_by(\n \"BTOXGR_GP\",\n label_pos = \"topleft\",\n split_label = \" Baseline NCI-CTCAE Grade\",\n indent_mod = 2L\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\"), unique_count_suffix = FALSE) %>%\n count_occurrences_by_grade(\"ATOXGR_GP\", denom = \"n\", drop = FALSE, .indent_mods = 3L) %>%\n append_topleft(\" Post-baseline NCI-CTCAE Grade\") %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f) %>%\n prune_table()\n\nresult\n\nParameter \n Baseline NCI-CTCAE Grade A: Drug X B: Placebo C: Combination\n Post-baseline NCI-CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————\nAlanine Aminotransferase Measurement \n Not High 134 134 132 \n Not High 134 (100%) 134 (100%) 132 (100%) \nC-Reactive Protein Measurement \n Not High 114 112 115 \n Not High 45 (39.5%) 55 (49.1%) 57 (49.6%) \n 1 18 (15.8%) 18 (16.1%) 19 (16.5%) \n 2 19 (16.7%) 10 (8.9%) 11 (9.6%) \n 3 22 (19.3%) 13 (11.6%) 20 (17.4%) \n 4 10 (8.8%) 16 (14.3%) 8 (7.0%) \n 1 8 10 7 \n Not High 5 (62.5%) 2 (20.0%) 2 (28.6%) \n 1 0 1 (10.0%) 0 \n 2 1 (12.5%) 3 (30.0%) 3 (42.9%) \n 3 1 (12.5%) 1 (10.0%) 0 \n 4 1 (12.5%) 3 (30.0%) 2 (28.6%) \n 2 2 6 7 \n Not High 1 (50.0%) 4 (66.7%) 4 (57.1%) \n 1 0 1 (16.7%) 2 (28.6%) \n 2 1 (50.0%) 1 (16.7%) 0 \n 4 0 0 1 (14.3%) \n 3 7 4 3 \n Not High 3 (42.9%) 0 2 (66.7%) \n 1 2 (28.6%) 1 (25.0%) 1 (33.3%) \n 2 0 1 (25.0%) 0 \n 3 1 (14.3%) 1 (25.0%) 0 \n 4 1 (14.3%) 1 (25.0%) 0 \n 4 3 2 0 \n Not High 1 (33.3%) 0 0 \n 1 0 1 (50.0%) 0 \n 3 1 (33.3%) 1 (50.0%) 0 \n 4 1 (33.3%) 0 0 \nImmunoglobulin A Measurement \n Not High 119 116 113 \n Not High 55 (46.2%) 54 (46.6%) 51 (45.1%) \n 1 18 (15.1%) 11 (9.5%) 15 (13.3%) \n 2 14 (11.8%) 22 (19.0%) 19 (16.8%) \n 3 20 (16.8%) 19 (16.4%) 20 (17.7%) \n 4 12 (10.1%) 10 (8.6%) 8 (7.1%) \n 1 5 4 2 \n Not High 4 (80.0%) 1 (25.0%) 2 (100%) \n 2 1 (20.0%) 1 (25.0%) 0 \n 3 0 2 (50.0%) 0 \n 2 4 4 5 \n Not High 2 (50.0%) 3 (75.0%) 3 (60.0%) \n 1 1 (25.0%) 0 2 (40.0%) \n 3 1 (25.0%) 0 0 \n 4 0 1 (25.0%) 0 \n 3 4 5 11 \n Not High 3 (75.0%) 1 (20.0%) 6 (54.5%) \n 1 0 1 (20.0%) 1 (9.1%) \n 2 1 (25.0%) 0 0 \n 3 0 2 (40.0%) 3 (27.3%) \n 4 0 1 (20.0%) 1 (9.1%) \n 4 2 5 1 \n Not High 0 3 (60.0%) 1 (100%) \n 2 1 (50.0%) 1 (20.0%) 0 \n 4 1 (50.0%) 1 (20.0%) 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote that the worst laboratory flag (below WGRLOFL) must be selected appropriately in the pre-processing step. New grouping variables ATOXGR_GP (post-baseline) and BTOXGR_GP (baseline) are created to display the correct output.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRLOFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- h_adsl_adlb_merge_using_worst_flag(adsl_f, adlb_f, worst_flag = c(\"WGRLOFL\" = \"Y\"))\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = factor(case_when(\n ATOXGR %in% c(0, 1, 2, 3, 4) ~ \"Not Low\",\n ATOXGR == -1 ~ \"1\",\n ATOXGR == -2 ~ \"2\",\n ATOXGR == -3 ~ \"3\",\n ATOXGR == -4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n ) %>%\n mutate(\n BTOXGR_GP = factor(case_when(\n BTOXGR %in% c(0, 1, 2, 3, 4) ~ \"Not Low\",\n BTOXGR == -1 ~ \"1\",\n BTOXGR == -2 ~ \"2\",\n BTOXGR == -3 ~ \"3\",\n BTOXGR == -4 ~ \"4\",\n BTOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = drop_split_levels,\n label_pos = \"topleft\",\n split_label = \"Parameter\"\n ) %>%\n split_rows_by(\n \"BTOXGR_GP\",\n label_pos = \"topleft\",\n split_label = \" Baseline NCI-CTCAE Grade\",\n indent_mod = 2L\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\"), unique_count_suffix = FALSE) %>%\n count_occurrences_by_grade(\"ATOXGR_GP\", denom = \"n\", drop = FALSE, .indent_mods = 3L) %>%\n append_topleft(\" Post-baseline NCI-CTCAE Grade\") %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f) %>%\n prune_table()\n\nresult\n\nParameter \n Baseline NCI-CTCAE Grade A: Drug X B: Placebo C: Combination\n Post-baseline NCI-CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————\nAlanine Aminotransferase Measurement \n Not Low 113 117 123 \n Not Low 56 (49.6%) 55 (47.0%) 62 (50.4%) \n 1 11 (9.7%) 9 (7.7%) 15 (12.2%) \n 2 15 (13.3%) 23 (19.7%) 16 (13.0%) \n 3 15 (13.3%) 21 (17.9%) 13 (10.6%) \n 4 16 (14.2%) 9 (7.7%) 17 (13.8%) \n 1 6 6 4 \n Not Low 3 (50.0%) 5 (83.3%) 3 (75.0%) \n 1 3 (50.0%) 0 0 \n 4 0 1 (16.7%) 1 (25.0%) \n 2 8 5 1 \n Not Low 5 (62.5%) 3 (60.0%) 0 \n 1 0 1 (20.0%) 0 \n 2 2 (25.0%) 0 0 \n 3 0 1 (20.0%) 1 (100%) \n 4 1 (12.5%) 0 0 \n 3 3 3 2 \n Not Low 0 1 (33.3%) 0 \n 1 1 (33.3%) 0 0 \n 2 1 (33.3%) 0 1 (50.0%) \n 3 1 (33.3%) 2 (66.7%) 1 (50.0%) \n 4 4 3 2 \n Not Low 4 (100%) 1 (33.3%) 1 (50.0%) \n 1 0 1 (33.3%) 0 \n 2 0 1 (33.3%) 0 \n 3 0 0 1 (50.0%) \nC-Reactive Protein Measurement \n Not Low 119 113 112 \n Not Low 41 (34.5%) 42 (37.2%) 50 (44.6%) \n 1 20 (16.8%) 18 (15.9%) 11 (9.8%) \n 2 24 (20.2%) 20 (17.7%) 14 (12.5%) \n 3 25 (21.0%) 18 (15.9%) 21 (18.8%) \n 4 9 (7.6%) 15 (13.3%) 16 (14.3%) \n 1 3 5 9 \n Not Low 2 (66.7%) 2 (40.0%) 2 (22.2%) \n 2 0 1 (20.0%) 3 (33.3%) \n 3 1 (33.3%) 1 (20.0%) 0 \n 4 0 1 (20.0%) 4 (44.4%) \n 2 5 9 2 \n Not Low 3 (60.0%) 4 (44.4%) 1 (50.0%) \n 1 1 (20.0%) 4 (44.4%) 0 \n 3 0 1 (11.1%) 1 (50.0%) \n 4 1 (20.0%) 0 0 \n 3 4 5 7 \n Not Low 1 (25.0%) 4 (80.0%) 2 (28.6%) \n 1 0 0 1 (14.3%) \n 2 0 0 1 (14.3%) \n 3 3 (75.0%) 1 (20.0%) 2 (28.6%) \n 4 0 0 1 (14.3%) \n 4 3 2 2 \n Not Low 3 (100%) 1 (50.0%) 0 \n 2 0 1 (50.0%) 0 \n 3 0 0 1 (50.0%) \n 4 0 0 1 (50.0%) \nImmunoglobulin A Measurement \n Not Low 134 134 132 \n Not Low 134 (100%) 134 (100%) 132 (100%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote that missing baseline values are filtered out in the pre-processing step.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRHIFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- h_adsl_adlb_merge_using_worst_flag(adsl_f, adlb_f, worst_flag = c(\"WGRHIFL\" = \"Y\"))\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n filter(BTOXGR != \"<Missing>\") %>%\n mutate(\n ATOXGR_GP = factor(case_when(\n ATOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n ATOXGR == 1 ~ \"1\",\n ATOXGR == 2 ~ \"2\",\n ATOXGR == 3 ~ \"3\",\n ATOXGR == 4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n ) %>%\n mutate(\n BTOXGR_GP = factor(case_when(\n BTOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n BTOXGR == 1 ~ \"1\",\n BTOXGR == 2 ~ \"2\",\n BTOXGR == 3 ~ \"3\",\n BTOXGR == 4 ~ \"4\"\n ), levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\"))\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = drop_split_levels,\n label_pos = \"topleft\",\n split_label = \"Parameter\"\n ) %>%\n split_rows_by(\n \"BTOXGR_GP\",\n label_pos = \"topleft\",\n split_label = \" Baseline NCI-CTCAE Grade\",\n indent_mod = 2L\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\"), unique_count_suffix = FALSE) %>%\n count_occurrences_by_grade(\"ATOXGR_GP\", denom = \"n\", drop = FALSE, .indent_mods = 3L) %>%\n append_topleft(\" Post-baseline NCI-CTCAE Grade\") %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f) %>%\n prune_table()\n\nresult\n\nParameter \n Baseline NCI-CTCAE Grade A: Drug X B: Placebo C: Combination\n Post-baseline NCI-CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————\nAlanine Aminotransferase Measurement \n Not High 134 134 132 \n Not High 134 (100%) 134 (100%) 132 (100%) \nC-Reactive Protein Measurement \n Not High 114 112 115 \n Not High 45 (39.5%) 55 (49.1%) 57 (49.6%) \n 1 18 (15.8%) 18 (16.1%) 19 (16.5%) \n 2 19 (16.7%) 10 (8.9%) 11 (9.6%) \n 3 22 (19.3%) 13 (11.6%) 20 (17.4%) \n 4 10 (8.8%) 16 (14.3%) 8 (7.0%) \n 1 8 10 7 \n Not High 5 (62.5%) 2 (20.0%) 2 (28.6%) \n 1 0 1 (10.0%) 0 \n 2 1 (12.5%) 3 (30.0%) 3 (42.9%) \n 3 1 (12.5%) 1 (10.0%) 0 \n 4 1 (12.5%) 3 (30.0%) 2 (28.6%) \n 2 2 6 7 \n Not High 1 (50.0%) 4 (66.7%) 4 (57.1%) \n 1 0 1 (16.7%) 2 (28.6%) \n 2 1 (50.0%) 1 (16.7%) 0 \n 4 0 0 1 (14.3%) \n 3 7 4 3 \n Not High 3 (42.9%) 0 2 (66.7%) \n 1 2 (28.6%) 1 (25.0%) 1 (33.3%) \n 2 0 1 (25.0%) 0 \n 3 1 (14.3%) 1 (25.0%) 0 \n 4 1 (14.3%) 1 (25.0%) 0 \n 4 3 2 0 \n Not High 1 (33.3%) 0 0 \n 1 0 1 (50.0%) 0 \n 3 1 (33.3%) 1 (50.0%) 0 \n 4 1 (33.3%) 0 0 \nImmunoglobulin A Measurement \n Not High 119 116 113 \n Not High 55 (46.2%) 54 (46.6%) 51 (45.1%) \n 1 18 (15.1%) 11 (9.5%) 15 (13.3%) \n 2 14 (11.8%) 22 (19.0%) 19 (16.8%) \n 3 20 (16.8%) 19 (16.4%) 20 (17.7%) \n 4 12 (10.1%) 10 (8.6%) 8 (7.1%) \n 1 5 4 2 \n Not High 4 (80.0%) 1 (25.0%) 2 (100%) \n 2 1 (20.0%) 1 (25.0%) 0 \n 3 0 2 (50.0%) 0 \n 2 4 4 5 \n Not High 2 (50.0%) 3 (75.0%) 3 (60.0%) \n 1 1 (25.0%) 0 2 (40.0%) \n 3 1 (25.0%) 0 0 \n 4 0 1 (25.0%) 0 \n 3 4 5 11 \n Not High 3 (75.0%) 1 (20.0%) 6 (54.5%) \n 1 0 1 (20.0%) 1 (9.1%) \n 2 1 (25.0%) 0 0 \n 3 0 2 (40.0%) 3 (27.3%) \n 4 0 1 (20.0%) 1 (9.1%) \n 4 2 5 1 \n Not High 0 3 (60.0%) 1 (100%) \n 2 1 (50.0%) 1 (20.0%) 0 \n 4 1 (50.0%) 1 (20.0%) 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote that when BTOXGR is missing, the grouping variable BTOXGR_GP now is \"Not Low\" instead of \"Missing\" compared to Standard Table (Low).\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRLOFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- h_adsl_adlb_merge_using_worst_flag(adsl_f, adlb_f, worst_flag = c(\"WGRLOFL\" = \"Y\"))\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = factor(case_when(\n ATOXGR %in% c(0, 1, 2, 3, 4) ~ \"Not Low\",\n ATOXGR == -1 ~ \"1\",\n ATOXGR == -2 ~ \"2\",\n ATOXGR == -3 ~ \"3\",\n ATOXGR == -4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\"))\n ) %>%\n mutate(\n BTOXGR_GP = factor(case_when(\n BTOXGR %in% c(0, 1, 2, 3, 4, \"<Missing>\") ~ \"Not Low\",\n BTOXGR == -1 ~ \"1\",\n BTOXGR == -2 ~ \"2\",\n BTOXGR == -3 ~ \"3\",\n BTOXGR == -4 ~ \"4\"\n ), levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = drop_split_levels,\n label_pos = \"topleft\",\n split_label = \"Parameter\"\n ) %>%\n split_rows_by(\n \"BTOXGR_GP\",\n label_pos = \"topleft\",\n split_label = \" Baseline NCI-CTCAE Grade\",\n indent_mod = 2L\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\"), unique_count_suffix = FALSE) %>%\n count_occurrences_by_grade(\"ATOXGR_GP\", denom = \"n\", drop = FALSE, .indent_mods = 3L) %>%\n append_topleft(\" Post-baseline NCI-CTCAE Grade\") %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f) %>%\n prune_table()\n\nresult\n\nParameter \n Baseline NCI-CTCAE Grade A: Drug X B: Placebo C: Combination\n Post-baseline NCI-CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————\nAlanine Aminotransferase Measurement \n Not Low 113 117 123 \n Not Low 56 (49.6%) 55 (47.0%) 62 (50.4%) \n 1 11 (9.7%) 9 (7.7%) 15 (12.2%) \n 2 15 (13.3%) 23 (19.7%) 16 (13.0%) \n 3 15 (13.3%) 21 (17.9%) 13 (10.6%) \n 4 16 (14.2%) 9 (7.7%) 17 (13.8%) \n 1 6 6 4 \n Not Low 3 (50.0%) 5 (83.3%) 3 (75.0%) \n 1 3 (50.0%) 0 0 \n 4 0 1 (16.7%) 1 (25.0%) \n 2 8 5 1 \n Not Low 5 (62.5%) 3 (60.0%) 0 \n 1 0 1 (20.0%) 0 \n 2 2 (25.0%) 0 0 \n 3 0 1 (20.0%) 1 (100%) \n 4 1 (12.5%) 0 0 \n 3 3 3 2 \n Not Low 0 1 (33.3%) 0 \n 1 1 (33.3%) 0 0 \n 2 1 (33.3%) 0 1 (50.0%) \n 3 1 (33.3%) 2 (66.7%) 1 (50.0%) \n 4 4 3 2 \n Not Low 4 (100%) 1 (33.3%) 1 (50.0%) \n 1 0 1 (33.3%) 0 \n 2 0 1 (33.3%) 0 \n 3 0 0 1 (50.0%) \nC-Reactive Protein Measurement \n Not Low 119 113 112 \n Not Low 41 (34.5%) 42 (37.2%) 50 (44.6%) \n 1 20 (16.8%) 18 (15.9%) 11 (9.8%) \n 2 24 (20.2%) 20 (17.7%) 14 (12.5%) \n 3 25 (21.0%) 18 (15.9%) 21 (18.8%) \n 4 9 (7.6%) 15 (13.3%) 16 (14.3%) \n 1 3 5 9 \n Not Low 2 (66.7%) 2 (40.0%) 2 (22.2%) \n 2 0 1 (20.0%) 3 (33.3%) \n 3 1 (33.3%) 1 (20.0%) 0 \n 4 0 1 (20.0%) 4 (44.4%) \n 2 5 9 2 \n Not Low 3 (60.0%) 4 (44.4%) 1 (50.0%) \n 1 1 (20.0%) 4 (44.4%) 0 \n 3 0 1 (11.1%) 1 (50.0%) \n 4 1 (20.0%) 0 0 \n 3 4 5 7 \n Not Low 1 (25.0%) 4 (80.0%) 2 (28.6%) \n 1 0 0 1 (14.3%) \n 2 0 0 1 (14.3%) \n 3 3 (75.0%) 1 (20.0%) 2 (28.6%) \n 4 0 0 1 (14.3%) \n 4 3 2 2 \n Not Low 3 (100%) 1 (50.0%) 0 \n 2 0 1 (50.0%) 0 \n 3 0 0 1 (50.0%) \n 4 0 0 1 (50.0%) \nImmunoglobulin A Measurement \n Not Low 134 134 132 \n Not Low 134 (100%) 134 (100%) 132 (100%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPre-processing is the same as Standard Table (High), but in order to keep all levels, prune_table() is not applied.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRHIFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- h_adsl_adlb_merge_using_worst_flag(adsl_f, adlb_f, worst_flag = c(\"WGRHIFL\" = \"Y\"))\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = factor(case_when(\n ATOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n ATOXGR == 1 ~ \"1\",\n ATOXGR == 2 ~ \"2\",\n ATOXGR == 3 ~ \"3\",\n ATOXGR == 4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n ) %>%\n mutate(\n BTOXGR_GP = factor(case_when(\n BTOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n BTOXGR == 1 ~ \"1\",\n BTOXGR == 2 ~ \"2\",\n BTOXGR == 3 ~ \"3\",\n BTOXGR == 4 ~ \"4\",\n BTOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = drop_split_levels,\n label_pos = \"topleft\",\n split_label = \"Parameter\"\n ) %>%\n split_rows_by(\n \"BTOXGR_GP\",\n label_pos = \"topleft\",\n split_label = \" Baseline NCI-CTCAE Grade\",\n indent_mod = 2L\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\"), unique_count_suffix = FALSE) %>%\n count_occurrences_by_grade(\"ATOXGR_GP\", denom = \"n\", drop = FALSE, .indent_mods = 3L) %>%\n append_topleft(\" Post-baseline NCI-CTCAE Grade\") %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f)\n\nresult\n\nParameter \n Baseline NCI-CTCAE Grade A: Drug X B: Placebo C: Combination\n Post-baseline NCI-CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————\nAlanine Aminotransferase Measurement \n Not High 134 134 132 \n Not High 134 (100%) 134 (100%) 132 (100%) \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 1 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 2 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 3 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 4 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n Missing 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \nC-Reactive Protein Measurement \n Not High 114 112 115 \n Not High 45 (39.5%) 55 (49.1%) 57 (49.6%) \n 1 18 (15.8%) 18 (16.1%) 19 (16.5%) \n 2 19 (16.7%) 10 (8.9%) 11 (9.6%) \n 3 22 (19.3%) 13 (11.6%) 20 (17.4%) \n 4 10 (8.8%) 16 (14.3%) 8 (7.0%) \n Missing 0 0 0 \n 1 8 10 7 \n Not High 5 (62.5%) 2 (20.0%) 2 (28.6%) \n 1 0 1 (10.0%) 0 \n 2 1 (12.5%) 3 (30.0%) 3 (42.9%) \n 3 1 (12.5%) 1 (10.0%) 0 \n 4 1 (12.5%) 3 (30.0%) 2 (28.6%) \n Missing 0 0 0 \n 2 2 6 7 \n Not High 1 (50.0%) 4 (66.7%) 4 (57.1%) \n 1 0 1 (16.7%) 2 (28.6%) \n 2 1 (50.0%) 1 (16.7%) 0 \n 3 0 0 0 \n 4 0 0 1 (14.3%) \n Missing 0 0 0 \n 3 7 4 3 \n Not High 3 (42.9%) 0 2 (66.7%) \n 1 2 (28.6%) 1 (25.0%) 1 (33.3%) \n 2 0 1 (25.0%) 0 \n 3 1 (14.3%) 1 (25.0%) 0 \n 4 1 (14.3%) 1 (25.0%) 0 \n Missing 0 0 0 \n 4 3 2 0 \n Not High 1 (33.3%) 0 0 \n 1 0 1 (50.0%) 0 \n 2 0 0 0 \n 3 1 (33.3%) 1 (50.0%) 0 \n 4 1 (33.3%) 0 0 \n Missing 0 0 0 \n Missing 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \nImmunoglobulin A Measurement \n Not High 119 116 113 \n Not High 55 (46.2%) 54 (46.6%) 51 (45.1%) \n 1 18 (15.1%) 11 (9.5%) 15 (13.3%) \n 2 14 (11.8%) 22 (19.0%) 19 (16.8%) \n 3 20 (16.8%) 19 (16.4%) 20 (17.7%) \n 4 12 (10.1%) 10 (8.6%) 8 (7.1%) \n Missing 0 0 0 \n 1 5 4 2 \n Not High 4 (80.0%) 1 (25.0%) 2 (100%) \n 1 0 0 0 \n 2 1 (20.0%) 1 (25.0%) 0 \n 3 0 2 (50.0%) 0 \n 4 0 0 0 \n Missing 0 0 0 \n 2 4 4 5 \n Not High 2 (50.0%) 3 (75.0%) 3 (60.0%) \n 1 1 (25.0%) 0 2 (40.0%) \n 2 0 0 0 \n 3 1 (25.0%) 0 0 \n 4 0 1 (25.0%) 0 \n Missing 0 0 0 \n 3 4 5 11 \n Not High 3 (75.0%) 1 (20.0%) 6 (54.5%) \n 1 0 1 (20.0%) 1 (9.1%) \n 2 1 (25.0%) 0 0 \n 3 0 2 (40.0%) 3 (27.3%) \n 4 0 1 (20.0%) 1 (9.1%) \n Missing 0 0 0 \n 4 2 5 1 \n Not High 0 3 (60.0%) 1 (100%) \n 1 0 0 0 \n 2 1 (50.0%) 1 (20.0%) 0 \n 3 0 0 0 \n 4 1 (50.0%) 1 (20.0%) 0 \n Missing 0 0 0 \n Missing 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPlease note that for each variant, the adlb dataset needs to be filtered on correct flags like WGRLOFL, WGRHIFL, et al., otherwise the layout function will not return the correct counts. There is an option to create a record for a lab test where no record is found at that visit. If you specified add_derived_type = \"PHANTOM\" & dtype_phantom_cond, you don’t have to use the h_adsl_adlb_merge_using_worst_flag function to preprocess your adlb dataset. Otherwise please follow the pre-processing steps below before applying the layout functions.\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\nadsl <- df_explicit_na(adsl)\nadlb <- df_explicit_na(adlb)\n\n# Please note that in real clinical data, population flag like SAFFL, and parameter category like PARCAT2 needs to be\n# selected properly.\nadsl_f <- adsl %>% filter(SAFFL == \"Y\")\nadlb <- adlb %>% filter(SAFFL == \"Y\")", "crumbs": [ "Tables", - "Risk Management Plan", - "RMPT06" + "Lab Results", + "LBT14" ] }, { - "objectID": "tables/risk-management-plan/rmpt06.html#reproducibility", - "href": "tables/risk-management-plan/rmpt06.html#reproducibility", - "title": "RMPT06", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:48:14 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/lab-results/lbt14.html#teal-app", + "href": "tables/lab-results/lbt14.html#teal-app", + "title": "LBT14", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_shift_by_grade(\n label = \"Grade Laboratory Abnormality Table\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"ALT\"\n ),\n worst_flag_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"WGRLOVFL\", \"WGRLOFL\", \"WGRHIVFL\", \"WGRHIFL\")),\n selected = c(\"WGRHIFL\")\n ),\n worst_flag_indicator = choices_selected(\n value_choices(ADLB, \"WGRLOVFL\"),\n selected = \"Y\", fixed = TRUE\n ),\n anl_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"ATOXGR\")),\n selected = c(\"ATOXGR\"),\n fixed = TRUE\n ),\n base_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"BTOXGR\")),\n selected = c(\"BTOXGR\"),\n fixed = TRUE\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_shift_by_grade(\n label = \"Grade Laboratory Abnormality Table\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"ALT\"\n ),\n worst_flag_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"WGRLOVFL\", \"WGRLOFL\", \"WGRHIVFL\", \"WGRHIFL\")),\n selected = c(\"WGRHIFL\")\n ),\n worst_flag_indicator = choices_selected(\n value_choices(ADLB, \"WGRLOVFL\"),\n selected = \"Y\", fixed = TRUE\n ),\n anl_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"ATOXGR\")),\n selected = c(\"ATOXGR\"),\n fixed = TRUE\n ),\n base_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"BTOXGR\")),\n selected = c(\"BTOXGR\"),\n fixed = TRUE\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Risk Management Plan", - "RMPT06" + "Lab Results", + "LBT14" ] }, { - "objectID": "tables/demography/dmt01.html#output", - "href": "tables/demography/dmt01.html#output", - "title": "DMT01", - "section": "Output", - "text": "Output\n\n\nTable with an Additional Study-Specific Continuous Variable\nTable with an Additional Study-Specific Categorical Variable\nTable with Subgrouping for Some Analyses\nTable with Additional Vital Signs Baseline Values\nTable with Additional Values from ADSUB\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevars <- c(\"AGE\", \"AGEGR1\", \"SEX\", \"ETHNIC\", \"RACE\", \"BMRKR1\")\nvar_labels <- c(\n \"Age (yr)\",\n \"Age Group\",\n \"Sex\",\n \"Ethnicity\",\n \"Race\",\n \"Continous Level Biomarker 1\"\n)\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n add_overall_col(\"All Patients\") %>%\n analyze_vars(\n vars = vars,\n var_labels = var_labels\n ) %>%\n build_table(adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————————————————————————————————————\nAge (yr) \n n 134 134 132 400 \n Mean (SD) 33.8 (6.6) 35.4 (7.9) 35.4 (7.7) 34.9 (7.4) \n Median 33.0 35.0 35.0 34.0 \n Min - Max 21.0 - 50.0 21.0 - 62.0 20.0 - 69.0 20.0 - 69.0 \nAge Group \n n 134 134 132 400 \n 18-40 113 (84.3%) 103 (76.9%) 106 (80.3%) 322 (80.5%) \n 41-64 21 (15.7%) 31 (23.1%) 25 (18.9%) 77 (19.2%) \n >=65 0 0 1 (0.8%) 1 (0.2%) \nSex \n n 134 134 132 400 \n Female 79 (59%) 82 (61.2%) 70 (53%) 231 (57.8%) \n Male 55 (41%) 52 (38.8%) 62 (47%) 169 (42.2%) \nEthnicity \n n 134 134 132 400 \n HISPANIC OR LATINO 15 (11.2%) 18 (13.4%) 15 (11.4%) 48 (12%) \n NOT HISPANIC OR LATINO 104 (77.6%) 103 (76.9%) 101 (76.5%) 308 (77%) \n NOT REPORTED 6 (4.5%) 10 (7.5%) 11 (8.3%) 27 (6.8%) \n UNKNOWN 9 (6.7%) 3 (2.2%) 5 (3.8%) 17 (4.2%) \nRace \n n 134 134 132 400 \n ASIAN 68 (50.7%) 67 (50%) 73 (55.3%) 208 (52%) \n BLACK OR AFRICAN AMERICAN 31 (23.1%) 28 (20.9%) 32 (24.2%) 91 (22.8%) \n WHITE 27 (20.1%) 26 (19.4%) 21 (15.9%) 74 (18.5%) \n AMERICAN INDIAN OR ALASKA NATIVE 8 (6%) 11 (8.2%) 6 (4.5%) 25 (6.2%) \n MULTIPLE 0 1 (0.7%) 0 1 (0.2%) \n NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 0 1 (0.7%) 0 1 (0.2%) \n OTHER 0 0 0 0 \n UNKNOWN 0 0 0 0 \nContinous Level Biomarker 1 \n n 134 134 132 400 \n Mean (SD) 6.0 (3.6) 5.7 (3.3) 5.6 (3.5) 5.8 (3.4) \n Median 5.4 4.8 4.6 4.8 \n Min - Max 0.4 - 17.7 0.6 - 14.2 0.2 - 21.4 0.2 - 21.4 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevars <- c(\"AGE\", \"AGEGR1\", \"SEX\", \"ETHNIC\", \"RACE\", \"BMRKR1_CAT\")\nvar_labels <- c(\n \"Age (yr)\",\n \"Age Group\",\n \"Sex\",\n \"Ethnicity\",\n \"Race\",\n \"Biomarker 1 Categories\"\n)\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n analyze_vars(\n vars = vars,\n var_labels = var_labels\n ) %>%\n build_table(adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————\nAge (yr) \n n 134 134 132 \n Mean (SD) 33.8 (6.6) 35.4 (7.9) 35.4 (7.7) \n Median 33.0 35.0 35.0 \n Min - Max 21.0 - 50.0 21.0 - 62.0 20.0 - 69.0 \nAge Group \n n 134 134 132 \n 18-40 113 (84.3%) 103 (76.9%) 106 (80.3%) \n 41-64 21 (15.7%) 31 (23.1%) 25 (18.9%) \n >=65 0 0 1 (0.8%) \nSex \n n 134 134 132 \n Female 79 (59%) 82 (61.2%) 70 (53%) \n Male 55 (41%) 52 (38.8%) 62 (47%) \nEthnicity \n n 134 134 132 \n HISPANIC OR LATINO 15 (11.2%) 18 (13.4%) 15 (11.4%) \n NOT HISPANIC OR LATINO 104 (77.6%) 103 (76.9%) 101 (76.5%) \n NOT REPORTED 6 (4.5%) 10 (7.5%) 11 (8.3%) \n UNKNOWN 9 (6.7%) 3 (2.2%) 5 (3.8%) \nRace \n n 134 134 132 \n ASIAN 68 (50.7%) 67 (50%) 73 (55.3%) \n BLACK OR AFRICAN AMERICAN 31 (23.1%) 28 (20.9%) 32 (24.2%) \n WHITE 27 (20.1%) 26 (19.4%) 21 (15.9%) \n AMERICAN INDIAN OR ALASKA NATIVE 8 (6%) 11 (8.2%) 6 (4.5%) \n MULTIPLE 0 1 (0.7%) 0 \n NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 0 1 (0.7%) 0 \n OTHER 0 0 0 \n UNKNOWN 0 0 0 \nBiomarker 1 Categories \n n 134 134 132 \n LOW 33 (24.6%) 41 (30.6%) 38 (28.8%) \n MEDIUM 84 (62.7%) 76 (56.7%) 80 (60.6%) \n HIGH 17 (12.7%) 17 (12.7%) 14 (10.6%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n analyze_vars(\n vars = c(\"AGE\", \"SEX\", \"RACE\"),\n var_labels = c(\"Age\", \"Sex\", \"Race\")\n ) %>%\n split_rows_by(\"STRATA1\",\n split_fun = split_fun\n ) %>%\n analyze_vars(\"BMRKR1\") %>%\n build_table(adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————\nAge \n n 134 134 132 \n Mean (SD) 33.8 (6.6) 35.4 (7.9) 35.4 (7.7) \n Median 33.0 35.0 35.0 \n Min - Max 21.0 - 50.0 21.0 - 62.0 20.0 - 69.0 \nSex \n n 134 134 132 \n Female 79 (59%) 82 (61.2%) 70 (53%) \n Male 55 (41%) 52 (38.8%) 62 (47%) \nRace \n n 134 134 132 \n ASIAN 68 (50.7%) 67 (50%) 73 (55.3%) \n BLACK OR AFRICAN AMERICAN 31 (23.1%) 28 (20.9%) 32 (24.2%) \n WHITE 27 (20.1%) 26 (19.4%) 21 (15.9%) \n AMERICAN INDIAN OR ALASKA NATIVE 8 (6%) 11 (8.2%) 6 (4.5%) \n MULTIPLE 0 1 (0.7%) 0 \n NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 0 1 (0.7%) 0 \n OTHER 0 0 0 \n UNKNOWN 0 0 0 \nA \n n 38 44 40 \n Mean (SD) 5.8 (3.8) 5.4 (3.2) 5.1 (3.2) \n Median 5.1 4.5 3.8 \n Min - Max 0.4 - 17.7 1.4 - 14.2 1.5 - 14.0 \nB \n n 47 45 43 \n Mean (SD) 6.1 (3.6) 5.8 (3.6) 5.7 (3.4) \n Median 5.2 4.8 5.1 \n Min - Max 1.6 - 17.2 0.6 - 13.3 0.2 - 16.5 \nC \n n 49 45 49 \n Mean (SD) 6.0 (3.4) 5.9 (3.2) 6.0 (3.8) \n Median 5.8 5.6 4.5 \n Min - Max 0.5 - 15.1 1.5 - 13.9 1.2 - 21.4 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n analyze_vars(\n vars = c(\"AGE\", \"SEX\", \"RACE\", \"DBP\", \"SBP\"),\n var_labels = c(\n \"Age (yr)\",\n \"Sex\",\n \"Race\",\n \"Diastolic Blood Pressure\",\n \"Systolic Blood Pressure\"\n )\n ) %>%\n build_table(adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————\nAge (yr) \n n 134 134 132 \n Mean (SD) 33.8 (6.6) 35.4 (7.9) 35.4 (7.7) \n Median 33.0 35.0 35.0 \n Min - Max 21.0 - 50.0 21.0 - 62.0 20.0 - 69.0 \nSex \n n 134 134 132 \n Female 79 (59%) 82 (61.2%) 70 (53%) \n Male 55 (41%) 52 (38.8%) 62 (47%) \nRace \n n 134 134 132 \n ASIAN 68 (50.7%) 67 (50%) 73 (55.3%) \n BLACK OR AFRICAN AMERICAN 31 (23.1%) 28 (20.9%) 32 (24.2%) \n WHITE 27 (20.1%) 26 (19.4%) 21 (15.9%) \n AMERICAN INDIAN OR ALASKA NATIVE 8 (6%) 11 (8.2%) 6 (4.5%) \n MULTIPLE 0 1 (0.7%) 0 \n NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 0 1 (0.7%) 0 \n OTHER 0 0 0 \n UNKNOWN 0 0 0 \nDiastolic Blood Pressure \n n 134 134 132 \n Mean (SD) 96.5 (19.9) 101.1 (19.9) 102.8 (19.5) \n Median 96.0 100.4 102.0 \n Min - Max 44.3 - 136.6 29.2 - 143.8 49.4 - 153.5 \nSystolic Blood Pressure \n n 134 134 132 \n Mean (SD) 151.7 (31.5) 149.5 (26.5) 144.7 (30.1) \n Median 150.1 153.0 146.5 \n Min - Max 69.1 - 231.2 87.2 - 220.9 71.8 - 220.2 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n analyze_vars(\n vars = c(\"AGE\", \"SEX\", \"RACE\", \"BBMISI\"),\n var_labels = c(\n \"Age (yr)\",\n \"Sex\",\n \"Race\",\n \"Baseline BMI\"\n )\n ) %>%\n build_table(adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————\nAge (yr) \n n 134 134 132 \n Mean (SD) 33.8 (6.6) 35.4 (7.9) 35.4 (7.7) \n Median 33.0 35.0 35.0 \n Min - Max 21.0 - 50.0 21.0 - 62.0 20.0 - 69.0 \nSex \n n 134 134 132 \n Female 79 (59%) 82 (61.2%) 70 (53%) \n Male 55 (41%) 52 (38.8%) 62 (47%) \nRace \n n 134 134 132 \n ASIAN 68 (50.7%) 67 (50%) 73 (55.3%) \n BLACK OR AFRICAN AMERICAN 31 (23.1%) 28 (20.9%) 32 (24.2%) \n WHITE 27 (20.1%) 26 (19.4%) 21 (15.9%) \n AMERICAN INDIAN OR ALASKA NATIVE 8 (6%) 11 (8.2%) 6 (4.5%) \n MULTIPLE 0 1 (0.7%) 0 \n NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 0 1 (0.7%) 0 \n OTHER 0 0 0 \n UNKNOWN 0 0 0 \nBaseline BMI \n n 134 134 132 \n Mean (SD) 30.0 (18.3) 32.4 (23.2) 30.1 (18.4) \n Median 27.1 31.1 30.0 \n Min - Max -6.9 - 75.9 -26.6 - 117.9 -44.2 - 87.5 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(tidyr)\n\nadsl <- random.cdisc.data::cadsl\nadvs <- random.cdisc.data::cadvs\nadsub <- random.cdisc.data::cadsub\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadvs <- df_explicit_na(advs)\nadsub <- df_explicit_na(adsub)\n\n# Change description in variable SEX.\nadsl <- adsl %>%\n mutate(\n SEX = factor(case_when(\n SEX == \"M\" ~ \"Male\",\n SEX == \"F\" ~ \"Female\",\n SEX == \"U\" ~ \"Unknown\",\n SEX == \"UNDIFFERENTIATED\" ~ \"Undifferentiated\"\n )),\n AGEGR1 = factor(\n case_when(\n between(AGE, 18, 40) ~ \"18-40\",\n between(AGE, 41, 64) ~ \"41-64\",\n AGE > 64 ~ \">=65\"\n ),\n levels = c(\"18-40\", \"41-64\", \">=65\")\n ),\n BMRKR1_CAT = factor(\n case_when(\n BMRKR1 < 3.5 ~ \"LOW\",\n BMRKR1 >= 3.5 & BMRKR1 < 10 ~ \"MEDIUM\",\n BMRKR1 >= 10 ~ \"HIGH\"\n ),\n levels = c(\"LOW\", \"MEDIUM\", \"HIGH\")\n )\n ) %>%\n var_relabel(\n BMRKR1_CAT = \"Biomarker 1 Categories\"\n )\n# The developer needs to do pre-processing to add necessary variables based on ADVS to analysis dataset.\n# Obtain SBP, DBP and weight.\nget_param_advs <- function(pname, plabel) {\n ds <- advs %>%\n filter(PARAM == plabel & AVISIT == \"BASELINE\") %>%\n select(USUBJID, AVAL)\n\n colnames(ds) <- c(\"USUBJID\", pname)\n\n ds\n}\n# The developer needs to do pre-processing to add necessary variables based on ADSUB to analysis dataset.\n# Obtain baseline BMI (BBMISI).\nget_param_adsub <- function(pname, plabel) {\n ds <- adsub %>%\n filter(PARAM == plabel) %>%\n select(USUBJID, AVAL)\n\n colnames(ds) <- c(\"USUBJID\", pname)\n\n ds\n}\nadsl <- adsl %>%\n left_join(get_param_advs(\"SBP\", \"Systolic Blood Pressure\"), by = \"USUBJID\") %>%\n left_join(get_param_advs(\"DBP\", \"Diastolic Blood Pressure\"), by = \"USUBJID\") %>%\n left_join(get_param_advs(\"WGT\", \"Weight\"), by = \"USUBJID\") %>%\n left_join(get_param_adsub(\"BBMISI\", \"Baseline BMI\"), by = \"USUBJID\")", + "objectID": "tables/lab-results/lbt14.html#reproducibility", + "href": "tables/lab-results/lbt14.html#reproducibility", + "title": "LBT14", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:44:12 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Demography", - "DMT01" + "Lab Results", + "LBT14" ] }, { - "objectID": "tables/demography/dmt01.html#teal-app", - "href": "tables/demography/dmt01.html#teal-app", - "title": "DMT01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n\n # Include `EOSDY` and `DCSREAS` variables below because they contain missing data.\n stopifnot(\n any(is.na(ADSL$EOSDY)),\n any(is.na(ADSL$DCSREAS))\n )\n})\ndatanames <- \"ADSL\"\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary(\n label = \"Demographic Table\",\n dataname = \"ADSL\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n summarize_vars = choices_selected(\n c(\"SEX\", \"RACE\", \"BMRKR2\", \"EOSDY\", \"DCSREAS\"),\n c(\"SEX\", \"RACE\")\n ),\n useNA = \"ifany\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n\n # Include `EOSDY` and `DCSREAS` variables below because they contain missing data.\n stopifnot(\n any(is.na(ADSL$EOSDY)),\n any(is.na(ADSL$DCSREAS))\n )\n})\ndatanames <- \"ADSL\"\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary(\n label = \"Demographic Table\",\n dataname = \"ADSL\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n summarize_vars = choices_selected(\n c(\"SEX\", \"RACE\", \"BMRKR2\", \"EOSDY\", \"DCSREAS\"),\n c(\"SEX\", \"RACE\")\n ),\n useNA = \"ifany\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "tables/lab-results/lbt09.html#output", + "href": "tables/lab-results/lbt09.html#output", + "title": "LBT09", + "section": "Output", + "text": "Output\n\n\nStandard Table\nTable Selecting Sections\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table() %>%\n split_cols_by(\"ARM\") %>%\n split_cols_by(\"AVISIT\") %>%\n split_rows_by(\"TBILI_CAT\") %>%\n # below split helps us get the right denominator between ALT/AST but it can be hidden\n split_rows_by(\"ALTAST_ind\", split_fun = trim_levels_to_map(map), child_labels = \"hidden\") %>%\n count_occurrences(\n vars = \"ALTAST_CAT\",\n .stats = \"fraction\",\n denom = \"n\",\n drop = FALSE\n ) %>%\n append_topleft(\"Liver Laboratory Test Criterion\") %>%\n build_table(df = adhy_liver)\n\n# trim away rows with criteria not met\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n ifelse(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- result %>% trim_rows(criteria = criteria_fun)\nresult\n\n A: Drug X B: Placebo C: Combination \nLiver Laboratory Test Criterion BASELINE POST-BASELINE BASELINE POST-BASELINE BASELINE POST-BASELINE \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal Bilirubin <= 2xULN \n ALT >3 - <= 5xULN 23/134 (17.2%) 15/134 (11.2%) 25/134 (18.7%) 27/134 (20.1%) 27/132 (20.5%) 30/132 (22.7%)\n ALT >5 - <= 10xULN 28/134 (20.9%) 29/134 (21.6%) 29/134 (21.6%) 19/134 (14.2%) 36/132 (27.3%) 29/132 (22.0%)\n ALT >10 - <= 20xULN 24/134 (17.9%) 30/134 (22.4%) 32/134 (23.9%) 33/134 (24.6%) 28/132 (21.2%) 24/132 (18.2%)\n ALT > 20xULN 32/134 (23.9%) 35/134 (26.1%) 24/134 (17.9%) 23/134 (17.2%) 20/132 (15.2%) 26/132 (19.7%)\n AST >3 - <= 5xULN 31/134 (23.1%) 34/134 (25.4%) 30/134 (22.4%) 26/134 (19.4%) 34/132 (25.8%) 24/132 (18.2%)\n AST >5 - <= 10xULN 25/134 (18.7%) 25/134 (18.7%) 26/134 (19.4%) 26/134 (19.4%) 22/132 (16.7%) 27/132 (20.5%)\n AST >10 - <= 20xULN 22/134 (16.4%) 29/134 (21.6%) 16/134 (11.9%) 22/134 (16.4%) 34/132 (25.8%) 19/132 (14.4%)\n AST > 20xULN 20/134 (14.9%) 16/134 (11.9%) 28/134 (20.9%) 31/134 (23.1%) 21/132 (15.9%) 39/132 (29.5%)\nTotal Bilirubin > 2xULN \n ALT >3 - <= 5xULN 40/134 (29.9%) 28/134 (20.9%) 31/134 (23.1%) 28/134 (20.9%) 18/132 (13.6%) 32/132 (24.2%)\n ALT >5 - <= 10xULN 24/134 (17.9%) 29/134 (21.6%) 30/134 (22.4%) 37/134 (27.6%) 33/132 (25.0%) 24/132 (18.2%)\n ALT >10 - <= 20xULN 24/134 (17.9%) 22/134 (16.4%) 26/134 (19.4%) 18/134 (13.4%) 21/132 (15.9%) 30/132 (22.7%)\n ALT > 20xULN 19/134 (14.2%) 33/134 (24.6%) 23/134 (17.2%) 19/134 (14.2%) 30/132 (22.7%) 22/132 (16.7%)\n AST >3 - <= 5xULN 17/134 (12.7%) 27/134 (20.1%) 36/134 (26.9%) 25/134 (18.7%) 26/132 (19.7%) 34/132 (25.8%)\n AST >5 - <= 10xULN 25/134 (18.7%) 28/134 (20.9%) 24/134 (17.9%) 28/134 (20.9%) 20/132 (15.2%) 23/132 (17.4%)\n AST >10 - <= 20xULN 36/134 (26.9%) 28/134 (20.9%) 16/134 (11.9%) 26/134 (19.4%) 33/132 (25.0%) 26/132 (19.7%)\n AST > 20xULN 30/134 (22.4%) 21/134 (15.7%) 30/134 (22.4%) 24/134 (17.9%) 24/132 (18.2%) 25/132 (18.9%)\nTotal Bilirubin > 2xULN and Alkaline Phosphatase <= 2xULN \n ALT >3 - <= 5xULN 24/134 (17.9%) 22/134 (16.4%) 28/134 (20.9%) 23/134 (17.2%) 38/132 (28.8%) 23/132 (17.4%)\n ALT >5 - <= 10xULN 26/134 (19.4%) 25/134 (18.7%) 19/134 (14.2%) 22/134 (16.4%) 32/132 (24.2%) 32/132 (24.2%)\n ALT >10 - <= 20xULN 26/134 (19.4%) 30/134 (22.4%) 31/134 (23.1%) 30/134 (22.4%) 21/132 (15.9%) 27/132 (20.5%)\n ALT > 20xULN 30/134 (22.4%) 28/134 (20.9%) 24/134 (17.9%) 36/134 (26.9%) 20/132 (15.2%) 23/132 (17.4%)\n AST >3 - <= 5xULN 37/134 (27.6%) 25/134 (18.7%) 31/134 (23.1%) 26/134 (19.4%) 24/132 (18.2%) 36/132 (27.3%)\n AST >5 - <= 10xULN 25/134 (18.7%) 32/134 (23.9%) 29/134 (21.6%) 30/134 (22.4%) 26/132 (19.7%) 24/132 (18.2%)\n AST >10 - <= 20xULN 25/134 (18.7%) 31/134 (23.1%) 28/134 (20.9%) 22/134 (16.4%) 29/132 (22.0%) 23/132 (17.4%)\n AST > 20xULN 26/134 (19.4%) 25/134 (18.7%) 23/134 (17.2%) 30/134 (22.4%) 23/132 (17.4%) 24/132 (18.2%)\nTotal Bilirubin > 2xULN and Alkaline Phosphatase <= 5xULN \n ALT >3 - <= 5xULN 24/134 (17.9%) 21/134 (15.7%) 30/134 (22.4%) 17/134 (12.7%) 28/132 (21.2%) 31/132 (23.5%)\n ALT >5 - <= 10xULN 36/134 (26.9%) 28/134 (20.9%) 25/134 (18.7%) 27/134 (20.1%) 26/132 (19.7%) 29/132 (22.0%)\n ALT >10 - <= 20xULN 30/134 (22.4%) 21/134 (15.7%) 28/134 (20.9%) 36/134 (26.9%) 25/132 (18.9%) 24/132 (18.2%)\n ALT > 20xULN 14/134 (10.4%) 28/134 (20.9%) 25/134 (18.7%) 27/134 (20.1%) 31/132 (23.5%) 23/132 (17.4%)\n AST >3 - <= 5xULN 21/134 (15.7%) 26/134 (19.4%) 29/134 (21.6%) 31/134 (23.1%) 33/132 (25.0%) 19/132 (14.4%)\n AST >5 - <= 10xULN 29/134 (21.6%) 26/134 (19.4%) 24/134 (17.9%) 26/134 (19.4%) 23/132 (17.4%) 32/132 (24.2%)\n AST >10 - <= 20xULN 29/134 (21.6%) 31/134 (23.1%) 28/134 (20.9%) 22/134 (16.4%) 22/132 (16.7%) 21/132 (15.9%)\n AST > 20xULN 34/134 (25.4%) 21/134 (15.7%) 19/134 (14.2%) 28/134 (20.9%) 21/132 (15.9%) 33/132 (25.0%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table() %>%\n split_cols_by(\"ARM\") %>%\n split_cols_by(\"AVISIT\") %>%\n split_rows_by(\n \"TBILI_CAT\",\n split_fun = remove_split_levels(\"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 2xULN\")\n ) %>%\n # below split helps us get the right denominator between ALT/AST but it can be hidden\n split_rows_by(\n \"ALTAST_ind\",\n split_fun = trim_levels_to_map(map), child_labels = \"hidden\"\n ) %>%\n count_occurrences(\n vars = \"ALTAST_CAT\",\n .stats = \"fraction\",\n denom = \"n\",\n drop = FALSE\n ) %>%\n append_topleft(\"Liver Laboratory Test Criterion\") %>%\n build_table(df = adhy_liver)\n\n# trim away rows with criteria not met\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n ifelse(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- result %>% trim_rows(criteria = criteria_fun)\nresult\n\n A: Drug X B: Placebo C: Combination \nLiver Laboratory Test Criterion BASELINE POST-BASELINE BASELINE POST-BASELINE BASELINE POST-BASELINE \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal Bilirubin <= 2xULN \n ALT >3 - <= 5xULN 23/134 (17.2%) 15/134 (11.2%) 25/134 (18.7%) 27/134 (20.1%) 27/132 (20.5%) 30/132 (22.7%)\n ALT >5 - <= 10xULN 28/134 (20.9%) 29/134 (21.6%) 29/134 (21.6%) 19/134 (14.2%) 36/132 (27.3%) 29/132 (22.0%)\n ALT >10 - <= 20xULN 24/134 (17.9%) 30/134 (22.4%) 32/134 (23.9%) 33/134 (24.6%) 28/132 (21.2%) 24/132 (18.2%)\n ALT > 20xULN 32/134 (23.9%) 35/134 (26.1%) 24/134 (17.9%) 23/134 (17.2%) 20/132 (15.2%) 26/132 (19.7%)\n AST >3 - <= 5xULN 31/134 (23.1%) 34/134 (25.4%) 30/134 (22.4%) 26/134 (19.4%) 34/132 (25.8%) 24/132 (18.2%)\n AST >5 - <= 10xULN 25/134 (18.7%) 25/134 (18.7%) 26/134 (19.4%) 26/134 (19.4%) 22/132 (16.7%) 27/132 (20.5%)\n AST >10 - <= 20xULN 22/134 (16.4%) 29/134 (21.6%) 16/134 (11.9%) 22/134 (16.4%) 34/132 (25.8%) 19/132 (14.4%)\n AST > 20xULN 20/134 (14.9%) 16/134 (11.9%) 28/134 (20.9%) 31/134 (23.1%) 21/132 (15.9%) 39/132 (29.5%)\nTotal Bilirubin > 2xULN \n ALT >3 - <= 5xULN 40/134 (29.9%) 28/134 (20.9%) 31/134 (23.1%) 28/134 (20.9%) 18/132 (13.6%) 32/132 (24.2%)\n ALT >5 - <= 10xULN 24/134 (17.9%) 29/134 (21.6%) 30/134 (22.4%) 37/134 (27.6%) 33/132 (25.0%) 24/132 (18.2%)\n ALT >10 - <= 20xULN 24/134 (17.9%) 22/134 (16.4%) 26/134 (19.4%) 18/134 (13.4%) 21/132 (15.9%) 30/132 (22.7%)\n ALT > 20xULN 19/134 (14.2%) 33/134 (24.6%) 23/134 (17.2%) 19/134 (14.2%) 30/132 (22.7%) 22/132 (16.7%)\n AST >3 - <= 5xULN 17/134 (12.7%) 27/134 (20.1%) 36/134 (26.9%) 25/134 (18.7%) 26/132 (19.7%) 34/132 (25.8%)\n AST >5 - <= 10xULN 25/134 (18.7%) 28/134 (20.9%) 24/134 (17.9%) 28/134 (20.9%) 20/132 (15.2%) 23/132 (17.4%)\n AST >10 - <= 20xULN 36/134 (26.9%) 28/134 (20.9%) 16/134 (11.9%) 26/134 (19.4%) 33/132 (25.0%) 26/132 (19.7%)\n AST > 20xULN 30/134 (22.4%) 21/134 (15.7%) 30/134 (22.4%) 24/134 (17.9%) 24/132 (18.2%) 25/132 (18.9%)\nTotal Bilirubin > 2xULN and Alkaline Phosphatase <= 5xULN \n ALT >3 - <= 5xULN 24/134 (17.9%) 21/134 (15.7%) 30/134 (22.4%) 17/134 (12.7%) 28/132 (21.2%) 31/132 (23.5%)\n ALT >5 - <= 10xULN 36/134 (26.9%) 28/134 (20.9%) 25/134 (18.7%) 27/134 (20.1%) 26/132 (19.7%) 29/132 (22.0%)\n ALT >10 - <= 20xULN 30/134 (22.4%) 21/134 (15.7%) 28/134 (20.9%) 36/134 (26.9%) 25/132 (18.9%) 24/132 (18.2%)\n ALT > 20xULN 14/134 (10.4%) 28/134 (20.9%) 25/134 (18.7%) 27/134 (20.1%) 31/132 (23.5%) 23/132 (17.4%)\n AST >3 - <= 5xULN 21/134 (15.7%) 26/134 (19.4%) 29/134 (21.6%) 31/134 (23.1%) 33/132 (25.0%) 19/132 (14.4%)\n AST >5 - <= 10xULN 29/134 (21.6%) 26/134 (19.4%) 24/134 (17.9%) 26/134 (19.4%) 23/132 (17.4%) 32/132 (24.2%)\n AST >10 - <= 20xULN 29/134 (21.6%) 31/134 (23.1%) 28/134 (20.9%) 22/134 (16.4%) 22/132 (16.7%) 21/132 (15.9%)\n AST > 20xULN 34/134 (25.4%) 21/134 (15.7%) 19/134 (14.2%) 28/134 (20.9%) 21/132 (15.9%) 33/132 (25.0%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadhy <- random.cdisc.data::cadhy\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadhy_liver <- df_explicit_na(adhy)\n\n# Define values of interest in PARAMCD variable.\nparamcd_tbili_alt <- c(\"BLAL\", \"BGAL\", \"BA2AL\", \"BA5AL\")\nparamcd_tbili_ast <- c(\"BLAS\", \"BGAS\", \"BA2AS\", \"BA5AS\")\n\n# Select LBT09 parameters.\nadhy_liver <- adhy_liver %>%\n filter(\n SAFFL == \"Y\",\n AVISIT %in% c(\"BASELINE\", \"POST-BASELINE\"),\n PARAMCD %in% c(paramcd_tbili_alt, paramcd_tbili_ast)\n )\n\n# Let's be explicit about factor levels for AVISIT and PARAMCD.\nadhy_liver <- adhy_liver %>%\n mutate(\n AVISIT = factor(AVISIT, levels = c(\"BASELINE\", \"POST-BASELINE\")),\n PARAMCD = factor(PARAMCD, levels = c(paramcd_tbili_alt, paramcd_tbili_ast))\n )\n\n# Create indicator and category variables.\nadhy_liver <- adhy_liver %>%\n mutate(\n # Create TBILI_CAT categories variable - this is needed so we get the right nesting in the table.\n TBILI_CAT = factor(\n case_when(\n PARAMCD %in% c(paramcd_tbili_alt[1], paramcd_tbili_ast[1]) ~ \"Total Bilirubin <= 2xULN\",\n PARAMCD %in% c(paramcd_tbili_alt[2], paramcd_tbili_ast[2]) ~ \"Total Bilirubin > 2xULN\",\n PARAMCD %in% c(paramcd_tbili_alt[3], paramcd_tbili_ast[3]) ~\n \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 2xULN\",\n PARAMCD %in% c(paramcd_tbili_alt[4], paramcd_tbili_ast[4]) ~\n \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 5xULN\"\n ),\n levels = c(\n \"Total Bilirubin <= 2xULN\",\n \"Total Bilirubin > 2xULN\",\n \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 2xULN\",\n \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 5xULN\"\n )\n ),\n # Create ALTAST_CAT categories variable\n # this will be the labels for different ALT/AST categories displayed in the table.\n ALTAST_CAT = factor(\n case_when(\n PARAMCD %in% paramcd_tbili_alt & AVALC == \">3-5ULN\" ~ \"ALT >3 - <= 5xULN\",\n PARAMCD %in% paramcd_tbili_alt & AVALC == \">5-10ULN\" ~ \"ALT >5 - <= 10xULN\",\n PARAMCD %in% paramcd_tbili_alt & AVALC == \">10-20ULN\" ~ \"ALT >10 - <= 20xULN\",\n PARAMCD %in% paramcd_tbili_alt & AVALC == \">20ULN\" ~ \"ALT > 20xULN\",\n PARAMCD %in% paramcd_tbili_ast & AVALC == \">3-5ULN\" ~ \"AST >3 - <= 5xULN\",\n PARAMCD %in% paramcd_tbili_ast & AVALC == \">5-10ULN\" ~ \"AST >5 - <= 10xULN\",\n PARAMCD %in% paramcd_tbili_ast & AVALC == \">10-20ULN\" ~ \"AST >10 - <= 20xULN\",\n PARAMCD %in% paramcd_tbili_ast & AVALC == \">20ULN\" ~ \"AST > 20xULN\",\n TRUE ~ \"Criteria not met\"\n ),\n levels = c(\n \"ALT >3 - <= 5xULN\", \"ALT >5 - <= 10xULN\", \"ALT >10 - <= 20xULN\",\n \"20\" = \"ALT > 20xULN\",\n \"AST >3 - <= 5xULN\", \"AST >5 - <= 10xULN\", \"AST >10 - <= 20xULN\", \"AST > 20xULN\",\n \"Criteria not met\"\n )\n ),\n ALTAST_ind = factor(\n case_when(\n PARAMCD %in% paramcd_tbili_alt ~ \"ALT\",\n PARAMCD %in% paramcd_tbili_ast ~ \"AST\"\n ),\n levels = c(\"ALT\", \"AST\")\n )\n )\n\nmap <- data.frame(\n ALTAST_ind = c(rep(\"ALT\", 5), rep(\"AST\", 5)),\n ALTAST_CAT = c(\n \"ALT >3 - <= 5xULN\", \"ALT >5 - <= 10xULN\", \"ALT >10 - <= 20xULN\",\n \"20\" = \"ALT > 20xULN\", \"Criteria not met\",\n \"AST >3 - <= 5xULN\", \"AST >5 - <= 10xULN\", \"AST >10 - <= 20xULN\", \"AST > 20xULN\", \"Criteria not met\"\n ),\n stringsAsFactors = FALSE\n)", "crumbs": [ "Tables", - "Demography", - "DMT01" + "Lab Results", + "LBT09" ] }, { - "objectID": "tables/demography/dmt01.html#reproducibility", - "href": "tables/demography/dmt01.html#reproducibility", - "title": "DMT01", + "objectID": "tables/lab-results/lbt09.html#reproducibility", + "href": "tables/lab-results/lbt09.html#reproducibility", + "title": "LBT09", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:47:40 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr * 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:43:42 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Demography", - "DMT01" + "Lab Results", + "LBT09" ] }, { - "objectID": "tables/disclosures/eudrat02.html#output", - "href": "tables/disclosures/eudrat02.html#output", - "title": "EUDRAT02", + "objectID": "tables/lab-results/lbt10.html#output", + "href": "tables/lab-results/lbt10.html#output", + "title": "LBT10", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table() %>%\n summarize_patients_events_in_cols(\n filters_list = filters_list,\n empty_stats = c(\"all\", \"related\", \"fatal\", \"fatal_related\"),\n custom_label = \"Total number of patients with at least one serious adverse event\"\n ) %>%\n split_rows_by(\"AEBODSYS\",\n nested = FALSE,\n split_fun = split_fun,\n indent_mod = -1L,\n label_pos = \"topleft\",\n split_label = obj_label(adae_serious_arm$AEBODSYS)\n ) %>%\n split_rows_by(\"AEDECOD\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae_serious_arm$AEDECOD)\n ) %>%\n summarize_patients_events_in_cols(\n filters_list = filters_list,\n col_split = FALSE\n )\n\nresult <- build_table(lyt, adae_serious_arm)\nresult\n\nBody System or Organ Class \n Dictionary-Derived Term Patients (All) Events (All) Events (Related) Events (Fatal) Events (Fatal & Related)\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one serious adverse event 104 \ncl A.1 \n dcd A.1.1.1.2 48 68 0 0 0 \ncl B.1 \n dcd B.1.1.1.1 47 56 56 56 56 \ncl B.2 \n dcd B.2.2.3.1 48 64 0 0 0 \ncl D.1 \n dcd D.1.1.1.1 50 61 61 61 61 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nFor illustrative purposes, the adae data is filtered by arm A: Drug X here.\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadae <- df_explicit_na(adae)\n\nadae_serious <- adae %>% filter(AESER == \"Y\", SAFFL == \"Y\")\nadae_serious_arm <- adae_serious %>% filter(ARM == \"A: Drug X\")\n\nfilters_list <- list(\n related = with_label(c(AEREL = \"Y\"), \"Events (Related)\"),\n fatal = with_label(c(AESDTH = \"Y\"), \"Events (Fatal)\"),\n fatal_related = with_label(c(AEREL = \"Y\", AESDTH = \"Y\"), \"Events (Fatal & Related)\")\n)", + "text": "Output\n\n\nStandard Table\nTable Selecting Sections\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodetbl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n split_rows_by(\"PARAMCAT\") %>%\n split_rows_by(\"PARAM\", split_fun = drop_split_levels, child_labels = \"hidden\") %>%\n count_occurrences(\n vars = \"AVALC_FORMAT\",\n .stats = c(\"fraction\"),\n denom = \"n\",\n drop = TRUE\n ) %>%\n build_table(anl, alt_counts_df = adsl)\n\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n ifelse(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- tbl %>% trim_rows(criteria = criteria_fun)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————\nTotal Bilirubin <= 2xULN \n ALT >3xULN at 2 Visits 20/134 (14.9%) 21/134 (15.7%) 20/132 (15.2%)\n AST >3xULN at 2 Visits 30/134 (22.4%) 25/134 (18.7%) 27/132 (20.5%)\nTotal Bilirubin > 2xULN \n ALT >3xULN at 2 Visits 24/134 (17.9%) 32/134 (23.9%) 24/132 (18.2%)\n AST >3xULN at 2 Visits 33/134 (24.6%) 29/134 (21.6%) 25/132 (18.9%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodetbl2 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n split_rows_by(\"PARAMCAT\", split_fun = remove_split_levels(\"Total Bilirubin > 2xULN\")) %>%\n split_rows_by(\"PARAM\", split_fun = drop_split_levels, child_labels = \"hidden\") %>%\n count_occurrences(\n vars = \"AVALC_FORMAT\",\n .stats = c(\"fraction\"),\n denom = \"n\",\n drop = TRUE\n ) %>%\n build_table(anl, alt_counts_df = adsl)\n\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n ifelse(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- tbl2 %>% trim_rows(criteria = criteria_fun)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————\nTotal Bilirubin <= 2xULN \n ALT >3xULN at 2 Visits 20/134 (14.9%) 21/134 (15.7%) 20/132 (15.2%)\n AST >3xULN at 2 Visits 30/134 (22.4%) 25/134 (18.7%) 27/132 (20.5%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadhy <- random.cdisc.data::cadhy\n\nadhy_liver <- adhy %>%\n filter(PARAMCD %in% c(\n \"BL2AL2CU\", \"BL2AS2CU\", \"BG2AL2CU\", \"BG2AS2CU\", \"B2A2L2CU\", \"B2A2S2CU\", \"B2A5L2CU\", \"B2A5S2CU\"\n )) %>%\n mutate(PARAMCAT = case_when(\n PARAMCD %in% c(\"BL2AL2CU\", \"BL2AS2CU\") ~ \"Total Bilirubin <= 2xULN\",\n PARAMCD %in% c(\"BG2AL2CU\", \"BG2AS2CU\") ~ \"Total Bilirubin > 2xULN\",\n PARAMCD %in% c(\"B2A2L2CU\", \"B2A2S2CU\") ~ \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 2xULN\",\n PARAMCD %in% c(\"B2A5L2CU\", \"B2A5S2CU\") ~ \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 5xULN\"\n )) %>%\n mutate(AVALC_FORMAT = case_when(\n PARAMCD %in% c(\"BL2AL2CU\", \"BG2AL2CU\", \"B2A2L2CU\", \"B2A5L2CU\") & AVALC == \"Y\" ~ \"ALT >3xULN at 2 Visits\",\n PARAMCD %in% c(\"BL2AS2CU\", \"BG2AS2CU\", \"B2A2S2CU\", \"B2A5S2CU\") & AVALC == \"Y\" ~ \"AST >3xULN at 2 Visits\",\n TRUE ~ \"Criteria not met\"\n ))\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nanl <- df_explicit_na(adhy_liver)", "crumbs": [ "Tables", - "Disclosures", - "EUDRAT02" + "Lab Results", + "LBT10" ] }, { - "objectID": "tables/disclosures/eudrat02.html#reproducibility", - "href": "tables/disclosures/eudrat02.html#reproducibility", - "title": "EUDRAT02", + "objectID": "tables/lab-results/lbt10.html#reproducibility", + "href": "tables/lab-results/lbt10.html#reproducibility", + "title": "LBT10", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:47:13 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:43:15 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Disclosures", - "EUDRAT02" + "Lab Results", + "LBT10" ] }, { - "objectID": "tables/vital-signs/vst01.html#output", - "href": "tables/vital-signs/vst01.html#output", - "title": "VST01", + "objectID": "tables/lab-results/lbt07.html#output", + "href": "tables/lab-results/lbt07.html#output", + "title": "LBT07", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nafun <- function(x, .var, .spl_context, ...) {\n n_fun <- sum(!is.na(x), na.rm = TRUE)\n if (n_fun == 0) {\n mean_sd_fun <- c(NA, NA)\n median_fun <- NA\n min_max_fun <- c(NA, NA)\n } else {\n mean_sd_fun <- c(mean(x, na.rm = TRUE), sd(x, na.rm = TRUE))\n median_fun <- median(x, na.rm = TRUE)\n min_max_fun <- c(min(x), max(x))\n }\n is_chg <- .var == \"CHG\"\n is_baseline <- .spl_context$value[which(.spl_context$split == \"AVISIT\")] == \"BASELINE\"\n if (is_baseline && is_chg) n_fun <- mean_sd_fun <- median_fun <- min_max_fun <- NULL\n\n in_rows(\n \"n\" = n_fun,\n \"Mean (SD)\" = mean_sd_fun,\n \"Median\" = median_fun,\n \"Min - Max\" = min_max_fun,\n .formats = list(\"n\" = \"xx\", \"Mean (SD)\" = \"xx.xx (xx.xx)\", \"Median\" = \"xx.xx\", \"Min - Max\" = \"xx.xx - xx.xx\"),\n .format_na_strs = list(\"n\" = \"NE\", \"Mean (SD)\" = \"NE (NE)\", \"Median\" = \"NE\", \"Min - Max\" = \"NE - NE\")\n )\n}\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\"AVISIT\", split_fun = split_fun, label_pos = \"topleft\", split_label = \"\\n\\nAnalysis Visit\") %>%\n split_cols_by_multivar(\n vars = c(\"AVAL\", \"CHG\"),\n varlabels = c(\"Value at Visit\", \"Change from\\nBaseline\")\n ) %>%\n analyze_colvars(afun = afun)\n\nresult <- build_table(lyt = lyt, df = advs_f, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination \n Change from Change from Change from \n Value at Visit Baseline Value at Visit Baseline Value at Visit Baseline \nAnalysis Visit (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nSCREENING \n n 134 0 134 0 132 0 \n Mean (SD) 99.92 (17.99) NE (NE) 101.88 (21.07) NE (NE) 100.48 (19.07) NE (NE) \n Median 99.26 NE 100.22 NE 99.10 NE \n Min - Max 54.22 - 152.98 NE - NE 48.15 - 148.03 NE - NE 42.22 - 149.95 NE - NE \nBASELINE \n n 134 134 132 \n Mean (SD) 96.50 (19.90) 101.10 (19.87) 102.77 (19.48) \n Median 96.05 100.45 102.01 \n Min - Max 44.28 - 136.59 29.21 - 143.77 49.37 - 153.50 \nWEEK 1 DAY 8 \n n 134 134 134 134 132 132 \n Mean (SD) 100.65 (18.79) 4.14 (26.93) 99.19 (19.36) -1.92 (27.37) 97.14 (19.72) -5.63 (25.95) \n Median 100.22 1.52 99.37 -2.79 94.19 -5.57 \n Min - Max 57.60 - 147.46 -50.92 - 74.84 59.28 - 141.21 -64.50 - 70.93 50.98 - 142.47 -55.15 - 56.11\nWEEK 2 DAY 15 \n n 134 134 134 134 132 132 \n Mean (SD) 102.09 (19.62) 5.58 (29.38) 99.29 (21.11) -1.81 (31.11) 99.95 (20.85) -2.81 (29.10) \n Median 103.59 7.82 100.57 -1.77 102.52 -5.68 \n Min - Max 54.73 - 150.85 -59.71 - 98.08 51.60 - 145.28 -71.00 - 92.43 37.06 - 138.92 -73.10 - 76.80\nWEEK 3 DAY 22 \n n 134 134 134 134 132 132 \n Mean (SD) 101.78 (19.54) 5.28 (27.16) 97.73 (19.85) -3.37 (27.76) 99.86 (19.15) -2.91 (27.25) \n Median 100.39 6.53 98.83 -5.79 100.06 -1.54 \n Min - Max 47.68 - 162.22 -64.46 - 76.64 36.25 - 142.78 -70.23 - 84.74 53.80 - 146.37 -74.30 - 67.46\nWEEK 4 DAY 29 \n n 134 134 134 134 132 132 \n Mean (SD) 100.18 (20.18) 3.68 (27.21) 99.06 (17.75) -2.04 (26.59) 99.27 (20.12) -3.50 (27.62) \n Median 98.17 3.00 97.98 -1.89 99.61 -0.46 \n Min - Max 48.52 - 153.41 -77.30 - 61.90 56.78 - 142.45 -82.96 - 89.87 46.87 - 146.12 -88.68 - 70.90\nWEEK 5 DAY 36 \n n 134 134 134 134 132 132 \n Mean (SD) 101.42 (18.83) 4.92 (28.02) 95.92 (19.90) -5.19 (29.34) 97.73 (18.92) -5.04 (26.64) \n Median 98.56 3.93 94.30 -7.18 98.09 -5.62 \n Min - Max 62.66 - 155.52 -63.05 - 78.66 51.06 - 151.52 -78.07 - 72.91 51.48 - 157.27 -76.13 - 86.42\nPost-Baseline Last \n n 134 134 134 134 132 132 \n Mean (SD) 101.42 (18.83) 4.92 (28.02) 95.92 (19.90) -5.19 (29.34) 97.73 (18.92) -5.04 (26.64) \n Median 98.56 3.93 94.30 -7.18 98.09 -5.62 \n Min - Max 62.66 - 155.52 -63.05 - 78.66 51.06 - 151.52 -78.07 - 72.91 51.48 - 157.27 -76.13 - 86.42\nPost-Baseline Minimum \n n 134 134 134 134 132 132 \n Mean (SD) 78.98 (11.94) -17.52 (23.92) 75.77 (13.25) -25.33 (25.39) 76.35 (13.13) -26.41 (22.78)\n Median 80.14 -13.96 75.71 -26.70 76.26 -27.17 \n Min - Max 47.68 - 110.54 -77.30 - 33.00 36.25 - 113.53 -82.96 - 69.23 37.06 - 112.35 -88.68 - 34.24\nPost-Baseline Maximum \n n 134 134 134 134 132 132 \n Mean (SD) 125.08 (12.28) 28.57 (23.20) 121.33 (12.01) 20.23 (23.64) 121.42 (12.09) 18.65 (22.74) \n Median 124.20 29.14 120.80 18.74 122.55 16.93 \n Min - Max 94.06 - 162.22 -21.49 - 98.08 94.43 - 151.52 -34.95 - 92.43 79.39 - 157.27 -43.32 - 86.42\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadvs <- random.cdisc.data::cadvs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadvs <- df_explicit_na(advs)\n\nadvs_label <- var_labels(advs)\n\nadvs <- advs %>%\n filter(\n PARAMCD == \"DIABP\",\n PARAM == \"Diastolic Blood Pressure\"\n ) %>%\n mutate(\n PARAMCD = droplevels(PARAMCD),\n PARAM = droplevels(PARAM)\n )\n\n# post-baseline\nadvs_pb <- advs %>%\n filter(ABLFL != \"Y\", ABLFL2 != \"Y\")\n\nadvs_pb_max <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(desc(AVAL)) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Maximum\")\n\nadvs_pb_min <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(AVAL) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Minimum\")\n\nadvs_pb_last <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(desc(AVISITN)) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Last\")\n\n# Please note that for real data, per ADaM Spec 1.1, the advs_f can be obtained by filtering on PARAMCD, then\n# ANL01FL == 'Y' or AVISIT in c('POST-BASELINE MAXIMUM', 'POST-BASELINE MINIMUM', 'POST-BASELINE LAST')\n\nadvs_f <- rbind(\n advs,\n advs_pb_last,\n advs_pb_min,\n advs_pb_max\n)\n\nadvs_f <- advs_f %>%\n mutate(AVISIT = droplevels(AVISIT))\n\nvar_labels(advs_f) <- advs_label", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n label_pos = \"topleft\",\n split_label = obj_label(adlb_f$PARAM)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n required = \"ATOXGR\",\n .stats = \"unique_count\"\n ) %>%\n split_rows_by(\n \"GRADE_DIR\",\n label_pos = \"topleft\",\n split_label = obj_label(adlb_f$GRADE_DIR),\n split_fun = trim_levels_to_map(map)\n ) %>%\n count_abnormal_by_worst_grade(\n var = \"GRADE_ANL\",\n variables = list(id = \"USUBJID\", param = \"PARAM\", grade_dir = \"GRADE_DIR\"),\n .indent_mods = 4L\n ) %>%\n append_topleft(\" Highest NCI CTCAE Grade\")\n\nresult <- build_table(lyt = lyt, df = adlb_f, alt_counts_df = adsl)\nresult <- result %>% prune_table()\n\nresult\n\nParameter \n Direction of Abnormality A: Drug X B: Placebo C: Combination\n Highest NCI CTCAE Grade (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————\nAlanine Aminotransferase Measurement (n) 134 134 132 \n LOW \n 1 15 (11.2%) 11 (8.2%) 15 (11.4%) \n 2 18 (13.4%) 24 (17.9%) 17 (12.9%) \n 3 16 (11.9%) 24 (17.9%) 16 (12.1%) \n 4 17 (12.7%) 10 (7.5%) 18 (13.6%) \n Any 66 (49.3%) 69 (51.5%) 66 (50%) \nC-Reactive Protein Measurement (n) 134 134 132 \n LOW \n 1 21 (15.7%) 22 (16.4%) 12 (9.1%) \n 2 24 (17.9%) 22 (16.4%) 18 (13.6%) \n 3 29 (21.6%) 21 (15.7%) 25 (18.9%) \n 4 10 (7.5%) 16 (11.9%) 22 (16.7%) \n Any 84 (62.7%) 81 (60.4%) 77 (58.3%) \n HIGH \n 1 20 (14.9%) 22 (16.4%) 22 (16.7%) \n 2 21 (15.7%) 15 (11.2%) 14 (10.6%) \n 3 25 (18.7%) 16 (11.9%) 20 (15.2%) \n 4 13 (9.7%) 20 (14.9%) 11 (8.3%) \n Any 79 (59%) 73 (54.5%) 67 (50.8%) \nImmunoglobulin A Measurement (n) 134 134 132 \n HIGH \n 1 19 (14.2%) 12 (9%) 18 (13.6%) \n 2 17 (12.7%) 24 (17.9%) 19 (14.4%) \n 3 21 (15.7%) 23 (17.2%) 23 (17.4%) \n 4 13 (9.7%) 13 (9.7%) 9 (6.8%) \n Any 70 (52.2%) 72 (53.7%) 69 (52.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(forcats)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\nadlb_labels <- var_labels(adlb)\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadlb <- df_explicit_na(adlb)\n\n# Select worst post-baseline records.\nadlb_f <- adlb %>%\n filter(ATOXGR != \"<Missing>\") %>%\n filter(ONTRTFL == \"Y\") %>%\n filter(WGRLOFL == \"Y\" | WGRHIFL == \"Y\")\n\nvar_labels(adlb_f) <- adlb_labels\n\n# Derive GRADE_DIR and GRADE_ANL to use in layout from ATOXGR\nadlb_f <- adlb_f %>%\n mutate(\n GRADE_DIR = factor(\n case_when(\n ATOXGR %in% c(\"-1\", \"-2\", \"-3\", \"-4\") & .data$WGRLOFL == \"Y\" ~ \"LOW\",\n ATOXGR == \"0\" ~ \"ZERO\",\n ATOXGR %in% c(\"1\", \"2\", \"3\", \"4\") & .data$WGRHIFL == \"Y\" ~ \"HIGH\",\n TRUE ~ \"NONE\"\n ),\n levels = c(\"LOW\", \"ZERO\", \"HIGH\", \"NONE\")\n ),\n GRADE_ANL = forcats::fct_relevel(\n forcats::fct_recode(ATOXGR,\n `1` = \"-1\", `2` = \"-2\", `3` = \"-3\", `4` = \"-4\"\n ),\n c(\"0\", \"1\", \"2\", \"3\", \"4\")\n )\n ) %>%\n var_relabel(\n GRADE_DIR = \"Direction of Abnormality\",\n GRADE_ANL = \"Analysis Grade\"\n )\n\n# Construct analysis map\nmap <- expand.grid(\n PARAM = levels(adlb$PARAM),\n GRADE_DIR = c(\"LOW\", \"HIGH\"),\n GRADE_ANL = as.character(1:4),\n stringsAsFactors = FALSE\n) %>%\n arrange(PARAM, desc(GRADE_DIR), GRADE_ANL)", "crumbs": [ "Tables", - "Vital Signs", - "VST01" + "Lab Results", + "LBT07" ] }, { - "objectID": "tables/vital-signs/vst01.html#teal-app", - "href": "tables/vital-signs/vst01.html#teal-app", - "title": "VST01", + "objectID": "tables/lab-results/lbt07.html#teal-app", + "href": "tables/lab-results/lbt07.html#teal-app", + "title": "LBT07", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADVS <- random.cdisc.data::cadvs\n advs_label <- col_labels(ADVS)\n\n # post-baseline\n advs_pb <- ADVS %>%\n filter(\n ABLFL != \"Y\",\n ABLFL2 != \"Y\"\n )\n\n advs_pb_max <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(desc(AVAL)) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Maximum\")\n\n advs_pb_min <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(AVAL) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Minimum\")\n\n advs_pb_last <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(desc(AVISITN)) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Last\")\n\n ADVS <- rbind(\n ADVS,\n advs_pb_last,\n advs_pb_min,\n advs_pb_max\n ) %>%\n mutate(AVISIT = droplevels(AVISIT))\n\n col_labels(ADVS) <- advs_label\n})\ndatanames <- c(\"ADSL\", \"ADVS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADVS <- data[[\"ADVS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Vital Sign Results and Change from Baseline by Visit\",\n dataname = \"ADVS\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADVS, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\", \"PARAM\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADVS, c(\"AVAL\", \"CHG\")),\n selected = c(\"AVAL\", \"CHG\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADVS, \"PARAMCD\", \"PARAM\"),\n selected = \"DIABP\"\n ),\n parallel_vars = TRUE\n )\n ),\n filter = teal_slices(teal_slice(\"ADVS\", \"AVAL\", selected = NULL))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADVS <- random.cdisc.data::cadvs\n advs_label <- col_labels(ADVS)\n\n # post-baseline\n advs_pb <- ADVS %>%\n filter(\n ABLFL != \"Y\",\n ABLFL2 != \"Y\"\n )\n\n advs_pb_max <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(desc(AVAL)) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Maximum\")\n\n advs_pb_min <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(AVAL) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Minimum\")\n\n advs_pb_last <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(desc(AVISITN)) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Last\")\n\n ADVS <- rbind(\n ADVS,\n advs_pb_last,\n advs_pb_min,\n advs_pb_max\n ) %>%\n mutate(AVISIT = droplevels(AVISIT))\n\n col_labels(ADVS) <- advs_label\n})\ndatanames <- c(\"ADSL\", \"ADVS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADVS <- data[[\"ADVS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Vital Sign Results and Change from Baseline by Visit\",\n dataname = \"ADVS\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADVS, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\", \"PARAM\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADVS, c(\"AVAL\", \"CHG\")),\n selected = c(\"AVAL\", \"CHG\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADVS, \"PARAMCD\", \"PARAM\"),\n selected = \"DIABP\"\n ),\n parallel_vars = TRUE\n )\n ),\n filter = teal_slices(teal_slice(\"ADVS\", \"AVAL\", selected = NULL))\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb %>%\n filter(!AVISIT %in% c(\"SCREENING\", \"BASELINE\"))\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality_by_worst_grade(\n label = \"Laboratory Test Results with Highest Grade Post-Baseline\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = c(\"ALT\", \"CRP\", \"IGA\")\n ),\n add_total = FALSE\n )\n ),\n filter = (\n teal_slices(\n teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"),\n teal_slice(\"ADLB\", \"ONTRTFL\", selected = \"Y\")\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb %>%\n filter(!AVISIT %in% c(\"SCREENING\", \"BASELINE\"))\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality_by_worst_grade(\n label = \"Laboratory Test Results with Highest Grade Post-Baseline\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = c(\"ALT\", \"CRP\", \"IGA\")\n ),\n add_total = FALSE\n )\n ),\n filter = (\n teal_slices(\n teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"),\n teal_slice(\"ADLB\", \"ONTRTFL\", selected = \"Y\")\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Vital Signs", - "VST01" + "Lab Results", + "LBT07" ] }, { - "objectID": "tables/vital-signs/vst01.html#reproducibility", - "href": "tables/vital-signs/vst01.html#reproducibility", - "title": "VST01", + "objectID": "tables/lab-results/lbt07.html#reproducibility", + "href": "tables/lab-results/lbt07.html#reproducibility", + "title": "LBT07", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:46:55 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:42:43 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats * 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Vital Signs", - "VST01" + "Lab Results", + "LBT07" ] }, { - "objectID": "tables/efficacy/aovt01.html#output", - "href": "tables/efficacy/aovt01.html#output", - "title": "AOVT01", + "objectID": "tables/safety/enrollment01.html#output", + "href": "tables/safety/enrollment01.html#output", + "title": "ENTXX", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nl <- basic_table() %>%\n split_cols_by(\"ARMCD\", ref_group = \"ARM A\") %>%\n split_rows_by(\"PARAMCD\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adqs_multi$PARAMCD)\n ) %>%\n summarize_ancova(\n vars = \"CHG\",\n variables = list(\n arm = \"ARMCD\",\n covariates = c(\"BASE\", \"STRATA1\")\n ),\n conf_level = 0.95,\n var_labels = \"Adjusted mean\"\n )\n\nresult <- build_table(\n lyt = l,\n df = adqs_multi,\n alt_counts_df = adsl\n)\n\nresult\n\nParameter Code ARM A ARM B ARM C \n————————————————————————————————————————————————————————————————————————\nBFIALL \n Adjusted mean \n n 134 134 132 \n Adjusted Mean 4.47 6.33 4.02 \n Difference in Adjusted Means 1.85 -0.46 \n 95% CI (-0.14, 3.85) (-2.45, 1.54)\n p-value 0.0679 0.6539 \nFATIGI \n Adjusted mean \n n 134 134 132 \n Adjusted Mean 5.42 4.83 4.56 \n Difference in Adjusted Means -0.59 -0.86 \n 95% CI (-2.58, 1.41) (-2.87, 1.15)\n p-value 0.5644 0.4026 \nFKSI-FWB \n Adjusted mean \n n 134 134 132 \n Adjusted Mean 4.29 3.51 3.06 \n Difference in Adjusted Means -0.79 -1.24 \n 95% CI (-2.71, 1.14) (-3.17, 0.69)\n p-value 0.4221 0.2088 \nFKSI-TSE \n Adjusted mean \n n 134 134 132 \n Adjusted Mean 4.70 3.84 4.45 \n Difference in Adjusted Means -0.86 -0.25 \n 95% CI (-2.80, 1.09) (-2.20, 1.70)\n p-value 0.3858 0.8007 \nFKSIALL \n Adjusted mean \n n 134 134 132 \n Adjusted Mean 5.03 5.82 6.44 \n Difference in Adjusted Means 0.79 1.42 \n 95% CI (-1.17, 2.76) (-0.56, 3.39)\n p-value 0.4288 0.1591 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadqs <- random.cdisc.data::cadqs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadqs <- df_explicit_na(adqs)\n\nadqs_multi <- filter(adqs, AVISIT == \"WEEK 1 DAY 8\")", + "text": "Output\n\n\nENT01 – Enrollment by Region, Country, and Investigator Number\nENT01A – Enrollment by Country and Investigator Number\nENT02 – Enrollment by Region, Country, and Investigator Number/Name\nENT02A – Enrollment by Country and Investigator Number/Name\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n add_overall_col(label = \"All Patients\") %>%\n split_rows_by(\"REGION1\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adsl$REGION1)) %>%\n summarize_row_groups() %>%\n split_rows_by(\"COUNTRY\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adsl$COUNTRY)) %>%\n summarize_row_groups() %>%\n analyze_vars(\"INVID\", .stats = \"count_fraction\") %>%\n append_varlabels(adsl, \"INVID\", 2L)\n\nresult <- build_table(lyt, adsl) %>%\n prune_table()\n\nresult\n\nGeographic Region 1 \n Country A: Drug X B: Placebo C: Combination All Patients\n Investigator Identifier (N=134) (N=134) (N=132) (N=400) \n—————————————————————————————————————————————————————————————————————————————————————\nAfrica 8 (6.0%) 7 (5.2%) 11 (8.3%) 26 (6.5%) \n NGA 8 (6.0%) 7 (5.2%) 11 (8.3%) 26 (6.5%) \n INV ID NGA-1 3 (37.5%) 3 (42.9%) 4 (36.4%) 10 (38.5%) \n INV ID NGA-11 1 (12.5%) 2 (28.6%) 3 (27.3%) 6 (23.1%) \n INV ID NGA-12 0 1 (14.3%) 1 (9.1%) 2 (7.7%) \n INV ID NGA-17 2 (25%) 0 0 2 (7.7%) \n INV ID NGA-2 1 (12.5%) 1 (14.3%) 0 2 (7.7%) \n INV ID NGA-4 1 (12.5%) 0 1 (9.1%) 2 (7.7%) \n INV ID NGA-5 0 0 1 (9.1%) 1 (3.8%) \n INV ID NGA-6 0 0 1 (9.1%) 1 (3.8%) \nAsia 91 (67.9%) 94 (70.1%) 83 (62.9%) 268 (67.0%) \n CHN 74 (55.2%) 81 (60.4%) 64 (48.5%) 219 (54.8%) \n INV ID CHN-1 21 (28.4%) 20 (24.7%) 16 (25%) 57 (26%) \n INV ID CHN-10 0 1 (1.2%) 0 1 (0.5%) \n INV ID CHN-11 12 (16.2%) 20 (24.7%) 16 (25%) 48 (21.9%) \n INV ID CHN-12 4 (5.4%) 3 (3.7%) 1 (1.6%) 8 (3.7%) \n INV ID CHN-13 2 (2.7%) 6 (7.4%) 0 8 (3.7%) \n INV ID CHN-14 4 (5.4%) 2 (2.5%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-15 2 (2.7%) 0 4 (6.2%) 6 (2.7%) \n INV ID CHN-16 0 3 (3.7%) 3 (4.7%) 6 (2.7%) \n INV ID CHN-17 4 (5.4%) 4 (4.9%) 3 (4.7%) 11 (5%) \n INV ID CHN-18 1 (1.4%) 0 2 (3.1%) 3 (1.4%) \n INV ID CHN-2 9 (12.2%) 4 (4.9%) 3 (4.7%) 16 (7.3%) \n INV ID CHN-3 5 (6.8%) 1 (1.2%) 5 (7.8%) 11 (5%) \n INV ID CHN-4 3 (4.1%) 3 (3.7%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-5 4 (5.4%) 3 (3.7%) 4 (6.2%) 11 (5%) \n INV ID CHN-6 1 (1.4%) 3 (3.7%) 0 4 (1.8%) \n INV ID CHN-7 0 5 (6.2%) 1 (1.6%) 6 (2.7%) \n INV ID CHN-8 1 (1.4%) 1 (1.2%) 0 2 (0.9%) \n INV ID CHN-9 1 (1.4%) 2 (2.5%) 0 3 (1.4%) \n PAK 12 (9.0%) 9 (6.7%) 10 (7.6%) 31 (7.8%) \n INV ID PAK-1 2 (16.7%) 4 (44.4%) 4 (40%) 10 (32.3%) \n INV ID PAK-11 4 (33.3%) 3 (33.3%) 2 (20%) 9 (29%) \n INV ID PAK-12 2 (16.7%) 0 0 2 (6.5%) \n INV ID PAK-13 1 (8.3%) 1 (11.1%) 0 2 (6.5%) \n INV ID PAK-14 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-15 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-2 1 (8.3%) 0 2 (20%) 3 (9.7%) \n INV ID PAK-4 0 1 (11.1%) 1 (10%) 2 (6.5%) \n INV ID PAK-5 0 0 1 (10%) 1 (3.2%) \n JPN 5 (3.7%) 4 (3.0%) 9 (6.8%) 18 (4.5%) \n INV ID JPN-1 2 (40%) 2 (50%) 1 (11.1%) 5 (27.8%) \n INV ID JPN-11 0 0 3 (33.3%) 3 (16.7%) \n INV ID JPN-12 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-14 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-17 0 0 2 (22.2%) 2 (11.1%) \n INV ID JPN-18 1 (20%) 0 0 1 (5.6%) \n INV ID JPN-2 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-3 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-5 1 (20%) 0 1 (11.1%) 2 (11.1%) \n INV ID JPN-6 1 (20%) 0 0 1 (5.6%) \nEurasia 5 (3.7%) 8 (6.0%) 6 (4.5%) 19 (4.8%) \n RUS 5 (3.7%) 8 (6.0%) 6 (4.5%) 19 (4.8%) \n INV ID RUS-1 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-11 0 2 (25%) 2 (33.3%) 4 (21.1%) \n INV ID RUS-12 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-13 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-14 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-16 1 (20%) 1 (12.5%) 0 2 (10.5%) \n INV ID RUS-18 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-2 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-3 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-4 0 2 (25%) 1 (16.7%) 3 (15.8%) \n INV ID RUS-5 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-6 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-7 0 0 1 (16.7%) 1 (5.3%) \nEurope 4 (3.0%) 3 (2.2%) 2 (1.5%) 9 (2.2%) \n GBR 4 (3.0%) 3 (2.2%) 2 (1.5%) 9 (2.2%) \n INV ID GBR-1 2 (50%) 0 1 (50%) 3 (33.3%) \n INV ID GBR-11 0 1 (33.3%) 1 (50%) 2 (22.2%) \n INV ID GBR-13 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-15 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-17 0 1 (33.3%) 0 1 (11.1%) \n INV ID GBR-6 0 1 (33.3%) 0 1 (11.1%) \nNorth America 13 (9.7%) 15 (11.2%) 20 (15.2%) 48 (12.0%) \n USA 10 (7.5%) 13 (9.7%) 17 (12.9%) 40 (10.0%) \n INV ID USA-1 1 (10%) 4 (30.8%) 5 (29.4%) 10 (25%) \n INV ID USA-11 4 (40%) 2 (15.4%) 3 (17.6%) 9 (22.5%) \n INV ID USA-12 1 (10%) 2 (15.4%) 3 (17.6%) 6 (15%) \n INV ID USA-14 1 (10%) 0 0 1 (2.5%) \n INV ID USA-15 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-17 1 (10%) 1 (7.7%) 0 2 (5%) \n INV ID USA-19 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-2 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-3 1 (10%) 0 1 (5.9%) 2 (5%) \n INV ID USA-4 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-5 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-6 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-8 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-9 1 (10%) 0 0 1 (2.5%) \n CAN 3 (2.2%) 2 (1.5%) 3 (2.3%) 8 (2.0%) \n INV ID CAN-1 1 (33.3%) 1 (50%) 0 2 (25%) \n INV ID CAN-11 1 (33.3%) 0 1 (33.3%) 2 (25%) \n INV ID CAN-14 1 (33.3%) 0 0 1 (12.5%) \n INV ID CAN-4 0 1 (50%) 1 (33.3%) 2 (25%) \n INV ID CAN-5 0 0 1 (33.3%) 1 (12.5%) \nSouth America 13 (9.7%) 7 (5.2%) 10 (7.6%) 30 (7.5%) \n BRA 13 (9.7%) 7 (5.2%) 10 (7.6%) 30 (7.5%) \n INV ID BRA-1 4 (30.8%) 2 (28.6%) 2 (20%) 8 (26.7%) \n INV ID BRA-11 4 (30.8%) 0 4 (40%) 8 (26.7%) \n INV ID BRA-12 0 1 (14.3%) 0 1 (3.3%) \n INV ID BRA-13 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-14 1 (7.7%) 0 1 (10%) 2 (6.7%) \n INV ID BRA-15 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-2 1 (7.7%) 1 (14.3%) 0 2 (6.7%) \n INV ID BRA-3 0 2 (28.6%) 0 2 (6.7%) \n INV ID BRA-4 0 1 (14.3%) 1 (10%) 2 (6.7%) \n INV ID BRA-5 0 0 1 (10%) 1 (3.3%) \n INV ID BRA-6 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-7 0 0 1 (10%) 1 (3.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n add_overall_col(label = \"All Patients\") %>%\n split_rows_by(\"COUNTRY\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adsl$COUNTRY)) %>%\n summarize_row_groups() %>%\n analyze_vars(\"INVID\", .stats = \"count_fraction\") %>%\n append_varlabels(adsl, \"INVID\", 1L)\n\nresult <- build_table(lyt, adsl) %>%\n prune_table()\n\nresult\n\nCountry A: Drug X B: Placebo C: Combination All Patients\n Investigator Identifier (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————————————————\nCHN 74 (55.2%) 81 (60.4%) 64 (48.5%) 219 (54.8%) \n INV ID CHN-1 21 (28.4%) 20 (24.7%) 16 (25%) 57 (26%) \n INV ID CHN-10 0 1 (1.2%) 0 1 (0.5%) \n INV ID CHN-11 12 (16.2%) 20 (24.7%) 16 (25%) 48 (21.9%) \n INV ID CHN-12 4 (5.4%) 3 (3.7%) 1 (1.6%) 8 (3.7%) \n INV ID CHN-13 2 (2.7%) 6 (7.4%) 0 8 (3.7%) \n INV ID CHN-14 4 (5.4%) 2 (2.5%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-15 2 (2.7%) 0 4 (6.2%) 6 (2.7%) \n INV ID CHN-16 0 3 (3.7%) 3 (4.7%) 6 (2.7%) \n INV ID CHN-17 4 (5.4%) 4 (4.9%) 3 (4.7%) 11 (5%) \n INV ID CHN-18 1 (1.4%) 0 2 (3.1%) 3 (1.4%) \n INV ID CHN-2 9 (12.2%) 4 (4.9%) 3 (4.7%) 16 (7.3%) \n INV ID CHN-3 5 (6.8%) 1 (1.2%) 5 (7.8%) 11 (5%) \n INV ID CHN-4 3 (4.1%) 3 (3.7%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-5 4 (5.4%) 3 (3.7%) 4 (6.2%) 11 (5%) \n INV ID CHN-6 1 (1.4%) 3 (3.7%) 0 4 (1.8%) \n INV ID CHN-7 0 5 (6.2%) 1 (1.6%) 6 (2.7%) \n INV ID CHN-8 1 (1.4%) 1 (1.2%) 0 2 (0.9%) \n INV ID CHN-9 1 (1.4%) 2 (2.5%) 0 3 (1.4%) \nUSA 10 (7.5%) 13 (9.7%) 17 (12.9%) 40 (10.0%) \n INV ID USA-1 1 (10%) 4 (30.8%) 5 (29.4%) 10 (25%) \n INV ID USA-11 4 (40%) 2 (15.4%) 3 (17.6%) 9 (22.5%) \n INV ID USA-12 1 (10%) 2 (15.4%) 3 (17.6%) 6 (15%) \n INV ID USA-14 1 (10%) 0 0 1 (2.5%) \n INV ID USA-15 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-17 1 (10%) 1 (7.7%) 0 2 (5%) \n INV ID USA-19 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-2 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-3 1 (10%) 0 1 (5.9%) 2 (5%) \n INV ID USA-4 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-5 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-6 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-8 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-9 1 (10%) 0 0 1 (2.5%) \nBRA 13 (9.7%) 7 (5.2%) 10 (7.6%) 30 (7.5%) \n INV ID BRA-1 4 (30.8%) 2 (28.6%) 2 (20%) 8 (26.7%) \n INV ID BRA-11 4 (30.8%) 0 4 (40%) 8 (26.7%) \n INV ID BRA-12 0 1 (14.3%) 0 1 (3.3%) \n INV ID BRA-13 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-14 1 (7.7%) 0 1 (10%) 2 (6.7%) \n INV ID BRA-15 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-2 1 (7.7%) 1 (14.3%) 0 2 (6.7%) \n INV ID BRA-3 0 2 (28.6%) 0 2 (6.7%) \n INV ID BRA-4 0 1 (14.3%) 1 (10%) 2 (6.7%) \n INV ID BRA-5 0 0 1 (10%) 1 (3.3%) \n INV ID BRA-6 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-7 0 0 1 (10%) 1 (3.3%) \nPAK 12 (9.0%) 9 (6.7%) 10 (7.6%) 31 (7.8%) \n INV ID PAK-1 2 (16.7%) 4 (44.4%) 4 (40%) 10 (32.3%) \n INV ID PAK-11 4 (33.3%) 3 (33.3%) 2 (20%) 9 (29%) \n INV ID PAK-12 2 (16.7%) 0 0 2 (6.5%) \n INV ID PAK-13 1 (8.3%) 1 (11.1%) 0 2 (6.5%) \n INV ID PAK-14 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-15 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-2 1 (8.3%) 0 2 (20%) 3 (9.7%) \n INV ID PAK-4 0 1 (11.1%) 1 (10%) 2 (6.5%) \n INV ID PAK-5 0 0 1 (10%) 1 (3.2%) \nNGA 8 (6.0%) 7 (5.2%) 11 (8.3%) 26 (6.5%) \n INV ID NGA-1 3 (37.5%) 3 (42.9%) 4 (36.4%) 10 (38.5%) \n INV ID NGA-11 1 (12.5%) 2 (28.6%) 3 (27.3%) 6 (23.1%) \n INV ID NGA-12 0 1 (14.3%) 1 (9.1%) 2 (7.7%) \n INV ID NGA-17 2 (25%) 0 0 2 (7.7%) \n INV ID NGA-2 1 (12.5%) 1 (14.3%) 0 2 (7.7%) \n INV ID NGA-4 1 (12.5%) 0 1 (9.1%) 2 (7.7%) \n INV ID NGA-5 0 0 1 (9.1%) 1 (3.8%) \n INV ID NGA-6 0 0 1 (9.1%) 1 (3.8%) \nRUS 5 (3.7%) 8 (6.0%) 6 (4.5%) 19 (4.8%) \n INV ID RUS-1 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-11 0 2 (25%) 2 (33.3%) 4 (21.1%) \n INV ID RUS-12 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-13 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-14 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-16 1 (20%) 1 (12.5%) 0 2 (10.5%) \n INV ID RUS-18 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-2 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-3 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-4 0 2 (25%) 1 (16.7%) 3 (15.8%) \n INV ID RUS-5 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-6 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-7 0 0 1 (16.7%) 1 (5.3%) \nJPN 5 (3.7%) 4 (3.0%) 9 (6.8%) 18 (4.5%) \n INV ID JPN-1 2 (40%) 2 (50%) 1 (11.1%) 5 (27.8%) \n INV ID JPN-11 0 0 3 (33.3%) 3 (16.7%) \n INV ID JPN-12 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-14 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-17 0 0 2 (22.2%) 2 (11.1%) \n INV ID JPN-18 1 (20%) 0 0 1 (5.6%) \n INV ID JPN-2 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-3 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-5 1 (20%) 0 1 (11.1%) 2 (11.1%) \n INV ID JPN-6 1 (20%) 0 0 1 (5.6%) \nGBR 4 (3.0%) 3 (2.2%) 2 (1.5%) 9 (2.2%) \n INV ID GBR-1 2 (50%) 0 1 (50%) 3 (33.3%) \n INV ID GBR-11 0 1 (33.3%) 1 (50%) 2 (22.2%) \n INV ID GBR-13 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-15 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-17 0 1 (33.3%) 0 1 (11.1%) \n INV ID GBR-6 0 1 (33.3%) 0 1 (11.1%) \nCAN 3 (2.2%) 2 (1.5%) 3 (2.3%) 8 (2.0%) \n INV ID CAN-1 1 (33.3%) 1 (50%) 0 2 (25%) \n INV ID CAN-11 1 (33.3%) 0 1 (33.3%) 2 (25%) \n INV ID CAN-14 1 (33.3%) 0 0 1 (12.5%) \n INV ID CAN-4 0 1 (50%) 1 (33.3%) 2 (25%) \n INV ID CAN-5 0 0 1 (33.3%) 1 (12.5%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n add_overall_col(label = \"All Patients\") %>%\n split_rows_by(\"REGION1\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adsl$REGION1)) %>%\n summarize_row_groups() %>%\n split_rows_by(\"COUNTRY\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adsl$COUNTRY)) %>%\n summarize_row_groups() %>%\n analyze_vars(\"INVID_INVNAM\", .stats = \"count_fraction\") %>%\n append_varlabels(adsl, \"INVID_INVNAM\", 2L)\n\nresult <- build_table(lyt, adsl) %>%\n prune_table()\n\nresult\n\nGeographic Region 1 \n Country A: Drug X B: Placebo C: Combination All Patients\n Investigator Number/Name (N=134) (N=134) (N=132) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————\nAfrica 8 (6.0%) 7 (5.2%) 11 (8.3%) 26 (6.5%) \n NGA 8 (6.0%) 7 (5.2%) 11 (8.3%) 26 (6.5%) \n INV ID NGA-1 / Dr. NGA-1 Doe 3 (37.5%) 3 (42.9%) 4 (36.4%) 10 (38.5%) \n INV ID NGA-11 / Dr. NGA-11 Doe 1 (12.5%) 2 (28.6%) 3 (27.3%) 6 (23.1%) \n INV ID NGA-12 / Dr. NGA-12 Doe 0 1 (14.3%) 1 (9.1%) 2 (7.7%) \n INV ID NGA-17 / Dr. NGA-17 Doe 2 (25%) 0 0 2 (7.7%) \n INV ID NGA-2 / Dr. NGA-2 Doe 1 (12.5%) 1 (14.3%) 0 2 (7.7%) \n INV ID NGA-4 / Dr. NGA-4 Doe 1 (12.5%) 0 1 (9.1%) 2 (7.7%) \n INV ID NGA-5 / Dr. NGA-5 Doe 0 0 1 (9.1%) 1 (3.8%) \n INV ID NGA-6 / Dr. NGA-6 Doe 0 0 1 (9.1%) 1 (3.8%) \nAsia 91 (67.9%) 94 (70.1%) 83 (62.9%) 268 (67.0%) \n CHN 74 (55.2%) 81 (60.4%) 64 (48.5%) 219 (54.8%) \n INV ID CHN-1 / Dr. CHN-1 Doe 21 (28.4%) 20 (24.7%) 16 (25%) 57 (26%) \n INV ID CHN-10 / Dr. CHN-10 Doe 0 1 (1.2%) 0 1 (0.5%) \n INV ID CHN-11 / Dr. CHN-11 Doe 12 (16.2%) 20 (24.7%) 16 (25%) 48 (21.9%) \n INV ID CHN-12 / Dr. CHN-12 Doe 4 (5.4%) 3 (3.7%) 1 (1.6%) 8 (3.7%) \n INV ID CHN-13 / Dr. CHN-13 Doe 2 (2.7%) 6 (7.4%) 0 8 (3.7%) \n INV ID CHN-14 / Dr. CHN-14 Doe 4 (5.4%) 2 (2.5%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-15 / Dr. CHN-15 Doe 2 (2.7%) 0 4 (6.2%) 6 (2.7%) \n INV ID CHN-16 / Dr. CHN-16 Doe 0 3 (3.7%) 3 (4.7%) 6 (2.7%) \n INV ID CHN-17 / Dr. CHN-17 Doe 4 (5.4%) 4 (4.9%) 3 (4.7%) 11 (5%) \n INV ID CHN-18 / Dr. CHN-18 Doe 1 (1.4%) 0 2 (3.1%) 3 (1.4%) \n INV ID CHN-2 / Dr. CHN-2 Doe 9 (12.2%) 4 (4.9%) 3 (4.7%) 16 (7.3%) \n INV ID CHN-3 / Dr. CHN-3 Doe 5 (6.8%) 1 (1.2%) 5 (7.8%) 11 (5%) \n INV ID CHN-4 / Dr. CHN-4 Doe 3 (4.1%) 3 (3.7%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-5 / Dr. CHN-5 Doe 4 (5.4%) 3 (3.7%) 4 (6.2%) 11 (5%) \n INV ID CHN-6 / Dr. CHN-6 Doe 1 (1.4%) 3 (3.7%) 0 4 (1.8%) \n INV ID CHN-7 / Dr. CHN-7 Doe 0 5 (6.2%) 1 (1.6%) 6 (2.7%) \n INV ID CHN-8 / Dr. CHN-8 Doe 1 (1.4%) 1 (1.2%) 0 2 (0.9%) \n INV ID CHN-9 / Dr. CHN-9 Doe 1 (1.4%) 2 (2.5%) 0 3 (1.4%) \n PAK 12 (9.0%) 9 (6.7%) 10 (7.6%) 31 (7.8%) \n INV ID PAK-1 / Dr. PAK-1 Doe 2 (16.7%) 4 (44.4%) 4 (40%) 10 (32.3%) \n INV ID PAK-11 / Dr. PAK-11 Doe 4 (33.3%) 3 (33.3%) 2 (20%) 9 (29%) \n INV ID PAK-12 / Dr. PAK-12 Doe 2 (16.7%) 0 0 2 (6.5%) \n INV ID PAK-13 / Dr. PAK-13 Doe 1 (8.3%) 1 (11.1%) 0 2 (6.5%) \n INV ID PAK-14 / Dr. PAK-14 Doe 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-15 / Dr. PAK-15 Doe 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-2 / Dr. PAK-2 Doe 1 (8.3%) 0 2 (20%) 3 (9.7%) \n INV ID PAK-4 / Dr. PAK-4 Doe 0 1 (11.1%) 1 (10%) 2 (6.5%) \n INV ID PAK-5 / Dr. PAK-5 Doe 0 0 1 (10%) 1 (3.2%) \n JPN 5 (3.7%) 4 (3.0%) 9 (6.8%) 18 (4.5%) \n INV ID JPN-1 / Dr. JPN-1 Doe 2 (40%) 2 (50%) 1 (11.1%) 5 (27.8%) \n INV ID JPN-11 / Dr. JPN-11 Doe 0 0 3 (33.3%) 3 (16.7%) \n INV ID JPN-12 / Dr. JPN-12 Doe 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-14 / Dr. JPN-14 Doe 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-17 / Dr. JPN-17 Doe 0 0 2 (22.2%) 2 (11.1%) \n INV ID JPN-18 / Dr. JPN-18 Doe 1 (20%) 0 0 1 (5.6%) \n INV ID JPN-2 / Dr. JPN-2 Doe 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-3 / Dr. JPN-3 Doe 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-5 / Dr. JPN-5 Doe 1 (20%) 0 1 (11.1%) 2 (11.1%) \n INV ID JPN-6 / Dr. JPN-6 Doe 1 (20%) 0 0 1 (5.6%) \nEurasia 5 (3.7%) 8 (6.0%) 6 (4.5%) 19 (4.8%) \n RUS 5 (3.7%) 8 (6.0%) 6 (4.5%) 19 (4.8%) \n INV ID RUS-1 / Dr. RUS-1 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-11 / Dr. RUS-11 Doe 0 2 (25%) 2 (33.3%) 4 (21.1%) \n INV ID RUS-12 / Dr. RUS-12 Doe 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-13 / Dr. RUS-13 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-14 / Dr. RUS-14 Doe 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-16 / Dr. RUS-16 Doe 1 (20%) 1 (12.5%) 0 2 (10.5%) \n INV ID RUS-18 / Dr. RUS-18 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-2 / Dr. RUS-2 Doe 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-3 / Dr. RUS-3 Doe 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-4 / Dr. RUS-4 Doe 0 2 (25%) 1 (16.7%) 3 (15.8%) \n INV ID RUS-5 / Dr. RUS-5 Doe 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-6 / Dr. RUS-6 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-7 / Dr. RUS-7 Doe 0 0 1 (16.7%) 1 (5.3%) \nEurope 4 (3.0%) 3 (2.2%) 2 (1.5%) 9 (2.2%) \n GBR 4 (3.0%) 3 (2.2%) 2 (1.5%) 9 (2.2%) \n INV ID GBR-1 / Dr. GBR-1 Doe 2 (50%) 0 1 (50%) 3 (33.3%) \n INV ID GBR-11 / Dr. GBR-11 Doe 0 1 (33.3%) 1 (50%) 2 (22.2%) \n INV ID GBR-13 / Dr. GBR-13 Doe 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-15 / Dr. GBR-15 Doe 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-17 / Dr. GBR-17 Doe 0 1 (33.3%) 0 1 (11.1%) \n INV ID GBR-6 / Dr. GBR-6 Doe 0 1 (33.3%) 0 1 (11.1%) \nNorth America 13 (9.7%) 15 (11.2%) 20 (15.2%) 48 (12.0%) \n USA 10 (7.5%) 13 (9.7%) 17 (12.9%) 40 (10.0%) \n INV ID USA-1 / Dr. USA-1 Doe 1 (10%) 4 (30.8%) 5 (29.4%) 10 (25%) \n INV ID USA-11 / Dr. USA-11 Doe 4 (40%) 2 (15.4%) 3 (17.6%) 9 (22.5%) \n INV ID USA-12 / Dr. USA-12 Doe 1 (10%) 2 (15.4%) 3 (17.6%) 6 (15%) \n INV ID USA-14 / Dr. USA-14 Doe 1 (10%) 0 0 1 (2.5%) \n INV ID USA-15 / Dr. USA-15 Doe 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-17 / Dr. USA-17 Doe 1 (10%) 1 (7.7%) 0 2 (5%) \n INV ID USA-19 / Dr. USA-19 Doe 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-2 / Dr. USA-2 Doe 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-3 / Dr. USA-3 Doe 1 (10%) 0 1 (5.9%) 2 (5%) \n INV ID USA-4 / Dr. USA-4 Doe 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-5 / Dr. USA-5 Doe 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-6 / Dr. USA-6 Doe 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-8 / Dr. USA-8 Doe 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-9 / Dr. USA-9 Doe 1 (10%) 0 0 1 (2.5%) \n CAN 3 (2.2%) 2 (1.5%) 3 (2.3%) 8 (2.0%) \n INV ID CAN-1 / Dr. CAN-1 Doe 1 (33.3%) 1 (50%) 0 2 (25%) \n INV ID CAN-11 / Dr. CAN-11 Doe 1 (33.3%) 0 1 (33.3%) 2 (25%) \n INV ID CAN-14 / Dr. CAN-14 Doe 1 (33.3%) 0 0 1 (12.5%) \n INV ID CAN-4 / Dr. CAN-4 Doe 0 1 (50%) 1 (33.3%) 2 (25%) \n INV ID CAN-5 / Dr. CAN-5 Doe 0 0 1 (33.3%) 1 (12.5%) \nSouth America 13 (9.7%) 7 (5.2%) 10 (7.6%) 30 (7.5%) \n BRA 13 (9.7%) 7 (5.2%) 10 (7.6%) 30 (7.5%) \n INV ID BRA-1 / Dr. BRA-1 Doe 4 (30.8%) 2 (28.6%) 2 (20%) 8 (26.7%) \n INV ID BRA-11 / Dr. BRA-11 Doe 4 (30.8%) 0 4 (40%) 8 (26.7%) \n INV ID BRA-12 / Dr. BRA-12 Doe 0 1 (14.3%) 0 1 (3.3%) \n INV ID BRA-13 / Dr. BRA-13 Doe 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-14 / Dr. BRA-14 Doe 1 (7.7%) 0 1 (10%) 2 (6.7%) \n INV ID BRA-15 / Dr. BRA-15 Doe 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-2 / Dr. BRA-2 Doe 1 (7.7%) 1 (14.3%) 0 2 (6.7%) \n INV ID BRA-3 / Dr. BRA-3 Doe 0 2 (28.6%) 0 2 (6.7%) \n INV ID BRA-4 / Dr. BRA-4 Doe 0 1 (14.3%) 1 (10%) 2 (6.7%) \n INV ID BRA-5 / Dr. BRA-5 Doe 0 0 1 (10%) 1 (3.3%) \n INV ID BRA-6 / Dr. BRA-6 Doe 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-7 / Dr. BRA-7 Doe 0 0 1 (10%) 1 (3.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n add_overall_col(label = \"All Patients\") %>%\n split_rows_by(\"COUNTRY\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adsl$COUNTRY)) %>%\n summarize_row_groups() %>%\n analyze_vars(\"INVID_INVNAM\", .stats = \"count_fraction\") %>%\n append_varlabels(adsl, \"INVID_INVNAM\", 1L)\n\nresult <- build_table(lyt, adsl) %>%\n prune_table()\n\nresult\n\nCountry A: Drug X B: Placebo C: Combination All Patients\n Investigator Number/Name (N=134) (N=134) (N=132) (N=400) \n——————————————————————————————————————————————————————————————————————————————————————————\nCHN 74 (55.2%) 81 (60.4%) 64 (48.5%) 219 (54.8%) \n INV ID CHN-1 / Dr. CHN-1 Doe 21 (28.4%) 20 (24.7%) 16 (25%) 57 (26%) \n INV ID CHN-10 / Dr. CHN-10 Doe 0 1 (1.2%) 0 1 (0.5%) \n INV ID CHN-11 / Dr. CHN-11 Doe 12 (16.2%) 20 (24.7%) 16 (25%) 48 (21.9%) \n INV ID CHN-12 / Dr. CHN-12 Doe 4 (5.4%) 3 (3.7%) 1 (1.6%) 8 (3.7%) \n INV ID CHN-13 / Dr. CHN-13 Doe 2 (2.7%) 6 (7.4%) 0 8 (3.7%) \n INV ID CHN-14 / Dr. CHN-14 Doe 4 (5.4%) 2 (2.5%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-15 / Dr. CHN-15 Doe 2 (2.7%) 0 4 (6.2%) 6 (2.7%) \n INV ID CHN-16 / Dr. CHN-16 Doe 0 3 (3.7%) 3 (4.7%) 6 (2.7%) \n INV ID CHN-17 / Dr. CHN-17 Doe 4 (5.4%) 4 (4.9%) 3 (4.7%) 11 (5%) \n INV ID CHN-18 / Dr. CHN-18 Doe 1 (1.4%) 0 2 (3.1%) 3 (1.4%) \n INV ID CHN-2 / Dr. CHN-2 Doe 9 (12.2%) 4 (4.9%) 3 (4.7%) 16 (7.3%) \n INV ID CHN-3 / Dr. CHN-3 Doe 5 (6.8%) 1 (1.2%) 5 (7.8%) 11 (5%) \n INV ID CHN-4 / Dr. CHN-4 Doe 3 (4.1%) 3 (3.7%) 3 (4.7%) 9 (4.1%) \n INV ID CHN-5 / Dr. CHN-5 Doe 4 (5.4%) 3 (3.7%) 4 (6.2%) 11 (5%) \n INV ID CHN-6 / Dr. CHN-6 Doe 1 (1.4%) 3 (3.7%) 0 4 (1.8%) \n INV ID CHN-7 / Dr. CHN-7 Doe 0 5 (6.2%) 1 (1.6%) 6 (2.7%) \n INV ID CHN-8 / Dr. CHN-8 Doe 1 (1.4%) 1 (1.2%) 0 2 (0.9%) \n INV ID CHN-9 / Dr. CHN-9 Doe 1 (1.4%) 2 (2.5%) 0 3 (1.4%) \nUSA 10 (7.5%) 13 (9.7%) 17 (12.9%) 40 (10.0%) \n INV ID USA-1 / Dr. USA-1 Doe 1 (10%) 4 (30.8%) 5 (29.4%) 10 (25%) \n INV ID USA-11 / Dr. USA-11 Doe 4 (40%) 2 (15.4%) 3 (17.6%) 9 (22.5%) \n INV ID USA-12 / Dr. USA-12 Doe 1 (10%) 2 (15.4%) 3 (17.6%) 6 (15%) \n INV ID USA-14 / Dr. USA-14 Doe 1 (10%) 0 0 1 (2.5%) \n INV ID USA-15 / Dr. USA-15 Doe 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-17 / Dr. USA-17 Doe 1 (10%) 1 (7.7%) 0 2 (5%) \n INV ID USA-19 / Dr. USA-19 Doe 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-2 / Dr. USA-2 Doe 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-3 / Dr. USA-3 Doe 1 (10%) 0 1 (5.9%) 2 (5%) \n INV ID USA-4 / Dr. USA-4 Doe 0 1 (7.7%) 1 (5.9%) 2 (5%) \n INV ID USA-5 / Dr. USA-5 Doe 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-6 / Dr. USA-6 Doe 0 1 (7.7%) 0 1 (2.5%) \n INV ID USA-8 / Dr. USA-8 Doe 0 0 1 (5.9%) 1 (2.5%) \n INV ID USA-9 / Dr. USA-9 Doe 1 (10%) 0 0 1 (2.5%) \nBRA 13 (9.7%) 7 (5.2%) 10 (7.6%) 30 (7.5%) \n INV ID BRA-1 / Dr. BRA-1 Doe 4 (30.8%) 2 (28.6%) 2 (20%) 8 (26.7%) \n INV ID BRA-11 / Dr. BRA-11 Doe 4 (30.8%) 0 4 (40%) 8 (26.7%) \n INV ID BRA-12 / Dr. BRA-12 Doe 0 1 (14.3%) 0 1 (3.3%) \n INV ID BRA-13 / Dr. BRA-13 Doe 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-14 / Dr. BRA-14 Doe 1 (7.7%) 0 1 (10%) 2 (6.7%) \n INV ID BRA-15 / Dr. BRA-15 Doe 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-2 / Dr. BRA-2 Doe 1 (7.7%) 1 (14.3%) 0 2 (6.7%) \n INV ID BRA-3 / Dr. BRA-3 Doe 0 2 (28.6%) 0 2 (6.7%) \n INV ID BRA-4 / Dr. BRA-4 Doe 0 1 (14.3%) 1 (10%) 2 (6.7%) \n INV ID BRA-5 / Dr. BRA-5 Doe 0 0 1 (10%) 1 (3.3%) \n INV ID BRA-6 / Dr. BRA-6 Doe 1 (7.7%) 0 0 1 (3.3%) \n INV ID BRA-7 / Dr. BRA-7 Doe 0 0 1 (10%) 1 (3.3%) \nPAK 12 (9.0%) 9 (6.7%) 10 (7.6%) 31 (7.8%) \n INV ID PAK-1 / Dr. PAK-1 Doe 2 (16.7%) 4 (44.4%) 4 (40%) 10 (32.3%) \n INV ID PAK-11 / Dr. PAK-11 Doe 4 (33.3%) 3 (33.3%) 2 (20%) 9 (29%) \n INV ID PAK-12 / Dr. PAK-12 Doe 2 (16.7%) 0 0 2 (6.5%) \n INV ID PAK-13 / Dr. PAK-13 Doe 1 (8.3%) 1 (11.1%) 0 2 (6.5%) \n INV ID PAK-14 / Dr. PAK-14 Doe 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-15 / Dr. PAK-15 Doe 1 (8.3%) 0 0 1 (3.2%) \n INV ID PAK-2 / Dr. PAK-2 Doe 1 (8.3%) 0 2 (20%) 3 (9.7%) \n INV ID PAK-4 / Dr. PAK-4 Doe 0 1 (11.1%) 1 (10%) 2 (6.5%) \n INV ID PAK-5 / Dr. PAK-5 Doe 0 0 1 (10%) 1 (3.2%) \nNGA 8 (6.0%) 7 (5.2%) 11 (8.3%) 26 (6.5%) \n INV ID NGA-1 / Dr. NGA-1 Doe 3 (37.5%) 3 (42.9%) 4 (36.4%) 10 (38.5%) \n INV ID NGA-11 / Dr. NGA-11 Doe 1 (12.5%) 2 (28.6%) 3 (27.3%) 6 (23.1%) \n INV ID NGA-12 / Dr. NGA-12 Doe 0 1 (14.3%) 1 (9.1%) 2 (7.7%) \n INV ID NGA-17 / Dr. NGA-17 Doe 2 (25%) 0 0 2 (7.7%) \n INV ID NGA-2 / Dr. NGA-2 Doe 1 (12.5%) 1 (14.3%) 0 2 (7.7%) \n INV ID NGA-4 / Dr. NGA-4 Doe 1 (12.5%) 0 1 (9.1%) 2 (7.7%) \n INV ID NGA-5 / Dr. NGA-5 Doe 0 0 1 (9.1%) 1 (3.8%) \n INV ID NGA-6 / Dr. NGA-6 Doe 0 0 1 (9.1%) 1 (3.8%) \nRUS 5 (3.7%) 8 (6.0%) 6 (4.5%) 19 (4.8%) \n INV ID RUS-1 / Dr. RUS-1 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-11 / Dr. RUS-11 Doe 0 2 (25%) 2 (33.3%) 4 (21.1%) \n INV ID RUS-12 / Dr. RUS-12 Doe 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-13 / Dr. RUS-13 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-14 / Dr. RUS-14 Doe 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-16 / Dr. RUS-16 Doe 1 (20%) 1 (12.5%) 0 2 (10.5%) \n INV ID RUS-18 / Dr. RUS-18 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-2 / Dr. RUS-2 Doe 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-3 / Dr. RUS-3 Doe 0 0 1 (16.7%) 1 (5.3%) \n INV ID RUS-4 / Dr. RUS-4 Doe 0 2 (25%) 1 (16.7%) 3 (15.8%) \n INV ID RUS-5 / Dr. RUS-5 Doe 0 1 (12.5%) 0 1 (5.3%) \n INV ID RUS-6 / Dr. RUS-6 Doe 1 (20%) 0 0 1 (5.3%) \n INV ID RUS-7 / Dr. RUS-7 Doe 0 0 1 (16.7%) 1 (5.3%) \nJPN 5 (3.7%) 4 (3.0%) 9 (6.8%) 18 (4.5%) \n INV ID JPN-1 / Dr. JPN-1 Doe 2 (40%) 2 (50%) 1 (11.1%) 5 (27.8%) \n INV ID JPN-11 / Dr. JPN-11 Doe 0 0 3 (33.3%) 3 (16.7%) \n INV ID JPN-12 / Dr. JPN-12 Doe 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-14 / Dr. JPN-14 Doe 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-17 / Dr. JPN-17 Doe 0 0 2 (22.2%) 2 (11.1%) \n INV ID JPN-18 / Dr. JPN-18 Doe 1 (20%) 0 0 1 (5.6%) \n INV ID JPN-2 / Dr. JPN-2 Doe 0 0 1 (11.1%) 1 (5.6%) \n INV ID JPN-3 / Dr. JPN-3 Doe 0 1 (25%) 0 1 (5.6%) \n INV ID JPN-5 / Dr. JPN-5 Doe 1 (20%) 0 1 (11.1%) 2 (11.1%) \n INV ID JPN-6 / Dr. JPN-6 Doe 1 (20%) 0 0 1 (5.6%) \nGBR 4 (3.0%) 3 (2.2%) 2 (1.5%) 9 (2.2%) \n INV ID GBR-1 / Dr. GBR-1 Doe 2 (50%) 0 1 (50%) 3 (33.3%) \n INV ID GBR-11 / Dr. GBR-11 Doe 0 1 (33.3%) 1 (50%) 2 (22.2%) \n INV ID GBR-13 / Dr. GBR-13 Doe 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-15 / Dr. GBR-15 Doe 1 (25%) 0 0 1 (11.1%) \n INV ID GBR-17 / Dr. GBR-17 Doe 0 1 (33.3%) 0 1 (11.1%) \n INV ID GBR-6 / Dr. GBR-6 Doe 0 1 (33.3%) 0 1 (11.1%) \nCAN 3 (2.2%) 2 (1.5%) 3 (2.3%) 8 (2.0%) \n INV ID CAN-1 / Dr. CAN-1 Doe 1 (33.3%) 1 (50%) 0 2 (25%) \n INV ID CAN-11 / Dr. CAN-11 Doe 1 (33.3%) 0 1 (33.3%) 2 (25%) \n INV ID CAN-14 / Dr. CAN-14 Doe 1 (33.3%) 0 0 1 (12.5%) \n INV ID CAN-4 / Dr. CAN-4 Doe 0 1 (50%) 1 (33.3%) 2 (25%) \n INV ID CAN-5 / Dr. CAN-5 Doe 0 0 1 (33.3%) 1 (12.5%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(forcats)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\n\nadsl <- adsl %>%\n mutate(\n REGION1 = droplevels(REGION1),\n COUNTRY = droplevels(COUNTRY),\n INVID_INVNAM = paste(INVID, INVNAM, sep = \" / \")\n ) %>%\n mutate(\n INVID = factor(INVID),\n SITEID = factor(SITEID),\n INVNAM = factor(INVNAM),\n INVID_INVNAM = factor(INVID_INVNAM)\n ) %>%\n var_relabel(\n INVID_INVNAM = \"Investigator Number/Name\",\n REGION1 = \"Geographic Region 1\",\n COUNTRY = \"Country\",\n INVID = \"Investigator Identifier\"\n ) %>%\n arrange(REGION1, COUNTRY, INVID)", "crumbs": [ "Tables", - "Efficacy", - "AOVT01" + "Safety", + "ENTXX" ] }, { - "objectID": "tables/efficacy/aovt01.html#teal-app", - "href": "tables/efficacy/aovt01.html#teal-app", - "title": "AOVT01", + "objectID": "tables/safety/enrollment01.html#teal-app", + "href": "tables/safety/enrollment01.html#teal-app", + "title": "ENTXX", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADQS <- df_explicit_na(ADQS)\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADQS <- data[[\"ADQS\"]]\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_ancova(\n label = \"ANCOVA table\",\n dataname = \"ADQS\",\n avisit = choices_selected(\n choices = value_choices(ADQS, \"AVISIT\"),\n selected = \"WEEK 1 DAY 8\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ACTARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n aval_var = choices_selected(\n choices = variable_choices(ADQS, c(\"CHG\", \"AVAL\")),\n selected = \"CHG\"\n ),\n cov_var = choices_selected(\n choices = variable_choices(ADQS, c(\"BASE\", \"STRATA1\", \"SEX\")),\n selected = \"STRATA1\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = c(\"FKSI-FWB\", \"BFIALL\")\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADQS <- df_explicit_na(ADQS)\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADQS <- data[[\"ADQS\"]]\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_ancova(\n label = \"ANCOVA table\",\n dataname = \"ADQS\",\n avisit = choices_selected(\n choices = value_choices(ADQS, \"AVISIT\"),\n selected = \"WEEK 1 DAY 8\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ACTARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n aval_var = choices_selected(\n choices = variable_choices(ADQS, c(\"CHG\", \"AVAL\")),\n selected = \"CHG\"\n ),\n cov_var = choices_selected(\n choices = variable_choices(ADQS, c(\"BASE\", \"STRATA1\", \"SEX\")),\n selected = \"STRATA1\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = c(\"FKSI-FWB\", \"BFIALL\")\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\nNote that for this module application, only the variables passed into by_vars are used when row_groups is selected. Variables passed into analyze_vars are additionally used when row_groups is deselected.\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n\n adsl_labels <- col_labels(ADSL)\n\n ADSL <- ADSL %>%\n mutate(\n REGION1 = droplevels(REGION1),\n COUNTRY = droplevels(COUNTRY),\n INVID_INVNAM = paste(INVID, INVNAM, sep = \" / \")\n ) %>%\n arrange(REGION1, COUNTRY, INVID) %>%\n mutate(\n INVID = factor(INVID),\n SITEID = factor(SITEID),\n INVNAM = factor(INVNAM),\n INVID_INVNAM = factor(INVID_INVNAM)\n )\n\n col_labels(ADSL) <- c(adsl_labels, c(INVID_INVNAM = \"Investigator Number/Name\"))\n})\ndatanames <- \"ADSL\"\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Enrollment Table\",\n dataname = \"ADSL\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADSL, c(\"REGION1\", \"COUNTRY\", \"SITEID\", \"INVID\", \"INVNAM\", \"INVID_INVNAM\")),\n selected = c(\"REGION1\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADSL, c(\"REGION1\", \"COUNTRY\", \"SITEID\", \"INVID\", \"INVNAM\", \"INVID_INVNAM\")),\n selected = c(\"SITEID\")\n ),\n denominator = choices_selected(\n choices = c(\"n\", \"N\", \"omit\"),\n selected = \"N\",\n fixed = TRUE\n ),\n useNA = \"ifany\",\n row_groups = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n\n adsl_labels <- col_labels(ADSL)\n\n ADSL <- ADSL %>%\n mutate(\n REGION1 = droplevels(REGION1),\n COUNTRY = droplevels(COUNTRY),\n INVID_INVNAM = paste(INVID, INVNAM, sep = \" / \")\n ) %>%\n arrange(REGION1, COUNTRY, INVID) %>%\n mutate(\n INVID = factor(INVID),\n SITEID = factor(SITEID),\n INVNAM = factor(INVNAM),\n INVID_INVNAM = factor(INVID_INVNAM)\n )\n\n col_labels(ADSL) <- c(adsl_labels, c(INVID_INVNAM = \"Investigator Number/Name\"))\n})\ndatanames <- \"ADSL\"\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Enrollment Table\",\n dataname = \"ADSL\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADSL, c(\"REGION1\", \"COUNTRY\", \"SITEID\", \"INVID\", \"INVNAM\", \"INVID_INVNAM\")),\n selected = c(\"REGION1\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADSL, c(\"REGION1\", \"COUNTRY\", \"SITEID\", \"INVID\", \"INVNAM\", \"INVID_INVNAM\")),\n selected = c(\"SITEID\")\n ),\n denominator = choices_selected(\n choices = c(\"n\", \"N\", \"omit\"),\n selected = \"N\",\n fixed = TRUE\n ),\n useNA = \"ifany\",\n row_groups = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Efficacy", - "AOVT01" + "Safety", + "ENTXX" ] }, { - "objectID": "tables/efficacy/aovt01.html#reproducibility", - "href": "tables/efficacy/aovt01.html#reproducibility", - "title": "AOVT01", + "objectID": "tables/safety/enrollment01.html#reproducibility", + "href": "tables/safety/enrollment01.html#reproducibility", + "title": "ENTXX", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:46:10 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:42:14 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats * 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Efficacy", - "AOVT01" + "Safety", + "ENTXX" ] }, { - "objectID": "tables/efficacy/lgrt02.html#output", - "href": "tables/efficacy/lgrt02.html#output", - "title": "LGRT02", + "objectID": "tables/exposure/ext01.html#output", + "href": "tables/exposure/ext01.html#output", + "title": "EXT01", "section": "Output", - "text": "Output\n\n\nMulti-Variable Logistic Regression\nMulti-Variable Logistic Regression with Interaction Term\nMulti-Variable Logistic Regression Specifying Covariates\nMulti-Variable Logistic Regression Setting an Event, Alpha Level, and Level for Interaction\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodemodel <- fit_logistic(\n adrs,\n variables = list(response = \"Response\", arm = \"ARMCD\", covariates = c(\"SEX\", \"AGE\"))\n)\nconf_level <- 0.95\ndf <- broom::tidy(model, conf_level = conf_level)\n\n# empty string flag\ndf <- df_explicit_na(df, na_level = \"_NA_\")\n\nresult <- basic_table() %>%\n summarize_logistic(\n conf_level = conf_level,\n drop_and_remove_str = \"_NA_\"\n ) %>%\n append_topleft(\"Logistic regression\") %>%\n build_table(df = df)\nresult\n\nLogistic regression Degrees of Freedom Parameter Estimate Standard Error Odds Ratio Wald 95% CI p-value\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nPlanned Arm Code 2 0.0408 \n Reference ARM A, n = 134 \n ARM B, n = 134 1 -2.094 1.080 0.12 (0.01, 1.02) 0.0524 \n ARM C, n = 132 1 -0.074 1.423 0.93 (0.06, 15.09) 0.9584 \nSex \n Reference M, n = 169 \n F, n = 231 1 0.331 0.695 1.39 (0.36, 5.44) 0.6339 \nAge \n Age 1 0.070 0.054 1.07 (0.97, 1.19) 0.1945 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodemodel <- fit_logistic(\n adrs,\n variables = list(\n response = \"Response\",\n arm = \"ARMCD\",\n covariates = c(\"SEX\", \"AGE\"),\n interaction = \"SEX\"\n )\n)\nconf_level <- 0.95\ndf <- broom::tidy(model, conf_level = conf_level)\n\n# empty string flag\ndf <- df_explicit_na(df, na_level = \"_NA_\")\n\nresult <- basic_table() %>%\n summarize_logistic(\n conf_level = conf_level,\n drop_and_remove_str = \"_NA_\"\n ) %>%\n append_topleft(\"Logistic regression with interaction\") %>%\n build_table(df = df)\nresult\n\nLogistic regression with interaction Degrees of Freedom Parameter Estimate Standard Error Odds Ratio Wald 95% CI p-value\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAge \n Age 1 0.067 0.054 1.07 (0.96, 1.19) 0.2084 \nPlanned Arm Code 2 0.4882 \n Reference ARM A, n = 134 \n ARM B, n = 134 1 -17.850 2362.767 0.9940 \n Sex \n F 0.23 (0.02, 2.11) \n M 0.00 (0.00, >999.99) \n ARM C, n = 132 1 -16.442 2362.767 0.9944 \n Sex \n F >999.99 (0.00, >999.99) \n M 0.00 (0.00, >999.99) \nSex \n Reference M, n = 169 \n F, n = 231 1 -16.044 2362.767 0.9946 \n Planned Arm Code \n ARM A 0.00 (0.00, >999.99) \n ARM B 1.39 (0.29, 6.59) \n ARM C >999.99 (0.00, >999.99) \nInteraction of Planned Arm Code * Sex 2 0.9999 \n Reference ARM A or M, n = 248 \n ARM B * F, n = 82 1 16.373 2362.767 0.9945 \n ARM C * F, n = 70 1 32.492 3156.732 0.9918 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodemodel <- fit_logistic(\n adrs,\n variables = list(\n response = \"Response\",\n arm = \"ARMCD\",\n covariates = c(\"SEX\", \"AGE\", \"RACE\")\n )\n)\nconf_level <- 0.95\ndf <- broom::tidy(model, conf_level = conf_level)\n\n# empty string flag\ndf <- df_explicit_na(df, na_level = \"_NA_\")\n\nresult <- basic_table() %>%\n summarize_logistic(\n conf_level = conf_level,\n drop_and_remove_str = \"_NA_\"\n ) %>%\n append_topleft(\"y ~ ARM + SEX + AGE + RACE\") %>%\n build_table(df = df)\nresult\n\ny ~ ARM + SEX + AGE + RACE Degrees of Freedom Parameter Estimate Standard Error Odds Ratio Wald 95% CI p-value\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nPlanned Arm Code 2 0.0346 \n Reference ARM A, n = 134 \n ARM B, n = 134 1 -2.162 1.084 0.12 (0.01, 0.96) 0.0461 \n ARM C, n = 132 1 -0.090 1.426 0.91 (0.06, 14.97) 0.9499 \nSex \n Reference M, n = 169 \n F, n = 231 1 0.364 0.701 1.44 (0.36, 5.69) 0.6032 \nAge \n Age 1 0.071 0.053 1.07 (0.97, 1.19) 0.1866 \nRace 5 0.9685 \n Reference AMERICAN INDIAN OR ALASKA NATIVE, n = 25 \n ASIAN, n = 208 1 -16.246 2017.122 0.00 (0.00, >999.99) 0.9936 \n BLACK OR AFRICAN AMERICAN, n = 91 1 -15.205 2017.122 0.00 (0.00, >999.99) 0.9940 \n WHITE, n = 74 1 -15.955 2017.122 0.00 (0.00, >999.99) 0.9937 \n MULTIPLE, n = 1 1 -0.363 10941.553 0.70 (0.00, >999.99) 1.0000 \n NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER, n = 1 1 1.036 10941.553 2.82 (0.00, >999.99) 0.9999 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodemodel <- fit_logistic(\n adrs,\n variables = list(\n response = \"Response\",\n arm = \"ARMCD\",\n covariates = c(\"SEX\", \"AGE\"),\n interaction = \"AGE\"\n ),\n response_definition = \"1 - response\"\n)\nconf_level <- 0.9\ndf <- broom::tidy(model, conf_level = conf_level, at = c(30, 50))\n\n# empty string flag\ndf <- df_explicit_na(df, na_level = \"_NA_\")\n\nresult <- basic_table() %>%\n summarize_logistic(\n conf_level = conf_level,\n drop_and_remove_str = \"_NA_\"\n ) %>%\n append_topleft(\"Estimations at age 30 and 50\") %>%\n build_table(df = df)\nresult\n\nEstimations at age 30 and 50 Degrees of Freedom Parameter Estimate Standard Error Odds Ratio Wald 90% CI p-value\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nSex \n Reference M, n = 169 \n F, n = 231 1 -0.381 0.710 0.68 (0.21, 2.20) 0.5915 \nPlanned Arm Code 2 0.2768 \n Reference ARM A, n = 134 \n ARM B, n = 134 1 -20.020 13.714 0.1443 \n Age \n 30 234.91 (0.30, >999.99) \n 50 >999.99 (0.04, >999.99) \n ARM C, n = 132 1 -15.622 14.810 0.2915 \n Age \n 30 31.95 (0.03, >999.99) \n 50 >999.99 (<0.01, >999.99) \nAge \n Age 1 -0.877 0.581 0.1309 \n Planned Arm Code \n ARM A 0.42 (0.16, 1.08) \n ARM B 0.97 (0.89, 1.06) \n ARM C 0.79 (0.55, 1.11) \nInteraction of Planned Arm Code * Age 2 0.2213 \n Reference ARM A, n = 134 \n ARM B, n = 134 1 0.849 0.583 0.1449 \n ARM C, n = 132 1 0.636 0.618 0.3034 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadrs <- random.cdisc.data::cadrs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadrs <- df_explicit_na(adrs)\n\nadsl <- adsl %>%\n dplyr::filter(SEX %in% c(\"F\", \"M\"))\n\nadrs <- adrs %>%\n dplyr::filter(PARAMCD == \"BESRSPI\") %>%\n dplyr::mutate(\n Response = case_when(AVALC %in% c(\"PR\", \"CR\") ~ 1, TRUE ~ 0),\n SEX = factor(SEX, c(\"M\", \"F\")),\n RACE = factor(\n RACE,\n levels = c(\n \"AMERICAN INDIAN OR ALASKA NATIVE\", \"ASIAN\", \"BLACK OR AFRICAN AMERICAN\",\n \"WHITE\", \"MULTIPLE\", \"NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER\"\n )\n )\n ) %>%\n var_relabel(Response = \"Response\", SEX = \"Sex\", RACE = \"Race\")", + "text": "Output\n\n\nStandard Table\nTable with Optional Analyses\nTable with User-Specified Categories for Missed Doses\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# When summary table contains only categorical or only numeric parameters\n\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\"PARCAT2\", split_label = \"\\nParameter Category (Drug A/Drug B)\", label_pos = \"topleft\") %>%\n split_rows_by(\"PARAM\", split_fun = split_fun) %>%\n analyze_vars(vars = \"AVAL\")\n\nresult <- build_table(lyt = lyt, df = adex, alt_counts_df = adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination \nParameter Category (Drug A/Drug B) (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————\nDrug A \n Overall duration (days) \n n 75 67 75 \n Mean (SD) 74.3 (41.6) 79.0 (43.1) 74.2 (39.5) \n Median 77.0 80.0 78.0 \n Min - Max 5.0 - 149.0 2.0 - 150.0 1.0 - 147.0 \n Total dose administered \n n 75 67 75 \n Mean (SD) 6675.2 (1110.9) 6505.1 (1249.3) 6982.4 (1272.5)\n Median 6720.0 6480.0 7200.0 \n Min - Max 4800.0 - 9360.0 4080.0 - 9360.0 4320.0 - 9360.0\n Total number of doses administered \n n 75 67 75 \n Mean (SD) 7.0 (0.0) 7.0 (0.0) 7.0 (0.0) \n Median 7.0 7.0 7.0 \n Min - Max 7.0 - 7.0 7.0 - 7.0 7.0 - 7.0 \n Total number of missed doses during study \n n 75 67 75 \n Mean (SD) 10.5 (5.9) 10.0 (6.1) 9.5 (5.5) \n Median 10.0 11.0 9.0 \n Min - Max 0.0 - 20.0 0.0 - 19.0 0.0 - 20.0 \nDrug B \n Overall duration (days) \n n 59 67 57 \n Mean (SD) 77.5 (40.5) 76.3 (41.0) 69.5 (46.2) \n Median 79.0 76.0 65.0 \n Min - Max 2.0 - 149.0 5.0 - 148.0 1.0 - 149.0 \n Total dose administered \n n 59 67 57 \n Mean (SD) 6630.5 (1334.0) 6297.3 (1291.1) 6505.3 (1080.7)\n Median 6720.0 6240.0 6480.0 \n Min - Max 4320.0 - 8880.0 4080.0 - 9120.0 4320.0 - 8640.0\n Total number of doses administered \n n 59 67 57 \n Mean (SD) 7.0 (0.0) 7.0 (0.0) 7.0 (0.0) \n Median 7.0 7.0 7.0 \n Min - Max 7.0 - 7.0 7.0 - 7.0 7.0 - 7.0 \n Total number of missed doses during study \n n 59 67 57 \n Mean (SD) 9.1 (6.5) 10.0 (6.3) 10.7 (5.8) \n Median 9.0 10.0 11.0 \n Min - Max 0.0 - 20.0 0.0 - 20.0 1.0 - 20.0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# When summary table contains both categorical and numeric parameters,\n# developer needs to do pre-processing to transform dataset to wide format.\nadex_avalc_wide <- adex %>%\n filter(PARAMCD == \"TDURD\") %>%\n select(STUDYID, USUBJID, PARAMCD, AVALC, PARCAT2) %>%\n tidyr::pivot_wider(\n id_cols = c(STUDYID, USUBJID, PARCAT2),\n names_from = PARAMCD,\n values_from = AVALC\n ) %>%\n mutate(\n TDURDC = factor(TDURD, levels = c(\"0 - 30\", \"31 - 60\", \"61 - 90\", \">= 91\"))\n ) %>%\n select(-TDURD)\n\nanl <- adex %>%\n select(STUDYID, USUBJID, ACTARM, PARAMCD, AVAL, PARCAT2) %>%\n tidyr::pivot_wider(\n id_cols = c(STUDYID, USUBJID, ACTARM, PARCAT2),\n names_from = PARAMCD,\n values_from = AVAL\n ) %>%\n left_join(adex_avalc_wide, by = c(\"STUDYID\", \"USUBJID\", \"PARCAT2\")) %>%\n var_relabel(\n TDOSE = \"Total dose administered\",\n TNDOSE = \"Total number of doses administered\",\n TDURD = \"Overall duration (days)\",\n TNDOSMIS = \"Total number of missed doses during study\",\n TDURDC = \"Overall duration (days)\"\n )\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\"PARCAT2\", split_label = \"\\nParameter Category (Drug A/Drug B)\", label_pos = \"topleft\") %>%\n analyze_vars(\n vars = c(\"TDURD\", \"TDURDC\", \"TDOSE\", \"TNDOSE\"),\n var_labels = var_labels(anl)[c(\"TDURD\", \"TDURDC\", \"TDOSE\", \"TNDOSE\")]\n )\n\nresult <- build_table(lyt = lyt, df = anl, alt_counts_df = adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination \nParameter Category (Drug A/Drug B) (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————\nDrug A \n Overall duration (days) \n n 75 67 75 \n Mean (SD) 74.3 (41.6) 79.0 (43.1) 74.2 (39.5) \n Median 77.0 80.0 78.0 \n Min - Max 5.0 - 149.0 2.0 - 150.0 1.0 - 147.0 \n Overall duration (days) \n n 75 67 75 \n 0 - 30 12 (16%) 12 (17.9%) 15 (20%) \n 31 - 60 18 (24%) 12 (17.9%) 14 (18.7%) \n 61 - 90 19 (25.3%) 15 (22.4%) 18 (24%) \n >= 91 26 (34.7%) 28 (41.8%) 28 (37.3%) \n Total dose administered \n n 75 67 75 \n Mean (SD) 6675.2 (1110.9) 6505.1 (1249.3) 6982.4 (1272.5)\n Median 6720.0 6480.0 7200.0 \n Min - Max 4800.0 - 9360.0 4080.0 - 9360.0 4320.0 - 9360.0\n Total number of doses administered \n n 75 67 75 \n Mean (SD) 7.0 (0.0) 7.0 (0.0) 7.0 (0.0) \n Median 7.0 7.0 7.0 \n Min - Max 7.0 - 7.0 7.0 - 7.0 7.0 - 7.0 \nDrug B \n Overall duration (days) \n n 59 67 57 \n Mean (SD) 77.5 (40.5) 76.3 (41.0) 69.5 (46.2) \n Median 79.0 76.0 65.0 \n Min - Max 2.0 - 149.0 5.0 - 148.0 1.0 - 149.0 \n Overall duration (days) \n n 59 67 57 \n 0 - 30 8 (13.6%) 10 (14.9%) 16 (28.1%) \n 31 - 60 14 (23.7%) 16 (23.9%) 12 (21.1%) \n 61 - 90 15 (25.4%) 17 (25.4%) 11 (19.3%) \n >= 91 22 (37.3%) 24 (35.8%) 18 (31.6%) \n Total dose administered \n n 59 67 57 \n Mean (SD) 6630.5 (1334.0) 6297.3 (1291.1) 6505.3 (1080.7)\n Median 6720.0 6240.0 6480.0 \n Min - Max 4320.0 - 8880.0 4080.0 - 9120.0 4320.0 - 8640.0\n Total number of doses administered \n n 59 67 57 \n Mean (SD) 7.0 (0.0) 7.0 (0.0) 7.0 (0.0) \n Median 7.0 7.0 7.0 \n Min - Max 7.0 - 7.0 7.0 - 7.0 7.0 - 7.0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# When summary table contains both categorical and numeric parameters,\n# developer needs to do pre-processing to transform dataset to wide format.\nadex_avalc_wide <- adex %>%\n filter(PARAMCD == \"TDURD\") %>%\n select(STUDYID, USUBJID, PARAMCD, AVALC, PARCAT2) %>%\n tidyr::pivot_wider(\n id_cols = c(STUDYID, USUBJID, PARCAT2),\n names_from = PARAMCD,\n values_from = AVALC\n ) %>%\n mutate(\n TDURDC = factor(TDURD, levels = c(\"0 - 30\", \"31 - 60\", \"61 - 90\", \">= 91\"))\n ) %>%\n select(-TDURD)\n\nanl <- adex %>%\n select(STUDYID, USUBJID, ACTARM, PARAMCD, AVAL, PARCAT2) %>%\n tidyr::pivot_wider(\n id_cols = c(STUDYID, USUBJID, ACTARM, PARCAT2),\n names_from = PARAMCD,\n values_from = AVAL\n ) %>%\n left_join(adex_avalc_wide, by = c(\"STUDYID\", \"USUBJID\", \"PARCAT2\")) %>%\n var_relabel(\n TDOSE = \"Total dose administered\",\n TNDOSE = \"Total number of doses administered\",\n TDURD = \"Overall duration (days)\",\n TNDOSMIS = \"Total number of missed doses during study\",\n TDURDC = \"Overall duration (days)\"\n )\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\"PARCAT2\", split_label = \"\\nParameter Category (Drug A/Drug B)\", label_pos = \"topleft\") %>%\n analyze_vars(\n vars = c(\"TDURD\", \"TDURDC\", \"TDOSE\", \"TNDOSE\"),\n var_labels = var_labels(anl)[c(\"TDURD\", \"TDURDC\", \"TDOSE\", \"TNDOSE\")]\n ) %>%\n count_missed_doses(\n \"TNDOSMIS\",\n thresholds = c(1, 5, 10, 15),\n var_labels = \"Missed Doses\"\n )\n\nresult <- build_table(lyt = lyt, df = anl, alt_counts_df = adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination \nParameter Category (Drug A/Drug B) (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————\nDrug A \n Overall duration (days) \n n 75 67 75 \n Mean (SD) 74.3 (41.6) 79.0 (43.1) 74.2 (39.5) \n Median 77.0 80.0 78.0 \n Min - Max 5.0 - 149.0 2.0 - 150.0 1.0 - 147.0 \n Overall duration (days) \n n 75 67 75 \n 0 - 30 12 (16%) 12 (17.9%) 15 (20%) \n 31 - 60 18 (24%) 12 (17.9%) 14 (18.7%) \n 61 - 90 19 (25.3%) 15 (22.4%) 18 (24%) \n >= 91 26 (34.7%) 28 (41.8%) 28 (37.3%) \n Total dose administered \n n 75 67 75 \n Mean (SD) 6675.2 (1110.9) 6505.1 (1249.3) 6982.4 (1272.5)\n Median 6720.0 6480.0 7200.0 \n Min - Max 4800.0 - 9360.0 4080.0 - 9360.0 4320.0 - 9360.0\n Total number of doses administered \n n 75 67 75 \n Mean (SD) 7.0 (0.0) 7.0 (0.0) 7.0 (0.0) \n Median 7.0 7.0 7.0 \n Min - Max 7.0 - 7.0 7.0 - 7.0 7.0 - 7.0 \n Missed Doses \n n 75 67 75 \n At least 1 missed dose 74 (55.2%) 63 (47%) 73 (55.3%) \n At least 5 missed doses 59 (44%) 49 (36.6%) 59 (44.7%) \n At least 10 missed doses 41 (30.6%) 38 (28.4%) 37 (28%) \n At least 15 missed doses 26 (19.4%) 21 (15.7%) 16 (12.1%) \nDrug B \n Overall duration (days) \n n 59 67 57 \n Mean (SD) 77.5 (40.5) 76.3 (41.0) 69.5 (46.2) \n Median 79.0 76.0 65.0 \n Min - Max 2.0 - 149.0 5.0 - 148.0 1.0 - 149.0 \n Overall duration (days) \n n 59 67 57 \n 0 - 30 8 (13.6%) 10 (14.9%) 16 (28.1%) \n 31 - 60 14 (23.7%) 16 (23.9%) 12 (21.1%) \n 61 - 90 15 (25.4%) 17 (25.4%) 11 (19.3%) \n >= 91 22 (37.3%) 24 (35.8%) 18 (31.6%) \n Total dose administered \n n 59 67 57 \n Mean (SD) 6630.5 (1334.0) 6297.3 (1291.1) 6505.3 (1080.7)\n Median 6720.0 6240.0 6480.0 \n Min - Max 4320.0 - 8880.0 4080.0 - 9120.0 4320.0 - 8640.0\n Total number of doses administered \n n 59 67 57 \n Mean (SD) 7.0 (0.0) 7.0 (0.0) 7.0 (0.0) \n Median 7.0 7.0 7.0 \n Min - Max 7.0 - 7.0 7.0 - 7.0 7.0 - 7.0 \n Missed Doses \n n 59 67 57 \n At least 1 missed dose 56 (41.8%) 63 (47%) 57 (43.2%) \n At least 5 missed doses 41 (30.6%) 50 (37.3%) 47 (35.6%) \n At least 10 missed doses 27 (20.1%) 36 (26.9%) 31 (23.5%) \n At least 15 missed doses 17 (12.7%) 18 (13.4%) 20 (15.2%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(tidyr)\n\nadsl <- random.cdisc.data::cadsl\nadex <- random.cdisc.data::cadex\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadex <- df_explicit_na(adex)\n\nadex <- adex %>%\n filter(PARCAT1 == \"OVERALL\") %>%\n select(STUDYID, USUBJID, ACTARM, PARAMCD, PARAM, AVAL, PARCAT2) %>%\n mutate(\n PARAMCD = as.character(PARAMCD),\n AVALC = \"\"\n ) %>%\n droplevels()\n\n# Add new param tdurd for treatment duration.\nset.seed(99)\ntdurd_adsl <- adsl %>%\n select(STUDYID, USUBJID, ACTARM) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(1:150, size = nrow(adsl), replace = TRUE),\n AVALC = case_when(\n 0 <= AVAL & AVAL <= 30 ~ \"0 - 30\",\n 31 <= AVAL & AVAL <= 60 ~ \"31 - 60\",\n 61 <= AVAL & AVAL <= 90 ~ \"61 - 90\",\n TRUE ~ \">= 91\"\n )\n )\ntdurd <- adex %>%\n filter(PARAMCD == \"TNDOSE\") %>%\n select(STUDYID, USUBJID, PARCAT2) %>%\n left_join(tdurd_adsl, by = c(\"STUDYID\", \"USUBJID\"))\n\n# Add new param tndosmis for missed doses.\ntndosmis_adsl <- adsl %>%\n select(STUDYID, USUBJID, ACTARM) %>%\n mutate(\n PARAMCD = \"TNDOSMIS\",\n PARAM = \"Total number of missed doses during study\",\n AVAL = sample(0:20, size = nrow(adsl), replace = TRUE),\n AVALC = \"\"\n )\ntndosmis <- adex %>%\n filter(PARAMCD == \"TNDOSE\") %>%\n select(STUDYID, USUBJID, PARCAT2) %>%\n left_join(tndosmis_adsl, by = c(\"STUDYID\", \"USUBJID\"))\n\nadex <- dplyr::bind_rows(adex, tdurd, tndosmis) %>%\n mutate(PARAM = factor(\n PARAM,\n levels = c(\n \"Overall duration (days)\", \"Total dose administered\", \"Total number of doses administered\",\n \"Total number of missed doses during study\"\n )\n ))", "crumbs": [ "Tables", - "Efficacy", - "LGRT02" + "Exposure", + "EXT01" ] }, { - "objectID": "tables/efficacy/lgrt02.html#teal-app", - "href": "tables/efficacy/lgrt02.html#teal-app", - "title": "LGRT02", + "objectID": "tables/exposure/ext01.html#teal-app", + "href": "tables/exposure/ext01.html#teal-app", + "title": "EXT01", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs %>%\n filter(PARAMCD %in% c(\"BESRSPI\", \"INVET\"))\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_logistic(\n label = \"Logistic Regression\",\n dataname = \"ADRS\",\n arm_var = choices_selected(\n choices = variable_choices(ADRS, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n choices = value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n selected = \"BESRSPI\"\n ),\n cov_var = choices_selected(\n choices = c(\"SEX\", \"AGE\", \"BMRKR1\", \"BMRKR2\"),\n selected = \"SEX\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs %>%\n filter(PARAMCD %in% c(\"BESRSPI\", \"INVET\"))\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_logistic(\n label = \"Logistic Regression\",\n dataname = \"ADRS\",\n arm_var = choices_selected(\n choices = variable_choices(ADRS, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n choices = value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n selected = \"BESRSPI\"\n ),\n cov_var = choices_selected(\n choices = c(\"SEX\", \"AGE\", \"BMRKR1\", \"BMRKR2\"),\n selected = \"SEX\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n adex_labels <- unname(col_labels(ADEX))\n ADEX <- ADEX %>%\n filter(PARCAT1 == \"OVERALL\") %>%\n mutate(\n AVALCAT1 = case_when(\n PARAMCD == \"TDOSE\" & AVAL < 5000 ~ \"LOW\",\n PARAMCD == \"TDOSE\" & AVAL >= 5000 ~ \"HIGH\",\n PARAMCD == \"TNDOSE\" & AVAL < 10 ~ \"< 10\",\n PARAMCD == \"TNDOSE\" & AVAL >= 10 ~ \">= 10\"\n )\n )\n col_labels(ADEX) <- c(adex_labels, \"\")\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Exposure Table\",\n dataname = \"ADEX\",\n arm_var = choices_selected(\n choices = variable_choices(ADEX, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEX, c(\"PARCAT2\", \"PARAM\")),\n selected = c(\"PARCAT2\", \"PARAM\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADEX, c(\"AVAL\", \"AVALCAT1\")),\n selected = c(\"AVAL\", \"AVALCAT1\")\n ),\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = c(\"TDOSE\", \"TNDOSE\")\n ),\n denominator = choices_selected(\n choices = c(\"n\", \"N\", \"omit\"),\n selected = \"N\"\n )\n )\n ), # Set initial filter state as single study drug to produce smaller table\n filter = teal_slices(\n teal_slice(\"ADEX\", \"PARCAT2\", selected = \"Drug A\"),\n teal_slice(\"ADEX\", \"AVAL\", selected = NULL)\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n adex_labels <- unname(col_labels(ADEX))\n ADEX <- ADEX %>%\n filter(PARCAT1 == \"OVERALL\") %>%\n mutate(\n AVALCAT1 = case_when(\n PARAMCD == \"TDOSE\" & AVAL < 5000 ~ \"LOW\",\n PARAMCD == \"TDOSE\" & AVAL >= 5000 ~ \"HIGH\",\n PARAMCD == \"TNDOSE\" & AVAL < 10 ~ \"< 10\",\n PARAMCD == \"TNDOSE\" & AVAL >= 10 ~ \">= 10\"\n )\n )\n col_labels(ADEX) <- c(adex_labels, \"\")\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Exposure Table\",\n dataname = \"ADEX\",\n arm_var = choices_selected(\n choices = variable_choices(ADEX, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEX, c(\"PARCAT2\", \"PARAM\")),\n selected = c(\"PARCAT2\", \"PARAM\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADEX, c(\"AVAL\", \"AVALCAT1\")),\n selected = c(\"AVAL\", \"AVALCAT1\")\n ),\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = c(\"TDOSE\", \"TNDOSE\")\n ),\n denominator = choices_selected(\n choices = c(\"n\", \"N\", \"omit\"),\n selected = \"N\"\n )\n )\n ), # Set initial filter state as single study drug to produce smaller table\n filter = teal_slices(\n teal_slice(\"ADEX\", \"PARCAT2\", selected = \"Drug A\"),\n teal_slice(\"ADEX\", \"AVAL\", selected = NULL)\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Efficacy", - "LGRT02" + "Exposure", + "EXT01" ] }, { - "objectID": "tables/efficacy/lgrt02.html#reproducibility", - "href": "tables/efficacy/lgrt02.html#reproducibility", - "title": "LGRT02", + "objectID": "tables/exposure/ext01.html#reproducibility", + "href": "tables/exposure/ext01.html#reproducibility", + "title": "EXT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:45:26 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n abind 1.4-8 2024-09-12 [1] RSPM\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n car 3.1-3 2024-09-27 [1] RSPM\n carData 3.0-5 2022-01-06 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n Formula 1.2-5 2023-02-24 [1] RSPM\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:41:19 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr * 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Efficacy", - "LGRT02" + "Exposure", + "EXT01" ] }, { - "objectID": "tables/efficacy/mmrmt01.html#teal-app", - "href": "tables/efficacy/mmrmt01.html#teal-app", - "title": "MMRMT01", - "section": "\nteal App", - "text": "teal App\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs %>%\n filter(ABLFL != \"Y\" & ABLFL2 != \"Y\") %>%\n filter(AVISIT %in% c(\"WEEK 1 DAY 8\", \"WEEK 2 DAY 15\", \"WEEK 3 DAY 22\")) %>%\n mutate(\n AVISIT = as.factor(AVISIT),\n AVISITN = rank(AVISITN) %>%\n as.factor() %>%\n as.numeric() %>%\n as.factor() # making consecutive numeric factor\n )\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADQS <- data[[\"ADQS\"]]\narm_ref_comp <- list(\n ARMCD = list(\n ref = \"ARM A\",\n comp = c(\"ARM B\", \"ARM C\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_a_mmrm(\n label = \"MMRM\",\n dataname = \"ADQS\",\n aval_var = choices_selected(c(\"AVAL\", \"CHG\"), \"CHG\"),\n id_var = choices_selected(c(\"USUBJID\", \"SUBJID\"), \"USUBJID\"),\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARMCD\"),\n visit_var = choices_selected(c(\"AVISIT\", \"AVISITN\"), \"AVISIT\"),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = \"FKSI-FWB\"\n ),\n cov_var = choices_selected(c(\"BASE\", \"AGE\", \"SEX\", \"BASE:AVISIT\"), NULL),\n conf_level = choices_selected(c(0.95, 0.9, 0.8), 0.95)\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "tables/ADA/adat01.html#output", + "href": "tables/ADA/adat01.html#output", + "title": "ADAT01", + "section": "Output", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Layout for Baseline Prevalence of NAbs\nlyt_bl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = custom_column_split_fun\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"ADABLPFL\",\n .stats = \"count\",\n var_labels = \"Baseline Prevalence of ADAs\",\n show_labels = \"visible\",\n table_names = \"t1\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"PADABLPFL\",\n table_names = \"t2\",\n .indent_mods = 1L,\n var_labels = \"a\",\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"NADABLPFL\",\n .stats = \"count\",\n show_labels = \"hidden\",\n .indent_mods = 1L,\n table_names = \"t3\"\n )\n\n# Layout for incidence of NAbs\nlyt_pb <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = custom_column_split_fun\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"ADPBLPFL\",\n .stats = \"count\",\n var_labels = \"Incidence of Treatment Emergent ADAs\",\n show_labels = \"visible\",\n table_names = \"tb1\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"PTEFL\",\n table_names = \"tb2\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(\"TIFL\", \"TEFL\"),\n .stats = \"count\",\n table_names = \"tb3\",\n .indent_mods = 2L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"NTEFL\",\n table_names = \"tb4\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"TUFL\",\n .stats = \"count\",\n table_names = \"tb5\",\n .indent_mods = 2L,\n show_labels = \"hidden\"\n )\n\nresult_1 <- build_table(lyt_bl, df = adab_b, alt_counts_df = adsl)\nresult_2 <- build_table(lyt_pb, df = adab_pb, alt_counts_df = adsl)\n\n# Combine tables.\nresult_1@col_info <- result_2@col_info\nresult <- rbind(result_1, result_2)\n\nmain_title(result) <- paste(\n \"Baseline Prevalence and Incidence of Treatment Emergent ADA\"\n)\n\nmain_footer(result) <- \"ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies) Baseline evaluable patient = a patient with an ADA assay result from a baseline sample(s)\n Post-baseline evaluable patient = a patient with an ADA assay result from at least one post-baseline sample Number of patients positive for Treatment Emergent\n ADA = the number (and percentage) of post-baseline evaluable patients determined to have treatment-induced ADA or treatment-enhanced ADA during the study period.\n Treatment-induced ADA = a patient with negative or missing baseline ADA result(s) and at least one positive post-baseline ADA result.\n Treatment-enhanced ADA = a patient with positive ADA result at baseline who has one or more post-baseline titer results that are at least 0.60 t.u. greater than the baseline titer result.\n Number of patients negative for Treatment Emergent ADA = number of post-baseline evaluable patients with negative or missing baseline ADA result(s) and all negative post-baseline results, or a patient who is treatment unaffected.\n Treatment unaffected = A post-baseline evaluable patient with a positive ADA result at baseline and (a) where all post-baseline titer results are less than 0.60 t.u. greater than the baseline titer result, OR (b) where all post-baseline results are negative or missing.\n For any positive sample with titer result less than the minimum reportable titer or any positive sample where a titer cannot be obtained, titer value is imputed as equal to the minimum reportable titer.\"\n\nresult\n\nBaseline Prevalence and Incidence of Treatment Emergent ADA\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X C: Combination All Drug X B: Placebo All Patients\n (N=134) (N=132) (N=266) (N=134) (N=400) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nBaseline Prevalence of ADAs \n Baseline evaluable patients 134 132 266 0 266 \n Patient with a positive sample at baseline 63 (47.0%) 64 (48.5%) 127 (47.7%) 0 127 (47.7%) \n Patient with no positive samples at baseline 71 68 139 0 139 \nIncidence of Treatment Emergent ADAs \n Post-baseline evaluable patients 134 132 266 0 266 \n Patient positive for Treatment Emergent ADA 0 0 0 0 0 \n Treatment-induced ADA 0 0 0 0 0 \n Treatment-enhanced ADA 0 0 0 0 0 \n Patient negative for Treatment Emergent ADA 0 0 0 0 0 \n Treatment unaffected 0 0 0 0 0 \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies) Baseline evaluable patient = a patient with an ADA assay result from a baseline sample(s)\n Post-baseline evaluable patient = a patient with an ADA assay result from at least one post-baseline sample Number of patients positive for Treatment Emergent\n ADA = the number (and percentage) of post-baseline evaluable patients determined to have treatment-induced ADA or treatment-enhanced ADA during the study period.\n Treatment-induced ADA = a patient with negative or missing baseline ADA result(s) and at least one positive post-baseline ADA result.\n Treatment-enhanced ADA = a patient with positive ADA result at baseline who has one or more post-baseline titer results that are at least 0.60 t.u. greater than the baseline titer result.\n Number of patients negative for Treatment Emergent ADA = number of post-baseline evaluable patients with negative or missing baseline ADA result(s) and all negative post-baseline results, or a patient who is treatment unaffected.\n Treatment unaffected = A post-baseline evaluable patient with a positive ADA result at baseline and (a) where all post-baseline titer results are less than 0.60 t.u. greater than the baseline titer result, OR (b) where all post-baseline results are negative or missing.\n For any positive sample with titer result less than the minimum reportable titer or any positive sample where a titer cannot be obtained, titer value is imputed as equal to the minimum reportable titer.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(tibble)\n\nadsl <- random.cdisc.data::cadsl\nadab <- random.cdisc.data::cadab\n\n# Order needed for the columns is c(1, 3, 4, 2, 5)\nreorder_facets <- function(splret, spl, fulldf, ...) {\n ord <- c(1, 3, 4, 2, 5)\n make_split_result(\n splret$values[ord],\n splret$datasplit[ord],\n splret$labels[ord]\n )\n}\n\n# Create a custom split function for adding the new columns (facets) and sorting them\ncustom_column_split_fun <- make_split_fun(\n post = list(\n add_combo_facet(\"all_X\",\n label = \"All Drug X\",\n levels = c(\"A: Drug X\", \"C: Combination\")\n ),\n add_combo_facet(\"all_pt\",\n label = \"All Patients\",\n levels = c(\"A: Drug X\", \"B: Placebo\", \"C: Combination\")\n ),\n reorder_facets\n )\n)\n\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadab <- adab %>%\n filter(PARCAT1 == \"A: Drug X Antibody\") %>%\n select(-ARRLT, -NRRLT)\n\n# Baseline Pts\nadab_b <- df_explicit_na(adab) %>%\n filter(\n ABLFL == \"Y\",\n ADABLPFL == \"Y\",\n PARAM %in% c(\"ADA interpreted per sample result\")\n ) %>%\n select(-PARAMCD, -AVALC, -AVALU) %>%\n tidyr::pivot_wider(\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n mutate_at(\n c(\"ADA interpreted per sample result\"),\n as.logical\n ) %>%\n mutate(\n ADABLPFL = ADABLPFL == \"Y\",\n PADABLPFL = `ADA interpreted per sample result` == \"TRUE\",\n NADABLPFL = `ADA interpreted per sample result` == \"FALSE\"\n ) %>%\n var_relabel(\n ADABLPFL = \"Baseline evaluable patients\",\n PADABLPFL = \"Patient with a positive sample at baseline\",\n NADABLPFL = \"Patient with no positive samples at baseline\"\n )\n\n# Post Baseline Treatment Enhanced NAb positive Pts\nadab_pb <- df_explicit_na(adab) %>%\n filter(\n ABLFL != \"Y\",\n ADPBLPFL == \"Y\",\n PARAM %in% c(\n \"ADA interpreted per sample result\",\n \"Treatment Emergent - Positive\",\n \"Treatment induced ADA\",\n \"Treatment enhanced ADA\",\n \"Treatment Emergent - Negative\",\n \"Treatment unaffected\"\n )\n ) %>%\n select(-PARAMCD, -AVALC, -AVALU) %>%\n unique() %>%\n tidyr::pivot_wider(\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n mutate(\n across(\n any_of(c(\n \"ADA interpreted per sample result\", \"Treatment Emergent - Positive\",\n \"Treatment induced ADA\", \"Treatment enhanced ADA\",\n \"Treatment Emergent - Negative\", \"Treatment unaffected\"\n )),\n as.logical\n )\n ) %>%\n mutate(\n ADPBLPFL = ADPBLPFL == \"Y\",\n PTEFL = if (exists(\"Treatment Emergent - Positive\", where = .)) {\n `Treatment Emergent - Positive` == \"TRUE\"\n } else {\n FALSE\n },\n TIFL = if (exists(\"Treatment induced ADA\", where = .)) {\n `Treatment induced ADA` == \"TRUE\"\n } else {\n FALSE\n },\n TEFL = if (exists(\"Treatment enhanced ADA\", where = .)) {\n `Treatment enhanced ADA` == \"TRUE\"\n } else {\n FALSE\n },\n NTEFL = if (exists(\"Treatment Emergent - Negative\", where = .)) {\n `Treatment Emergent - Negative` == \"TRUE\"\n } else {\n FALSE\n },\n TUFL = if (exists(\"Treatment unaffected\", where = .)) {\n `Treatment unaffected` == \"TRUE\"\n } else {\n FALSE\n }\n ) %>%\n var_relabel(\n ADPBLPFL = \"Post-baseline evaluable patients\",\n PTEFL = \"Patient positive for Treatment Emergent ADA\",\n TIFL = \"Treatment-induced ADA\",\n TEFL = \"Treatment-enhanced ADA\",\n NTEFL = \"Patient negative for Treatment Emergent ADA\",\n TUFL = \"Treatment unaffected\"\n )", "crumbs": [ "Tables", - "Efficacy", - "MMRMT01" + "ADA", + "ADAT01" ] }, { - "objectID": "tables/efficacy/mmrmt01.html#reproducibility", - "href": "tables/efficacy/mmrmt01.html#reproducibility", - "title": "MMRMT01", + "objectID": "tables/ADA/adat01.html#reproducibility", + "href": "tables/ADA/adat01.html#reproducibility", + "title": "ADAT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:44:44 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom * 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n mmrm 0.3.14.9001 2025-01-01 [1] https://p~\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n parallelly 1.41.0 2024-12-18 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n tern.mmrm * 0.3.2.9002 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n TMB 1.9.15 2024-09-09 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:40:56 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Efficacy", - "MMRMT01" + "ADA", + "ADAT01" ] }, { - "objectID": "tables/efficacy/rbmit01.html#draws", - "href": "tables/efficacy/rbmit01.html#draws", - "title": "RBMIT01", - "section": "Draws", - "text": "Draws\nThe rbmi::draws() function fits the imputation models and stores the corresponding parameter estimates or Bayesian posterior parameter draws. The three main inputs to the rbmi::draws() function are:\n\n\ndata - The primary longitudinal data.frame containing the outcome variable and all covariates.\n\ndata_ice - A data.frame which specifies the first visit affected by an intercurrent event (ICE) and the imputation strategy for handling missing outcome data after the ICE. At most one ICE which is to be imputed by a non-MAR strategy is allowed per subject.\n\nmethod - The statistical method used to fit the imputation models and to create imputed datasets.", + "objectID": "tables/ADA/adat04a.html#output", + "href": "tables/ADA/adat04a.html#output", + "title": "ADAT04A", + "section": "Output", + "text": "Output\n\n\nSummary of Treatment Emergent NAbs\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Layout for Baseline Prevalence of NAbs\nlyt_bl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = custom_column_split_fun\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(\"ADABLPFL\", \"PADABLPFL\"),\n table_names = \"t1\",\n .stats = \"count\",\n var_labels = \"Baseline Prevalence of NAbs\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"PNABBLFL\",\n table_names = \"t2\",\n .indent_mods = 1L\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"NNABBLFL\",\n .stats = \"count\",\n table_names = \"t3\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n )\n\n# Layout for incidence of NAbs\nlyt_pb <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = custom_column_split_fun\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(\"ADPBLPFL\", \"ADAPFL\"),\n .stats = \"count\",\n var_labels = \"Incidence of Treatment Emergent NAbs\",\n show_labels = \"visible\",\n table_names = \"tb1\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"TENABPFL\",\n table_names = \"tb2\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(\"TINPBFL\", \"TENPBFL\"),\n .stats = \"count\",\n table_names = \"tb3\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"NABNFL\",\n table_names = \"tb4\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"TUNPBFL\",\n .stats = \"count\",\n table_names = \"tb5\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n )\n\nresult_1 <- build_table(lyt_bl, df = adab_b, alt_counts_df = adsl)\nresult_2 <- build_table(lyt_pb, df = adab_pb, alt_counts_df = adsl)\n\n# Combine tables\nresult <- rbind(result_1, result_2)\n\nmain_title(result) <- paste(\n \"Baseline Prevalence and Incidence of Treatment Emergent NAbs\"\n)\nsubtitles(result) <- paste(\"Protocol:\", unique(adab$PARCAT1)[1])\n\nmain_footer(result) <- \"NAb = Neutralizing Antibodies ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies) Baseline evaluable patient for ADA = a patient with an ADA assay result from a baseline sample(s)\n Baseline evaluable patient for NAb = a patient with a NAb assay result from a baseline sample(s)\n Post-baseline evaluable patient for ADA = a patient with an ADA assay result from at least one post-baseline sample\n Post-baseline evaluable patient for NAb = a patient with a NAb assay result from at least one post-baseline sample\n Number of patients positive for ADA = the number of post-baseline evaluable patients for ADA determined to have Treatment Emergent ADA during the study period.\nNumber of patients positive for Treatment Emergent NAb = the number (and percentage) of post-baseline evaluable patients for ADA determined to have treatment-induced NAb or treatment-enhanced NAb during the study period.\nTreatment-induced = a patient with negative or missing baseline result(s) and at least one positive post-baseline result. Treatment-enhanced = a patient with positive result at baseline who has one or more post-baseline titer results that are at least 0.60 t.u. greater than the baseline titer result.\nNumber of patients negative for Treatment Emergent NAb = number of post-baseline evaluable patients with negative or missing baseline NAb result(s) and all negative post-baseline NAb results, or a patient who is NAb treatment unaffected.\nTreatment unaffected = A post-baseline evaluable patient with a positive result at baseline and (a) where all post-baseline titer results are less than 0.60 t.u. greater than the baseline titer result, OR (b) where all post-baseline results are negative or missing. For any positive sample with titer result less than the minimum reportable titer or any positive sample where a titer cannot be obtained, titer value is imputed as equal to the minimum reportable titer.\"\n\nresult\n\nBaseline Prevalence and Incidence of Treatment Emergent NAbs\nProtocol: A: Drug X Antibody\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X C: Combination All Drug X B: Placebo All Patients\n (N=134) (N=132) (N=266) (N=134) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nBaseline Prevalence of NAbs \n Baseline evaluable patients for ADA 134 132 266 0 266 \n Patients with a positive ADA sample at baseline 63 64 127 0 127 \n Patients with a positive NAb sample at baseline 0 0 0 0 0 \n Patient with no positive NAb samples at baseline 0 0 0 0 0 \nIncidence of Treatment Emergent NAbs \n Post-baseline evaluable patients for ADA 134 132 266 0 266 \n Patients positive for ADA 66 59 125 0 125 \n Patients positive for Treatment Emergent NAb 0 0 0 0 0 \n Treatment-induced NAb 0 0 0 0 0 \n Treatment-enhanced NAb 0 0 0 0 0 \n Patients negative for NAb 0 0 0 0 0 \n Treatment unaffected 0 0 0 0 0 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nNAb = Neutralizing Antibodies ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies) Baseline evaluable patient for ADA = a patient with an ADA assay result from a baseline sample(s)\n Baseline evaluable patient for NAb = a patient with a NAb assay result from a baseline sample(s)\n Post-baseline evaluable patient for ADA = a patient with an ADA assay result from at least one post-baseline sample\n Post-baseline evaluable patient for NAb = a patient with a NAb assay result from at least one post-baseline sample\n Number of patients positive for ADA = the number of post-baseline evaluable patients for ADA determined to have Treatment Emergent ADA during the study period.\nNumber of patients positive for Treatment Emergent NAb = the number (and percentage) of post-baseline evaluable patients for ADA determined to have treatment-induced NAb or treatment-enhanced NAb during the study period.\nTreatment-induced = a patient with negative or missing baseline result(s) and at least one positive post-baseline result. Treatment-enhanced = a patient with positive result at baseline who has one or more post-baseline titer results that are at least 0.60 t.u. greater than the baseline titer result.\nNumber of patients negative for Treatment Emergent NAb = number of post-baseline evaluable patients with negative or missing baseline NAb result(s) and all negative post-baseline NAb results, or a patient who is NAb treatment unaffected.\nTreatment unaffected = A post-baseline evaluable patient with a positive result at baseline and (a) where all post-baseline titer results are less than 0.60 t.u. greater than the baseline titer result, OR (b) where all post-baseline results are negative or missing. For any positive sample with titer result less than the minimum reportable titer or any positive sample where a titer cannot be obtained, titer value is imputed as equal to the minimum reportable titer.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(tibble)\n\nadsl <- random.cdisc.data::cadsl\nadab <- random.cdisc.data::cadab\n\n\n# Order needed for the columns is c(1, 3, 4, 2, 5)\nreorder_facets <- function(splret, spl, fulldf, ...) {\n ord <- c(1, 3, 4, 2, 5)\n make_split_result(\n splret$values[ord],\n splret$datasplit[ord],\n splret$labels[ord]\n )\n}\n\n# Create a custom split function for adding the new columns (facets) and sorting them\ncustom_column_split_fun <- make_split_fun(\n post = list(\n add_combo_facet(\"all_X\",\n label = \"All Drug X\",\n levels = c(\"A: Drug X\", \"C: Combination\")\n ),\n add_combo_facet(\"all_pt\",\n label = \"All Patients\",\n levels = c(\"A: Drug X\", \"B: Placebo\", \"C: Combination\")\n ),\n reorder_facets\n )\n)\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\n\n# Baseline Pts\nadab_b <- df_explicit_na(adab) %>%\n filter(\n ABLFL == \"Y\",\n ADABLPFL == \"Y\",\n PARAM %in% c(\n \"ADA interpreted per sample result\",\n \"NAB interpreted per sample result\"\n )\n ) %>%\n select(-PARAMCD, -AVALC, -AVALU) %>%\n tidyr::pivot_wider(\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n mutate(\n across(\n any_of(c(\n \"ADA interpreted per sample result\",\n \"NAB interpreted per sample result\"\n )),\n as.logical\n )\n ) %>%\n mutate(\n ADABLPFL = ADABLPFL == \"Y\",\n PADABLPFL = if (exists(\"ADA interpreted per sample result\", where = .)) {\n `ADA interpreted per sample result` == \"TRUE\"\n } else {\n FALSE\n },\n PNABBLFL = if (exists(\"NAB interpreted per sample result\", where = .)) {\n `NAB interpreted per sample result` == \"TRUE\"\n } else {\n FALSE\n },\n NNABBLFL = if (exists(\"NAB interpreted per sample result\", where = .)) {\n `NAB interpreted per sample result` == \"FALSE\"\n } else {\n FALSE\n }\n ) %>%\n var_relabel(\n ADABLPFL = \"Baseline evaluable patients for ADA\",\n PADABLPFL = \"Patients with a positive ADA sample at baseline\",\n PNABBLFL = \"Patients with a positive NAb sample at baseline\",\n NNABBLFL = \"Patient with no positive NAb samples at baseline\"\n )\n\n# Post Baseline Treatment Enhanced NAb positive Pts\nadab_pb <- df_explicit_na(adab) %>%\n filter(\n ABLFL != \"Y\",\n ADPBLPFL == \"Y\",\n PARAM %in% c(\n \"ADA interpreted per sample result\",\n \"Treatment Emergent - Positive, Neutralizing Antibody\",\n \"Treatment induced ADA, Neutralizing Antibody\",\n \"Treatment enhanced ADA, Neutralizing Antibody\",\n \"NAB interpreted per sample result\",\n \"Treatment unaffected, Neutralizing Antibody\"\n )\n ) %>%\n select(-PARAMCD, -AVALC, -AVALU, -ARRLT, -NRRLT) %>%\n unique() %>%\n tidyr::pivot_wider(\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n mutate(\n across(\n any_of(c(\n \"ADA interpreted per sample result\", \"NAB interpreted per sample result\",\n \"Treatment Emergent - Positive, Neutralizing Antibody\",\n \"Treatment induced ADA, Neutralizing Antibody\",\n \"Treatment enhanced ADA, Neutralizing Antibody\",\n \"Treatment unaffected, Neutralizing Antibody\"\n )),\n as.logical\n )\n ) %>%\n mutate(\n ADPBLPFL = ADPBLPFL == \"Y\",\n ADAPFL = if (exists(\"ADA interpreted per sample result\", where = .)) {\n `ADA interpreted per sample result` == \"TRUE\"\n } else {\n FALSE\n },\n TENABPFL = if (exists(\"Treatment Emergent - Positive, Neutralizing Antibody\", where = .)) {\n `Treatment Emergent - Positive, Neutralizing Antibody` == \"TRUE\"\n } else {\n FALSE\n },\n TINPBFL = if (exists(\"Treatment induced ADA, Neutralizing Antibody\", where = .)) {\n `Treatment induced ADA, Neutralizing Antibody` == \"TRUE\"\n } else {\n FALSE\n },\n TENPBFL = if (exists(\"Treatment enhanced ADA, Neutralizing Antibody\", where = .)) {\n `Treatment enhanced ADA, Neutralizing Antibody` == \"TRUE\"\n } else {\n FALSE\n },\n NABNFL = if (exists(\"NAB interpreted per sample result\", where = .)) {\n `NAB interpreted per sample result` == \"FALSE\"\n } else {\n FALSE\n },\n TUNPBFL = if (exists(\"Treatment unaffected, Neutralizing Antibody\", where = .)) {\n `Treatment unaffected, Neutralizing Antibody` == \"TRUE\"\n } else {\n FALSE\n }\n ) %>%\n var_relabel(\n ADPBLPFL = \"Post-baseline evaluable patients for ADA\",\n ADAPFL = \"Patients positive for ADA\",\n TENABPFL = \"Patients positive for Treatment Emergent NAb\",\n TINPBFL = \"Treatment-induced NAb\",\n TENPBFL = \"Treatment-enhanced NAb\",\n NABNFL = \"Patients negative for NAb\",\n TUNPBFL = \"Treatment unaffected\"\n )", "crumbs": [ "Tables", - "Efficacy", - "RBMIT01" + "ADA", + "ADAT04A" ] }, { - "objectID": "tables/efficacy/rbmit01.html#impute", - "href": "tables/efficacy/rbmit01.html#impute", - "title": "RBMIT01", - "section": "Impute", - "text": "Impute\nThe next step is to use the parameters from the imputation model to generate the imputed datasets. This is done via the rbmi::impute() function. The function only has two key inputs: the imputation model output from rbmi::draws() and the reference groups relevant to reference-based imputation methods. It’s usage is thus:\n\nCodeimpute_references <- c(\"DRUG\" = \"PLACEBO\", \"PLACEBO\" = \"PLACEBO\")\n\nimpute_obj <- rbmi::impute(\n draws_obj,\n references = impute_references\n)", + "objectID": "tables/ADA/adat04a.html#reproducibility", + "href": "tables/ADA/adat04a.html#reproducibility", + "title": "ADAT04A", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:40:43 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Efficacy", - "RBMIT01" + "ADA", + "ADAT04A" ] }, { - "objectID": "tables/efficacy/rbmit01.html#analyze", - "href": "tables/efficacy/rbmit01.html#analyze", - "title": "RBMIT01", - "section": "Analyze", - "text": "Analyze\nThe next step is to run the analysis model on each imputed dataset. This is done by defining an analysis function and then calling rbmi::analyse() to apply this function to each imputed dataset.\n\nCode# Define analysis model\nanalyse_fun <- ancova\n\nref_levels <- levels(impute_obj$data$group[[1]])\nnames(ref_levels) <- c(\"ref\", \"alt\")\n\nanalyse_obj <- rbmi::analyse(\n imputations = impute_obj,\n fun = analyse_fun,\n vars = rbmi::set_vars(\n subjid = \"TMP_ID\",\n outcome = missing_var,\n visit = vars$visit,\n group = vars$group,\n covariates = covariates$analyse\n )\n)", + "objectID": "tables/disposition/pdt02.html#output", + "href": "tables/disposition/pdt02.html#output", + "title": "PDT02", + "section": "Output", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one major protocol deviation related to epidemic/pandemic\",\n nonunique = \"Total number of major protocol deviations related to epidemic/pandemic\"\n )\n ) %>%\n split_rows_by(\n \"DVREAS\",\n split_fun = drop_split_levels,\n nested = FALSE,\n label_pos = \"topleft\",\n split_label = obj_label(addv_pan$DVREAS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = \"Site action due to epidemic/pandemic\"\n ) %>%\n count_occurrences(vars = \"DVTERM\") %>%\n append_varlabels(addv_pan, \"DVTERM\", indent = 1L)\n\nresult <- build_table(lyt, addv_pan, alt_counts_df = adsl)\nresult\n\nPrimary Reason A: Drug X B: Placebo C: Combination\n Description (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one major protocol deviation related to epidemic/pandemic 8 (6.0%) 4 (3.0%) 4 (3.0%) \nTotal number of major protocol deviations related to epidemic/pandemic 8 5 4 \nSite action due to epidemic/pandemic 8 (6.0%) 4 (3.0%) 4 (3.0%) \n Dose missed or significantly out of window 2 (1.5%) 0 1 (0.8%) \n Failure to sign updated ICF within two visits 2 (1.5%) 1 (0.7%) 1 (0.8%) \n Missed 2 or more efficacy assessments 1 (0.7%) 2 (1.5%) 0 \n Significant deviation from planned dose 3 (2.2%) 1 (0.7%) 2 (1.5%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\naddv <- random.cdisc.data::caddv\n\nadsl <- df_explicit_na(adsl)\naddv <- df_explicit_na(addv)\n\naddv_pan <- addv %>%\n filter(AEPRELFL == \"Y\" & DVCAT == \"MAJOR\") %>%\n var_relabel(\n DVREAS = \"Primary Reason\",\n DVTERM = \"Description\"\n )", "crumbs": [ "Tables", - "Efficacy", - "RBMIT01" + "Disposition", + "PDT02" ] }, { - "objectID": "tables/efficacy/rbmit01.html#pool", - "href": "tables/efficacy/rbmit01.html#pool", - "title": "RBMIT01", - "section": "Pool", - "text": "Pool\nThe rbmi::pool() function can be used to summarize the analysis results across multiple imputed datasets to provide an overall statistic with a standard error, confidence intervals and a p-value for the hypothesis test of the null hypothesis that the effect is equal to 0. Using the broom::tidy() function the rbmi final results are reshaped.\n\nCodelibrary(broom)\n\npool_obj <- rbmi::pool(\n results = analyse_obj,\n conf.level = 0.95,\n alternative = c(\"two.sided\", \"less\", \"greater\"),\n type = c(\"percentile\", \"normal\")\n)\n\ndf <- tidy(pool_obj)\ndf\n\n group est se_est lower_cl_est upper_cl_est est_contr se_contr\n1 ref -1.615820 0.4862316 -2.575771 -0.6558685 NA NA\n2 alt -1.707626 0.4749573 -2.645319 -0.7699335 -0.09180645 0.6826279\n3 ref -4.218952 0.6505048 -5.503615 -2.9342892 NA NA\n4 alt -2.815275 0.6364376 -4.072204 -1.5583461 1.40367691 0.9149382\n5 ref -6.330717 0.7020406 -7.717703 -4.9437297 NA NA\n6 alt -4.177543 0.6863985 -5.533665 -2.8214218 2.15317319 0.9854002\n7 ref -7.540923 0.8133804 -9.152471 -5.9293739 NA NA\n8 alt -4.824323 0.7521449 -6.310829 -3.3378160 2.71660019 1.1225222\n lower_cl_contr upper_cl_contr p_value relative_reduc visit conf_level\n1 NA NA NA NA 4 0.95\n2 -1.4394968 1.255884 0.89317724 0.05681725 4 0.95\n3 NA NA NA NA 5 0.95\n4 -0.4032862 3.210640 0.12696838 -0.33270747 5 0.95\n5 NA NA NA NA 6 0.95\n6 0.2063790 4.099967 0.03040925 -0.34011524 6 0.95\n7 NA NA NA NA 7 0.95\n8 0.4945431 4.938657 0.01698541 -0.36024772 7 0.95", + "objectID": "tables/disposition/pdt02.html#reproducibility", + "href": "tables/disposition/pdt02.html#reproducibility", + "title": "PDT02", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:40:30 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Efficacy", - "RBMIT01" + "Disposition", + "PDT02" ] }, { - "objectID": "tables/efficacy/rbmit01.html#create-output", - "href": "tables/efficacy/rbmit01.html#create-output", - "title": "RBMIT01", - "section": "Create Output", - "text": "Create Output\nFinally, use functions from the rtables and tern packages to generate a nicely formatted rtable object.\n\nCoderesult <- basic_table() %>%\n split_cols_by(\"group\", ref_group = levels(df$group)[1]) %>%\n split_rows_by(\"visit\", split_label = \"Visit\", label_pos = \"topleft\") %>%\n summarize_rbmi() %>%\n build_table(df)\nresult\n\nVisit ref alt \n—————————————————————————————————————————————————————————————————————————\n4 \n Adjusted Mean (SE) -1.616 (0.486) -1.708 (0.475) \n 95% CI (-2.576, -0.656) (-2.645, -0.770)\n Difference in Adjusted Means (SE) -0.092 (0.683) \n 95% CI (-1.439, 1.256) \n Relative Reduction (%) 5.7% \n p-value (RBMI) 0.8932 \n5 \n Adjusted Mean (SE) -4.219 (0.651) -2.815 (0.636) \n 95% CI (-5.504, -2.934) (-4.072, -1.558)\n Difference in Adjusted Means (SE) 1.404 (0.915) \n 95% CI (-0.403, 3.211) \n Relative Reduction (%) -33.3% \n p-value (RBMI) 0.1270 \n6 \n Adjusted Mean (SE) -6.331 (0.702) -4.178 (0.686) \n 95% CI (-7.718, -4.944) (-5.534, -2.821)\n Difference in Adjusted Means (SE) 2.153 (0.985) \n 95% CI (0.206, 4.100) \n Relative Reduction (%) -34.0% \n p-value (RBMI) 0.0304 \n7 \n Adjusted Mean (SE) -7.541 (0.813) -4.824 (0.752) \n 95% CI (-9.152, -5.929) (-6.311, -3.338)\n Difference in Adjusted Means (SE) 2.717 (1.123) \n 95% CI (0.495, 4.939) \n Relative Reduction (%) -36.0% \n p-value (RBMI) 0.0170", + "objectID": "tables/disposition/dst01.html#output", + "href": "tables/disposition/dst01.html#output", + "title": "DST01", + "section": "Output", + "text": "Output\n\n\nStandard Table\nTable with Grouping of Reasons\nTable Adding Optional Rows\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = add_overall_level(\"All Patients\", first = FALSE)\n ) %>%\n count_occurrences(\n \"EOSSTT\",\n show_labels = \"hidden\"\n ) %>%\n analyze_vars(\n \"DCSREAS\",\n .stats = \"count_fraction\",\n denom = \"N_col\",\n show_labels = \"hidden\",\n .indent_mods = c(count_fraction = 1L)\n )\n\nresult1 <- build_table(lyt = lyt, df = adsl)\nresult1\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n—————————————————————————————————————————————————————————————————————————————————————————\nCOMPLETED 68 (50.7%) 66 (49.3%) 73 (55.3%) 207 (51.7%) \nONGOING 24 (17.9%) 28 (20.9%) 21 (15.9%) 73 (18.2%) \nDISCONTINUED 42 (31.3%) 40 (29.9%) 38 (28.8%) 120 (30.0%) \n ADVERSE EVENT 3 (2.2%) 6 (4.5%) 5 (3.8%) 14 (3.5%) \n DEATH 25 (18.7%) 23 (17.2%) 22 (16.7%) 70 (17.5%) \n LACK OF EFFICACY 2 (1.5%) 2 (1.5%) 3 (2.3%) 7 (1.8%) \n PHYSICIAN DECISION 2 (1.5%) 3 (2.2%) 2 (1.5%) 7 (1.8%) \n PROTOCOL VIOLATION 5 (3.7%) 3 (2.2%) 4 (3%) 12 (3%) \n WITHDRAWAL BY PARENT/GUARDIAN 4 (3%) 2 (1.5%) 1 (0.8%) 7 (1.8%) \n WITHDRAWAL BY SUBJECT 1 (0.7%) 1 (0.7%) 1 (0.8%) 3 (0.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = add_overall_level(\"All Patients\", first = FALSE)\n ) %>%\n count_occurrences(\n \"EOSSTT\",\n show_labels = \"hidden\"\n ) %>%\n split_rows_by(\"DCSREASGP\", indent_mod = 1L) %>%\n analyze_vars(\n \"DCSREAS\",\n .stats = \"count_fraction\",\n denom = \"N_col\",\n show_labels = \"hidden\"\n )\n\ntbl <- build_table(lyt = lyt, df = adsl_gp_added)\nresult2 <- prune_table(tbl) # remove rows containing all zeros\n\nresult2\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————————————————————————\nCOMPLETED 68 (50.7%) 66 (49.3%) 73 (55.3%) 207 (51.7%) \nONGOING 24 (17.9%) 28 (20.9%) 21 (15.9%) 73 (18.2%) \nDISCONTINUED 42 (31.3%) 40 (29.9%) 38 (28.8%) 120 (30.0%) \n Safety \n ADVERSE EVENT 3 (2.2%) 6 (4.5%) 5 (3.8%) 14 (3.5%) \n DEATH 25 (18.7%) 23 (17.2%) 22 (16.7%) 70 (17.5%) \n Non-Safety \n LACK OF EFFICACY 2 (1.5%) 2 (1.5%) 3 (2.3%) 7 (1.8%) \n PHYSICIAN DECISION 2 (1.5%) 3 (2.2%) 2 (1.5%) 7 (1.8%) \n PROTOCOL VIOLATION 5 (3.7%) 3 (2.2%) 4 (3%) 12 (3%) \n WITHDRAWAL BY PARENT/GUARDIAN 4 (3%) 2 (1.5%) 1 (0.8%) 7 (1.8%) \n WITHDRAWAL BY SUBJECT 1 (0.7%) 1 (0.7%) 1 (0.8%) 3 (0.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = add_overall_level(\"All Patients\", first = FALSE)\n ) %>%\n count_occurrences(\n \"EOTSTT\",\n show_labels = \"hidden\"\n )\n\ntbl <- build_table(lyt = lyt, df = adsl_eotstt_added)\ntbl <- prune_table(tbl) # remove rows containing all zeros\n\n# Combine tables\ncol_info(result2) <- col_info(tbl)\nresult3 <- rbind(result2, tbl)\n\nresult3\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————————————————————————\nCOMPLETED 68 (50.7%) 66 (49.3%) 73 (55.3%) 207 (51.7%) \nONGOING 24 (17.9%) 28 (20.9%) 21 (15.9%) 73 (18.2%) \nDISCONTINUED 42 (31.3%) 40 (29.9%) 38 (28.8%) 120 (30.0%) \n Safety \n ADVERSE EVENT 3 (2.2%) 6 (4.5%) 5 (3.8%) 14 (3.5%) \n DEATH 25 (18.7%) 23 (17.2%) 22 (16.7%) 70 (17.5%) \n Non-Safety \n LACK OF EFFICACY 2 (1.5%) 2 (1.5%) 3 (2.3%) 7 (1.8%) \n PHYSICIAN DECISION 2 (1.5%) 3 (2.2%) 2 (1.5%) 7 (1.8%) \n PROTOCOL VIOLATION 5 (3.7%) 3 (2.2%) 4 (3%) 12 (3%) \n WITHDRAWAL BY PARENT/GUARDIAN 4 (3%) 2 (1.5%) 1 (0.8%) 7 (1.8%) \n WITHDRAWAL BY SUBJECT 1 (0.7%) 1 (0.7%) 1 (0.8%) 3 (0.8%) \nCOMPLETED 46 (34.3%) 38 (28.4%) 41 (31.1%) 125 (31.2%) \nONGOING 50 (37.3%) 51 (38.1%) 46 (34.8%) 147 (36.8%) \nDISCONTINUED 38 (28.4%) 45 (33.6%) 45 (34.1%) 128 (32.0%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nset.seed(1, kind = \"Mersenne-Twister\")\nadsl <- random.cdisc.data::cadsl\n\n# reorder EOSSTT factor levels so DISCONTINUED is the last level\nadsl <- df_explicit_na(adsl) %>%\n mutate(EOSSTT = factor(EOSSTT, levels = c(\"COMPLETED\", \"ONGOING\", \"DISCONTINUED\")))\n\nadsl_gp_added <- adsl %>%\n mutate(DCSREASGP = case_when(\n DCSREAS %in% c(\"ADVERSE EVENT\", \"DEATH\") ~ \"Safety\",\n (DCSREAS != \"<Missing>\" & !DCSREAS %in% c(\"ADVERSE EVENT\", \"DEATH\")) ~ \"Non-Safety\",\n DCSREAS == \"<Missing>\" ~ \"<Missing>\"\n ) %>% factor(levels = c(\"Safety\", \"Non-Safety\", \"<Missing>\")))\n\nadsl_eotstt_added <- adsl_gp_added %>%\n mutate(\n EOTSTT = sample(\n c(\"ONGOING\", \"COMPLETED\", \"DISCONTINUED\"),\n size = nrow(adsl),\n replace = TRUE\n ) %>% factor(levels = c(\"COMPLETED\", \"ONGOING\", \"DISCONTINUED\"))\n )", "crumbs": [ "Tables", - "Efficacy", - "RBMIT01" + "Disposition", + "DST01" ] }, { - "objectID": "tables/efficacy/rbmit01.html#data-setup", - "href": "tables/efficacy/rbmit01.html#data-setup", - "title": "RBMIT01", - "section": "Data Setup", - "text": "Data Setup\nWe use a publicly available example dataset from an antidepressant clinical trial of an active drug versus placebo from the rbmi package. The relevant endpoint is the Hamilton 17-item depression rating scale (HAMD17) which was assessed at baseline and at weeks 1, 2, 4, and 6. Study drug discontinuation occurred in 24% of subjects from the active drug and 26% of subjects from placebo. All data after study drug discontinuation are missing and there is a single additional intermittent missing observation.\n\nCodelibrary(tern.rbmi)\nlibrary(dplyr)\nset.seed(123)\n\ndata <- antidepressant_data\nlevels(data$THERAPY) <- c(\"PLACEBO\", \"DRUG\") # This is important! The order defines the computation order later\n\nmissing_var <- \"CHANGE\"\nvars <- list(\n id = \"PATIENT\",\n visit = \"VISIT\",\n expand_vars = c(\"BASVAL\", \"THERAPY\"),\n group = \"THERAPY\"\n)\ncovariates <- list(\n draws = c(\"BASVAL*VISIT\", \"THERAPY*VISIT\"),\n analyse = c(\"BASVAL\")\n)\n\ndata <- data %>%\n dplyr::select(PATIENT, THERAPY, VISIT, BASVAL, THERAPY, CHANGE) %>%\n dplyr::mutate(dplyr::across(.cols = vars$id, ~ as.factor(.x))) %>%\n dplyr::arrange(dplyr::across(.cols = c(vars$id, vars$visit)))\n\n# Use expand_locf to add rows corresponding to visits with missing outcomes to the dataset\ndata_full <- do.call(\n expand_locf,\n args = list(\n data = data,\n vars = c(vars$expand_vars, vars$group),\n group = vars$id,\n order = c(vars$id, vars$visit)\n ) %>%\n append(lapply(data[c(vars$id, vars$visit)], levels))\n)\n\ndata_full <- data_full %>%\n dplyr::group_by(dplyr::across(vars$id)) %>%\n dplyr::mutate(!!vars$group := Filter(Negate(is.na), .data[[vars$group]])[1])\n\n# there are duplicates - use first value\ndata_full <- data_full %>%\n dplyr::group_by(dplyr::across(c(vars$id, vars$group, vars$visit))) %>%\n dplyr::slice(1) %>%\n dplyr::ungroup()\n# need to have a single ID column\ndata_full <- data_full %>%\n tidyr::unite(\"TMP_ID\", dplyr::all_of(vars$id), sep = \"_#_\", remove = FALSE) %>%\n dplyr::mutate(TMP_ID = as.factor(TMP_ID))", + "objectID": "tables/disposition/dst01.html#teal-app", + "href": "tables/disposition/dst01.html#teal-app", + "title": "DST01", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n set.seed(1, kind = \"Mersenne-Twister\")\n ADSL <- random.cdisc.data::cadsl\n ADSL <- df_explicit_na(ADSL)\n ADSL <- ADSL %>%\n mutate(\n DCSREASGP = case_when(\n DCSREAS %in% c(\"ADVERSE EVENT\", \"DEATH\") ~ \"Safety\",\n (DCSREAS != \"<Missing>\" & !DCSREAS %in% c(\"ADVERSE EVENT\", \"DEATH\")) ~ \"Non-Safety\",\n DCSREAS == \"<Missing>\" ~ \"<Missing>\"\n ) %>% as.factor(),\n EOTSTT = sample(\n c(\"ONGOING\", \"COMPLETED\", \"DISCONTINUED\"),\n size = nrow(ADSL),\n replace = TRUE\n ) %>% as.factor()\n ) %>%\n col_relabel(\n EOTSTT = \"End Of Treatment Status\"\n )\n\n date_vars_asl <- names(ADSL)[vapply(ADSL, function(x) inherits(x, c(\"Date\", \"POSIXct\", \"POSIXlt\")), logical(1))]\n demog_vars_asl <- names(ADSL)[!(names(ADSL) %in% c(\"USUBJID\", \"STUDYID\", date_vars_asl))]\n})\ndatanames <- \"ADSL\"\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\ndemog_vars_asl <- data[[\"demog_vars_asl\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary(\n label = \"Disposition Table\",\n dataname = \"ADSL\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n summarize_vars = choices_selected(\n variable_choices(ADSL, demog_vars_asl),\n c(\"EOSSTT\", \"DCSREAS\", \"EOTSTT\")\n ),\n useNA = \"ifany\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n set.seed(1, kind = \"Mersenne-Twister\")\n ADSL <- random.cdisc.data::cadsl\n ADSL <- df_explicit_na(ADSL)\n ADSL <- ADSL %>%\n mutate(\n DCSREASGP = case_when(\n DCSREAS %in% c(\"ADVERSE EVENT\", \"DEATH\") ~ \"Safety\",\n (DCSREAS != \"<Missing>\" & !DCSREAS %in% c(\"ADVERSE EVENT\", \"DEATH\")) ~ \"Non-Safety\",\n DCSREAS == \"<Missing>\" ~ \"<Missing>\"\n ) %>% as.factor(),\n EOTSTT = sample(\n c(\"ONGOING\", \"COMPLETED\", \"DISCONTINUED\"),\n size = nrow(ADSL),\n replace = TRUE\n ) %>% as.factor()\n ) %>%\n col_relabel(\n EOTSTT = \"End Of Treatment Status\"\n )\n\n date_vars_asl <- names(ADSL)[vapply(ADSL, function(x) inherits(x, c(\"Date\", \"POSIXct\", \"POSIXlt\")), logical(1))]\n demog_vars_asl <- names(ADSL)[!(names(ADSL) %in% c(\"USUBJID\", \"STUDYID\", date_vars_asl))]\n})\ndatanames <- \"ADSL\"\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\ndemog_vars_asl <- data[[\"demog_vars_asl\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary(\n label = \"Disposition Table\",\n dataname = \"ADSL\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n summarize_vars = choices_selected(\n variable_choices(ADSL, demog_vars_asl),\n c(\"EOSSTT\", \"DCSREAS\", \"EOTSTT\")\n ),\n useNA = \"ifany\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Efficacy", - "RBMIT01" + "Disposition", + "DST01" ] }, { - "objectID": "tables/efficacy/rbmit01.html#reproducibility", - "href": "tables/efficacy/rbmit01.html#reproducibility", - "title": "RBMIT01", + "objectID": "tables/disposition/dst01.html#reproducibility", + "href": "tables/disposition/dst01.html#reproducibility", + "title": "DST01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:43:51 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n assertthat 0.2.1 2019-03-21 [1] RSPM\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom * 1.0.7 2024-09-26 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gridExtra 2.3 2017-09-09 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n inline 0.3.19 2021-05-31 [1] CRAN (R 4.4.1)\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n loo 2.8.0 2024-07-03 [1] CRAN (R 4.4.1)\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n matrixStats 1.4.1 2024-09-08 [1] CRAN (R 4.4.1)\n mmrm 0.3.14.9001 2025-01-01 [1] https://p~\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgbuild 1.4.5 2024-10-28 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n QuickJSR 1.4.0 2024-10-01 [1] CRAN (R 4.4.1)\n R6 2.5.1 2021-08-19 [1] RSPM\n rbibutils 2.3 2024-10-04 [1] RSPM\n rbmi * 1.3.1 2024-12-11 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n RcppParallel 5.1.9 2024-08-19 [1] CRAN (R 4.4.1)\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rstan 2.32.6 2024-03-05 [1] CRAN (R 4.4.1)\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n StanHeaders 2.32.10 2024-07-15 [1] CRAN (R 4.4.1)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.rbmi * 0.1.4.9002 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n TMB 1.9.15 2024-09-09 [1] RSPM\n V8 6.0.0 2024-10-12 [1] CRAN (R 4.4.1)\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:40:00 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Efficacy", - "RBMIT01" + "Disposition", + "DST01" ] }, { - "objectID": "tables/efficacy/coxt02.html#output", - "href": "tables/efficacy/coxt02.html#output", - "title": "COXT02", + "objectID": "tables/vital-signs/vst02.html#output", + "href": "tables/vital-signs/vst02.html#output", + "title": "VST02", "section": "Output", - "text": "Output\nAnalysis based on multivariable Cox models is usually not performed for the Clinical Study Report (CSR) or regulatory documents, serving exploratory purposes only (e.g. for publication). In practice, the model usually includes only the main effects (without interaction terms). It produces the estimates for each of the covariates included in the model. The analysis follows the same principles (i.e. stratified vs. unstratified analysis and tie handling) as the general Cox model analysis also used in COXT01. Since there is usually no pre-specified hypothesis testing for such analysis, the p-values must be interpreted with caution.\n\n\nMultivariable Cox Regression\nMultivariable Cox Regression with Interaction Term\nMultivariable Cox Regression Specifying Covariates\nMultivariable Cox Regression Specifying Covariates from ADSUB\nMultivariable Cox Regression Setting Strata, Ties, Alpha Level, Statistics\nMultivariable Cox Regression with Selection Process for Covariates\nData Setup\n\n\n\nThe summarize_coxreg function fits, tidies and arranges a Cox regression model in a table layout using the rtables framework. For a multivariable Cox regression model, argument multivar must be set to TRUE. Arguments variables and control can be specified to set up the model (see ?summarize_coxreg for more details and customization options). All variables specified within variables must be present in the data used when building the table.\nTo see the same model as a data.frame object, these two arguments (as well as the data) can be passed to the fit_coxreg_multivar function, and the resulting list tidied using broom::tidy().\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevariables <- list(\n time = \"AVAL\",\n event = \"EVENT\",\n arm = \"ARM\",\n covariates = c(\"SEX\", \"AGE\")\n)\n\nlyt <- basic_table() %>%\n summarize_coxreg(variables = variables, multivar = TRUE) %>%\n append_topleft(\"Effect/Covariate Included in the Model\")\n\nresult <- build_table(lyt = lyt, df = anl)\nresult\n\nEffect/Covariate Included in the Model Hazard Ratio 95% CI p-value\n——————————————————————————————————————————————————————————————————————————————\nTreatment: \n Planned Arm (reference = B: Placebo) 0.2643 \n A: Drug X 0.96 (0.66, 1.42) 0.8536 \n C: Combination 1.27 (0.88, 1.83) 0.2010 \nCovariate: \n Sex (reference = F) \n M 1.09 (0.80, 1.48) 0.5987 \n Age \n All 0.99 (0.97, 1.01) 0.5104 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe estimation of interaction terms is not supported.\nInteraction terms are not included in the GDSR. For this reason and because we must take precautions when fitting such models, this functionality has not been translated in fit_coxreg_multivar. Please remove interaction terms or, if required by the study, refer to the survival::coxph function. Aside from this, using tern the developer must add the necessary variables to the analysis dataset during pre-processing based on ADVS or ADSUB. An example can be found in DMT01.\n\n\nThis option is not supported.\nSee the Multivariable Cox Regression with Interaction Term tab for more details.\n\n\nThis option is not supported.\nSee the Multivariable Cox Regression with Interaction Term tab for more details.\n\n\nAdditional controls can be customized using control_coxreg (see ?control_coxreg) such as the ties calculation method and the confidence level. Stratification variables can be added via the strata element of the variables list.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevariables <- list(\n time = \"AVAL\",\n event = \"EVENT\",\n arm = \"ARMCD\",\n covariates = c(\"SEX\", \"AGE\"),\n strata = \"RACE\"\n)\n\ncontrol <- control_coxreg(\n conf_level = 0.9,\n ties = \"efron\"\n)\n\nlyt <- basic_table() %>%\n summarize_coxreg(\n variables = variables,\n control = control,\n multivar = TRUE,\n .stats = c(\"hr\", \"ci\")\n ) %>%\n append_topleft(\"Effect/Covariate Included in the Model\")\n\nresult <- build_table(lyt = lyt, df = anl)\nresult\n\nEffect/Covariate Included in the Model Hazard Ratio 90% CI \n————————————————————————————————————————————————————————————————————\nTreatment: \n Planned Arm Code (reference = ARM A) \n ARM B 1.03 (0.74, 1.42)\n ARM C 1.30 (0.96, 1.77)\nCovariate: \n Sex (reference = F) \n M 1.08 (0.83, 1.40)\n Age \n All 0.99 (0.98, 1.01)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSee the Multivariable Cox Regression with Interaction Term tab.\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(broom)\n\nadtte <- random.cdisc.data::cadtte\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadtte <- df_explicit_na(adtte)\n\nanl <- adtte %>%\n filter(\n PARAMCD == \"OS\",\n SEX %in% c(\"F\", \"M\"),\n RACE %in% c(\"ASIAN\", \"BLACK OR AFRICAN AMERICAN\", \"WHITE\")\n ) %>%\n mutate(\n ARM = droplevels(relevel(ARM, \"B: Placebo\")),\n SEX = droplevels(SEX),\n RACE = droplevels(RACE)\n ) %>%\n mutate(EVENT = 1 - CNSR) %>%\n var_relabel(\n ARM = \"Planned Arm\",\n SEX = \"Sex\",\n RACE = \"Race\",\n AGE = \"Age\"\n )", + "text": "Output\n\n\nVST02_1 – Table of Abnormalities Regardless of Abnormality at Baseline\nVST02_2 – Table of Abnormalities Among Subjects Without Abnormality at Baseline\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n add_overall_col(\"All Patients\") %>%\n split_rows_by(\"PARAM\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(advs_f$PARAM)) %>%\n count_abnormal(\n \"ANRIND\",\n abnormal = list(Low = c(\"LOW\", \"LOW LOW\"), High = c(\"HIGH\", \"HIGH HIGH\")),\n exclude_base_abn = FALSE\n ) %>%\n append_varlabels(advs_f, \"ANRIND\", indent = 1L)\n\nresult <- build_table(lyt = lyt, df = advs_f, alt_counts_df = adsl)\n\nresult\n\nAssessment A: Drug X B: Placebo C: Combination All Patients \n Abnormality (N=134) (N=134) (N=132) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————————\nDiastolic Blood Pressure \n Low 66/134 (49.3%) 86/134 (64.2%) 78/132 (59.1%) 230/400 (57.5%)\n High 88/134 (65.7%) 70/134 (52.2%) 76/132 (57.6%) 234/400 (58.5%)\nPulse Rate \n Low 58/134 (43.3%) 32/134 (23.9%) 48/132 (36.4%) 138/400 (34.5%)\n High 53/134 (39.6%) 49/134 (36.6%) 44/132 (33.3%) 146/400 (36.5%)\nRespiratory Rate \n Low 97/134 (72.4%) 84/134 (62.7%) 98/132 (74.2%) 279/400 (69.8%)\n High 96/134 (71.6%) 98/134 (73.1%) 98/132 (74.2%) 292/400 (73%) \nSystolic Blood Pressure \n Low 71/134 (53%) 77/134 (57.5%) 73/132 (55.3%) 221/400 (55.2%)\n High 78/134 (58.2%) 74/134 (55.2%) 73/132 (55.3%) 225/400 (56.2%)\nTemperature \n Low 108/134 (80.6%) 110/134 (82.1%) 108/132 (81.8%) 326/400 (81.5%)\n High 112/134 (83.6%) 106/134 (79.1%) 107/132 (81.1%) 325/400 (81.2%)\nWeight \n Low 43/134 (32.1%) 39/134 (29.1%) 39/132 (29.5%) 121/400 (30.2%)\n High 46/134 (34.3%) 43/134 (32.1%) 44/132 (33.3%) 133/400 (33.2%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n add_overall_col(\"All Patients\") %>%\n split_rows_by(\"PARAM\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(advs_f$PARAM)) %>%\n count_abnormal(\n \"ANRIND\",\n abnormal = list(Low = c(\"LOW\", \"LOW LOW\"), High = c(\"HIGH\", \"HIGH HIGH\")),\n exclude_base_abn = TRUE\n ) %>%\n append_varlabels(advs_f, \"ANRIND\", indent = 1L)\n\nresult <- build_table(lyt = lyt, df = advs_f, alt_counts_df = adsl)\n\nresult\n\nAssessment A: Drug X B: Placebo C: Combination All Patients \n Abnormality (N=134) (N=134) (N=132) (N=400) \n—————————————————————————————————————————————————————————————————————————————————————————————\nDiastolic Blood Pressure \n Low 54/108 (50%) 76/116 (65.5%) 68/114 (59.6%) 198/338 (58.6%)\n High 74/114 (64.9%) 56/109 (51.4%) 62/106 (58.5%) 192/329 (58.4%)\nPulse Rate \n Low 53/121 (43.8%) 30/125 (24%) 42/119 (35.3%) 125/365 (34.2%)\n High 48/123 (39%) 45/116 (38.8%) 39/120 (32.5%) 132/359 (36.8%)\nRespiratory Rate \n Low 72/100 (72%) 72/110 (65.5%) 79/102 (77.5%) 223/312 (71.5%)\n High 77/107 (72%) 78/108 (72.2%) 79/109 (72.5%) 234/324 (72.2%)\nSystolic Blood Pressure \n Low 62/117 (53%) 63/114 (55.3%) 57/103 (55.3%) 182/334 (54.5%)\n High 64/110 (58.2%) 67/120 (55.8%) 68/115 (59.1%) 199/345 (57.7%)\nTemperature \n Low 77/96 (80.2%) 78/94 (83%) 74/90 (82.2%) 229/280 (81.8%)\n High 78/93 (83.9%) 73/92 (79.3%) 81/100 (81%) 232/285 (81.4%)\nWeight \n Low 42/129 (32.6%) 37/125 (29.6%) 37/123 (30.1%) 116/377 (30.8%)\n High 41/126 (32.5%) 41/124 (33.1%) 42/121 (34.7%) 124/371 (33.4%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadvs <- random.cdisc.data::cadvs\n\n# Ensure character variables are converted to factors and empty strings\n# and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadvs <- df_explicit_na(advs)\n\n# Note: We keep only post-baseline for analysis.\nadvs_f <- advs %>%\n filter(ONTRTFL == \"Y\", ANRIND != \"<Missing>\") %>%\n var_relabel(\n PARAM = \"Assessment\",\n ANRIND = \"Abnormality\"\n )\n\nsplit_fun <- drop_split_levels", "crumbs": [ "Tables", - "Efficacy", - "COXT02" + "Vital Signs", + "VST02" ] }, { - "objectID": "tables/efficacy/coxt02.html#teal-app", - "href": "tables/efficacy/coxt02.html#teal-app", - "title": "COXT02", + "objectID": "tables/vital-signs/vst02.html#teal-app", + "href": "tables/vital-signs/vst02.html#teal-app", + "title": "VST02", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADTTE <- data[[\"ADTTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_coxreg(\n label = \"Cox Reg.\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\", \"ACTARMCD\"), \"ARM\"),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"), \"OS\"\n ),\n strata_var = choices_selected(\n c(\"SEX\", \"STRATA1\", \"STRATA2\"), NULL\n ),\n cov_var = choices_selected(\n c(\"AGE\", \"SEX\", \"RACE\"), c(\"AGE\", \"SEX\")\n ),\n multivariate = TRUE\n )\n )\n)\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADTTE <- data[[\"ADTTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_coxreg(\n label = \"Cox Reg.\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\", \"ACTARMCD\"), \"ARM\"),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"), \"OS\"\n ),\n strata_var = choices_selected(\n c(\"SEX\", \"STRATA1\", \"STRATA2\"), NULL\n ),\n cov_var = choices_selected(\n c(\"AGE\", \"SEX\", \"RACE\"), c(\"AGE\", \"SEX\")\n ),\n multivariate = TRUE\n )\n )\n)\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADVS <- random.cdisc.data::cadvs %>%\n mutate(ONTRTFL = ifelse(AVISIT %in% c(\"SCREENING\", \"BASELINE\"), \"\", \"Y\")) %>%\n col_relabel(ONTRTFL = \"On Treatment Record Flag\")\n})\ndatanames <- c(\"ADSL\", \"ADVS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADVS <- data[[\"ADVS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality(\n label = \"Abnormality Table\",\n dataname = \"ADVS\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADVS, subset = c(\"VSCAT\", \"PARAM\", \"AVISIT\")),\n selected = c(\"PARAM\"),\n keep_order = TRUE\n ),\n grade = choices_selected(\n choices = variable_choices(ADVS, subset = \"ANRIND\"),\n selected = \"ANRIND\",\n fixed = TRUE\n ),\n abnormal = list(Low = c(\"LOW\", \"LOW LOW\"), High = c(\"HIGH\", \"HIGH HIGH\")),\n exclude_base_abn = FALSE\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADVS <- random.cdisc.data::cadvs %>%\n mutate(ONTRTFL = ifelse(AVISIT %in% c(\"SCREENING\", \"BASELINE\"), \"\", \"Y\")) %>%\n col_relabel(ONTRTFL = \"On Treatment Record Flag\")\n})\ndatanames <- c(\"ADSL\", \"ADVS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADVS <- data[[\"ADVS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality(\n label = \"Abnormality Table\",\n dataname = \"ADVS\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADVS, subset = c(\"VSCAT\", \"PARAM\", \"AVISIT\")),\n selected = c(\"PARAM\"),\n keep_order = TRUE\n ),\n grade = choices_selected(\n choices = variable_choices(ADVS, subset = \"ANRIND\"),\n selected = \"ANRIND\",\n fixed = TRUE\n ),\n abnormal = list(Low = c(\"LOW\", \"LOW LOW\"), High = c(\"HIGH\", \"HIGH HIGH\")),\n exclude_base_abn = FALSE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Efficacy", - "COXT02" + "Vital Signs", + "VST02" ] }, { - "objectID": "tables/efficacy/coxt02.html#reproducibility", - "href": "tables/efficacy/coxt02.html#reproducibility", - "title": "COXT02", + "objectID": "tables/vital-signs/vst02.html#reproducibility", + "href": "tables/vital-signs/vst02.html#reproducibility", + "title": "VST02", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:42:09 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n abind 1.4-8 2024-09-12 [1] RSPM\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom * 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n car 3.1-3 2024-09-27 [1] RSPM\n carData 3.0-5 2022-01-06 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n Formula 1.2-5 2023-02-24 [1] RSPM\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:39:34 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Efficacy", - "COXT02" + "Vital Signs", + "VST02" ] }, { - "objectID": "tables/efficacy/cfbt01.html#output", - "href": "tables/efficacy/cfbt01.html#output", - "title": "CFBT01", + "objectID": "tables/demography/dmt01.html#output", + "href": "tables/demography/dmt01.html#output", + "title": "DMT01", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeafun <- function(x, .var, .spl_context, ...) {\n n_fun <- sum(!is.na(x), na.rm = TRUE)\n if (n_fun == 0) {\n mean_sd_fun <- c(NA, NA)\n median_fun <- NA\n min_max_fun <- c(NA, NA)\n } else {\n mean_sd_fun <- c(mean(x, na.rm = TRUE), sd(x, na.rm = TRUE))\n median_fun <- median(x, na.rm = TRUE)\n min_max_fun <- c(min(x), max(x))\n }\n is_chg <- .var == \"CHG\"\n is_baseline <- .spl_context$value[which(.spl_context$split == \"AVISIT\")] == \"BASELINE\"\n if (is_baseline && is_chg) n_fun <- mean_sd_fun <- median_fun <- min_max_fun <- NULL\n\n in_rows(\n \"n\" = n_fun,\n \"Mean (SD)\" = mean_sd_fun,\n \"Median\" = median_fun,\n \"Min - Max\" = min_max_fun,\n .formats = list(\"n\" = \"xx\", \"Mean (SD)\" = \"xx.xx (xx.xx)\", \"Median\" = \"xx.xx\", \"Min - Max\" = \"xx.xx - xx.xx\"),\n .format_na_strs = list(\"n\" = \"NE\", \"Mean (SD)\" = \"NE (NE)\", \"Median\" = \"NE\", \"Min - Max\" = \"NE - NE\")\n )\n}\n\nlyt <- basic_table() %>%\n split_cols_by(\"ARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adqs$PARAM)\n ) %>%\n split_rows_by(\n \"AVISIT\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adqs$AVISIT)\n ) %>%\n split_cols_by_multivar(\n vars = c(\"AVAL\", \"CHG\"),\n varlabels = c(\"Value at Visit\", \"Change from\\nBaseline\")\n ) %>%\n analyze_colvars(afun = afun)\n\nresult <- build_table(lyt, adqs)\nresult\n\n A: Drug X B: Placebo C: Combination \nParameter Change from Change from Change from \n Analysis Visit Value at Visit Baseline Value at Visit Baseline Value at Visit Baseline \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nBFI All Questions \n BASELINE \n n 134 134 132 \n Mean (SD) 49.93 (7.44) 49.74 (8.29) 50.30 (9.06) \n Median 48.69 49.28 49.74 \n Min - Max 33.72 - 65.91 25.82 - 71.47 26.04 - 69.99 \n WEEK 1 DAY 8 \n n 134 134 134 134 132 132 \n Mean (SD) 54.51 (8.61) 4.58 (11.23) 56.33 (7.86) 6.59 (11.81) 54.03 (8.31) 3.72 (12.66) \n Median 55.15 5.47 56.39 6.96 53.76 3.71 \n Min - Max 34.26 - 75.42 -25.52 - 29.68 36.82 - 74.45 -25.10 - 31.05 26.89 - 75.95 -26.81 - 33.75\n WEEK 2 DAY 15 \n n 134 134 134 134 132 132 \n Mean (SD) 60.98 (10.31) 11.05 (12.46) 59.68 (9.59) 9.94 (12.84) 60.11 (8.76) 9.80 (12.59) \n Median 60.60 10.45 58.18 8.95 61.08 10.04 \n Min - Max 35.94 - 96.53 -14.02 - 45.01 40.44 - 84.70 -17.59 - 40.52 32.76 - 78.25 -26.57 - 39.56\n WEEK 3 DAY 22 \n n 134 134 134 134 132 132 \n Mean (SD) 64.64 (9.88) 14.72 (11.99) 65.78 (10.17) 16.04 (13.80) 63.65 (10.50) 13.35 (13.39) \n Median 65.21 15.10 66.28 15.49 63.79 12.24 \n Min - Max 40.49 - 95.35 -16.76 - 43.40 42.16 - 92.32 -17.70 - 46.85 29.29 - 88.41 -22.40 - 39.94\n WEEK 4 DAY 29 \n n 134 134 134 134 132 132 \n Mean (SD) 69.43 (11.12) 19.51 (13.83) 69.79 (11.46) 20.05 (14.38) 70.68 (10.23) 20.37 (12.99) \n Median 69.22 19.90 70.37 20.99 70.85 20.94 \n Min - Max 38.38 - 95.48 -17.34 - 49.18 45.79 - 93.33 -19.66 - 58.05 30.53 - 90.61 -14.01 - 60.23\n WEEK 5 DAY 36 \n n 134 134 134 134 132 132 \n Mean (SD) 74.31 (12.44) 24.38 (14.75) 74.73 (12.96) 24.99 (14.67) 75.89 (13.54) 25.59 (17.18) \n Median 76.12 25.20 74.13 22.81 76.70 25.32 \n Min - Max 39.45 - 103.92 -7.53 - 56.23 38.19 - 109.61 -18.42 - 64.15 43.79 - 102.40 -16.11 - 67.78\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadqs <- random.cdisc.data::cadqs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadqs <- df_explicit_na(adqs)\n\n# This example focuses on \"BFI All Questions\" starting from baseline.\nadqs <- adqs %>%\n dplyr::filter(\n PARAM == \"BFI All Questions\",\n AVISIT != \"SCREENING\"\n )\n\n# Define the split function for AVISIT\nsplit_fun <- drop_split_levels", + "text": "Output\n\n\nTable with an Additional Study-Specific Continuous Variable\nTable with an Additional Study-Specific Categorical Variable\nTable with Subgrouping for Some Analyses\nTable with Additional Vital Signs Baseline Values\nTable with Additional Values from ADSUB\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevars <- c(\"AGE\", \"AGEGR1\", \"SEX\", \"ETHNIC\", \"RACE\", \"BMRKR1\")\nvar_labels <- c(\n \"Age (yr)\",\n \"Age Group\",\n \"Sex\",\n \"Ethnicity\",\n \"Race\",\n \"Continous Level Biomarker 1\"\n)\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n add_overall_col(\"All Patients\") %>%\n analyze_vars(\n vars = vars,\n var_labels = var_labels\n ) %>%\n build_table(adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————————————————————————————————————\nAge (yr) \n n 134 134 132 400 \n Mean (SD) 33.8 (6.6) 35.4 (7.9) 35.4 (7.7) 34.9 (7.4) \n Median 33.0 35.0 35.0 34.0 \n Min - Max 21.0 - 50.0 21.0 - 62.0 20.0 - 69.0 20.0 - 69.0 \nAge Group \n n 134 134 132 400 \n 18-40 113 (84.3%) 103 (76.9%) 106 (80.3%) 322 (80.5%) \n 41-64 21 (15.7%) 31 (23.1%) 25 (18.9%) 77 (19.2%) \n >=65 0 0 1 (0.8%) 1 (0.2%) \nSex \n n 134 134 132 400 \n Female 79 (59%) 82 (61.2%) 70 (53%) 231 (57.8%) \n Male 55 (41%) 52 (38.8%) 62 (47%) 169 (42.2%) \nEthnicity \n n 134 134 132 400 \n HISPANIC OR LATINO 15 (11.2%) 18 (13.4%) 15 (11.4%) 48 (12%) \n NOT HISPANIC OR LATINO 104 (77.6%) 103 (76.9%) 101 (76.5%) 308 (77%) \n NOT REPORTED 6 (4.5%) 10 (7.5%) 11 (8.3%) 27 (6.8%) \n UNKNOWN 9 (6.7%) 3 (2.2%) 5 (3.8%) 17 (4.2%) \nRace \n n 134 134 132 400 \n ASIAN 68 (50.7%) 67 (50%) 73 (55.3%) 208 (52%) \n BLACK OR AFRICAN AMERICAN 31 (23.1%) 28 (20.9%) 32 (24.2%) 91 (22.8%) \n WHITE 27 (20.1%) 26 (19.4%) 21 (15.9%) 74 (18.5%) \n AMERICAN INDIAN OR ALASKA NATIVE 8 (6%) 11 (8.2%) 6 (4.5%) 25 (6.2%) \n MULTIPLE 0 1 (0.7%) 0 1 (0.2%) \n NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 0 1 (0.7%) 0 1 (0.2%) \n OTHER 0 0 0 0 \n UNKNOWN 0 0 0 0 \nContinous Level Biomarker 1 \n n 134 134 132 400 \n Mean (SD) 6.0 (3.6) 5.7 (3.3) 5.6 (3.5) 5.8 (3.4) \n Median 5.4 4.8 4.6 4.8 \n Min - Max 0.4 - 17.7 0.6 - 14.2 0.2 - 21.4 0.2 - 21.4 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevars <- c(\"AGE\", \"AGEGR1\", \"SEX\", \"ETHNIC\", \"RACE\", \"BMRKR1_CAT\")\nvar_labels <- c(\n \"Age (yr)\",\n \"Age Group\",\n \"Sex\",\n \"Ethnicity\",\n \"Race\",\n \"Biomarker 1 Categories\"\n)\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n analyze_vars(\n vars = vars,\n var_labels = var_labels\n ) %>%\n build_table(adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————\nAge (yr) \n n 134 134 132 \n Mean (SD) 33.8 (6.6) 35.4 (7.9) 35.4 (7.7) \n Median 33.0 35.0 35.0 \n Min - Max 21.0 - 50.0 21.0 - 62.0 20.0 - 69.0 \nAge Group \n n 134 134 132 \n 18-40 113 (84.3%) 103 (76.9%) 106 (80.3%) \n 41-64 21 (15.7%) 31 (23.1%) 25 (18.9%) \n >=65 0 0 1 (0.8%) \nSex \n n 134 134 132 \n Female 79 (59%) 82 (61.2%) 70 (53%) \n Male 55 (41%) 52 (38.8%) 62 (47%) \nEthnicity \n n 134 134 132 \n HISPANIC OR LATINO 15 (11.2%) 18 (13.4%) 15 (11.4%) \n NOT HISPANIC OR LATINO 104 (77.6%) 103 (76.9%) 101 (76.5%) \n NOT REPORTED 6 (4.5%) 10 (7.5%) 11 (8.3%) \n UNKNOWN 9 (6.7%) 3 (2.2%) 5 (3.8%) \nRace \n n 134 134 132 \n ASIAN 68 (50.7%) 67 (50%) 73 (55.3%) \n BLACK OR AFRICAN AMERICAN 31 (23.1%) 28 (20.9%) 32 (24.2%) \n WHITE 27 (20.1%) 26 (19.4%) 21 (15.9%) \n AMERICAN INDIAN OR ALASKA NATIVE 8 (6%) 11 (8.2%) 6 (4.5%) \n MULTIPLE 0 1 (0.7%) 0 \n NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 0 1 (0.7%) 0 \n OTHER 0 0 0 \n UNKNOWN 0 0 0 \nBiomarker 1 Categories \n n 134 134 132 \n LOW 33 (24.6%) 41 (30.6%) 38 (28.8%) \n MEDIUM 84 (62.7%) 76 (56.7%) 80 (60.6%) \n HIGH 17 (12.7%) 17 (12.7%) 14 (10.6%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n analyze_vars(\n vars = c(\"AGE\", \"SEX\", \"RACE\"),\n var_labels = c(\"Age\", \"Sex\", \"Race\")\n ) %>%\n split_rows_by(\"STRATA1\",\n split_fun = split_fun\n ) %>%\n analyze_vars(\"BMRKR1\") %>%\n build_table(adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————\nAge \n n 134 134 132 \n Mean (SD) 33.8 (6.6) 35.4 (7.9) 35.4 (7.7) \n Median 33.0 35.0 35.0 \n Min - Max 21.0 - 50.0 21.0 - 62.0 20.0 - 69.0 \nSex \n n 134 134 132 \n Female 79 (59%) 82 (61.2%) 70 (53%) \n Male 55 (41%) 52 (38.8%) 62 (47%) \nRace \n n 134 134 132 \n ASIAN 68 (50.7%) 67 (50%) 73 (55.3%) \n BLACK OR AFRICAN AMERICAN 31 (23.1%) 28 (20.9%) 32 (24.2%) \n WHITE 27 (20.1%) 26 (19.4%) 21 (15.9%) \n AMERICAN INDIAN OR ALASKA NATIVE 8 (6%) 11 (8.2%) 6 (4.5%) \n MULTIPLE 0 1 (0.7%) 0 \n NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 0 1 (0.7%) 0 \n OTHER 0 0 0 \n UNKNOWN 0 0 0 \nA \n n 38 44 40 \n Mean (SD) 5.8 (3.8) 5.4 (3.2) 5.1 (3.2) \n Median 5.1 4.5 3.8 \n Min - Max 0.4 - 17.7 1.4 - 14.2 1.5 - 14.0 \nB \n n 47 45 43 \n Mean (SD) 6.1 (3.6) 5.8 (3.6) 5.7 (3.4) \n Median 5.2 4.8 5.1 \n Min - Max 1.6 - 17.2 0.6 - 13.3 0.2 - 16.5 \nC \n n 49 45 49 \n Mean (SD) 6.0 (3.4) 5.9 (3.2) 6.0 (3.8) \n Median 5.8 5.6 4.5 \n Min - Max 0.5 - 15.1 1.5 - 13.9 1.2 - 21.4 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n analyze_vars(\n vars = c(\"AGE\", \"SEX\", \"RACE\", \"DBP\", \"SBP\"),\n var_labels = c(\n \"Age (yr)\",\n \"Sex\",\n \"Race\",\n \"Diastolic Blood Pressure\",\n \"Systolic Blood Pressure\"\n )\n ) %>%\n build_table(adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————\nAge (yr) \n n 134 134 132 \n Mean (SD) 33.8 (6.6) 35.4 (7.9) 35.4 (7.7) \n Median 33.0 35.0 35.0 \n Min - Max 21.0 - 50.0 21.0 - 62.0 20.0 - 69.0 \nSex \n n 134 134 132 \n Female 79 (59%) 82 (61.2%) 70 (53%) \n Male 55 (41%) 52 (38.8%) 62 (47%) \nRace \n n 134 134 132 \n ASIAN 68 (50.7%) 67 (50%) 73 (55.3%) \n BLACK OR AFRICAN AMERICAN 31 (23.1%) 28 (20.9%) 32 (24.2%) \n WHITE 27 (20.1%) 26 (19.4%) 21 (15.9%) \n AMERICAN INDIAN OR ALASKA NATIVE 8 (6%) 11 (8.2%) 6 (4.5%) \n MULTIPLE 0 1 (0.7%) 0 \n NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 0 1 (0.7%) 0 \n OTHER 0 0 0 \n UNKNOWN 0 0 0 \nDiastolic Blood Pressure \n n 134 134 132 \n Mean (SD) 96.5 (19.9) 101.1 (19.9) 102.8 (19.5) \n Median 96.0 100.4 102.0 \n Min - Max 44.3 - 136.6 29.2 - 143.8 49.4 - 153.5 \nSystolic Blood Pressure \n n 134 134 132 \n Mean (SD) 151.7 (31.5) 149.5 (26.5) 144.7 (30.1) \n Median 150.1 153.0 146.5 \n Min - Max 69.1 - 231.2 87.2 - 220.9 71.8 - 220.2 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n analyze_vars(\n vars = c(\"AGE\", \"SEX\", \"RACE\", \"BBMISI\"),\n var_labels = c(\n \"Age (yr)\",\n \"Sex\",\n \"Race\",\n \"Baseline BMI\"\n )\n ) %>%\n build_table(adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————\nAge (yr) \n n 134 134 132 \n Mean (SD) 33.8 (6.6) 35.4 (7.9) 35.4 (7.7) \n Median 33.0 35.0 35.0 \n Min - Max 21.0 - 50.0 21.0 - 62.0 20.0 - 69.0 \nSex \n n 134 134 132 \n Female 79 (59%) 82 (61.2%) 70 (53%) \n Male 55 (41%) 52 (38.8%) 62 (47%) \nRace \n n 134 134 132 \n ASIAN 68 (50.7%) 67 (50%) 73 (55.3%) \n BLACK OR AFRICAN AMERICAN 31 (23.1%) 28 (20.9%) 32 (24.2%) \n WHITE 27 (20.1%) 26 (19.4%) 21 (15.9%) \n AMERICAN INDIAN OR ALASKA NATIVE 8 (6%) 11 (8.2%) 6 (4.5%) \n MULTIPLE 0 1 (0.7%) 0 \n NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 0 1 (0.7%) 0 \n OTHER 0 0 0 \n UNKNOWN 0 0 0 \nBaseline BMI \n n 134 134 132 \n Mean (SD) 30.0 (18.3) 32.4 (23.2) 30.1 (18.4) \n Median 27.1 31.1 30.0 \n Min - Max -6.9 - 75.9 -26.6 - 117.9 -44.2 - 87.5 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(tidyr)\n\nadsl <- random.cdisc.data::cadsl\nadvs <- random.cdisc.data::cadvs\nadsub <- random.cdisc.data::cadsub\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadvs <- df_explicit_na(advs)\nadsub <- df_explicit_na(adsub)\n\n# Change description in variable SEX.\nadsl <- adsl %>%\n mutate(\n SEX = factor(case_when(\n SEX == \"M\" ~ \"Male\",\n SEX == \"F\" ~ \"Female\",\n SEX == \"U\" ~ \"Unknown\",\n SEX == \"UNDIFFERENTIATED\" ~ \"Undifferentiated\"\n )),\n AGEGR1 = factor(\n case_when(\n between(AGE, 18, 40) ~ \"18-40\",\n between(AGE, 41, 64) ~ \"41-64\",\n AGE > 64 ~ \">=65\"\n ),\n levels = c(\"18-40\", \"41-64\", \">=65\")\n ),\n BMRKR1_CAT = factor(\n case_when(\n BMRKR1 < 3.5 ~ \"LOW\",\n BMRKR1 >= 3.5 & BMRKR1 < 10 ~ \"MEDIUM\",\n BMRKR1 >= 10 ~ \"HIGH\"\n ),\n levels = c(\"LOW\", \"MEDIUM\", \"HIGH\")\n )\n ) %>%\n var_relabel(\n BMRKR1_CAT = \"Biomarker 1 Categories\"\n )\n# The developer needs to do pre-processing to add necessary variables based on ADVS to analysis dataset.\n# Obtain SBP, DBP and weight.\nget_param_advs <- function(pname, plabel) {\n ds <- advs %>%\n filter(PARAM == plabel & AVISIT == \"BASELINE\") %>%\n select(USUBJID, AVAL)\n\n colnames(ds) <- c(\"USUBJID\", pname)\n\n ds\n}\n# The developer needs to do pre-processing to add necessary variables based on ADSUB to analysis dataset.\n# Obtain baseline BMI (BBMISI).\nget_param_adsub <- function(pname, plabel) {\n ds <- adsub %>%\n filter(PARAM == plabel) %>%\n select(USUBJID, AVAL)\n\n colnames(ds) <- c(\"USUBJID\", pname)\n\n ds\n}\nadsl <- adsl %>%\n left_join(get_param_advs(\"SBP\", \"Systolic Blood Pressure\"), by = \"USUBJID\") %>%\n left_join(get_param_advs(\"DBP\", \"Diastolic Blood Pressure\"), by = \"USUBJID\") %>%\n left_join(get_param_advs(\"WGT\", \"Weight\"), by = \"USUBJID\") %>%\n left_join(get_param_adsub(\"BBMISI\", \"Baseline BMI\"), by = \"USUBJID\")", "crumbs": [ "Tables", - "Efficacy", - "CFBT01" + "Demography", + "DMT01" ] }, { - "objectID": "tables/efficacy/cfbt01.html#teal-app", - "href": "tables/efficacy/cfbt01.html#teal-app", - "title": "CFBT01", + "objectID": "tables/demography/dmt01.html#teal-app", + "href": "tables/demography/dmt01.html#teal-app", + "title": "DMT01", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADQS <- df_explicit_na(ADQS)\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADQS <- data[[\"ADQS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Efficacy Data and Change from Baseline by Visit\",\n dataname = \"ADQS\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADQS, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADQS, c(\"AVAL\", \"CHG\")),\n selected = c(\"AVAL\", \"CHG\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = \"BFIALL\"\n ),\n add_total = FALSE,\n parallel_vars = TRUE\n )\n ),\n filter = teal_slices(\n teal_slice(\"ADQS\", \"AVISIT\", selected = NULL),\n teal_slice(\"ADQS\", \"AVAL\", selected = NULL)\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADQS <- df_explicit_na(ADQS)\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADQS <- data[[\"ADQS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Efficacy Data and Change from Baseline by Visit\",\n dataname = \"ADQS\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADQS, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADQS, c(\"AVAL\", \"CHG\")),\n selected = c(\"AVAL\", \"CHG\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = \"BFIALL\"\n ),\n add_total = FALSE,\n parallel_vars = TRUE\n )\n ),\n filter = teal_slices(\n teal_slice(\"ADQS\", \"AVISIT\", selected = NULL),\n teal_slice(\"ADQS\", \"AVAL\", selected = NULL)\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n\n # Include `EOSDY` and `DCSREAS` variables below because they contain missing data.\n stopifnot(\n any(is.na(ADSL$EOSDY)),\n any(is.na(ADSL$DCSREAS))\n )\n})\ndatanames <- \"ADSL\"\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary(\n label = \"Demographic Table\",\n dataname = \"ADSL\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n summarize_vars = choices_selected(\n c(\"SEX\", \"RACE\", \"BMRKR2\", \"EOSDY\", \"DCSREAS\"),\n c(\"SEX\", \"RACE\")\n ),\n useNA = \"ifany\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n\n # Include `EOSDY` and `DCSREAS` variables below because they contain missing data.\n stopifnot(\n any(is.na(ADSL$EOSDY)),\n any(is.na(ADSL$DCSREAS))\n )\n})\ndatanames <- \"ADSL\"\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary(\n label = \"Demographic Table\",\n dataname = \"ADSL\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n summarize_vars = choices_selected(\n c(\"SEX\", \"RACE\", \"BMRKR2\", \"EOSDY\", \"DCSREAS\"),\n c(\"SEX\", \"RACE\")\n ),\n useNA = \"ifany\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Efficacy", - "CFBT01" + "Demography", + "DMT01" ] }, { - "objectID": "tables/efficacy/cfbt01.html#reproducibility", - "href": "tables/efficacy/cfbt01.html#reproducibility", - "title": "CFBT01", + "objectID": "tables/demography/dmt01.html#reproducibility", + "href": "tables/demography/dmt01.html#reproducibility", + "title": "DMT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:41:39 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:38:45 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr * 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Efficacy", - "CFBT01" + "Demography", + "DMT01" ] }, { - "objectID": "tables/efficacy/coxt01.html#output", - "href": "tables/efficacy/coxt01.html#output", - "title": "COXT01", - "section": "Output", - "text": "Output\nCox models are the most commonly used methods to estimate the magnitude of the effect in survival analyses. It assumes proportional hazards; that is, it assumes that the ratio of the hazards of the two groups (e.g. two arms) is constant over time. This ratio is referred to as the “hazard ratio” and is one of the most commonly reported metrics to describe the effect size in survival analysis.\n\n\nCox Regression\nCox Regression with Interaction Term\nCox Regression Specifying Covariates\nCox Regression Setting Strata, Ties, Alpha Level\nData Setup\n\n\n\nThe summarize_coxreg function fits, tidies and arranges a Cox regression model in a table layout using the rtables framework. For a Cox regression model, arguments variables, control, and at can be specified (see ?summarize_coxreg for more details and customization options). All variables specified within variables must be present in the data used when building the table.\nTo see the same model as a data.frame object, these three arguments (as well as the data) can be passed to the fit_coxreg_univar function, and the resulting list tidied using broom::tidy().\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevariables <- list(\n time = \"AVAL\",\n event = \"EVENT\",\n arm = \"ARM\",\n covariates = c(\"AGE\", \"SEX\", \"RACE\")\n)\n\nlyt <- basic_table() %>%\n split_cols_by(\"col_label\") %>%\n summarize_coxreg(variables = variables) %>%\n append_topleft(\"Effect/Covariate Included in the Model\")\n\nresult <- build_table(lyt = lyt, df = anl)\nresult\n\n Treatment Effect Adjusted for Covariate \nEffect/Covariate Included in the Model n Hazard Ratio 95% CI p-value \n—————————————————————————————————————————————————————————————————————————————————————————\nTreatment: \n A: Drug X vs control (B: Placebo) 247 0.97 (0.66, 1.43) 0.8934 \nCovariate: \n Age 247 0.95 (0.65, 1.40) 0.7948 \n Sex 247 0.98 (0.67, 1.43) 0.8970 \n Race 247 0.98 (0.67, 1.44) 0.9239 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe argument control can be used to modify standard outputs; control_coxreg() helps in adopting the right settings (see ?control_coxreg). For instance, control is used to include the interaction terms.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevariables <- list(\n time = \"AVAL\",\n event = \"EVENT\",\n arm = \"ARM\",\n covariates = c(\"AGE\", \"RACE\")\n)\n\nlyt <- basic_table() %>%\n split_cols_by(\"col_label\") %>%\n summarize_coxreg(\n variables = variables,\n control = control_coxreg(interaction = TRUE),\n .stats = c(\"n\", \"hr\", \"ci\", \"pval\", \"pval_inter\")\n ) %>%\n append_topleft(\"Effect/Covariate Included in the Model\")\n\nresult <- build_table(lyt = lyt, df = anl)\nresult\n\n Treatment Effect Adjusted for Covariate \nEffect/Covariate Included in the Model n Hazard Ratio 95% CI p-value Interaction p-value\n——————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment: \n A: Drug X vs control (B: Placebo) 247 0.97 (0.66, 1.43) 0.8934 \nCovariate: \n Age 247 0.7878 \n 34 0.95 (0.65, 1.40) \n Race 247 0.6850 \n ASIAN 1.05 (0.63, 1.75) \n BLACK OR AFRICAN AMERICAN 1.08 (0.51, 2.29) \n WHITE 0.67 (0.27, 1.71) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe optional argument at allows the user to provide the expected level of estimation for the interaction when the predictor is a quantitative variable. For instance, it might be relevant to choose the age at which the hazard ratio should be estimated. If no input is provided to at, the median value is used in the row name (as in the previous tab).\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevariables <- list(\n time = \"AVAL\",\n event = \"EVENT\",\n arm = \"ARM\",\n covariates = c(\"AGE\", \"SEX\")\n)\n\nlyt <- basic_table() %>%\n split_cols_by(\"col_label\") %>%\n summarize_coxreg(\n variables = variables,\n control = control_coxreg(interaction = TRUE),\n at = list(AGE = c(30, 40, 50)),\n .stats = c(\"n\", \"hr\", \"ci\", \"pval\", \"pval_inter\")\n ) %>%\n append_topleft(\"Effect/Covariate Included in the Model\")\n\nresult <- build_table(lyt = lyt, df = anl)\nresult\n\n Treatment Effect Adjusted for Covariate \nEffect/Covariate Included in the Model n Hazard Ratio 95% CI p-value Interaction p-value\n——————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment: \n A: Drug X vs control (B: Placebo) 247 0.97 (0.66, 1.43) 0.8934 \nCovariate: \n Age 247 0.7878 \n 30 0.98 (0.63, 1.51) \n 40 0.91 (0.54, 1.51) \n 50 0.84 (0.32, 2.20) \n Sex 247 0.1455 \n F 0.77 (0.47, 1.27) \n M 1.38 (0.75, 2.52) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nAdditional controls can be customized using control_coxreg (see ?control_coxreg) such as the ties calculation method and the confidence level. Stratification variables can be added via the strata element of the variables list.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevariables <- list(\n time = \"AVAL\",\n event = \"EVENT\",\n arm = \"ARM\",\n covariates = c(\"AGE\", \"RACE\"),\n strata = \"SEX\"\n)\n\ncontrol <- control_coxreg(\n ties = \"breslow\",\n interaction = TRUE,\n conf_level = 0.90\n)\n\nlyt <- basic_table() %>%\n split_cols_by(\"col_label\") %>%\n summarize_coxreg(\n variables = variables,\n control = control,\n at = list(AGE = c(30, 40, 50)),\n .stats = c(\"n\", \"hr\", \"ci\", \"pval\", \"pval_inter\")\n ) %>%\n append_topleft(\"Effect/Covariate Included in the Model\")\n\nresult <- build_table(lyt = lyt, df = anl)\nresult\n\n Treatment Effect Adjusted for Covariate \nEffect/Covariate Included in the Model n Hazard Ratio 90% CI p-value Interaction p-value\n——————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment: \n A: Drug X vs control (B: Placebo) 247 0.98 (0.71, 1.35) 0.9063 \nCovariate: \n Age 247 0.7733 \n 30 0.98 (0.68, 1.42) \n 40 0.91 (0.59, 1.39) \n 50 0.84 (0.38, 1.87) \n Race 247 0.6501 \n ASIAN 1.07 (0.64, 1.77) \n BLACK OR AFRICAN AMERICAN 1.08 (0.51, 2.29) \n WHITE 0.66 (0.26, 1.67) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadtte <- random.cdisc.data::cadtte\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadtte <- df_explicit_na(adtte)\n\nadsl_filtered <- adsl %>% dplyr::filter(\n RACE %in% c(\"ASIAN\", \"BLACK OR AFRICAN AMERICAN\", \"WHITE\")\n)\nadtte_filtered <- dplyr::inner_join(\n x = adsl_filtered[, c(\"STUDYID\", \"USUBJID\")],\n y = adtte,\n by = c(\"STUDYID\", \"USUBJID\")\n)\n\nanl <- adtte_filtered %>%\n filter(PARAMCD == \"OS\") %>%\n mutate(EVENT = 1 - CNSR) %>%\n filter(ARM %in% c(\"B: Placebo\", \"A: Drug X\")) %>%\n mutate(ARM = droplevels(relevel(ARM, \"B: Placebo\"))) %>%\n mutate(RACE = droplevels(RACE) %>% formatters::with_label(\"Race\"))\n\n# Add variable for column split label\nanl <- anl %>% mutate(col_label = \"Treatment Effect Adjusted for Covariate\")", - "crumbs": [ - "Tables", - "Efficacy", - "COXT01" - ] + "objectID": "CONTRIBUTING.html#table-of-contents", + "href": "CONTRIBUTING.html#table-of-contents", + "title": "", + "section": "Table of contents", + "text": "Table of contents\n👶 Getting started\n📔 Code of Conduct\n🗃 License\n📜 Issues\n🚩 Pull requests\n💻 Coding guidelines\n🏆 Recognition model\n❓ Questions" }, { - "objectID": "tables/efficacy/coxt01.html#teal-app", - "href": "tables/efficacy/coxt01.html#teal-app", - "title": "COXT01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADTTE <- df_explicit_na(ADTTE)\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADTTE <- data[[\"ADTTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_coxreg(\n label = \"Cox Reg.\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(c(\"ARM\", \"ACTARMCD\"), \"ARM\"),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"), \"OS\"\n ),\n strata_var = choices_selected(\n c(\"SEX\", \"STRATA1\", \"STRATA2\"), NULL\n ),\n cov_var = choices_selected(\n c(\"AGE\", \"SEX\", \"RACE\"), \"AGE\"\n ),\n multivariate = FALSE\n )\n )\n)\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADTTE <- df_explicit_na(ADTTE)\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADTTE <- data[[\"ADTTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_coxreg(\n label = \"Cox Reg.\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(c(\"ARM\", \"ACTARMCD\"), \"ARM\"),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"), \"OS\"\n ),\n strata_var = choices_selected(\n c(\"SEX\", \"STRATA1\", \"STRATA2\"), NULL\n ),\n cov_var = choices_selected(\n c(\"AGE\", \"SEX\", \"RACE\"), \"AGE\"\n ),\n multivariate = FALSE\n )\n )\n)\nshinyApp(app$ui, app$server)", - "crumbs": [ - "Tables", - "Efficacy", - "COXT01" - ] + "objectID": "CONTRIBUTING.html#getting-started", + "href": "CONTRIBUTING.html#getting-started", + "title": "", + "section": "Getting started", + "text": "Getting started\nPlease familiarize yourself with the specific project structure and the book content. Please make sure you read the “Development” section in the README file." }, { - "objectID": "tables/efficacy/coxt01.html#reproducibility", - "href": "tables/efficacy/coxt01.html#reproducibility", - "title": "COXT01", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:40:54 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n abind 1.4-8 2024-09-12 [1] RSPM\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n car 3.1-3 2024-09-27 [1] RSPM\n carData 3.0-5 2022-01-06 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n Formula 1.2-5 2023-02-24 [1] RSPM\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", - "crumbs": [ - "Tables", - "Efficacy", - "COXT01" - ] + "objectID": "CONTRIBUTING.html#code-of-conduct", + "href": "CONTRIBUTING.html#code-of-conduct", + "title": "", + "section": "Code of Conduct", + "text": "Code of Conduct\nA Code of Conduct governs this project. Participants and contributors are expected to follow the rules outlined therein." }, { - "objectID": "tables/efficacy/rspt01.html", - "href": "tables/efficacy/rspt01.html", - "title": "RSPT01", - "section": "", - "text": "Data pre-processing is done to label the analysis value (AVALC) so as to improve the readability of the output table. In addition, the response is binary defined (is_rsp, responder yes/no) depending on the analysis value. Finally, for comparison purposes, the reference arm is specified.\nCode# Pre-Processing\n\nanl <- anl_adsl %>%\n left_join(anl_adrs, by = c(\"STUDYID\", \"USUBJID\")) %>%\n mutate(rsp_lab = d_onco_rsp_label(AVALC)) %>%\n mutate(is_rsp = AVALC %in% c(\"CR\", \"PR\")) %>%\n mutate(ARM = relevel(ARM, ref = \"A: Drug X\")) %>%\n var_relabel(ARM = \"Description of Planned Arm\")", - "crumbs": [ - "Tables", - "Efficacy", - "RSPT01" - ] + "objectID": "CONTRIBUTING.html#license", + "href": "CONTRIBUTING.html#license", + "title": "", + "section": "License", + "text": "License\nAll your contributions will be covered by this project’s license." }, { - "objectID": "tables/efficacy/rspt01.html#output", - "href": "tables/efficacy/rspt01.html#output", - "title": "RSPT01", - "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Selecting Sections to Display\nTable Modifying Analysis Details like Type of Confidence Interval, Alpha Level, Test Statistic\nTable with Stratified Analysis\nTable Modifying the Definition of Overall Response\nTable Defining New Sections to Display\nData Setup\n\n\n\nThe tabulation layout is built in layers for the analysis of overall response and applied to the pre-processed dataset.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt_01 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n estimate_proportion(\n vars = \"is_rsp\",\n table_names = \"est_prop\"\n ) %>%\n estimate_proportion_diff(\n vars = \"is_rsp\",\n show_labels = \"visible\",\n var_labels = \"Unstratified Analysis\",\n table_names = \"est_prop_diff\"\n ) %>%\n test_proportion_diff(\n vars = \"is_rsp\",\n table_names = \"test_prop_diff\"\n ) %>%\n estimate_odds_ratio(\n vars = \"is_rsp\",\n table_names = \"est_or\"\n ) %>%\n estimate_multinomial_response(var = \"rsp_lab\")\n\nresult <- build_table(lyt = lyt_01, df = anl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————\nResponders 100 (74.6%) 84 (62.7%) 81 (61.4%) \n95% CI (Wald, with correction) (66.9, 82.4) (54.1, 71.2) (52.7, 70.0) \nUnstratified Analysis \n Difference in Response rate (%) -11.9 -13.3 \n 95% CI (Wald, with correction) (-23.7, -0.2) (-25.1, -1.4) \n p-value (Chi-Squared Test) 0.0351 0.0204 \nOdds Ratio (95% CI) 0.57 (0.34 - 0.96) 0.54 (0.32 - 0.91)\nComplete Response (CR) 60 (44.8%) 47 (35.1%) 57 (43.2%) \n 95% CI (Wald, with correction) (35.98, 53.57) (26.62, 43.53) (34.35, 52.01) \nPartial Response (PR) 40 (29.9%) 37 (27.6%) 24 (18.2%) \n 95% CI (Wald, with correction) (21.73, 37.97) (19.67, 35.55) (11.22, 25.14) \nStable Disease (SD) 9 (6.7%) 22 (16.4%) 13 (9.8%) \n 95% CI (Wald, with correction) (2.11, 11.33) (9.77, 23.06) (4.39, 15.31) \nProgressive Disease (PD) 24 (17.9%) 16 (11.9%) 33 (25.0%) \n 95% CI (Wald, with correction) (11.05, 24.78) (6.08, 17.80) (17.23, 32.77) \nNot Evaluable (NE) 1 (0.7%) 12 (9.0%) 5 (3.8%) \n 95% CI (Wald, with correction) (0.00, 2.58) (3.75, 14.16) (0.15, 7.42) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nRemove (or add) rows of results by removing/adding the corresponding layers from the layout. For instance, the odds-ratio row is removed by simply removing the estimate_odds_ratio call:\n\nCodelyt_02 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n estimate_proportion(\n vars = \"is_rsp\",\n table_names = \"est_prop\"\n ) %>%\n estimate_proportion_diff(\n vars = \"is_rsp\",\n show_labels = \"visible\",\n var_labels = \"Unstratified Analysis\",\n table_names = \"est_prop_diff\"\n ) %>%\n test_proportion_diff(\n vars = \"is_rsp\",\n table_names = \"test_prop\"\n ) %>%\n estimate_multinomial_response(var = \"rsp_lab\")\n\nresult <- build_table(lyt = lyt_02, df = anl)\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\nResponders 100 (74.6%) 84 (62.7%) 81 (61.4%) \n95% CI (Wald, with correction) (66.9, 82.4) (54.1, 71.2) (52.7, 70.0) \nUnstratified Analysis \n Difference in Response rate (%) -11.9 -13.3 \n 95% CI (Wald, with correction) (-23.7, -0.2) (-25.1, -1.4) \n p-value (Chi-Squared Test) 0.0351 0.0204 \nComplete Response (CR) 60 (44.8%) 47 (35.1%) 57 (43.2%) \n 95% CI (Wald, with correction) (35.98, 53.57) (26.62, 43.53) (34.35, 52.01)\nPartial Response (PR) 40 (29.9%) 37 (27.6%) 24 (18.2%) \n 95% CI (Wald, with correction) (21.73, 37.97) (19.67, 35.55) (11.22, 25.14)\nStable Disease (SD) 9 (6.7%) 22 (16.4%) 13 (9.8%) \n 95% CI (Wald, with correction) (2.11, 11.33) (9.77, 23.06) (4.39, 15.31) \nProgressive Disease (PD) 24 (17.9%) 16 (11.9%) 33 (25.0%) \n 95% CI (Wald, with correction) (11.05, 24.78) (6.08, 17.80) (17.23, 32.77)\nNot Evaluable (NE) 1 (0.7%) 12 (9.0%) 5 (3.8%) \n 95% CI (Wald, with correction) (0.00, 2.58) (3.75, 14.16) (0.15, 7.42) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe confidence level is controlled by the conf_level parameter to the estimation functions. Similarly, the methods for tests and confidence interval can be modified (see ?estimate_proportion_diff).\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeconf_level <- 0.90\nlyt_03 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n estimate_proportion(\n vars = \"is_rsp\",\n conf_level = conf_level,\n method = \"clopper-pearson\",\n table_names = \"est_prop\"\n ) %>%\n estimate_proportion_diff(\n vars = \"is_rsp\",\n show_labels = \"visible\",\n var_labels = \"Unstratified Analysis\",\n conf_level = conf_level,\n method = \"ha\",\n table_names = \"est_prop_diff\"\n ) %>%\n test_proportion_diff(\n vars = \"is_rsp\",\n method = \"fisher\",\n table_names = \"test_prop\"\n ) %>%\n estimate_odds_ratio(\n vars = \"is_rsp\",\n conf_level = conf_level,\n table_names = \"est_or\"\n ) %>%\n estimate_multinomial_response(\n var = \"rsp_lab\",\n conf_level = conf_level,\n method = \"clopper-pearson\"\n )\n\nresult <- build_table(lyt = lyt_03, df = anl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————————\nResponders 100 (74.6%) 84 (62.7%) 81 (61.4%) \n90% CI (Clopper-Pearson) (67.7, 80.7) (55.3, 69.7) (53.9, 68.5) \nUnstratified Analysis \n Difference in Response rate (%) -11.9 -13.3 \n 90% CI (Anderson-Hauck) (-21.6, -2.3) (-23.0, -3.5) \n p-value (Fisher's Exact Test) 0.0479 0.0253 \nOdds Ratio (90% CI) 0.57 (0.37 - 0.89) 0.54 (0.35 - 0.84)\nComplete Response (CR) 60 (44.8%) 47 (35.1%) 57 (43.2%) \n 90% CI (Clopper-Pearson) (37.48, 52.25) (28.22, 42.43) (35.88, 50.71) \nPartial Response (PR) 40 (29.9%) 37 (27.6%) 24 (18.2%) \n 90% CI (Clopper-Pearson) (23.36, 37.02) (21.31, 34.67) (12.87, 24.61) \nStable Disease (SD) 9 (6.7%) 22 (16.4%) 13 (9.8%) \n 90% CI (Clopper-Pearson) (3.55, 11.43) (11.38, 22.61) (5.92, 15.20) \nProgressive Disease (PD) 24 (17.9%) 16 (11.9%) 33 (25.0%) \n 90% CI (Clopper-Pearson) (12.67, 24.25) (7.63, 17.57) (18.90, 31.97) \nNot Evaluable (NE) 1 (0.7%) 12 (9.0%) 5 (3.8%) \n 90% CI (Clopper-Pearson) (0.04, 3.49) (5.25, 14.11) (1.50, 7.80) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nThe stratified analysis section can be added by defining the analyses needed with control_binary_comparison for the argument strat_analysis and identifying the stratification variables to use.\n\nCodestrata <- \"STRATA1\"\nlyt_04 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n estimate_proportion(\n vars = \"is_rsp\",\n table_names = \"est_prop\"\n ) %>%\n estimate_proportion_diff(\n vars = \"is_rsp\",\n show_labels = \"visible\",\n var_labels = \"Unstratified Analysis\",\n table_names = \"est_prop_diff\"\n ) %>%\n test_proportion_diff(\n vars = \"is_rsp\",\n table_names = \"test_prop\"\n ) %>%\n estimate_odds_ratio(\n vars = \"is_rsp\",\n table_names = \"est_or\"\n ) %>%\n estimate_proportion_diff(\n vars = \"is_rsp\",\n show_labels = \"visible\",\n var_labels = \"Stratified Analysis\",\n method = \"cmh\",\n variables = list(strata = strata),\n table_names = \"est_prop_diff_strat\"\n ) %>%\n test_proportion_diff(\n vars = \"is_rsp\",\n method = \"cmh\",\n variables = list(strata = strata),\n table_names = \"test_prop_strat\"\n ) %>%\n estimate_odds_ratio(\n vars = \"is_rsp\",\n variables = list(strata = strata, arm = \"ARM\"),\n table_names = \"est_or_strat\"\n ) %>%\n estimate_multinomial_response(var = \"rsp_lab\")\n\nresult <- build_table(lyt = lyt_04, df = anl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————\nResponders 100 (74.6%) 84 (62.7%) 81 (61.4%) \n95% CI (Wald, with correction) (66.9, 82.4) (54.1, 71.2) (52.7, 70.0) \nUnstratified Analysis \n Difference in Response rate (%) -11.9 -13.3 \n 95% CI (Wald, with correction) (-23.7, -0.2) (-25.1, -1.4) \n p-value (Chi-Squared Test) 0.0351 0.0204 \nOdds Ratio (95% CI) 0.57 (0.34 - 0.96) 0.54 (0.32 - 0.91)\nStratified Analysis \n Difference in Response rate (%) -11.9 -13.5 \n 95% CI (CMH, without correction) (-22.7, -1.0) (-24.5, -2.5) \n p-value (Cochran-Mantel-Haenszel Test) 0.0366 0.0180 \nOdds Ratio (95% CI) 0.57 (0.34 - 0.96) 0.54 (0.32 - 0.90)\nComplete Response (CR) 60 (44.8%) 47 (35.1%) 57 (43.2%) \n 95% CI (Wald, with correction) (35.98, 53.57) (26.62, 43.53) (34.35, 52.01) \nPartial Response (PR) 40 (29.9%) 37 (27.6%) 24 (18.2%) \n 95% CI (Wald, with correction) (21.73, 37.97) (19.67, 35.55) (11.22, 25.14) \nStable Disease (SD) 9 (6.7%) 22 (16.4%) 13 (9.8%) \n 95% CI (Wald, with correction) (2.11, 11.33) (9.77, 23.06) (4.39, 15.31) \nProgressive Disease (PD) 24 (17.9%) 16 (11.9%) 33 (25.0%) \n 95% CI (Wald, with correction) (11.05, 24.78) (6.08, 17.80) (17.23, 32.77) \nNot Evaluable (NE) 1 (0.7%) 12 (9.0%) 5 (3.8%) \n 95% CI (Wald, with correction) (0.00, 2.58) (3.75, 14.16) (0.15, 7.42) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe definition of responders is realized during the pre-processing step. The layout does not need to be modified and can be reused.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- anl_adsl %>%\n left_join(anl_adrs, by = c(\"STUDYID\", \"USUBJID\")) %>%\n mutate(rsp_lab = d_onco_rsp_label(AVALC)) %>%\n mutate(is_rsp = AVALC == \"CR\") %>%\n mutate(ARM = relevel(ARM, ref = \"A: Drug X\")) %>%\n var_relabel(ARM = \"Description of Planned Arm\")\n\nresult <- build_table(lyt = lyt_01, df = anl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————\nResponders 60 (44.8%) 47 (35.1%) 57 (43.2%) \n95% CI (Wald, with correction) (36.0, 53.6) (26.6, 43.5) (34.4, 52.0) \nUnstratified Analysis \n Difference in Response rate (%) -9.7 -1.6 \n 95% CI (Wald, with correction) (-22.1, 2.7) (-14.3, 11.1) \n p-value (Chi-Squared Test) 0.1049 0.7934 \nOdds Ratio (95% CI) 0.67 (0.41 - 1.09) 0.94 (0.58 - 1.52)\nComplete Response (CR) 60 (44.8%) 47 (35.1%) 57 (43.2%) \n 95% CI (Wald, with correction) (35.98, 53.57) (26.62, 43.53) (34.35, 52.01) \nPartial Response (PR) 40 (29.9%) 37 (27.6%) 24 (18.2%) \n 95% CI (Wald, with correction) (21.73, 37.97) (19.67, 35.55) (11.22, 25.14) \nStable Disease (SD) 9 (6.7%) 22 (16.4%) 13 (9.8%) \n 95% CI (Wald, with correction) (2.11, 11.33) (9.77, 23.06) (4.39, 15.31) \nProgressive Disease (PD) 24 (17.9%) 16 (11.9%) 33 (25.0%) \n 95% CI (Wald, with correction) (11.05, 24.78) (6.08, 17.80) (17.23, 32.77) \nNot Evaluable (NE) 1 (0.7%) 12 (9.0%) 5 (3.8%) \n 95% CI (Wald, with correction) (0.00, 2.58) (3.75, 14.16) (0.15, 7.42) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSimilarly to in the previous tab, redefinition or relabeling of the result is a pre-processing step and the original table layout can be reused.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- anl_adsl %>%\n left_join(anl_adrs, by = c(\"STUDYID\", \"USUBJID\")) %>%\n mutate(rsp_lab = as.character(d_onco_rsp_label(AVALC))) %>%\n mutate(\n rsp_lab = case_when(\n rsp_lab == \"Complete Response (CR)\" ~ \"No Progression\",\n rsp_lab == \"Partial Response (PR)\" ~ \"No Progression\",\n rsp_lab == \"Stable Disease (SD)\" ~ \"No Progression\",\n TRUE ~ rsp_lab\n )\n ) %>%\n mutate(is_rsp = rsp_lab %in% \"No Progression\") %>%\n mutate(ARM = relevel(ARM, ref = \"A: Drug X\")) %>%\n var_relabel(ARM = \"Description of Planned Arm\")\n\nresult <- build_table(lyt = lyt_01, df = anl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————\nResponders 109 (81.3%) 106 (79.1%) 94 (71.2%) \n95% CI (Wald, with correction) (74.4, 88.3) (71.8, 86.4) (63.1, 79.3) \nUnstratified Analysis \n Difference in Response rate (%) -2.2 -10.1 \n 95% CI (Wald, with correction) (-12.5, 8.0) (-21.0, 0.8) \n p-value (Chi-Squared Test) 0.6455 0.0520 \nOdds Ratio (95% CI) 0.87 (0.48 - 1.59) 0.57 (0.32 - 1.01)\nProgressive Disease (PD) 24 (17.9%) 16 (11.9%) 33 (25.0%) \n 95% CI (Wald, with correction) (11.05, 24.78) (6.08, 17.80) (17.23, 32.77) \nNo Progression 109 (81.3%) 106 (79.1%) 94 (71.2%) \n 95% CI (Wald, with correction) (74.37, 88.31) (71.85, 86.36) (63.11, 79.31) \nNot Evaluable (NE) 1 (0.7%) 12 (9.0%) 5 (3.8%) \n 95% CI (Wald, with correction) (0.00, 2.58) (3.75, 14.16) (0.15, 7.42) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadrs <- random.cdisc.data::cadrs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadrs <- df_explicit_na(adrs)\n\nanl_adrs <- adrs %>%\n filter(PARAMCD == \"INVET\") %>%\n select(STUDYID, USUBJID, PARAMCD, AVISIT, AVALC)\nanl_adsl <- adsl %>%\n select(STUDYID, USUBJID, ARM, STRATA1)", - "crumbs": [ - "Tables", - "Efficacy", - "RSPT01" - ] + "objectID": "CONTRIBUTING.html#issues", + "href": "CONTRIBUTING.html#issues", + "title": "", + "section": "Issues", + "text": "Issues\nWe use GitHub to track issues, feature requests, and bugs. Before submitting a new issue, please check if the issue has already been reported. If the issue already exists, please upvote the existing issue 👍.\nFor new feature requests, please elaborate on the context and the benefit the feature will have for users, developers, or other relevant personas." }, { - "objectID": "tables/efficacy/rspt01.html#teal-app", - "href": "tables/efficacy/rspt01.html#teal-app", - "title": "RSPT01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADRS <- df_explicit_na(ADRS)\n\n ADSL <- ADSL %>%\n mutate(Dum_ARM = factor(rep(\"Single ARM\", nrow(.))))\n ADRS <- ADRS %>%\n mutate(Dum_ARM = factor(rep(\"Single ARM\", nrow(.))))\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_binary_outcome(\n label = \"Responders\",\n dataname = \"ADRS\",\n paramcd = choices_selected(\n choices = value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n selected = \"BESRSPI\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADRS, c(\"ARM\", \"ARMCD\", \"ACTARMCD\", \"Dum_ARM\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n strata_var = choices_selected(\n choices = variable_choices(ADRS, c(\"SEX\", \"BMRKR2\")),\n select = NULL\n ),\n rsp_table = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADRS <- df_explicit_na(ADRS)\n\n ADSL <- ADSL %>%\n mutate(Dum_ARM = factor(rep(\"Single ARM\", nrow(.))))\n ADRS <- ADRS %>%\n mutate(Dum_ARM = factor(rep(\"Single ARM\", nrow(.))))\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_binary_outcome(\n label = \"Responders\",\n dataname = \"ADRS\",\n paramcd = choices_selected(\n choices = value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n selected = \"BESRSPI\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADRS, c(\"ARM\", \"ARMCD\", \"ACTARMCD\", \"Dum_ARM\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n strata_var = choices_selected(\n choices = variable_choices(ADRS, c(\"SEX\", \"BMRKR2\")),\n select = NULL\n ),\n rsp_table = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", - "crumbs": [ - "Tables", - "Efficacy", - "RSPT01" - ] + "objectID": "CONTRIBUTING.html#pull-requests", + "href": "CONTRIBUTING.html#pull-requests", + "title": "", + "section": "Pull requests", + "text": "Pull requests\n\nGitHub Flow\nThis repository uses the GitHub Flow model for collaboration. To submit a pull request:\n\nCreate a branch\nPlease see the branch naming convention below. If you don’t have write access to this repository, please fork it.\nMake changes\nMake sure your code\n\npasses all checks imposed by GitHub Actions\nis well documented\nis well tested with unit tests sufficiently covering the changes introduced\n\nCreate a pull request (PR)\nIn the pull request description, please link the relevant issue (if any), provide a detailed description of the change, and include any assumptions.\nAddress review comments, if any\nPost approval\nMerge your PR if you have write access. Otherwise, the reviewer will merge the PR on your behalf.\nPat yourself on the back\nCongratulations! 🎉 You are now an official contributor to this project! We are grateful for your contribution.\n\n\n\nBranch naming convention\nSuppose your changes are related to a current issue in the current project; please name your branch as follows: <issue_id>_<short_description>. Please use underscore (_) as a delimiter for word separation. For example, 420_fix_ui_bug would be a suitable branch name if your change is resolving and UI-related bug reported in issue number 420 in the current project.\nIf your change affects multiple repositories, please name your branches as follows: <issue_id>_<issue_repo>_<short description>. For example, 69_awesomeproject_fix_spelling_error would reference issue 69 reported in project awesomeproject and aims to resolve one or more spelling errors in multiple (likely related) repositories.\n\n\nmonorepo and staged.dependencies\nSometimes you might need to change upstream dependent package(s) to be able to submit a meaningful change. We are using staged.dependencies functionality to simulate a monorepo behavior. The dependency configuration is already specified in this project’s staged_dependencies.yaml file. You need to name the feature branches appropriately. This is the only exception from the branch naming convention described above.\nPlease refer to the staged.dependencies package documentation for more details." }, { - "objectID": "tables/efficacy/rspt01.html#reproducibility", - "href": "tables/efficacy/rspt01.html#reproducibility", - "title": "RSPT01", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:40:07 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", - "crumbs": [ - "Tables", - "Efficacy", - "RSPT01" - ] + "objectID": "CONTRIBUTING.html#coding-guidelines", + "href": "CONTRIBUTING.html#coding-guidelines", + "title": "", + "section": "Coding guidelines", + "text": "Coding guidelines\nThis repository follows some unified processes and standards adopted by its maintainers to ensure software development is carried out consistently within teams and cohesively across other repositories.\n\nStyle guide\nThis repository follows the standard tidyverse style guide and uses lintr for lint checks. Customized lint configurations are available in this repository’s .lintr file.\n\n\nDependency management\nLightweight is the right weight. This repository follows tinyverse recommedations of limiting dependencies to minimum.\n\n\nDependency version management\nIf the code is not compatible with all (!) historical versions of a given dependenct package, it is required to specify minimal version in the DESCRIPTION file. In particular: if the development version requires (imports) the development version of another package - it is required to put abc (>= 1.2.3.9000).\n\n\nRecommended development environment & tools\n\nR & package versions\nWe continuously test our packages against the newest R version along with the most recent dependencies from CRAN and BioConductor. We recommend that your working environment is also set up in the same way. You can find the details about the R version and packages used in the R CMD check GitHub Action execution log - there is a step that prints out the R sessionInfo().\nIf you discover bugs on older R versions or with an older set of dependencies, please create the relevant bug reports.\n\n\npre-commit\nWe highly recommend that you use the pre-commit tool combined with R hooks for pre-commit to execute some of the checks before committing and pushing your changes.\nPre-commit hooks are already available in this repository’s .pre-commit-config.yaml file." }, { - "objectID": "graphs/pharmacokinetic/pkcg02.html#output", - "href": "graphs/pharmacokinetic/pkcg02.html#output", - "title": "PKCG02", + "objectID": "CONTRIBUTING.html#recognition-model", + "href": "CONTRIBUTING.html#recognition-model", + "title": "", + "section": "Recognition model", + "text": "Recognition model\nAs mentioned previously, all contributions are deeply valued and appreciated. While all contribution data is available as part of the repository insights, to recognize a significant contribution and hence add the contributor to the package authors list, the following rules are enforced:\n\nMinimum 5% of lines of code authored* (determined by git blame query) OR\nBeing at the top 5 contributors in terms of number of commits OR lines added OR lines removed*\n\n*Excluding auto-generated code, including but not limited to roxygen comments or renv.lock files.\nThe package maintainer also reserves the right to adjust the criteria to recognize contributions." + }, + { + "objectID": "CONTRIBUTING.html#questions", + "href": "CONTRIBUTING.html#questions", + "title": "", + "section": "Questions", + "text": "Questions\nIf you have further questions regarding the contribution guidelines, please contact the package/repository maintainer." + }, + { + "objectID": "listings/pharmacokinetic/pkpl04.html#output", + "href": "listings/pharmacokinetic/pkpl04.html#output", + "title": "PKPL04", "section": "Output", - "text": "Output\n\n\nPlot in Linear Scale\nPlot in Log Scale\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpc_a <- adpc %>%\n filter(\n PARAM == \"Plasma Drug X\",\n ARMCD == \"ARM A\"\n ) %>%\n mutate(Patient_ID = sub(\".*id-\", \"\", USUBJID)) %>%\n filter(Patient_ID %in% unique(Patient_ID)[1:10])\n\nuse_title1 <- \"Plot of X Concentration (ug/mL) Over Time by Treatment: \\nPK Evaluable Patients\"\nuse_subtitle1 <- \"Analyte: Plasma X (ug/mL) \\nTreatment Group: ARM A\"\nuse_footnote1 <- \"Program: \\nOutput:\"\n\nplot <- g_ipp(\n df = adpc_a,\n xvar = \"NFRLT\",\n yvar = \"AVAL\",\n xlab = \"Norminal Time from First Dose (hr)\",\n ylab = \"Concentration (ug/mL)\",\n id_var = \"Patient_ID\",\n add_baseline_hline = FALSE,\n yvar_baseline = \"AVAL\", # yvar_baseline cannot be NA or ignore\n title = use_title1,\n subtitle = use_subtitle1,\n caption = use_footnote1,\n plotting_choices = \"all_in_one\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpc_a <- adpc %>%\n filter(\n PARAM == \"Plasma Drug X\",\n ARMCD == \"ARM A\"\n ) %>%\n mutate(Patient_ID = sub(\".*id-\", \"\", USUBJID)) %>%\n mutate(avalog = ifelse(AVAL != 0, AVAL, 0.001)) %>%\n filter(Patient_ID %in% unique(Patient_ID)[1:10])\n\nuse_title3 <- \"Log-scale Plot of X Concentration (ug/mL) Over Time by Treatment: \\nPK Evaluable Patients\"\nuse_subtitle3 <- \"Analyte: Plasma X (ug/mL) \\nTreatment Group: ARM A\"\nuse_footnote3 <- \"Program: \\nOutput:\"\n\nresult <- g_ipp(\n df = adpc_a,\n xvar = \"NFRLT\",\n yvar = \"avalog\",\n xlab = \"Norminal Time from First Dose (hr)\",\n ylab = \"Concentration (ug/mL)\",\n id_var = \"Patient_ID\",\n add_baseline_hline = FALSE,\n yvar_baseline = \"AVAL\", # yvar_baseline cannot be NA or ignore\n title = use_title3,\n caption = use_footnote3,\n subtitle = use_subtitle3,\n plotting_choices = \"all_in_one\"\n)\nplot <- result + ggplot2::scale_y_log10(breaks = c(0.001, 0.01, 0.1, 1, 10), labels = c(0.001, 0.01, 0.1, 1, 10))\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\n\nadpc <- random.cdisc.data::cadpc", + "text": "Output\n\n\nStandard Listing - CYCLE 1 DAY 1\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = \"USUBJID\",\n disp_cols = names(out),\n main_title = paste0(\n \"Listing of Individual \", drug_a, \" \", paste(unique(adpp_x$PARAM), collapse = \" and \"), \" Ratios following \",\n unique(adpp_x$REGIMEN), \" \", paste(drug_a, drug_b, sep = \" or \"), \", PK Population\\nProtocol: xxnnnnn\",\n \"\\nVisit: \", unique(adpp_x$AVISIT)\n ),\n subtitles = paste0(\"\\nAnalytes: \", paste(drug_a, drug_b, sep = \" and \"))\n)\n\nhead(lsting, 20)\n\nListing of Individual Plasma Drug X AUC Infinity Obs and Max Conc Ratios following BID Plasma Drug X or Plasma Drug Y, PK Population\nProtocol: xxnnnnn\nVisit: CYCLE 1 DAY 1\n\nAnalytes: Plasma Drug X and Plasma Drug Y\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n AUC Infinity Obs (day*ug/mL) AUC Infinity Obs (day*ug/mL) AUC Infinity Obs (day*ug/mL) Max Conc (ug/mL) Max Conc (ug/mL) Max Conc (ug/mL) \n Subject ID Plasma Drug X Plasma Drug Y Plasma Drug X/Plasma Drug Y Plasma Drug X Plasma Drug Y Plasma Drug X/Plasma Drug Y\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAB12345-BRA-1-id-105 246.349321001289 NA NA 31.2264481880236 NA NA \nAB12345-BRA-1-id-134 248.519038520728 NA NA 21.7795763901966 NA NA \nAB12345-BRA-1-id-141 204.038850147211 191.797779791421 1.06382279486812 29.5409649407056 38.8911230490524 0.759581174949522 \nAB12345-BRA-1-id-265 196.360864588266 218.652833415662 0.898048570973609 35.6328283094637 34.2215467219396 1.04123956170044 \n AB12345-BRA-1-id-42 210.528307366678 NA NA 26.7845825535397 NA NA \n AB12345-BRA-1-id-93 160.406798051843 NA NA 17.5296885232566 NA NA \nAB12345-BRA-11-id-171 217.543269983548 180.798322952882 1.20323721166508 30.3782220474834 31.615072576154 0.960877820992148 \nAB12345-BRA-11-id-217 272.094354596647 NA NA 34.2812274648873 NA NA \nAB12345-BRA-11-id-237 148.094218281784 193.694022424355 0.764578154907287 32.9103242471385 38.7385450224575 0.849549827647366 \nAB12345-BRA-11-id-321 206.178847103577 216.464946980475 0.95248145244585 33.0064256549217 28.4783979285037 1.1589986816599 \nAB12345-BRA-11-id-345 228.51025073098 NA NA 39.7523164840323 NA NA \nAB12345-BRA-11-id-397 201.536920713046 NA NA 36.5841424116449 NA NA \nAB12345-BRA-11-id-50 189.012389008811 NA NA 21.1977400008473 NA NA \n AB12345-BRA-11-id-9 235.477941027941 207.851453783084 1.13291457308587 27.1559637630099 28.2923295654501 0.959834844995305 \nAB12345-BRA-13-id-177 185.956676853099 NA NA 31.0405525087113 NA NA \nAB12345-BRA-14-id-120 209.878908685802 301.584778421544 0.695920098435608 31.8076450080362 22.9229189133965 1.38759139393227 \nAB12345-BRA-14-id-23 270.799396057463 NA NA 29.2804222629517 NA NA \nAB12345-BRA-15-id-36 183.877364155027 NA NA 37.9405096212457 NA NA \nAB12345-BRA-2-id-296 216.092875093089 NA NA 27.3509307000219 NA NA \nAB12345-BRA-4-id-368 203.23438144437 149.30280248041 1.36122281744199 38.3952821076341 30.8121148640987 1.24610992387189 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadpp <- random.cdisc.data::cadpp\n\nvisit <- \"CYCLE 1 DAY 1\"\ndrug_a <- \"Plasma Drug X\" # numerator drug\ndrug_b <- \"Plasma Drug Y\" # denominator drug\n\nadpp_x <- adpp %>%\n filter(\n AVISIT == visit,\n PPCAT %in% c(drug_a, drug_b),\n PARAMCD %in% c(\"CMAX\", \"AUCIFO\")\n ) %>%\n mutate(\n PARAM_U = paste0(PARAM, \" (\", AVALU, \")\")\n )\n\nadpp_ratio <- adpp_x %>%\n tidyr::pivot_wider(\n id_cols = c(USUBJID, PARAM_U),\n names_from = PPCAT,\n values_from = AVAL\n )\n\nadpp_ratio[, paste0(drug_a, \"/\", drug_b)] <- as.numeric(unlist(adpp_ratio[, drug_a] / adpp_ratio[, drug_b]))\n\nout <- adpp_ratio %>%\n tidyr::pivot_wider(\n id_cols = USUBJID,\n names_from = PARAM_U,\n names_glue = \"{PARAM_U}\\n{.value}\",\n values_from = c(all_of(drug_a), all_of(drug_b), paste0(drug_a, \"/\", drug_b))\n ) %>%\n select(names(.)[c(1:2, 4, 6, 3, 5, 7)])\n\nvar_labels(out) <- names(out)\nout <- out %>% var_relabel(USUBJID = \"Subject ID\")", "crumbs": [ - "Graphs", + "Listings", "Pharmacokinetic", - "PKCG02" + "PKPL04" ] }, { - "objectID": "graphs/pharmacokinetic/pkcg02.html#reproducibility", - "href": "graphs/pharmacokinetic/pkcg02.html#reproducibility", - "title": "PKCG02", + "objectID": "listings/pharmacokinetic/pkpl04.html#reproducibility", + "href": "listings/pharmacokinetic/pkpl04.html#reproducibility", + "title": "PKPL04", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:39:34 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:38:21 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", + "Listings", "Pharmacokinetic", - "PKCG02" + "PKPL04" ] }, { - "objectID": "graphs/pharmacokinetic/pkcg03.html#output", - "href": "graphs/pharmacokinetic/pkcg03.html#output", - "title": "PKCG03", + "objectID": "listings/pharmacokinetic/pkpl02.html#output", + "href": "listings/pharmacokinetic/pkpl02.html#output", + "title": "PKPL02", "section": "Output", - "text": "Output\n\n\nPlot in Linear Scale\nPlot in Log Scale\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeuse_title <- \"Plot of Mean (+/- SD) Plasma Concentrations Over Time by Treatment, \\nPK Evaluable Patients\"\nuse_subtitle <- \"Analyte:\"\nuse_footnote <- \"Program: \\nOutput:\"\n\nresult <- g_lineplot(\n df = adpc,\n variables = control_lineplot_vars(\n x = \"NFRLT\",\n y = \"AVAL\",\n group_var = \"ARM\",\n paramcd = \"PARAM\",\n y_unit = \"AVALU\",\n subject_var = \"USUBJID\"\n ),\n alt_counts_df = adsl_f,\n y_lab = \"Concentration\",\n y_lab_add_paramcd = FALSE,\n y_lab_add_unit = TRUE,\n interval = \"mean_sdi\",\n whiskers = c(\"mean_sdi_lwr\", \"mean_sdi_upr\"),\n title = use_title,\n subtitle = use_subtitle,\n caption = use_footnote,\n ggtheme = theme_nest()\n)\n\nplot <- result + theme(plot.caption = element_text(hjust = 0))\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeuse_title <- \"Plot of Mean (+/- SD) Log-Scale Plasma Concentrations Over Time by Treatment, \\nPK Evaluable Patients\"\nuse_subtitle <- \"Analyte:\"\nuse_footnote <- \"Program: \\nOutput:\"\n\nadpc <- adpc %>%\n mutate(avalog = ifelse(AVAL != 0, AVAL, 0.001))\n\nresult <- g_lineplot(\n df = adpc,\n variables = control_lineplot_vars(\n x = \"NFRLT\",\n y = \"avalog\",\n group_var = \"ARM\",\n paramcd = \"PARAM\",\n y_unit = \"AVALU\",\n subject_var = \"USUBJID\"\n ),\n alt_counts_df = adsl_f,\n y_lab = \"Concentration\",\n y_lab_add_paramcd = FALSE,\n y_lab_add_unit = TRUE,\n interval = \"mean_sdi\",\n whiskers = c(\"mean_sdi_lwr\", \"mean_sdi_upr\"),\n title = use_title,\n subtitle = use_subtitle,\n caption = use_footnote,\n ggtheme = theme_nest()\n)\n\nplot <- result + theme(plot.caption = element_text(hjust = 0)) +\n ggplot2::scale_y_log10(breaks = c(0.001, 0.01, 0.1, 1, 10), labels = c(0.001, 0.01, 0.1, 1, 10))\n\nScale for y is already present.\nAdding another scale for y, which will replace the existing scale.\n\nCodeplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\n\nadsl_f <- random.cdisc.data::cadsl %>%\n filter(SAFFL == \"Y\" & ARM != \"B: Placebo\") %>%\n df_explicit_na()\n\nadpc <- random.cdisc.data::cadpc %>%\n mutate(Patient_ID = sub(\".*id-\", \"\", USUBJID)) %>%\n filter(PARAM == \"Plasma Drug X\") %>%\n droplevels() %>%\n df_explicit_na()", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"USUBJID\", \"AVISIT\"),\n disp_cols = names(out),\n main_title = paste(\"Listing of\", drug_a, spec, \"PK Parameters, PK Population\\nProtocol: xxnnnnn\"),\n subtitles = paste(\"Analyte:\", drug_a)\n)\n\nhead(lsting, 20)\n\nListing of Plasma Drug X Urine PK Parameters, PK Population\nProtocol: xxnnnnn\nAnalyte: Plasma Drug X\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Group Subject ID Visit Renal CL (L/hr) Renal CL Norm by Dose (L/hr/mg) Amt Rec from T1 to T2 (mg) Pct Rec from T1 to T2 (%)\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X AB12345-BRA-1-id-105 SCREENING 0.0538423152160391 0.00441769893771616 2.15210785813109 17.8220657702531 \n CYCLE 1 DAY 1 0.0480828455497337 0.00418360874479016 1.77968465488986 13.4821873677008 \n CYCLE 1 DAY 2 0.0524191320174391 0.00574562025709617 1.7751362634173 11.7748899262287 \n AB12345-BRA-1-id-134 SCREENING 0.054828756388858 0.00489378524965625 1.69069405572207 14.6782255303037 \n CYCLE 1 DAY 1 0.0463628883891636 0.00281388401660215 1.03364773182262 15.2049132671477 \n CYCLE 1 DAY 2 0.0542853013687975 0.00480239019141706 2.07978470495693 16.6499332185177 \n AB12345-BRA-1-id-42 SCREENING 0.0479776607513692 0.00620670551445586 1.49259200502984 12.4632371401908 \n CYCLE 1 DAY 1 0.060136833920038 0.00423749524975822 2.002399829348 16.1228873656652 \n CYCLE 1 DAY 2 0.0222050225259149 0.0041513339034891 1.65173021070619 10.129985981426 \n AB12345-BRA-1-id-93 SCREENING 0.0429283028076499 0.00450841008626937 0.882348047230192 19.8088728992851 \n CYCLE 1 DAY 1 0.0343747382858835 0.00495342578722049 1.73500915591676 14.8733500411057 \n CYCLE 1 DAY 2 0.0474831008867497 0.00415970555107753 1.30298887256052 14.9616973312841 \n AB12345-BRA-11-id-217 SCREENING 0.0524432563610182 0.00439177770746837 1.16344390767412 16.584779611686 \n CYCLE 1 DAY 1 0.0411628011374518 0.00567801310981526 1.11763922430636 19.3000982041101 \n CYCLE 1 DAY 2 0.0672581292323284 0.00400060865194939 1.45655867480937 10.1596117673893 \n AB12345-BRA-11-id-345 SCREENING 0.044070189259969 0.00561835429596993 1.43739076299198 15.4875095868721 \n CYCLE 1 DAY 1 0.0362275034574886 0.0038765297501434 0.96604915921 17.1567306808389 \n CYCLE 1 DAY 2 0.0416331541840018 0.00462187415243145 1.27070193721417 19.2547757988484 \n AB12345-BRA-11-id-397 SCREENING 0.0379747899730378 0.0047876948377162 1.67729762147252 11.6015615292251 \n CYCLE 1 DAY 1 0.0430467407701829 0.00463308440642305 1.1695965192594 12.5511219923965 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\ndrug_a <- \"Plasma Drug X\"\nspec <- \"Urine\"\n\nadpp <- random.cdisc.data::cadpp\nadpp_x <- adpp %>% filter(\n PPCAT == drug_a,\n PPSPEC == spec\n)\n\nout <- adpp_x %>%\n mutate(PARAM = paste0(PARAM, \" (\", AVALU, \")\")) %>%\n select(TRT01A, USUBJID, AVISIT, PARAM, AVAL) %>%\n unique() %>%\n tidyr::pivot_wider(\n id_cols = c(TRT01A, USUBJID, AVISIT),\n names_from = PARAM,\n values_from = AVAL\n )\n\nvar_labels(out) <- names(out)\nout <- out %>% var_relabel(\n TRT01A = \"Treatment Group\",\n USUBJID = \"Subject ID\",\n AVISIT = \"Visit\"\n)", "crumbs": [ - "Graphs", + "Listings", "Pharmacokinetic", - "PKCG03" + "PKPL02" ] }, { - "objectID": "graphs/pharmacokinetic/pkcg03.html#reproducibility", - "href": "graphs/pharmacokinetic/pkcg03.html#reproducibility", - "title": "PKCG03", + "objectID": "listings/pharmacokinetic/pkpl02.html#reproducibility", + "href": "listings/pharmacokinetic/pkpl02.html#reproducibility", + "title": "PKPL02", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:39:20 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:38:12 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", + "Listings", "Pharmacokinetic", - "PKCG03" + "PKPL02" ] }, { - "objectID": "graphs/pharmacokinetic/pkpg03.html#output", - "href": "graphs/pharmacokinetic/pkpg03.html#output", - "title": "PKPG03", + "objectID": "listings/pharmacokinetic/pkcl01.html#output", + "href": "listings/pharmacokinetic/pkcl01.html#output", + "title": "PKCL01", "section": "Output", - "text": "Output\n\n\nPlot of CMAX by Visit\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# filtered parameter\nadpp <- adpp %>% filter(PARAMCD == \"CMAX\", PPSPEC == \"Plasma\")\n\nuse_title <- paste0(\"Boxplot of \", as.character(unique(adpp$PARAM)), \" by Visit\")\nuse_subtitle <- paste0(\n \"Analyte:\\nPK Parameter: \",\n as.character(unique(adpp$PARAM)),\n \" (\",\n as.character(unique(adpp$AVALU)),\n \")\"\n)\nuse_footnote <- \"Program: \\nOutput:\"\n\nplot <- ggplot(adpp, aes(x = AVISIT, y = AVAL, fill = ACTARM)) +\n geom_boxplot(outlier.size = 2) +\n stat_boxplot(geom = \"errorbar\") +\n stat_summary(geom = \"point\", fun = \"mean\", col = \"black\", size = 5, shape = 8, position = position_dodge(0.75)) +\n geom_text(\n data = . %>% dplyr::group_by(AVISIT, ACTARM) %>% dplyr::filter(AVAL %in% boxplot.stats(AVAL)$out),\n aes(x = AVISIT, y = AVAL, label = SUBJID, color = ACTARM),\n size = 3, hjust = -0.2, position = position_dodge(0.75)\n ) +\n labs(\n title = use_title,\n subtitle = use_subtitle,\n caption = use_footnote,\n x = \"Visit\",\n y = paste0(as.character(unique(adpp$PARAM)), \" (\", as.character(unique(adpp$AVALU)), \")\")\n ) +\n theme(plot.caption = element_text(hjust = 0)) +\n theme_nest()\n\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\n\nadpp <- random.cdisc.data::cadpp", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"ARM\", \"USUBJID\", \"VISIT\"),\n disp_cols = names(out),\n main_title = paste(\n \"Listing of\",\n analyte,\n \"Concentration by Treatment Group, Subject and Nominal Time, PK Population\\nProtocol: xxnnnnn\"\n ),\n subtitles = paste(\"Analyte:\", analyte)\n)\n\nhead(lsting, 20)\n\nListing of Plasma Drug X Concentration by Treatment Group, Subject and Nominal Time, PK Population\nProtocol: xxnnnnn\nAnalyte: Plasma Drug X\n\n———————————————————————————————————————————————————————————————————————————————————————————————\n Actual Time \n Nominal Sampling From First Concentration\nTreatment Group Subject ID Visit Time (hr) Dose (hr) (ug/mL) \n———————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X AB12345-BRA-1-id-105 Day 1 0 0 0 \n 0.5 0.5 10.404 \n 1 1 13.987 \n 1.5 1.5 14.142 \n 2 2 12.744 \n 3 3 8.803 \n 4 4 5.461 \n 8 8 0.562 \n 12 12 0.049 \n Day 2 24 24 0 \n AB12345-BRA-1-id-134 Day 1 0 0 0 \n 0.5 0.5 14.405 \n 1 1 17.863 \n 1.5 1.5 16.613 \n 2 2 13.735 \n 3 3 7.923 \n 4 4 4.064 \n 8 8 0.178 \n 12 12 0.006 \n Day 2 24 24 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(rlistings)\nlibrary(dplyr)\n\nadpc <- random.cdisc.data::cadpc\n\nanalyte <- \"Plasma Drug X\"\n\nout <- adpc %>%\n filter(PARAM == analyte) %>%\n select(ARM, USUBJID, VISIT, NFRLT, AFRLT, AVAL)\n\nvar_labels(out) <- c(\n ARM = \"Treatment Group\",\n USUBJID = \"Subject ID\",\n VISIT = \"Visit\",\n NFRLT = paste0(\"Nominal Sampling\\nTime (\", adpc$RELTMU[1], \")\"),\n AFRLT = paste0(\"Actual Time\\nFrom First\\nDose (\", adpc$RELTMU[1], \")\"),\n AVAL = paste0(\"Concentration\\n(\", adpc$AVALU[1], \")\")\n)", "crumbs": [ - "Graphs", + "Listings", "Pharmacokinetic", - "PKPG03" + "PKCL01" ] }, { - "objectID": "graphs/pharmacokinetic/pkpg03.html#reproducibility", - "href": "graphs/pharmacokinetic/pkpg03.html#reproducibility", - "title": "PKPG03", + "objectID": "listings/pharmacokinetic/pkcl01.html#reproducibility", + "href": "listings/pharmacokinetic/pkcl01.html#reproducibility", + "title": "PKCL01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:39:05 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:38:03 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", + "Listings", "Pharmacokinetic", - "PKPG03" + "PKCL01" ] }, { - "objectID": "graphs/pharmacokinetic/pkpg06.html#output", - "href": "graphs/pharmacokinetic/pkpg06.html#output", - "title": "PKPG06", + "objectID": "listings/ECG/egl01.html#output", + "href": "listings/ECG/egl01.html#output", + "title": "EGL01", "section": "Output", - "text": "Output\n\n\nPlot with Whiskers at ±1.5 Times Inter-Quartile Range\nPlot with Whiskers at Minimum and Maximum Values\nPlot with Whiskers at 5th and 95th Percentiles\nData Setup\n\n\n\nDrug X Boxplot\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- ggplot(anl_x, aes(x = PARAMCD, y = ratio, fill = ACTARM)) +\n geom_boxplot(outlier.size = 2) +\n stat_boxplot(geom = \"errorbar\") +\n stat_summary(\n geom = \"point\",\n fun = \"mean\",\n col = \"black\",\n size = 5,\n shape = 8,\n position = position_dodge(0.75)\n ) +\n geom_text(\n data = . %>% dplyr::group_by(PARAMCD, ACTARM) %>% dplyr::filter(ratio %in% boxplot.stats(ratio)$out),\n aes(x = PARAMCD, y = ratio, label = USUBJID, col = ACTARM),\n size = 3,\n hjust = -0.2,\n position = position_dodge(0.75),\n show.legend = FALSE\n ) +\n labs(\n title = \"Boxplot of Metabolite to Parent Ratios by Treatment\",\n subtitle = paste0(\n \"Analyte: Plasma Drug X, Metabolite Drug X \",\n \"\\nPK Parameter: \",\n as.character(paste(unique(anl_x$PARAMCD), collapse = \", \")),\n \"\\nVisit: \",\n as.character((unique(anl_x$AVISIT)))\n ),\n caption = \"Program: \\nOutput:\",\n x = \"Parameter\",\n y = \"Metabolite to Parent Ratio\"\n ) +\n theme(plot.caption = element_text(hjust = 0)) +\n theme_nest()\n\n# PKPG06\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nDrug Y Boxplot\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- ggplot(anl_y, aes(x = PARAMCD, y = ratio, fill = ACTARM)) +\n geom_boxplot(outlier.size = 2) +\n stat_boxplot(geom = \"errorbar\") +\n stat_summary(\n geom = \"point\",\n fun = \"mean\",\n col = \"black\",\n size = 5,\n shape = 8,\n position = position_dodge(0.75)\n ) +\n geom_text(\n data = . %>% dplyr::group_by(PARAMCD, ACTARM) %>% dplyr::filter(ratio %in% boxplot.stats(ratio)$out),\n aes(x = PARAMCD, y = ratio, label = USUBJID, color = ACTARM),\n size = 3,\n hjust = -0.2,\n position = position_dodge(0.75),\n show.legend = FALSE\n ) +\n labs(\n title = \"Boxplot of Metabolite to Parent Ratios by Treatment\",\n subtitle = paste0(\n \"Analyte: Plasma Drug Y, Metabolite Drug Y \",\n \"\\nPK Parameter: \",\n as.character(paste(unique(anl_y$PARAMCD), collapse = \", \")),\n \"\\nVisit: \",\n as.character((unique(anl_y$AVISIT)))\n ),\n caption = \"Program: \\nOutput:\",\n x = \"Parameter\",\n y = \"Metabolite to Parent Ratio\"\n ) +\n theme(plot.caption = element_text(hjust = 0)) +\n theme_nest()\n\n# result\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# whiskers are formed with the minimum and maximum values\nplot <- ggplot(anl_x, aes(x = PARAMCD, y = ratio, fill = ACTARM)) +\n geom_boxplot(outlier.size = 0) +\n stat_boxplot(geom = \"errorbar\", coef = NULL) +\n stat_summary(geom = \"point\", fun = \"mean\", col = \"black\", size = 5, shape = 8, position = position_dodge(0.75)) +\n labs(\n title = \"Boxplot of Metabolite to Parent Ratios by Treatment\",\n subtitle = paste0(\n \"Analyte: Plasma Drug X, Metabolite Drug X \",\n \"\\nPK Parameter: \",\n as.character(paste(unique(anl_x$PARAMCD), collapse = \", \")),\n \"\\nVisit: \",\n as.character((unique(anl_x$AVISIT)))\n ),\n caption = \"Program:\\nOutput:\",\n x = \"Parameter\",\n y = \"Metabolite to Parent Ratio\"\n ) +\n theme(plot.caption = element_text(hjust = 0)) +\n theme_nest()\n\n# result\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl_x_without_outliers <- anl_x %>%\n dplyr::group_by(PARAMCD, ACTARM) %>%\n dplyr::mutate(outlier = ifelse(outliers(ratio), ratio, as.numeric(NA)))\nplot <- ggplot(anl_x, aes(PARAMCD, ratio, fill = ACTARM, label = USUBJID)) +\n stat_summary(\n fun.data = quantiles, geom = \"boxplot\",\n position = position_dodge(1)\n ) +\n stat_summary(\n geom = \"point\",\n fun = \"mean\",\n col = \"black\",\n size = 5,\n shape = 8,\n position = position_dodge(1)\n ) +\n stat_summary(\n fun.data = quantiles, geom = \"errorbar\",\n position = position_dodge(1)\n ) +\n geom_point(\n data = anl_x_without_outliers,\n aes(x = PARAMCD, y = outlier),\n na.rm = TRUE,\n size = 2,\n position = position_dodge(1),\n show.legend = FALSE\n ) +\n geom_text(\n data = anl_x_without_outliers,\n aes(x = PARAMCD, y = outlier, label = USUBJID, color = ACTARM),\n na.rm = TRUE,\n size = 3,\n hjust = -0.2,\n vjust = 1,\n position = position_dodge(1),\n show.legend = FALSE\n ) +\n labs(\n title = \"Boxplot of Metabolite to Parent Ratios by Treatment\",\n subtitle = paste0(\n \"Analyte: Plasma Drug X, Metabolite Drug X \",\n \"\\nPK Parameter: \",\n as.character(paste(unique(anl_x$PARAMCD), collapse = \", \")),\n \"\\nVisit: \",\n as.character((unique(anl_x$AVISIT)))\n ),\n caption = \"Program: \\nOutput:\",\n x = \"Parameter\",\n y = \"Metabolite to Parent Ratio\"\n ) +\n theme(plot.caption = element_text(hjust = 0)) +\n theme_nest()\n\n# result\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(ggplot2)\nlibrary(tidyr)\nlibrary(tern)\nlibrary(nestcolor)\n\nadpp <- random.cdisc.data::cadpp\n\n# Filter NAs\nadpp <- adpp %>%\n filter(PPSPEC != \"NA\" & PARAM != \"NA\" & PPCAT != \"NA\") %>%\n filter(PARAMCD == \"CMAX\" | PARAMCD == \"AUCIFO\", AVISITN == 1)\n\n# filter data by PPCAT and calculate ratio\nanl_x <- adpp %>%\n filter(PPCAT %in% c(\"Metabolite Drug X\", \"Plasma Drug X\")) %>%\n pivot_wider(\n id_cols = c(USUBJID, ACTARM, PARAMCD, AVISIT),\n names_from = PPCAT,\n values_from = AVAL\n ) %>%\n dplyr::mutate(ratio = `Metabolite Drug X` / `Plasma Drug X`) %>%\n filter(!is.na(ratio), ratio != Inf)\n\nanl_y <- adpp %>%\n filter(PPCAT %in% c(\"Metabolite Drug Y\", \"Plasma Drug Y\")) %>%\n pivot_wider(\n id_cols = c(USUBJID, ACTARM, PARAMCD, AVISIT),\n names_from = PPCAT,\n values_from = AVAL\n ) %>%\n dplyr::mutate(ratio = `Metabolite Drug Y` / `Plasma Drug Y`) %>%\n filter(!is.na(ratio), ratio != Inf)\n\n# functions to calculate custom quantiles and outliers\nquantiles <- function(x) {\n quant <- quantile(x, probs = c(0.05, 0.25, 0.5, 0.75, 0.95))\n names(quant) <- c(\"ymin\", \"lower\", \"middle\", \"upper\", \"ymax\")\n quant\n}\n\noutliers <- function(x) {\n return(x < quantile(x, 0.05) | x > quantile(x, 0.95))\n}", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"CRTNPT\", \"AGSXRC\", \"AVISIT\", \"ADY\"),\n disp_cols = names(out),\n main_title = \"Listing of ECG Data: Safety-Evaluable Patients\",\n main_footer = \"Baseline is the patient's last observation prior to initiation of study drug. Abnormalities are flagged as high (H) or low (L) if outside the Roche standard reference range.\" \n)\n\nhead(lsting, 20)\n\nListing of ECG Data: Safety-Evaluable Patients\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Heart Rate Result QT Duration Result RR Duration Result \n Study (beats/min); Heart Rate (msec); QT Duration (msec); RR Duration \nTreatment Center/Subject ID Age/Sex/Race Visit Day Range:(40-100) Change from BL Range:(200-500) Change from BL Range:(600-1500) Change from BL\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/105 38/M/BLACK OR AFRICAN AMERICAN BASELINE 149 66.94 NA 441.78 NA 896.59 NA \n WEEK 1 DAY 8 314 63.18 -3.76 365.68 -76.10 1376.26 479.67 \n WEEK 2 DAY 15 398 57.57 -9.37 355.48 -86.29 799.57 -97.02 \n WEEK 3 DAY 22 470 73.36 6.42 352.45 -89.33 1015.00 118.41 \n WEEK 4 DAY 29 528 53.72 -13.22 388.42 -53.36 1189.29 292.70 \n WEEK 5 DAY 36 535 58.25 -8.69 291.77 -150.01 936.09 39.50 \n BRA-1/134 47/M/WHITE BASELINE 227 46.99 NA 385.29 NA 835.17 NA \n WEEK 1 DAY 8 255 48.38 1.39 453.74 68.46 901.86 66.68 \n WEEK 2 DAY 15 269 35.40/L -11.59 413.54 28.26 892.01 56.84 \n WEEK 3 DAY 22 357 60.50 13.51 394.23 8.95 490.18/L -344.99 \n WEEK 4 DAY 29 436 82.28 35.29 398.29 13.00 757.96 -77.21 \n WEEK 5 DAY 36 440 38.89/L -8.10 339.38 -45.91 880.26 45.08 \n BRA-1/42 36/M/BLACK OR AFRICAN AMERICAN BASELINE 477 56.19 NA 190.94/L NA 1276.65 NA \n WEEK 1 DAY 8 534 85.24 29.05 483.71 292.77 735.11 -541.54 \n WEEK 2 DAY 15 550 55.53 -0.66 386.60 195.66 1092.71 -183.94 \n WEEK 3 DAY 22 569 65.37 9.18 311.08 120.14 1227.15 -49.50 \n WEEK 4 DAY 29 608 65.13 8.93 329.78 138.83 250.18/L -1026.47 \n WEEK 5 DAY 36 675 49.03 -7.16 470.67 279.73 1321.21 44.56 \n BRA-1/93 34/F/ASIAN BASELINE 73 72.12 NA 306.64 NA 1324.80 NA \n WEEK 1 DAY 8 207 66.88 -5.24 190.50/L -116.14 1495.37 170.58 \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nBaseline is the patient's last observation prior to initiation of study drug. Abnormalities are flagged as high (H) or low (L) if outside the Roche standard reference range.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadeg <- random.cdisc.data::cadeg\n\nget_param_unit_range <- function(dataset) {\n u_rng <- lapply(unique(dataset$PARAMCD), function(p) {\n dat <- dataset %>% filter(PARAMCD == p)\n list(\n unit = unique(dat$AVALU),\n range = paste0(unique(dat$ANRLO), \"-\", unique(dat$ANRHI))\n )\n })\n names(u_rng) <- unique(dataset$PARAMCD)\n u_rng\n}\n\neg_u_rng <- get_param_unit_range(adeg)\n\nadeg_sub <- adeg %>%\n filter(!is.na(AVAL) & SAFFL == \"Y\" & ANL01FL == \"Y\" & !is.na(EGSEQ) & PARAMCD != \"ECGINTP\") %>%\n mutate(\n CRTNPT = paste(SITEID, sub(\"^.*-([[:alnum:]]+)$\", \"\\\\1\", SUBJID), sep = \"/\"),\n AGSXRC = paste(AGE, SEX, RACE, sep = \"/\"),\n AVAL = format(round(AVAL, 2), nsmall = 2),\n AVAL_ANRIND = ifelse(ANRIND %in% c(\"NORMAL\", \"\"), AVAL, paste(AVAL, substr(ANRIND, 1, 1), sep = \"/\")),\n CHG = format(round(CHG, 2), nsmall = 2)\n )\n\nanl_eg <- adeg_sub %>%\n select(SUBJID, CRTNPT, AGSXRC, TRT01A, PARAMCD, AVAL_ANRIND, CHG, ADY, AVISIT, ADTM) %>%\n tidyr::pivot_wider(\n id_cols = c(SUBJID, CRTNPT, AGSXRC, TRT01A, ADY, AVISIT, ADTM),\n names_from = PARAMCD,\n values_from = c(AVAL_ANRIND, CHG)\n )\n\nout <- anl_eg %>%\n select(\n CRTNPT,\n AGSXRC,\n TRT01A,\n AVISIT,\n ADY,\n AVAL_ANRIND_HR,\n CHG_HR,\n AVAL_ANRIND_QT,\n CHG_QT,\n AVAL_ANRIND_RR,\n CHG_RR\n ) %>%\n var_relabel(\n CRTNPT = \"Center/Subject ID\",\n AGSXRC = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n AVISIT = \"Visit\",\n ADY = \"Study\\nDay\",\n AVAL_ANRIND_HR = paste0(\"Heart Rate Result\\n(\", eg_u_rng$HR$unit, \");\\nRange:(\", eg_u_rng$HR$range, \")\"),\n CHG_HR = \"Heart Rate\\nChange from BL\",\n AVAL_ANRIND_QT = paste0(\"QT Duration Result\\n(\", eg_u_rng$QT$unit, \");\\nRange:(\", eg_u_rng$QT$range, \")\"),\n CHG_QT = \"QT Duration\\nChange from BL\",\n AVAL_ANRIND_RR = paste0(\"RR Duration Result\\n(\", eg_u_rng$RR$unit, \");\\nRange:(\", eg_u_rng$RR$range, \")\"),\n CHG_RR = \"RR Duration\\nChange from BL\"\n )", "crumbs": [ - "Graphs", - "Pharmacokinetic", - "PKPG06" + "Listings", + "ECG", + "EGL01" ] }, { - "objectID": "graphs/pharmacokinetic/pkpg06.html#reproducibility", - "href": "graphs/pharmacokinetic/pkpg06.html#reproducibility", - "title": "PKPG06", + "objectID": "listings/ECG/egl01.html#reproducibility", + "href": "listings/ECG/egl01.html#reproducibility", + "title": "EGL01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:38:49 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr * 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", - "crumbs": [ - "Graphs", - "Pharmacokinetic", - "PKPG06" - ] - }, - { - "objectID": "graphs/other/ltg01.html", - "href": "graphs/other/ltg01.html", - "title": "LTG01", - "section": "", - "text": "Lattice plots are natively handled by R, the examples below rely mostly on the package ggplot2.", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:37:54 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Other", - "LTG01" + "Listings", + "ECG", + "EGL01" ] }, { - "objectID": "graphs/other/ltg01.html#output", - "href": "graphs/other/ltg01.html#output", - "title": "LTG01", + "objectID": "listings/concomitant-medications/cml01.html#output", + "href": "listings/concomitant-medications/cml01.html#output", + "title": "CML01", "section": "Output", - "text": "Output\n\n\nPlot of Liver Function Tests\nPlot of Liver Function Tests Including Mean, Median, and 95% CIs\nData Setup\n\n\n\nBasic Plot\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# General mapping and \"lattice\" (\"facet\" in ggplot2 nomenclature).\ng1 <- {\n ggplot(\n data = adlb,\n mapping = aes(x = AVISIT, y = AVAL, colour = SUBJID, shape = SUBJID)\n ) +\n facet_grid(LBTESTCD ~ ARM, scales = \"free_y\") +\n scale_shape_manual(values = pch)\n}\n\n# Add points and lines.\ng1 <- g1 + geom_point()\ng1 <- g1 + geom_line()\nplot <- g1\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nModifying Facets\n\n\n Preview\n Try this using WebR\n\n\n\nThe units describing rows of panes and the number of patients under each arm is specified by modifying facet_grid():\n\nCode# Include the units and the sample size N.\ng2 <- g1 + facet_grid(\n paste0(LBTESTCD, \"\\n(\", AVALU, \")\") ~ ARM_N,\n scales = \"free_y\"\n)\n\nplot <- g2\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nModifying X-Axis\n\n\n Preview\n Try this using WebR\n\n\n\nThe graphic elements are modified through usual ggplot2 functions. For instance, the x-axis could be improved as follows:\n\nCodeg3 <- g2 + theme(\n axis.text.x = element_text(angle = 45, hjust = 1),\n axis.title = element_blank()\n) + scale_x_continuous(breaks = adlb$AVISIT, labels = adlb$AVISIT_txt)\n\nplot <- g3\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe functions stat_mean_ci and stat_median_ci from the tern package allow the addition of mean and/or median confidence intervals. The example below suggests a larger dataset, where the individual subject legend may not be relevant but the mean or the median are of special interest.\nPre-Processing\n\nCode# Datasets\nadsl <- random.cdisc.data::cadsl %>% slice(1:40)\nadlb <- random.cdisc.data::cadlb %>% filter(USUBJID %in% adsl$USUBJID)\n\n# Pre-processing\nadlb$AVISIT_txt <- adlb$AVISIT\nadlb$AVISIT <- as.numeric(adlb$AVISIT)\nadlb$ARM_N <- adlb$ARM\nlevels(adlb$ARM_N) <- with(\n data = adlb,\n paste0(\n levels(ARM_N), \" (N = \",\n tapply(SUBJID, ARM_N, function(x) length(unique(x))), \")\"\n )\n)\n\n# Plot utils\nnpch <- 1:25\nnpatients <- length(unique(adlb$SUBJID))\npch <- c(\n rep(npch, times = npatients %/% length(npch)),\n npch[1:(npatients %% length(npch))]\n)\n\n\n\n\n\n\n\n\nBasic Plot\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# General mapping and \"lattice\" (\"facet\" in ggplot2 nomenclature)\ng4 <- {\n ggplot(\n data = adlb,\n mapping = aes(x = AVISIT, y = AVAL, colour = SUBJID, shape = SUBJID)\n ) +\n facet_grid(LBTESTCD ~ ARM_N, scales = \"free_y\") +\n scale_shape_manual(values = pch) +\n scale_color_manual(values = rep(getOption(\"ggplot2.discrete.colour\"), 2))\n}\n\n# Add points and lines.\n# Note that with so many patients, legend might not be useful and transparency\n# is advisable.\ng4 <- g4 + geom_point(alpha = .3)\ng4 <- g4 + geom_line(alpha = .3)\ng4 <- g4 + guides(colour = \"none\", shape = \"none\")\ng4 <- g4 + theme(\n axis.text.x = element_text(angle = 45, hjust = 1),\n axis.title = element_blank()\n)\ng4 <- g4 + scale_x_continuous(breaks = adlb$AVISIT, labels = adlb$AVISIT_txt)\nplot <- g4\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nAdding Mean\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Add the mean along with the 95% CI at every visit.\ng51 <- g4 + stat_summary(\n fun = mean, linewidth = 1, geom = \"line\",\n aes(group = 1, linetype = \"Mean +/- 95% CI\")\n)\ng51 <- g51 + stat_summary(\n fun.data = tern::stat_mean_ci, geom = \"errorbar\",\n aes(group = 1, linetype = \"Mean +/- 95% CI\")\n)\nplot <- g51 + guides(linetype = guide_legend(title = NULL))\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nAdding Median\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Instead of a mean, the median could be more relevant.\ng52 <- g51 + stat_summary(\n fun = median, linewidth = 1, geom = \"line\",\n aes(group = 1, linetype = \"Median +/- 95% CI\")\n)\ng52 <- g52 + stat_summary(\n fun.data = tern::stat_median_ci, geom = \"errorbar\",\n aes(group = 1, linetype = \"Median +/- 95% CI\")\n)\nplot <- g52 + guides(linetype = guide_legend(title = \"Aggregate\"))\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nChanging Confidence Level\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Change the confidence level of interval for the median.\n# Note: check `?stat_mean_ci()` and `?stat_median_ci()` for further fine tuning.\ng53 <- g4 + stat_summary(\n fun = median, linewidth = 1, geom = \"line\",\n aes(group = 1, linetype = \"Median +/- 80% CI\")\n)\ng53 <- g53 + stat_summary(\n fun.data = function(x) tern::stat_median_ci(x, conf_level = 0.8),\n geom = \"errorbar\", aes(group = 1, linetype = \"Median +/- 80% CI\")\n)\nplot <- g53 + guides(linetype = guide_legend(title = NULL))\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(teal.modules.clinical)\nlibrary(ggplot2)\nlibrary(dplyr)\nlibrary(nestcolor)\n\n# Datasets\nadsl <- random.cdisc.data::cadsl %>% slice(1:8)\nadlb <- random.cdisc.data::cadlb %>% filter(USUBJID %in% adsl$USUBJID)\n\n# Pre-processing\nadlb$AVISIT_txt <- adlb$AVISIT\nadlb$AVISIT <- as.numeric(adlb$AVISIT)\nadlb$ARM_N <- adlb$ARM\nlevels(adlb$ARM_N) <- with(\n data = adlb,\n paste0(\n levels(ARM_N), \" (N = \",\n tapply(SUBJID, ARM_N, function(x) length(unique(x))), \")\"\n )\n)\n\n# Plot utils\nnpch <- 1:25\nnpatients <- length(unique(adlb$SUBJID))\npch <- c(\n rep(npch, times = npatients %/% length(npch)),\n npch[1:(npatients %% length(npch))]\n)", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"ID\", \"AGSXRC\", \"CMDECOD\"),\n disp_cols = names(out),\n main_title = \"Listing of Previous and Concomitant Medications\"\n)\n\nhead(lsting, 20)\n\nListing of Previous and Concomitant Medications\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Date of First Ongoing \n Study Drug Medication Duration at Final \nTreatment Center/Patient ID Age/Sex/Race Medication Name Administration Start Date Study Day (days) Previous? Contact? Dose Dose Unit Frequency Route \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-134 47/M/WHITE medname A_2/3 04NOV2020 21SEP2021 321 -148 No No 30 mg/breath Q4H INTRAMUSCULAR\n 04NOV2020 02DEC2021 393 -42 No No 41 umol/L TWICE UNKNOWN \n medname B_1/4 04NOV2020 15APR2021 162 -172 No No 25 ug/kg/day Q4H INTRAVENOUS \n 04NOV2020 15APR2021 162 -172 No No 25 ug/kg/day Q4H INTRAVENOUS \n 04NOV2020 15APR2021 162 -172 No No 25 ug/kg/day Q4H INTRAVENOUS \n medname C_1/2 04NOV2020 19MAY2021 196 -165 No No 22 ug/mL TID INHALED \n 04NOV2020 19MAY2021 196 -165 No No 22 ug/mL TID INHALED \n BRA-1/id-42 36/M/BLACK OR AFRICAN AMERICAN medname A_2/3 01JAN2020 09JUN2020 160 -258 No Yes 48 DROP QD INTRAVENOUS \n 01JAN2020 04APR2021 459 -194 No Yes 57 ug/kg/day Q4W NASAL \n 01JAN2020 15APR2021 470 -130 No Yes 83 ug/kg/day Q4H UNKNOWN \n 01JAN2020 20APR2021 475 -112 No Yes 17 ug/kg/day Q4H SUBCUTANEOUS \n medname A_3/3 01JAN2020 03OCT2021 641 -14 No Yes 68 % 4 TIMES PER MONTH UNKNOWN \n 01JAN2020 03OCT2021 641 -14 No Yes 68 % 4 TIMES PER MONTH UNKNOWN \n medname B_1/4 01JAN2020 19OCT2020 292 -49 No Yes 5 ug/mL TWICE UNKNOWN \n 01JAN2020 19OCT2020 292 -49 No Yes 5 ug/mL TWICE UNKNOWN \n 01JAN2020 19OCT2020 292 -49 No Yes 5 ug/mL TWICE UNKNOWN \n medname B_2/4 01JAN2020 11MAY2021 496 -161 No Yes 83 ug/mL TWICE RECTAL \n 01JAN2020 11MAY2021 496 -161 No Yes 83 ug/mL TWICE RECTAL \n 01JAN2020 11MAY2021 496 -161 No Yes 83 ug/mL TWICE RECTAL \n medname B_3/4 01JAN2020 09FEB2020 39 -505 No Yes 85 ug QD SUBCUTANEOUS \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadcm <- random.cdisc.data::cadcm\n\nout <- adcm %>%\n filter(!is.na(CMDECOD)) %>%\n mutate(\n ID = paste(SITEID, SUBJID, sep = \"/\"),\n AGSXRC = paste(AGE, SEX, RACE, sep = \"/\"),\n TRTSD = toupper(format(as.Date(TRTSDTM), \"%d%b%Y\")),\n CMASTD = toupper(format(as.Date(ASTDTM), \"%d%b%Y\")),\n CMSTRFL = ifelse(ASTDY < 0, \"Yes\", \"No\"),\n CMENRFL = ifelse(CMENRTPT == \"ONGOING\", \"Yes\", \"No\")\n ) %>%\n select(\n ID, AGSXRC, TRT01A, CMDECOD, TRTSD, CMASTD, ASTDY, ADURN,\n CMSTRFL, CMENRFL, CMDOSE, CMDOSU, CMDOSFRQ, CMROUTE\n )\n\nvar_labels(out) <- c(\n ID = \"Center/Patient ID\",\n AGSXRC = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n CMDECOD = \"Medication Name\",\n TRTSD = \"Date of First\\nStudy Drug\\nAdministration\",\n CMASTD = \"Medication\\nStart Date\",\n ASTDY = \"Study Day\",\n ADURN = \"Duration\\n(days)\",\n CMSTRFL = \"Previous?\",\n CMENRFL = \"Ongoing\\nat Final\\nContact?\",\n CMDOSE = \"Dose\",\n CMDOSU = \"Dose Unit\",\n CMDOSFRQ = \"Frequency\",\n CMROUTE = \"Route\"\n)", "crumbs": [ - "Graphs", - "Other", - "LTG01" + "Listings", + "Concomitant Medications", + "CML01" ] }, { - "objectID": "graphs/other/ltg01.html#reproducibility", - "href": "graphs/other/ltg01.html#reproducibility", - "title": "LTG01", + "objectID": "listings/concomitant-medications/cml01.html#reproducibility", + "href": "listings/concomitant-medications/cml01.html#reproducibility", + "title": "CML01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:38:32 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:37:45 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Other", - "LTG01" + "Listings", + "Concomitant Medications", + "CML01" ] }, { - "objectID": "graphs/other/mng01.html#output", - "href": "graphs/other/mng01.html#output", - "title": "MNG01", + "objectID": "listings/adverse-events/ael02_ed.html#output", + "href": "listings/adverse-events/ael02_ed.html#output", + "title": "AEL02_ED", "section": "Output", - "text": "Output\n\n\nPlot of Mean and CI\nPlot of Mean and CIs of Change from Baseline (Changing the Input Analysis Data Set and Analysis Variable)\nPlot of Mean (+/-SD) (Changing the Statistics)\nPlot of Mean and CI (Modify Alpha Level)\nPlot of Mean and CI (with Number of Patients only in Table Section)\nPlot of Mean and CI (with Table Section)\nPlot of Median and CI (Visits Condensed in Table Section)\nPlot of Mean and Upper Confidence Limit\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_lineplot(\n df = adlb_f,\n alt_counts_df = adsl_f,\n subtitle = \"Laboratory Test:\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_lineplot(\n df = advs_f,\n alt_counts_df = adsl_f,\n variables = control_lineplot_vars(y = \"CHG\"),\n title = \"Plot of Mean and 95% Confidence Intervals of Change from Baseline by Visit\",\n subtitle = \"Assessment:\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_lineplot(\n df = adlb_f,\n alt_counts_df = adsl_f,\n interval = \"mean_sdi\",\n whiskers = c(\"mean_sdi_lwr\", \"mean_sdi_upr\"),\n title = \"Plot of Mean (+/-SD)\",\n subtitle = \"Laboratory Test:\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_lineplot(\n df = adlb_f,\n alt_counts_df = adsl_f,\n control = control_analyze_vars(conf_level = 0.80),\n title = \"Plot of Mean and 80% Confidence Limits by Visit\",\n subtitle = \"Laboratory Test:\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_lineplot(\n df = adlb_f,\n alt_counts_df = adsl_f,\n table = \"n\",\n subtitle = \"Laboratory Test:\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_lineplot(\n df = adlb_f,\n alt_counts_df = adsl_f,\n table = c(\"n\", \"mean\", \"mean_ci\"),\n subtitle = \"Laboratory Test:\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThis option is not supported.\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_lineplot(\n df = adlb_f,\n alt_counts_df = adsl_f,\n whiskers = \"mean_ci_upr\",\n subtitle = \"Laboratory Test:\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(nestcolor)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\nadvs <- random.cdisc.data::cadvs\n\nadsl_f <- adsl %>%\n filter(SAFFL == \"Y\") %>%\n df_explicit_na()\n\nadlb_f <- adlb %>%\n mutate(AVISIT = forcats::fct_reorder(AVISIT, AVISITN, min)) %>%\n dplyr::filter(\n SAFFL == \"Y\",\n ANL01FL == \"Y\",\n ONTRTFL == \"Y\",\n PARAMCD == \"ALT\",\n AVISIT != \"SCREENING\"\n ) %>%\n droplevels() %>%\n df_explicit_na()\n\nadvs_f <- advs %>%\n mutate(AVISIT = forcats::fct_reorder(AVISIT, AVISITN, min)) %>%\n dplyr::filter(\n SAFFL == \"Y\",\n ONTRTFL == \"Y\",\n PARAMCD == \"DIABP\",\n AVISIT != \"SCREENING\"\n ) %>%\n droplevels() %>%\n df_explicit_na()", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"cent_subj\", \"ASR\"),\n disp_cols = names(out),\n main_title = \"Listing of Adverse Events (for early development studies)\",\n main_footer = \"\n(1) Outcome: 1 = fatal; 2 = not recovered/not resolved; 3 = recovered/resolved;\n 4 = recovered/resolved with sequelae; 5 = recovering/resolving; 6 = unknown.\n(2) Action taken with study drug: 1 = dose increased; 2 = dose not changed;\n 3 = dose reduced; 4 = drug interrupted; 5 = drug withdrawn; 6 = not applicable;\n 7 = unknown.\n* Study day derived from imputed onset date.\n** Duration derived from imputed onset date and/or end date.\"\n)\n\nhead(lsting, 20)\n\nListing of Adverse Events (for early development studies)\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Time from Time from Time from \n Adverse Study Last Dose Last Dose Last Dose AE Most Caused by Action\n Event MedDRA Day of to Onset to Onset to Onset Duration Extreme Study Outcome Treatment Taken \nTreatment Center/Patient ID Age/Sex/Race Preferred Term Onset days hrs mins in Days Serious Intensity Drug (1) for AE (2) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-134 47/M/WHITE dcd B.2.1.2.1 162 7 19 4 173 No MODERATE No 5 Yes 2 \n dcd D.1.1.4.2 196 1 20 48 166 No MODERATE No 5 No 2 \n dcd A.1.1.1.2 321 28 12 54 149 Yes MODERATE No 5 Yes 2 \n dcd A.1.1.1.2 393 12 19 17 43 Yes MODERATE No 5 No 5 \n BRA-1/id-42 36/M/BLACK OR AFRICAN AMERICAN dcd C.2.1.2.1 39 30 9 4 506 No MODERATE Yes 2 No 6 \n dcd D.1.1.1.1 64 26 17 10 630 Yes SEVERE Yes 1 No 6 \n dcd C.2.1.2.1 95 4 12 58 306 No MODERATE Yes 5 No 2 \n dcd A.1.1.1.2 160 24 5 57 259 Yes MODERATE No 2 Yes 2 \n dcd B.2.2.3.1 292 9 23 4 50 Yes MILD No 3 No 2 \n dcd A.1.1.1.2 459 9 5 4 195 Yes MODERATE No 5 Yes 2 \n dcd B.1.1.1.1 470 6 5 0 131 Yes SEVERE Yes 1 No 6 \n dcd A.1.1.1.2 475 20 16 16 113 Yes MODERATE No 4 Yes 2 \n dcd C.1.1.1.3 496 5 5 28 162 No SEVERE Yes 5 Yes 2 \n dcd B.1.1.1.1 641 8 17 4 15 Yes SEVERE Yes 1 Yes 6 \n BRA-1/id-93 34/F/ASIAN dcd D.1.1.4.2 44 18 15 39 47 No MODERATE No 5 Yes 2 \n dcd D.2.1.5.3 79 2 3 58 300 No MILD Yes 5 No 3 \n dcd A.1.1.1.1 136 22 1 19 78 No MILD No 3 Yes 2 \n dcd D.2.1.5.3 260 12 12 26 305 No MILD Yes 5 No 2 \n dcd C.1.1.1.3 281 4 14 52 106 No SEVERE Yes 5 Yes 2 \n dcd D.1.1.1.1 316 6 12 43 250 Yes SEVERE Yes 1 No 6 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n\n(1) Outcome: 1 = fatal; 2 = not recovered/not resolved; 3 = recovered/resolved;\n 4 = recovered/resolved with sequelae; 5 = recovering/resolving; 6 = unknown.\n(2) Action taken with study drug: 1 = dose increased; 2 = dose not changed;\n 3 = dose reduced; 4 = drug interrupted; 5 = drug withdrawn; 6 = not applicable;\n 7 = unknown.\n* Study day derived from imputed onset date.\n** Duration derived from imputed onset date and/or end date.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\nlibrary(lubridate)\n\nadae <- random.cdisc.data::cadae\n\nadae_anl <- adae %>%\n filter(SAFFL == \"Y\") %>%\n mutate(\n DHM = as.period(LDOSEDTM %--% ASTDTM),\n TMOM = minute(DHM) + ifelse(second(DHM) >= 30, 1, 0),\n TMOH = hour(DHM) + ifelse(TMOM == 60, 1, 0),\n TMOD = day(DHM) + ifelse(TMOH == 24, 1, 0)\n ) %>%\n mutate(\n TMOM = TMOM %% 60,\n TMOH = TMOH %% 24\n )\n\nout <- adae_anl %>%\n mutate(\n ADURN = AENDY - ASTDY + 1,\n cent_subj = paste(SITEID, SUBJID, sep = \"/\"),\n ASR = paste(AGE, SEX, RACE, sep = \"/\"),\n AESER_F = if_else(AESER == \"Y\", \"Yes\", \"No\", \"\"),\n AEREL_F = if_else(AEREL == \"Y\", \"Yes\", \"No\", \"\"),\n AECONTRT_F = if_else(AECONTRT == \"Y\", \"Yes\", \"No\", \"\"),\n AEOUT_F = case_when(\n AEOUT == \"FATAL\" ~ 1,\n AEOUT == \"NOT RECOVERED/NOT RESOLVED\" ~ 2,\n AEOUT == \"RECOVERED/RESOLVED\" ~ 3,\n AEOUT == \"RECOVERED/RESOLVED WITH SEQUELAE\" ~ 4,\n AEOUT == \"RECOVERING/RESOLVING\" ~ 5,\n AEOUT == \"UNKNOWN\" ~ 6\n ),\n AEACN_F = case_when(\n AEACN == \"DOSE INCREASED\" ~ 1,\n AEACN == \"DOSE NOT CHANGED\" ~ 2,\n AEACN == \"DOSE REDUCED\" | AEACN == \"DOSE RATE REDUCED\" ~ 3,\n AEACN == \"DRUG INTERRUPTED\" ~ 4,\n AEACN == \"DRUG WITHDRAWN\" ~ 5,\n AEACN == \"NOT APPLICABLE\" | AEACN == \"NOT EVALUABLE\" ~ 6,\n AEACN == \"UNKNOWN\" ~ 7\n )\n ) %>%\n select(\n cent_subj, ASR, TRT01A, AEDECOD, ASTDY, TMOD, TMOH, TMOM,\n ADURN, AESER_F, AESEV, AEREL_F, AEOUT_F, AECONTRT_F, AEACN_F\n )\n\nout <- out %>% var_relabel(\n cent_subj = \"Center/Patient ID\",\n ASR = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n AEDECOD = \"Adverse\\nEvent MedDRA\\nPreferred Term\",\n ASTDY = \"Study\\nDay of\\nOnset\",\n TMOD = \"Time from\\nLast Dose\\nto Onset\\ndays\",\n TMOH = \"Time from\\nLast Dose\\nto Onset\\nhrs\",\n TMOM = \"Time from\\nLast Dose\\nto Onset\\nmins\",\n ADURN = \"AE\\nDuration\\nin Days\",\n AESER_F = \"Serious\",\n AESEV = \"Most\\nExtreme\\nIntensity\",\n AEREL_F = \"Caused by\\nStudy\\nDrug\",\n AEOUT_F = \"Outcome\\n(1)\",\n AECONTRT_F = \"Treatment\\nfor AE\",\n AEACN_F = \"Action\\nTaken\\n(2)\"\n)", "crumbs": [ - "Graphs", - "Other", - "MNG01" + "Listings", + "Adverse Events", + "AEL02_ED" ] }, { - "objectID": "graphs/other/mng01.html#teal-app", - "href": "graphs/other/mng01.html#teal-app", - "title": "MNG01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n library(forcats)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb %>%\n mutate(AVISIT = fct_reorder(AVISIT, AVISITN, min))\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_lineplot(\n label = \"LINE PLOT\",\n dataname = \"ADLB\",\n strata = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n y = choices_selected(\n variable_choices(ADLB, c(\"AVAL\", \"BASE\", \"CHG\", \"PCHG\")),\n \"AVAL\"\n ),\n param = choices_selected(\n value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n \"ALT\"\n )\n )\n )\n)\n\nWarning: The `strata` argument of `tm_g_lineplot()` is deprecated as of\nteal.modules.clinical 0.9.1. Please use the `group_var` argument instead.\n\nCodeshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n library(forcats)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb %>%\n mutate(AVISIT = fct_reorder(AVISIT, AVISITN, min))\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_lineplot(\n label = \"LINE PLOT\",\n dataname = \"ADLB\",\n strata = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n y = choices_selected(\n variable_choices(ADLB, c(\"AVAL\", \"BASE\", \"CHG\", \"PCHG\")),\n \"AVAL\"\n ),\n param = choices_selected(\n value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n \"ALT\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "listings/adverse-events/ael02_ed.html#reproducibility", + "href": "listings/adverse-events/ael02_ed.html#reproducibility", + "title": "AEL02_ED", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:37:37 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n lubridate * 1.9.4 2024-12-08 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n timechange 0.3.0 2024-01-18 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Other", - "MNG01" + "Listings", + "Adverse Events", + "AEL02_ED" ] }, { - "objectID": "graphs/other/mng01.html#reproducibility", - "href": "graphs/other/mng01.html#reproducibility", - "title": "MNG01", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:37:48 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats * 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "listings/adverse-events/ael04.html#output", + "href": "listings/adverse-events/ael04.html#output", + "title": "AEL04", + "section": "Output", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"ID\"),\n disp_cols = names(out),\n main_title = \"Listing of Patient Deaths\"\n)\n\nhead(lsting, 20)\n\nListing of Patient Deaths\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Date of First Day of Last \n Study Drug Study Drug Day of Autopsy \nTreatment Center/Patient ID Age/Sex/Race Administration Administration Death Cause of Death Performed?\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-134 47/M/WHITE 04NOV2020 473 496 ADVERSE EVENT Yes \n BRA-1/id-93 34/F/ASIAN 20JUN2020 610 657 ADVERSE EVENT Yes \n BRA-11/id-217 43/M/ASIAN 28SEP2019 871 893 ADVERSE EVENT Yes \n BRA-15/id-36 38/F/ASIAN 08JAN2020 767 812 DISEASE PROGRESSION Yes \n CAN-11/id-139 31/M/ASIAN 15SEP2020 519 563 ADVERSE EVENT Yes \n CHN-1/id-123 27/F/ASIAN 28JAN2020 750 750 DISEASE PROGRESSION Yes \n CHN-1/id-199 27/M/BLACK OR AFRICAN AMERICAN 08JAN2020 773 779 DISEASE PROGRESSION Yes \n CHN-1/id-235 39/M/ASIAN 13JUL2019 950 968 ADVERSE EVENT Yes \n CHN-1/id-62 36/F/WHITE 22NOV2020 455 497 ADVERSE EVENT Yes \n CHN-12/id-258 45/M/WHITE 01MAR2020 721 756 SUICIDE No \n CHN-15/id-14 38/F/BLACK OR AFRICAN AMERICAN 29SEP2019 871 919 DISEASE PROGRESSION Yes \n CHN-17/id-182 37/M/BLACK OR AFRICAN AMERICAN 18SEP2019 879 902 LOST TO FOLLOW UP NA \n CHN-17/id-92 29/M/ASIAN 01MAR2020 720 721 LOST TO FOLLOW UP NA \n CHN-2/id-22 29/M/ASIAN 15JAN2021 393 409 MISSING NA \n CHN-2/id-223 29/F/ASIAN 18NOV2020 453 468 DISEASE PROGRESSION Yes \n CHN-2/id-272 41/F/ASIAN 11JAN2020 768 773 DISEASE PROGRESSION Yes \n CHN-2/id-274 40/F/ASIAN 14OCT2019 860 890 SUICIDE No \n CHN-3/id-128 32/M/ASIAN 24FEB2019 1084 1105 ADVERSE EVENT Yes \n CHN-5/id-108 28/F/BLACK OR AFRICAN AMERICAN 11SEP2019 886 935 MISSING NA \n CHN-6/id-30 29/M/ASIAN 24AUG2020 539 578 Post-study reporting of death No \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadsl <- random.cdisc.data::cadsl\n\nout <- adsl %>%\n filter(!is.na(DTHADY)) %>%\n mutate(\n ID = paste(SITEID, SUBJID, sep = \"/\"),\n AGSXRC = paste(AGE, SEX, RACE, sep = \"/\"),\n TRTSD = toupper(format(as.Date(TRTSDTM), \"%d%b%Y\"))\n ) %>%\n arrange(SUBJID) %>%\n select(ID, AGSXRC, TRT01A, TRTSD, EOSDY, DTHADY, DTHCAUS, ADTHAUT)\n\nvar_labels(out) <- c(\n ID = \"Center/Patient ID\",\n AGSXRC = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n TRTSD = \"Date of First\\nStudy Drug\\nAdministration\",\n EOSDY = \"Day of Last\\nStudy Drug\\nAdministration\",\n DTHADY = \"Day of\\nDeath\",\n DTHCAUS = \"Cause of Death\",\n ADTHAUT = \"Autopsy\\nPerformed?\"\n)", "crumbs": [ - "Graphs", - "Other", - "MNG01" + "Listings", + "Adverse Events", + "AEL04" ] }, { - "objectID": "graphs/other/ippg01.html", - "href": "graphs/other/ippg01.html", - "title": "IPPG01", - "section": "", - "text": "For illustration purposes, we will subset the adlb dataset for safety population in treatment arm A and a specific lab parameter (ALT).", + "objectID": "listings/adverse-events/ael04.html#reproducibility", + "href": "listings/adverse-events/ael04.html#reproducibility", + "title": "AEL04", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:37:28 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Other", - "IPPG01" + "Listings", + "Adverse Events", + "AEL04" ] }, { - "objectID": "graphs/other/ippg01.html#output", - "href": "graphs/other/ippg01.html#output", - "title": "IPPG01", + "objectID": "listings/adverse-events/ael03.html#output", + "href": "listings/adverse-events/ael03.html#output", + "title": "AEL03", "section": "Output", - "text": "Output\n\n\nStandard Plot\nPlot with Patient Baselines as Reference\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nThe user can select different plotting_choices depending on their preference. To demonstrate, separate plots are produced with a maximum of 3 observations each.\n\nCodeplots <- g_ipp(\n df = adlb_f,\n xvar = \"AVISIT\",\n yvar = \"AVAL\",\n xlab = \"Visit\",\n ylab = \"SGOT/ALT (U/L)\",\n id_var = \"Patient_ID\",\n title = \"Individual Patient Plots\",\n subtitle = \"Treatment Arm A\",\n plotting_choices = \"split_by_max_obs\",\n max_obs_per_plot = 3\n)\nplots\n\n[[1]]\n\n\n\n\n\n\n\n\n\n[[2]]\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nHere, patients’ individual baseline values will be shown for reference. Note that users can provide their own custom theme to the function via the ggtheme argument.\n\nCodeplots <- g_ipp(\n df = adlb_f,\n xvar = \"AVISIT\",\n yvar = \"AVAL\",\n xlab = \"Visit\",\n ylab = \"SGOT/ALT (U/L)\",\n id_var = \"Patient_ID\",\n title = \"Individual Patient Plots\",\n subtitle = \"Treatment Arm A\",\n add_baseline_hline = TRUE,\n yvar_baseline = \"BASE\",\n ggtheme = theme_minimal(),\n plotting_choices = \"split_by_max_obs\",\n max_obs_per_plot = 3\n)\nplots\n\n[[1]]\n\n\n\n\n\n\n\n\n\n[[2]]\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\n\n# use small sample size\nadsl <- random.cdisc.data::cadsl %>% slice(1:15)\nadlb <- random.cdisc.data::cadlb %>% filter(USUBJID %in% adsl$USUBJID)\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadlb <- df_explicit_na(adlb)\n\nadlb_f <- adlb %>%\n filter(\n SAFFL == \"Y\",\n PARAMCD == \"ALT\",\n AVISIT != \"SCREENING\",\n ARMCD == \"ARM A\"\n ) %>%\n mutate(Patient_ID = sub(\".*id-\", \"\", USUBJID))", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"CPID\", \"ASR\"),\n disp_cols = names(out),\n main_title = \"Listing of Serious Adverse Events\",\n main_footer = \"\n(1) Outcome: 1 = fatal; 2 = not recovered/not resolved; 3 = recovered/resolved;\n 4 = recovered/resolved with sequelae; 5 = recovering/resolving; 6 = unknown.\n(2) Action taken with study drug: 1 = dose increased; 2 = dose not changed;\n 3 = dose reduced; 4 = drug interrupted; 5 = drug withdrawn; 6 = not applicable;\n 7 = unknown.\n(3) Reason classified as serious: 1 = resulted in death; 2 = life threatening;\n 3 = required prolonged in patient hospitalization; 4 = disabling;\n 5 = a congenital anomaly/birth defect in offspring of study subject;\n 6 = does not meet any of the above serious criteria, but may jeopardize the subject,\n and may require medical or surgical intervention to prevent one of the outcomes listed above.\n* Study day derived from imputed onset date.\n** Duration derived from imputed onset date and/or end date.\"\n)\n\nhead(lsting, 20)\n\nListing of Serious Adverse Events\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Date of Reason \n Adverse First Study Study AE Most Caused by Action Classified\n Event MedDRA Drug Day of Duration Extreme Study Outcome Treatment Taken as Serious\nTreatment Center/Patient ID Age/Sex/Race Preferred Term Administration Onset in Days Intensity Drug (1) for AE (2) (3) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-134 47/M/WHITE dcd A.1.1.1.2 04NOV2020 321 149 MODERATE No 5 Yes 2 4, 5 \n dcd A.1.1.1.2 04NOV2020 393 43 MODERATE No 5 No 5 5 \n BRA-1/id-42 36/M/BLACK OR AFRICAN AMERICAN dcd D.1.1.1.1 01JAN2020 64 630 SEVERE Yes 1 No 6 1 \n dcd A.1.1.1.2 01JAN2020 160 259 MODERATE No 2 Yes 2 4 \n dcd B.2.2.3.1 01JAN2020 292 50 MILD No 3 No 2 4 \n dcd A.1.1.1.2 01JAN2020 459 195 MODERATE No 5 Yes 2 5 \n dcd B.1.1.1.1 01JAN2020 470 131 SEVERE Yes 1 No 6 1 \n dcd A.1.1.1.2 01JAN2020 475 113 MODERATE No 4 Yes 2 4 \n dcd B.1.1.1.1 01JAN2020 641 15 SEVERE Yes 1 Yes 6 1 \n BRA-1/id-93 34/F/ASIAN dcd D.1.1.1.1 20JUN2020 316 250 SEVERE Yes 1 No 6 1 \n dcd B.1.1.1.1 20JUN2020 523 24 SEVERE Yes 1 No 6 1 \n dcd B.2.2.3.1 20JUN2020 596 10 MILD No 3 Yes 2 4 \n BRA-11/id-345 37/F/WHITE dcd B.1.1.1.1 18AUG2020 1009 35 SEVERE Yes 1 No 6 1 \n BRA-11/id-397 38/M/ASIAN dcd D.1.1.1.1 27JUN2020 516 441 SEVERE Yes 1 No 6 1 \n dcd B.1.1.1.1 27JUN2020 1011 30 SEVERE Yes 1 Yes 6 1 \n BRA-11/id-50 26/M/BLACK OR AFRICAN AMERICAN dcd A.1.1.1.2 28APR2019 1007 68 MODERATE No 3 Yes 2 5 \n BRA-13/id-177 24/M/WHITE dcd B.1.1.1.1 30AUG2020 249 470 SEVERE Yes 1 No 6 1 \n dcd B.1.1.1.1 30AUG2020 1012 33 SEVERE Yes 1 No 6 1 \n BRA-15/id-36 38/F/ASIAN dcd B.1.1.1.1 08JAN2020 372 154 SEVERE Yes 1 Yes 6 1 \n dcd A.1.1.1.2 08JAN2020 573 134 MODERATE No 3 Yes 2 3 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n\n(1) Outcome: 1 = fatal; 2 = not recovered/not resolved; 3 = recovered/resolved;\n 4 = recovered/resolved with sequelae; 5 = recovering/resolving; 6 = unknown.\n(2) Action taken with study drug: 1 = dose increased; 2 = dose not changed;\n 3 = dose reduced; 4 = drug interrupted; 5 = drug withdrawn; 6 = not applicable;\n 7 = unknown.\n(3) Reason classified as serious: 1 = resulted in death; 2 = life threatening;\n 3 = required prolonged in patient hospitalization; 4 = disabling;\n 5 = a congenital anomaly/birth defect in offspring of study subject;\n 6 = does not meet any of the above serious criteria, but may jeopardize the subject,\n and may require medical or surgical intervention to prevent one of the outcomes listed above.\n* Study day derived from imputed onset date.\n** Duration derived from imputed onset date and/or end date.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadae <- random.cdisc.data::cadae\nadae$AESCONG[which(adae$AESER == \"Y\")[seq(3)]] <- \"Y\" # To mimic possibility of overlap\n\nout <- adae %>%\n filter(AESER == \"Y\") %>%\n mutate(\n CPID = paste(SITEID, SUBJID, sep = \"/\"),\n ASR = paste(AGE, SEX, RACE, sep = \"/\"),\n Date_First = toupper(format(as.Date(TRTSDTM), \"%d%b%Y\")),\n Duration = AENDY - ASTDY + 1,\n Related = ifelse(AEREL == \"Y\", \"Yes\", ifelse(AEREL == \"N\", \"No\", \"\")),\n Outcome = case_when(\n AEOUT == \"FATAL\" ~ 1,\n AEOUT == \"NOT RECOVERED/NOT RESOLVED\" ~ 2,\n AEOUT == \"RECOVERED/RESOLVED\" ~ 3,\n AEOUT == \"RECOVERED/RESOLVED WITH SEQUELAE\" ~ 4,\n AEOUT == \"RECOVERING/RESOLVING\" ~ 5,\n AEOUT == \"UNKNOWN\" ~ 6\n ),\n Treated = ifelse(AECONTRT == \"Y\", \"Yes\", ifelse(AECONTRT == \"N\", \"No\", \"\")),\n Action = case_when(\n AEACN == \"DOSE INCREASED\" ~ 1,\n AEACN == \"DOSE NOT CHANGED\" ~ 2,\n AEACN == \"DOSE REDUCED\" | AEACN == \"DOSE RATE REDUCED\" ~ 3,\n AEACN == \"DRUG INTERRUPTED\" ~ 4,\n AEACN == \"DRUG WITHDRAWN\" ~ 5,\n AEACN == \"NOT APPLICABLE\" | AEACN == \"NOT EVALUABLE\" ~ 6,\n AEACN == \"UNKNOWN\" ~ 7\n )\n ) %>%\n rowwise() %>%\n mutate(\n SERREAS = paste(\n which(\n c(AESDTH, AESLIFE, AESHOSP, AESDISAB, AESCONG, AESMIE) == \"Y\"\n ),\n collapse = \", \"\n )\n ) %>%\n ungroup()\n\nout <- out %>%\n select(CPID, ASR, TRT01A, AEDECOD, Date_First, ASTDY, Duration, AESEV, Related, Outcome, Treated, Action, SERREAS)\n\nvar_labels(out) <- c(\n CPID = \"Center/Patient ID\",\n ASR = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n AEDECOD = \"Adverse\\nEvent MedDRA\\nPreferred Term\",\n Date_First = \"Date of\\nFirst Study\\nDrug\\nAdministration\",\n ASTDY = \"Study\\nDay of\\nOnset\",\n Duration = \"AE\\nDuration\\nin Days\",\n AESEV = \"Most\\nExtreme\\nIntensity\",\n Related = \"Caused by\\nStudy\\nDrug\",\n Outcome = \"Outcome\\n(1)\",\n Treated = \"Treatment\\nfor AE\",\n Action = \"Action\\nTaken\\n(2)\",\n SERREAS = \"Reason\\nClassified\\nas Serious\\n(3)\"\n)", "crumbs": [ - "Graphs", - "Other", - "IPPG01" + "Listings", + "Adverse Events", + "AEL03" ] }, { - "objectID": "graphs/other/ippg01.html#teal-app", - "href": "graphs/other/ippg01.html#teal-app", - "title": "IPPG01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n # use small sample size\n ADSL <- random.cdisc.data::cadsl %>% slice(1:15)\n ADLB <- random.cdisc.data::cadlb %>% filter(USUBJID %in% ADSL$USUBJID)\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADLB <- df_explicit_na(ADLB) %>%\n filter(AVISIT != \"SCREENING\")\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_ipp(\n label = \"Individual Patient Plot\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n value_choices(ADLB, c(\"ARMCD\")),\n \"ARM A\"\n ),\n paramcd = choices_selected(\n value_choices(ADLB, \"PARAMCD\"),\n \"ALT\"\n ),\n aval_var = choices_selected(\n variable_choices(ADLB, c(\"AVAL\")),\n \"AVAL\"\n ),\n avalu_var = choices_selected(\n variable_choices(ADLB, c(\"AVALU\")),\n \"AVALU\",\n fixed = TRUE\n ),\n id_var = choices_selected(\n variable_choices(ADLB, c(\"USUBJID\")),\n \"USUBJID\",\n fixed = TRUE\n ),\n visit_var = choices_selected(\n variable_choices(ADLB, c(\"AVISIT\")),\n \"AVISIT\"\n ),\n baseline_var = choices_selected(\n variable_choices(ADLB, c(\"BASE\")),\n \"BASE\",\n fixed = TRUE\n ),\n add_baseline_hline = FALSE,\n separate_by_obs = FALSE\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n # use small sample size\n ADSL <- random.cdisc.data::cadsl %>% slice(1:15)\n ADLB <- random.cdisc.data::cadlb %>% filter(USUBJID %in% ADSL$USUBJID)\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADLB <- df_explicit_na(ADLB) %>%\n filter(AVISIT != \"SCREENING\")\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_ipp(\n label = \"Individual Patient Plot\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n value_choices(ADLB, c(\"ARMCD\")),\n \"ARM A\"\n ),\n paramcd = choices_selected(\n value_choices(ADLB, \"PARAMCD\"),\n \"ALT\"\n ),\n aval_var = choices_selected(\n variable_choices(ADLB, c(\"AVAL\")),\n \"AVAL\"\n ),\n avalu_var = choices_selected(\n variable_choices(ADLB, c(\"AVALU\")),\n \"AVALU\",\n fixed = TRUE\n ),\n id_var = choices_selected(\n variable_choices(ADLB, c(\"USUBJID\")),\n \"USUBJID\",\n fixed = TRUE\n ),\n visit_var = choices_selected(\n variable_choices(ADLB, c(\"AVISIT\")),\n \"AVISIT\"\n ),\n baseline_var = choices_selected(\n variable_choices(ADLB, c(\"BASE\")),\n \"BASE\",\n fixed = TRUE\n ),\n add_baseline_hline = FALSE,\n separate_by_obs = FALSE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "listings/adverse-events/ael03.html#reproducibility", + "href": "listings/adverse-events/ael03.html#reproducibility", + "title": "AEL03", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:37:19 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Other", - "IPPG01" + "Listings", + "Adverse Events", + "AEL03" ] }, { - "objectID": "graphs/other/ippg01.html#reproducibility", - "href": "graphs/other/ippg01.html#reproducibility", - "title": "IPPG01", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:37:15 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "listings/lab-results/lbl01_rls.html#output", + "href": "listings/lab-results/lbl01_rls.html#output", + "title": "LBL01_RLS", + "section": "Output", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"CPID\"),\n disp_cols = names(out),\n main_title = \"Listing of Laboratory Test Results Using Roche Safety Lab Standardization\",\n main_footer = \"Abnormalities are flagged as high (H) or low (L) if outside the Roche standard reference range; high high (HH) or low low (LL) if outside the Roche marked reference range with a clinically relevant change from baseline. \" \n)\n\nhead(lsting, 20)\n\nListing of Laboratory Test Results Using Roche Safety Lab Standardization\n\n————————————————————————————————————————————————————————————————————————————————————————\n Days Since \n Study Last Dose of ALT CRP IGA \nTreatment Center/Patient ID Day Study Drug (U/L) (mg/L) (g/L) \n————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-105 80 NA 4.30 / L 9.09 2.84 \n 149 69 24.70 9.15 2.93 \n 314 165 24.87 10.89 / H 2.66 \n 398 84 3.67 / L 8.14 2.86 \n 470 72 18.55 10.59 / H 2.88 \n 528 58 7.73 10.09 / H 2.93 \n 535 7 23.51 9.20 2.88 \n BRA-1/id-134 225 NA 7.37 10.46 / H 2.86 \n 227 2 16.42 7.43 / L 2.76 \n 255 28 11.16 9.41 2.75 \n 269 14 15.89 10.02 / H 2.84 \n 357 88 24.35 8.01 2.86 \n 436 79 16.03 8.51 2.98 \n 440 4 17.21 7.63 / L 2.78 \n BRA-1/id-42 176 NA 16.56 8.88 2.75 \n 477 301 16.49 8.11 2.95 \n 534 57 18.71 8.78 2.95 \n 550 16 11.44 9.53 2.99 \n 569 19 21.66 10.32 / H 3.00 / H\n 608 39 24.61 7.95 / L 2.78 \n————————————————————————————————————————————————————————————————————————————————————————\n\nAbnormalities are flagged as high (H) or low (L) if outside the Roche standard reference range; high high (HH) or low low (LL) if outside the Roche marked reference range with a clinically relevant change from baseline. \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadlb <- random.cdisc.data::cadlb %>%\n filter(!is.na(AVAL))\n\nadlb_x <- adlb %>%\n mutate(ANRIND = factor(\n case_when(\n ANRIND == \"LOW\" & AVAL > stats::quantile(adlb$AVAL, probs = c(0.1)) ~ \"L\",\n ANRIND == \"HIGH\" & AVAL < stats::quantile(adlb$AVAL, probs = c(0.9)) ~ \"H\",\n ANRIND == \"LOW\" & AVAL <= stats::quantile(adlb$AVAL, probs = c(0.1)) ~ \"LL\",\n ANRIND == \"HIGH\" & AVAL >= stats::quantile(adlb$AVAL, probs = c(0.9)) ~ \"HH\",\n TRUE ~ as.character(ANRIND)\n ),\n levels = c(\"\", \"H\", \"HH\", \"L\", \"LL\", \"NORMAL\")\n ))\n\nadlb_x <- adlb_x %>%\n filter(!is.na(LBSEQ) & !is.na(ADY) & ANRIND != \"\") %>%\n mutate(\n CPID = paste(SITEID, SUBJID, sep = \"/\"),\n PARAM_U = paste0(PARAMCD, \"\\n(\", AVALU, \")\"),\n AVALC = as.character(format(round(AVAL, 2), nsmall = 2))\n ) %>%\n mutate(AVAL_GR = ifelse(\n !ANRIND %in% c(\"H\", \"HH\", \"L\", \"LL\"),\n AVALC,\n paste(AVALC, ANRIND, sep = \" / \")\n )) %>%\n select(CPID, TRT01A, ADY, LBSEQ, PARAM_U, AVAL_GR) %>%\n unique()\n\nout <- adlb_x %>%\n arrange(CPID, ADY, PARAM_U, LBSEQ) %>%\n tidyr::pivot_wider(\n id_cols = c(TRT01A, CPID, ADY),\n names_from = PARAM_U,\n values_from = AVAL_GR\n ) %>%\n group_by(CPID) %>%\n mutate(DLD = ADY - lag(ADY)) %>%\n ungroup() %>%\n select(CPID, TRT01A, ADY, DLD, unique(adlb_x$PARAM_U))\n\nvar_labels(out) <- names(out)\nout <- out %>%\n var_relabel(\n TRT01A = \"Treatment\",\n CPID = \"Center/Patient ID\",\n ADY = \"Study\\nDay\",\n DLD = \"Days Since\\nLast Dose of\\nStudy Drug\"\n )", "crumbs": [ - "Graphs", - "Other", - "IPPG01" + "Listings", + "Lab Results", + "LBL01_RLS" ] }, { - "objectID": "graphs/efficacy/mmrmg02.html#reproducibility", - "href": "graphs/efficacy/mmrmg02.html#reproducibility", - "title": "MMRMG02", + "objectID": "listings/lab-results/lbl01_rls.html#reproducibility", + "href": "listings/lab-results/lbl01_rls.html#reproducibility", + "title": "LBL01_RLS", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:36:35 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n mmrm 0.3.14.9001 2025-01-01 [1] https://p~\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n parallelly 1.41.0 2024-12-18 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.mmrm * 0.3.2.9002 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n TMB 1.9.15 2024-09-09 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:37:11 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Efficacy", - "MMRMG02" + "Listings", + "Lab Results", + "LBL01_RLS" ] }, { - "objectID": "graphs/efficacy/kmg01.html#output", - "href": "graphs/efficacy/kmg01.html#output", - "title": "KMG01", + "objectID": "listings/lab-results/lbl02a.html#output", + "href": "listings/lab-results/lbl02a.html#output", + "title": "LBL02A", "section": "Output", - "text": "Output\n\n\nStandard Plot\nPlot of Failures\nPlot Without Comparative Statistics\nPlot Without Censoring Marks\nPlot Modifying Censoring Marks\nPlot Modifying Options for Statistics, Tie Handling, Stratification, etc.\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_km(\n df = anl,\n variables = variables,\n xlab = \"Time (Days)\",\n ylim = c(0, 1),\n annot_coxph = TRUE\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_km(\n df = anl,\n variables = variables,\n xlab = \"Time (Days)\",\n yval = \"Failure\",\n ylim = c(0, 1),\n font_size = 8,\n annot_coxph = TRUE\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_km(\n df = anl,\n variables = variables,\n xlab = \"Time (Days)\",\n ylim = c(0, 1)\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_km(\n df = anl,\n variables = variables,\n censor_show = FALSE,\n xlab = \"Time (Days)\",\n ylim = c(0, 1),\n annot_coxph = TRUE\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- g_km(\n df = anl,\n variables = variables,\n pch = 1,\n size = 2,\n xlab = \"Time (Days)\",\n ylim = c(0, 1),\n annot_coxph = TRUE\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodevariables$strata <- c(\"STRATA1\", \"STRATA2\")\nplot <- g_km(\n df = anl,\n variables = variables,\n control_surv = control_surv_timepoint(conf_level = 0.8),\n xlab = \"Time (Days)\",\n ylim = c(0, 1),\n annot_coxph = TRUE,\n control_coxph_pw = control_coxph(\n pval_method = \"wald\",\n ties = \"breslow\",\n conf_level = 0.8\n )\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(nestcolor)\n\nadtte <- random.cdisc.data::cadtte\nanl <- adtte %>%\n dplyr::filter(PARAMCD == \"OS\") %>%\n dplyr::mutate(is_event = CNSR == 0)\nvariables <- list(tte = \"AVAL\", is_event = \"is_event\", arm = \"ARMCD\")", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"LBTEST_U\", \"CPID\"),\n disp_cols = names(out),\n main_title = \"Listing of Laboratory Abnormalities Defined by NCI CTCAE Grade >= 1\",\n main_footer = \"NCI CTCAE grade is displayed as abnormal high (H) or low (L) followed by the grade.\"\n)\n\nhead(lsting, 20)\n\nListing of Laboratory Abnormalities Defined by NCI CTCAE Grade >= 1\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Days Since NCI \n Study Last Dose of Lab Normal CTCAE\nTreatment Lab Test (Unit) Center/Patient ID Day Date Study Drug Result Range Grade\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X Alanine Aminotransferase Measurement (U/L) BRA-1/id-105 80 27MAY2020 0 4.3 7.0 - 55.0 L4 \n 398 10APR2021 318 3.7 7.0 - 55.0 L3 \n BRA-1/id-93 207 13JAN2021 0 6.1 7.0 - 55.0 L1 \n BRA-11/id-397 326 19MAY2021 0 1.5 7.0 - 55.0 L1 \n BRA-14/id-23 594 22JUN2021 0 0.6 7.0 - 55.0 L1 \n BRA-2/id-296 281 30OCT2021 0 2.6 7.0 - 55.0 L1 \n 734 26JAN2023 453 3.9 7.0 - 55.0 L1 \n CAN-1/id-18 465 12APR2022 0 1.8 7.0 - 55.0 L2 \n CHN-1/id-133 127 13DEC2020 0 5.6 7.0 - 55.0 L2 \n 197 21FEB2021 70 1.2 7.0 - 55.0 L4 \n CHN-1/id-199 277 11OCT2020 0 5.3 7.0 - 55.0 L4 \n 672 10NOV2021 395 6.8 7.0 - 55.0 L2 \n CHN-1/id-235 348 25JUN2020 0 3.0 7.0 - 55.0 L3 \n 381 28JUL2020 33 4.7 7.0 - 55.0 L1 \n CHN-1/id-26 905 07JAN2023 0 1.1 7.0 - 55.0 L1 \n CHN-1/id-275 364 01JUN2021 0 5.1 7.0 - 55.0 L2 \n CHN-1/id-277 483 12MAY2022 0 1.1 7.0 - 55.0 L4 \n CHN-1/id-287 182 23MAY2020 0 5.9 7.0 - 55.0 L2 \n 191 01JUN2020 9 5.3 7.0 - 55.0 L3 \n 515 21APR2021 324 2.9 7.0 - 55.0 L4 \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nNCI CTCAE grade is displayed as abnormal high (H) or low (L) followed by the grade.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadlb <- random.cdisc.data::cadlb\n\nadlb_x <- adlb %>%\n filter(\n ANRIND %in% c(\"LOW\", \"HIGH\"),\n !ATOXGR %in% c(\"0\", \"\"),\n LBTEST != \"\"\n ) %>%\n mutate(\n LBTEST_U = paste0(LBTEST, \" (\", AVALU, \")\"),\n CPID = paste(SITEID, SUBJID, sep = \"/\"),\n ADTM = toupper(format(as.Date(ADTM), \"%d%b%Y\")),\n AVAL = format(round(AVAL, 1), nsmall = 1),\n LBNRNG = paste(format(round(ANRLO, 1), nsmall = 1), format(round(ANRHI, 1), nsmall = 1), sep = \" - \"),\n ANRIND_GR = factor(\n case_when(\n ANRIND == \"LOW\" ~ paste0(\"L\", sub(\"-\", \"\", ATOXGR)),\n ANRIND == \"HIGH\" ~ paste0(\"H\", ATOXGR)\n )\n )\n ) %>%\n select(LBTEST_U, TRT01A, CPID, ADY, ADTM, AVAL, ADY, LBNRNG, ANRIND_GR) %>%\n unique() %>%\n arrange(CPID, ADY) %>%\n group_by(LBTEST_U, CPID) %>%\n mutate(DLD = ADY - lag(ADY)) %>%\n ungroup() %>%\n mutate(DLD = ifelse(is.na(DLD), 0, DLD))\n\nout <- adlb_x %>%\n select(LBTEST_U, TRT01A, CPID, ADY, ADTM, DLD, AVAL, LBNRNG, ANRIND_GR)\n\nvar_labels(out) <- names(out)\nout <- out %>%\n var_relabel(\n LBTEST_U = \"Lab Test (Unit)\",\n TRT01A = \"Treatment\",\n CPID = \"Center/Patient ID\",\n ADY = \"Study\\nDay\",\n ADTM = \"Date\",\n DLD = \"Days Since\\nLast Dose of\\nStudy Drug\",\n AVAL = \"Result\",\n LBNRNG = \"Lab Normal\\nRange\",\n ANRIND_GR = \"NCI\\nCTCAE\\nGrade\"\n )", "crumbs": [ - "Graphs", - "Efficacy", - "KMG01" + "Listings", + "Lab Results", + "LBL02A" ] }, { - "objectID": "graphs/efficacy/kmg01.html#teal-app", - "href": "graphs/efficacy/kmg01.html#teal-app", - "title": "KMG01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_km(\n label = \"KM PLOT\",\n plot_height = c(600, 100, 2000),\n dataname = \"ADTTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"),\n \"OS\"\n ),\n arm_ref_comp = arm_ref_comp,\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n \"SEX\"\n ),\n facet_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n NULL\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_km(\n label = \"KM PLOT\",\n plot_height = c(600, 100, 2000),\n dataname = \"ADTTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"),\n \"OS\"\n ),\n arm_ref_comp = arm_ref_comp,\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n \"SEX\"\n ),\n facet_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n NULL\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "listings/lab-results/lbl02a.html#reproducibility", + "href": "listings/lab-results/lbl02a.html#reproducibility", + "title": "LBL02A", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:37:02 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Efficacy", - "KMG01" + "Listings", + "Lab Results", + "LBL02A" ] }, { - "objectID": "graphs/efficacy/kmg01.html#reproducibility", - "href": "graphs/efficacy/kmg01.html#reproducibility", - "title": "KMG01", + "objectID": "listings/lab-results/lbl01.html#output", + "href": "listings/lab-results/lbl01.html#output", + "title": "LBL01", + "section": "Output", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"CPID\"),\n disp_cols = names(out),\n main_title = \"Listing of Laboratory Test Results\",\n main_footer = \"NCI CTCAE grade is displayed as abnormal high (H) or low (L) followed by the grade.\"\n)\n\nhead(lsting, 20)\n\nListing of Laboratory Test Results\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Days Since \n Study Last Dose of ALT CRP IGA \nTreatment Center/Patient ID Day Study Drug (U/L / NCI CTCAE grade) (mg/L / NCI CTCAE grade) (g/L / NCI CTCAE grade)\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-105 80 NA 4.30 / L4 9.09 2.84 \n 149 69 24.70 9.15 2.93 \n 314 165 24.87 10.89 / H2 2.66 \n 398 84 3.67 / L3 8.14 2.86 \n 470 72 18.55 10.59 / H3 2.88 \n 528 58 7.73 10.09 / H3 2.93 \n 535 7 23.51 9.20 2.88 \n BRA-1/id-134 225 NA 7.37 10.46 / H1 2.86 \n 227 2 16.42 7.43 / L1 2.76 \n 255 28 11.16 9.41 2.75 \n 269 14 15.89 10.02 / H4 2.84 \n 357 88 24.35 8.01 2.86 \n 436 79 16.03 8.51 2.98 \n 440 4 17.21 7.63 / L3 2.78 \n BRA-1/id-42 176 NA 16.56 8.88 2.75 \n 477 301 16.49 8.11 2.95 \n 534 57 18.71 8.78 2.95 \n 550 16 11.44 9.53 2.99 \n 569 19 21.66 10.32 / H2 3.00 / H1 \n 608 39 24.61 7.95 / L2 2.78 \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nNCI CTCAE grade is displayed as abnormal high (H) or low (L) followed by the grade.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadlb <- random.cdisc.data::cadlb\n\nadlb_x <- adlb %>%\n filter(!is.na(AVAL) & !is.na(LBSEQ) & !is.na(ADY) & ANRIND != \"\") %>%\n mutate(\n CPID = paste(SITEID, SUBJID, sep = \"/\"),\n PARAM_U = paste0(PARAMCD, \"\\n(\", AVALU, \" / NCI CTCAE grade)\"),\n ANRIND = factor(\n case_when(\n ANRIND == \"LOW\" ~ \"L\",\n ANRIND == \"HIGH\" ~ \"H\",\n TRUE ~ as.character(ANRIND)\n ),\n levels = c(\"\", \"H\", \"L\", \"NORMAL\")\n ),\n AVALC = as.character(format(round(AVAL, 2), nsmall = 2))\n ) %>%\n mutate(AVAL_GR = ifelse(\n !ANRIND %in% c(\"H\", \"L\"),\n AVALC,\n paste(AVALC, paste0(ANRIND, sub(\"-\", \"\", ATOXGR)), sep = \" / \")\n )) %>%\n select(CPID, TRT01A, ADY, LBSEQ, PARAM_U, AVAL_GR) %>%\n unique()\n\nout <- adlb_x %>%\n arrange(CPID, ADY, PARAM_U, LBSEQ) %>%\n tidyr::pivot_wider(\n id_cols = c(TRT01A, CPID, ADY),\n names_from = PARAM_U,\n values_from = AVAL_GR\n ) %>%\n group_by(CPID) %>%\n mutate(DLD = ADY - lag(ADY)) %>%\n ungroup() %>%\n select(CPID, TRT01A, ADY, DLD, unique(adlb_x$PARAM_U))\n\nvar_labels(out) <- names(out)\nout <- out %>%\n var_relabel(\n TRT01A = \"Treatment\",\n CPID = \"Center/Patient ID\",\n ADY = \"Study\\nDay\",\n DLD = \"Days Since\\nLast Dose of\\nStudy Drug\"\n )", + "crumbs": [ + "Listings", + "Lab Results", + "LBL01" + ] + }, + { + "objectID": "listings/lab-results/lbl01.html#reproducibility", + "href": "listings/lab-results/lbl01.html#reproducibility", + "title": "LBL01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:35:32 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:36:53 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Efficacy", - "KMG01" + "Listings", + "Lab Results", + "LBL01" ] }, { - "objectID": "graphs/efficacy/mmrmg01.html", - "href": "graphs/efficacy/mmrmg01.html", - "title": "MMRMG01", - "section": "", - "text": "Given an MMRM fitted with s_mmrm, g_mmrm_lsmeans displays for each visit the adjusted means within group and/or difference in adjusted means between groups. g_mmrm_diagnostic displays marginal residual plots for evaluating model fit.", + "objectID": "listings/exposure/exl01.html#output", + "href": "listings/exposure/exl01.html#output", + "title": "EXL01", + "section": "Output", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"CRTNPT\", \"AVISIT\"),\n disp_cols = names(out),\n main_title = \"Listing of Exposure to Study Drug\"\n)\n\nhead(lsting, 20)\n\nListing of Exposure to Study Drug\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Study Day Study Day \nTreatment Center/Subject ID Visit From To Dose Unit Frequency Route \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-105 SCREENING -1 -1 960 mg ONCE INTRAVENOUS \n BASELINE 1 1 960 mg ONCE INTRAVENOUS \n WEEK 1 DAY 8 8 8 720 mg ONCE SUBCUTANEOUS\n WEEK 2 DAY 15 15 15 480 mg ONCE INTRAVENOUS \n WEEK 3 DAY 22 22 22 480 mg ONCE INTRAVENOUS \n WEEK 4 DAY 29 29 29 720 mg ONCE INTRAVENOUS \n WEEK 5 DAY 36 36 36 720 mg ONCE INTRAVENOUS \n BRA-1/id-134 SCREENING -1 -1 960 mg ONCE INTRAVENOUS \n BASELINE 1 1 720 mg ONCE INTRAVENOUS \n WEEK 1 DAY 8 8 8 720 mg ONCE INTRAVENOUS \n WEEK 2 DAY 15 15 15 960 mg ONCE INTRAVENOUS \n WEEK 3 DAY 22 22 22 720 mg ONCE INTRAVENOUS \n WEEK 4 DAY 29 29 29 960 mg ONCE INTRAVENOUS \n WEEK 5 DAY 36 36 36 960 mg ONCE INTRAVENOUS \n BRA-1/id-42 SCREENING -1 -1 960 mg ONCE INTRAVENOUS \n BASELINE 1 1 960 mg ONCE INTRAVENOUS \n WEEK 1 DAY 8 8 8 720 mg ONCE SUBCUTANEOUS\n WEEK 2 DAY 15 15 15 720 mg ONCE INTRAVENOUS \n WEEK 3 DAY 22 22 22 720 mg ONCE INTRAVENOUS \n WEEK 4 DAY 29 29 29 480 mg ONCE INTRAVENOUS \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadex <- random.cdisc.data::cadex\n\nout <- adex %>%\n filter(PARAMCD == \"DOSE\" & !is.na(AVAL) & SAFFL == \"Y\") %>%\n mutate(\n CRTNPT = paste(SITEID, SUBJID, sep = \"/\")\n ) %>%\n arrange(CRTNPT, AVISIT) %>%\n select(CRTNPT, AVISIT, EXSTDY, EXENDY, TRT01A, AVAL, AVALU, EXDOSFRQ, EXROUTE)\n\nvar_labels(out) <- c(\n CRTNPT = \"Center/Subject ID\",\n AVISIT = \"Visit\",\n EXSTDY = \"Study Day\\nFrom\",\n EXENDY = \"Study Day\\nTo\",\n TRT01A = \"Treatment\",\n AVAL = \"Dose\",\n AVALU = \"Unit\",\n EXDOSFRQ = \"Frequency\",\n EXROUTE = \"Route\"\n)", "crumbs": [ - "Graphs", - "Efficacy", - "MMRMG01" + "Listings", + "Exposure", + "EXL01" ] }, { - "objectID": "graphs/efficacy/mmrmg01.html#least-squares-means-estimates-within-groups", - "href": "graphs/efficacy/mmrmg01.html#least-squares-means-estimates-within-groups", - "title": "MMRMG01", - "section": "Least Squares Means: Estimates Within Groups", - "text": "Least Squares Means: Estimates Within Groups\nConsidering the treatment variable in the model\n\nCodeplot <- g_mmrm_lsmeans(\n mmrm_results,\n select = \"estimates\",\n xlab = \"Visit\"\n)\nplot\n\n\n\n\n\n\n\nConsidering the treatment variable in the model, with lines\n\nCodeplot <- g_mmrm_lsmeans(\n mmrm_results,\n select = \"estimates\",\n xlab = \"Visit\",\n show_lines = TRUE\n)\nplot\n\n\n\n\n\n\n\nConsidering the treatment variable in the model, with statistics table\n\nCodeplot <- g_mmrm_lsmeans(\n mmrm_results,\n select = \"estimates\",\n xlab = \"Visit\",\n table_stats = c(\"n\", \"estimate\", \"se\", \"ci\"),\n table_font_size = 4,\n table_rel_height = 0.6\n)\nplot", + "objectID": "listings/exposure/exl01.html#reproducibility", + "href": "listings/exposure/exl01.html#reproducibility", + "title": "EXL01", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:36:44 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Efficacy", - "MMRMG01" + "Listings", + "Exposure", + "EXL01" ] }, { - "objectID": "graphs/efficacy/mmrmg01.html#least-squares-means-contrasts-between-groups", - "href": "graphs/efficacy/mmrmg01.html#least-squares-means-contrasts-between-groups", - "title": "MMRMG01", - "section": "Least Squares Means: Contrasts Between Groups", - "text": "Least Squares Means: Contrasts Between Groups\nUsers can choose to display both estimates and contrasts together by running g_mmrm_lsmeans(mmrm_results).\n\nCodeplot <- g_mmrm_lsmeans(\n mmrm_results,\n select = \"contrasts\",\n titles = c(contrasts = \"Contrasts of FKSI-FWB means\"),\n xlab = \"Visit\"\n)\n\nCoordinate system already present. Adding new coordinate system, which will\nreplace the existing one.\n\nCodeplot", + "objectID": "listings/disposition/dsl01.html#output", + "href": "listings/disposition/dsl01.html#output", + "title": "DSL01", + "section": "Output", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = \"TRT01A\",\n disp_cols = names(out),\n main_title = \"Listing of Patients with Study Drug Withdrawn Due to Adverse Events\"\n)\n\nhead(lsting, 20)\n\nListing of Patients with Study Drug Withdrawn Due to Adverse Events\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Date of First \n Study Drug Study Day Discontinued \n Treatment Center/Patient ID Age/Sex/Race Administration of Withdrawal Early from Study?\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X RUS-18/id-359 47/F/BLACK OR AFRICAN AMERICAN 08JUN2019 1096 No \n BRA-1/id-42 36/M/BLACK OR AFRICAN AMERICAN 01JAN2020 NA No \n CHN-11/id-256 23/M/ASIAN 17MAR2020 1096 No \n CHN-1/id-26 29/M/WHITE 16JUL2020 1096 No \n CHN-1/id-62 36/F/WHITE 22NOV2020 455 Yes \n B: Placebo CHN-7/id-28 40/M/AMERICAN INDIAN OR ALASKA NATIVE 11MAR2019 1096 No \n CHN-13/id-102 37/M/ASIAN 23MAR2019 1096 No \n CHN-3/id-333 30/F/BLACK OR AFRICAN AMERICAN 13JAN2020 NA No \n USA-12/id-226 30/M/WHITE 29JAN2020 NA No \n CHN-9/id-147 26/F/ASIAN 06FEB2020 NA No \n USA-11/id-157 50/M/WHITE 14JUN2020 1096 No \n CHN-9/id-11 28/F/NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 27JAN2021 388 Yes \nC: Combination CHN-15/id-262 35/M/BLACK OR AFRICAN AMERICAN 26FEB2019 1096 No \n NGA-11/id-173 24/F/BLACK OR AFRICAN AMERICAN 10MAR2019 1096 No \n CHN-11/id-263 34/F/ASIAN 03APR2019 1096 No \n PAK-2/id-191 38/F/AMERICAN INDIAN OR ALASKA NATIVE 07APR2019 1096 No \n USA-11/id-136 38/F/ASIAN 02OCT2019 865 Yes \n CHN-17/id-31 35/F/ASIAN 17NOV2019 NA No \n BRA-11/id-237 64/F/ASIAN 10MAR2020 1096 No \n USA-11/id-100 40/F/ASIAN 10MAR2020 705 Yes \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadsl <- random.cdisc.data::cadsl\n\nout <- adsl %>%\n filter(AEWITHFL == \"Y\") %>%\n mutate(\n ID = paste(SITEID, SUBJID, sep = \"/\"),\n ASR = paste(AGE, SEX, RACE, sep = \"/\"),\n SSADM = toupper(format(as.Date(TRTSDTM), format = \"%d%b%Y\")),\n STDWD = as.numeric(ceiling(difftime(TRTEDTM, TRTSDTM, units = \"days\"))),\n DISCONT = ifelse(!is.na(DCSREAS) & toupper(EOSSTT) == \"DISCONTINUED\", \"Yes\", \"No\")\n ) %>%\n select(ID, ASR, TRT01A, SSADM, STDWD, DISCONT)\n\nvar_labels(out) <- c(\n ID = \"Center/Patient ID\",\n ASR = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n SSADM = \"Date of First\\nStudy Drug\\nAdministration\",\n STDWD = \"Study Day\\nof Withdrawal\",\n DISCONT = \"Discontinued\\nEarly from Study?\"\n)", "crumbs": [ - "Graphs", - "Efficacy", - "MMRMG01" + "Listings", + "Disposition", + "DSL01" ] }, { - "objectID": "graphs/efficacy/mmrmg01.html#model-diagnostics-marginal-fitted-values-vs.-residuals", - "href": "graphs/efficacy/mmrmg01.html#model-diagnostics-marginal-fitted-values-vs.-residuals", - "title": "MMRMG01", - "section": "Model Diagnostics: Marginal Fitted Values vs. Residuals", - "text": "Model Diagnostics: Marginal Fitted Values vs. Residuals\n\nCodeplot <- g_mmrm_diagnostic(mmrm_results)\nplot", + "objectID": "listings/disposition/dsl01.html#reproducibility", + "href": "listings/disposition/dsl01.html#reproducibility", + "title": "DSL01", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:36:35 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Efficacy", - "MMRMG01" + "Listings", + "Disposition", + "DSL01" ] }, { - "objectID": "graphs/efficacy/mmrmg01.html#model-diagnostics-normality-of-marginal-residuals", - "href": "graphs/efficacy/mmrmg01.html#model-diagnostics-normality-of-marginal-residuals", - "title": "MMRMG01", - "section": "Model Diagnostics: Normality of Marginal Residuals", - "text": "Model Diagnostics: Normality of Marginal Residuals\n\nCodeplot <- g_mmrm_diagnostic(mmrm_results, type = \"q-q-residual\")\nplot", + "objectID": "listings/development-safety-update-report/dsur4.html#output", + "href": "listings/development-safety-update-report/dsur4.html#output", + "title": "DSUR4", + "section": "Output", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"ARM\"),\n disp_cols = names(out),\n main_title = \"Listing of Patients Who Died During Reporting Period\",\n subtitles = paste(\"Number of patient deaths during reporting period =\", death_num)\n)\n\nhead(lsting, 20)\n\nListing of Patients Who Died During Reporting Period\nNumber of patient deaths during reporting period = 70\n\n———————————————————————————————————————————————————————————————————\nTreatment Group Center/Patient ID Cause of Death \n———————————————————————————————————————————————————————————————————\n A: Drug X CHN-3/id-128 ADVERSE EVENT \n RUS-1/id-52 DISEASE PROGRESSION \n CHN-1/id-235 ADVERSE EVENT \n CHN-5/id-108 MISSING \n CHN-17/id-182 LOST TO FOLLOW UP \n BRA-11/id-217 ADVERSE EVENT \n CHN-15/id-14 DISEASE PROGRESSION \n CHN-2/id-274 SUICIDE \n USA-11/id-339 UNKNOWN \n BRA-15/id-36 DISEASE PROGRESSION \n CHN-1/id-199 DISEASE PROGRESSION \n CHN-2/id-272 DISEASE PROGRESSION \n CHN-1/id-123 DISEASE PROGRESSION \n CHN-12/id-258 SUICIDE \n CHN-17/id-92 LOST TO FOLLOW UP \n NGA-1/id-46 DISEASE PROGRESSION \n BRA-1/id-93 ADVERSE EVENT \n CHN-6/id-30 Post-study reporting of death\n CAN-11/id-139 ADVERSE EVENT \n GBR-1/id-319 ADVERSE EVENT \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadsl <- random.cdisc.data::cadsl\n\nout <- adsl %>%\n filter(DTHFL == \"Y\") %>%\n mutate(ID = paste(SITEID, SUBJID, sep = \"/\")) %>%\n select(ARM, ID, DTHCAUS)\ndeath_num <- length(unique(out$ID))\nvar_labels(out) <- c(\n ARM = \"Treatment Group\",\n ID = \"Center/Patient ID\",\n DTHCAUS = \"Cause of Death\"\n)", "crumbs": [ - "Graphs", - "Efficacy", - "MMRMG01" + "Listings", + "Development Safety Update Report", + "DSUR4" ] }, { - "objectID": "graphs/efficacy/mmrmg01.html#data-setup-and-model-fitting", - "href": "graphs/efficacy/mmrmg01.html#data-setup-and-model-fitting", - "title": "MMRMG01", - "section": "Data Setup and Model Fitting", - "text": "Data Setup and Model Fitting\n\nCodelibrary(dplyr)\nlibrary(tern.mmrm)\nlibrary(nestcolor)\n\nadsl <- random.cdisc.data::cadsl\nadqs <- random.cdisc.data::cadqs\n\nadqs_f <- adqs %>%\n dplyr::filter(PARAMCD == \"FKSI-FWB\" & !AVISIT %in% c(\"BASELINE\")) %>%\n droplevels() %>%\n dplyr::mutate(ARM = factor(ARM, levels = c(\"B: Placebo\", \"A: Drug X\", \"C: Combination\"))) %>%\n dplyr::mutate(AVISITN = rank(AVISITN) %>% as.factor() %>% as.numeric() %>% as.factor())\n\nmmrm_results <- fit_mmrm(\n vars = list(\n response = \"AVAL\",\n covariates = c(\"STRATA2\"),\n id = \"USUBJID\",\n arm = \"ARM\",\n visit = \"AVISIT\"\n ),\n data = adqs_f\n)", + "objectID": "listings/development-safety-update-report/dsur4.html#reproducibility", + "href": "listings/development-safety-update-report/dsur4.html#reproducibility", + "title": "DSUR4", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:36:27 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "crumbs": [ + "Listings", + "Development Safety Update Report", + "DSUR4" + ] + }, + { + "objectID": "CODE_OF_CONDUCT.html#our-pledge", + "href": "CODE_OF_CONDUCT.html#our-pledge", + "title": "", + "section": "Our Pledge", + "text": "Our Pledge\nWe as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.\nWe pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community." + }, + { + "objectID": "CODE_OF_CONDUCT.html#our-standards", + "href": "CODE_OF_CONDUCT.html#our-standards", + "title": "", + "section": "Our Standards", + "text": "Our Standards\nExamples of behavior that contributes to a positive environment for our community include:\n\nDemonstrating empathy and kindness toward other people\nBeing respectful of differing opinions, viewpoints, and experiences\nGiving and gracefully accepting constructive feedback\nAccepting responsibility and apologizing to those affected by our mistakes, and learning from the experience\nFocusing on what is best not just for us as individuals, but for the overall community\n\nExamples of unacceptable behavior include:\n\nThe use of sexualized language or imagery, and sexual attention or advances of any kind\nTrolling, insulting or derogatory comments, and personal or political attacks\nPublic or private harassment\nPublishing others’ private information, such as a physical or email address, without their explicit permission\nOther conduct which could reasonably be considered inappropriate in a professional setting" + }, + { + "objectID": "CODE_OF_CONDUCT.html#enforcement-responsibilities", + "href": "CODE_OF_CONDUCT.html#enforcement-responsibilities", + "title": "", + "section": "Enforcement Responsibilities", + "text": "Enforcement Responsibilities\nCommunity leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.\nCommunity leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate." + }, + { + "objectID": "CODE_OF_CONDUCT.html#scope", + "href": "CODE_OF_CONDUCT.html#scope", + "title": "", + "section": "Scope", + "text": "Scope\nThis Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event." + }, + { + "objectID": "CODE_OF_CONDUCT.html#enforcement", + "href": "CODE_OF_CONDUCT.html#enforcement", + "title": "", + "section": "Enforcement", + "text": "Enforcement\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at [INSERT CONTACT METHOD]. All complaints will be reviewed and investigated promptly and fairly.\nAll community leaders are obligated to respect the privacy and security of the reporter of any incident." + }, + { + "objectID": "CODE_OF_CONDUCT.html#enforcement-guidelines", + "href": "CODE_OF_CONDUCT.html#enforcement-guidelines", + "title": "", + "section": "Enforcement Guidelines", + "text": "Enforcement Guidelines\nCommunity leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:\n\n1. Correction\nCommunity Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.\nConsequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.\n\n\n2. Warning\nCommunity Impact: A violation through a single incident or series of actions.\nConsequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.\n\n\n3. Temporary Ban\nCommunity Impact: A serious violation of community standards, including sustained inappropriate behavior.\nConsequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.\n\n\n4. Permanent Ban\nCommunity Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.\nConsequence: A permanent ban from any sort of public interaction within the community." + }, + { + "objectID": "CODE_OF_CONDUCT.html#attribution", + "href": "CODE_OF_CONDUCT.html#attribution", + "title": "", + "section": "Attribution", + "text": "Attribution\nThis Code of Conduct is adapted from the Contributor Covenant, version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.\nCommunity Impact Guidelines were inspired by Mozilla’s code of conduct enforcement ladder.\nFor answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations." + }, + { + "objectID": "listings/vital-signs/vsl01.html#output", + "href": "listings/vital-signs/vsl01.html#output", + "title": "VSL01", + "section": "Output", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"CRTNPT\", \"AGSXRC\", \"AVISIT\"),\n disp_cols = names(out),\n main_title = \"Listing of Vital Signs: Safety-Evaluable Patients\",\n main_footer = \"Baseline is the patient's last observation prior to initiation of study drug. Abnormalities are flagged as high (H) or low (L) if outside the Roche standard reference range.\" \n)\n\nhead(lsting, 20)\n\nListing of Vital Signs: Safety-Evaluable Patients\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Diastolic Blood \n Pressure, Systolic Blood \n Weight Sitting Diastolic Blood Pressure, Systolic Blood Respiratory Rate \n Result Temperature Result Result Pressure, Sitting Pressure, Pulse Rate Result Result \n Study (Kg); Weight (C); Temperature Rate (Pa); Sitting (Pa); Sitting (beats/min); Pulse Rate (breaths/min); Respiratory Rate\nTreatment Center/Subject ID Age/Sex/Race Visit Day Range:(40-100) Change from BL Range:(36.1-37.2) Change from BL Range:(80-120) Change from BL Range:(120-180) Change from BL Range:(60-100) Change from BL Range:(12-20) Change from BL \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/105 38/M/BLACK OR AFRICAN AMERICAN WEEK 1 DAY 8 189 90.96 24.62 36.79 -1.88 101.10 -12.65 181.05/H 3.70 84.91 -2.05 18.34 1.13 \n WEEK 2 DAY 15 323 41.40 -24.93 36.52 -2.14 111.02 -2.72 132.47 -44.88 71.54 -15.42 9.81/L -7.40 \n WEEK 3 DAY 22 492 60.55 -5.78 35.03/L -3.64 88.35 -25.39 112.67/L -64.68 33.75/L -53.22 21.23/H 4.02 \n WEEK 4 DAY 29 550 69.69 3.36 35.71/L -2.95 100.74 -13.00 194.88/H 17.53 97.51 10.54 12.50 -4.71 \n WEEK 5 DAY 36 628 81.64 15.30 36.01/L -2.65 123.17/H 9.43 140.33 -37.02 62.50 -24.47 10.91/L -6.30 \n BRA-1/134 47/M/WHITE WEEK 1 DAY 8 203 42.95 -12.51 36.39 -1.38 112.71 26.38 148.69 -52.75 69.12 3.72 15.31 -2.84 \n WEEK 2 DAY 15 326 20.36/L -35.09 35.75/L -2.03 98.42 12.09 188.08/H -13.36 68.79 3.40 17.60 -0.55 \n WEEK 3 DAY 22 363 46.33 -9.12 35.43/L -2.34 97.88 11.55 160.05 -41.39 90.21 24.81 18.15 0.00 \n WEEK 4 DAY 29 367 43.83 -11.62 36.01/L -1.76 98.97 12.65 132.19 -69.25 88.39 23.00 19.62 1.48 \n WEEK 5 DAY 36 417 31.75/L -23.71 36.35 -1.42 124.26/H 37.94 134.30 -67.14 88.64 23.25 20.08/H 1.94 \n BRA-1/42 36/M/BLACK OR AFRICAN AMERICAN WEEK 1 DAY 8 265 115.27/H 8.42 37.35/H -1.67 107.32 5.90 173.89 27.40 66.14 26.13 9.23/L 7.13 \n WEEK 2 DAY 15 313 45.84 -61.01 36.01/L -3.01 110.97 9.55 144.75 -1.74 109.71/H 69.70 7.18/L 5.08 \n WEEK 3 DAY 22 325 85.70 -21.14 37.71/H -1.31 124.13/H 22.71 89.08/L -57.41 90.29 50.28 25.16/H 23.05 \n WEEK 4 DAY 29 535 44.64 -62.21 36.44 -2.58 79.51/L -21.91 140.78 -5.71 82.44 42.43 14.06 11.95 \n WEEK 5 DAY 36 729 85.21 -21.64 35.78/L -3.23 105.26 3.84 126.60 -19.89 88.71 48.70 25.98/H 23.87 \n BRA-1/93 34/F/ASIAN WEEK 1 DAY 8 402 47.51 -35.34 35.50/L -0.83 94.27 17.98 98.82/L -61.71 72.44 -7.85 14.97 0.22 \n WEEK 2 DAY 15 460 67.64 -15.21 37.96/H 1.62 109.98 33.69 104.21/L -56.32 104.70/H 24.41 14.90 0.16 \n WEEK 3 DAY 22 464 53.06 -29.78 36.33 -0.01 90.17 13.87 139.66 -20.87 111.13/H 30.85 22.86/H 8.12 \n WEEK 4 DAY 29 496 61.68 -21.17 33.52/L -2.82 112.76 36.47 128.82 -31.70 72.89 -7.39 20.77/H 6.03 \n WEEK 5 DAY 36 538 53.98 -28.86 35.71/L -0.63 80.20 3.91 137.16 -23.37 96.63 16.35 18.10 3.36 \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nBaseline is the patient's last observation prior to initiation of study drug. Abnormalities are flagged as high (H) or low (L) if outside the Roche standard reference range.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadvs <- random.cdisc.data::cadvs\n\nget_param_unit_range <- function(dataset) {\n u_rng <- lapply(unique(dataset$PARAMCD), function(p) {\n dat <- dataset %>% filter(PARAMCD == p)\n list(\n unit = unique(dat$AVALU),\n range = paste0(unique(dat$ANRLO), \"-\", unique(dat$ANRHI))\n )\n })\n names(u_rng) <- unique(dataset$PARAMCD)\n u_rng\n}\n\nvs_u_rng <- get_param_unit_range(advs)\n\nadvs_sub <- advs %>%\n filter(!is.na(AVAL) & SAFFL == \"Y\" & ONTRTFL == \"Y\" & !is.na(VSSEQ)) %>%\n mutate(\n CRTNPT = paste(SITEID, sub(\"^.*-([[:alnum:]]+)$\", \"\\\\1\", SUBJID), sep = \"/\"),\n AGSXRC = paste(AGE, SEX, RACE, sep = \"/\"),\n AVAL = format(round(AVAL, 2), nsmall = 2),\n AVAL_ANRIND = ifelse(ANRIND %in% c(\"NORMAL\", \"\"), AVAL, paste(AVAL, substr(ANRIND, 1, 1), sep = \"/\")),\n CHG = format(round(CHG, 2), nsmall = 2)\n )\n\nanl_vs <- advs_sub %>%\n select(SUBJID, CRTNPT, AGSXRC, TRT01A, PARAMCD, AVAL_ANRIND, CHG, ADY, AVISIT, ADTM) %>%\n tidyr::pivot_wider(\n id_cols = c(SUBJID, CRTNPT, AGSXRC, TRT01A, ADY, AVISIT, ADTM),\n names_from = PARAMCD,\n values_from = c(AVAL_ANRIND, CHG)\n )\n\nout <- anl_vs %>%\n select(\n CRTNPT, AGSXRC, TRT01A, AVISIT, ADY, AVAL_ANRIND_WEIGHT, CHG_WEIGHT, AVAL_ANRIND_TEMP, CHG_TEMP, AVAL_ANRIND_DIABP,\n CHG_DIABP, AVAL_ANRIND_SYSBP, CHG_SYSBP, AVAL_ANRIND_PULSE, CHG_PULSE, AVAL_ANRIND_RESP, CHG_RESP\n ) %>%\n var_relabel(\n CRTNPT = \"Center/Subject ID\",\n AGSXRC = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n AVISIT = \"Visit\",\n ADY = \"Study\\nDay\",\n AVAL_ANRIND_WEIGHT = paste0(\n \"Weight\\nResult\\n(\",\n vs_u_rng$WEIGHT$unit,\n \");\\nRange:(\",\n vs_u_rng$WEIGHT$range,\n \")\"\n ),\n CHG_WEIGHT = \"Weight\\nChange from BL\",\n AVAL_ANRIND_TEMP = paste0(\n \"Temperature Result\\n(\",\n vs_u_rng$TEMP$unit,\n \");\\nRange:(\",\n vs_u_rng$TEMP$range,\n \")\"\n ),\n CHG_TEMP = \"Temperature Rate\\nChange from BL\",\n AVAL_ANRIND_DIABP = paste0(\n \"Diastolic Blood\\nPressure,\\nSitting\\nResult\\n(\",\n vs_u_rng$DIABP$unit,\n \");\\nRange:(\",\n vs_u_rng$DIABP$range,\n \")\"\n ),\n CHG_DIABP = \"Diastolic Blood\\nPressure,\\nSitting\\nChange from BL\",\n AVAL_ANRIND_SYSBP = paste0(\n \"Systolic Blood\\nPressure,\\nSitting\\n(\",\n vs_u_rng$SYSBP$unit,\n \");\\nRange:(\",\n vs_u_rng$SYSBP$range,\n \")\"\n ),\n CHG_SYSBP = \"Systolic Blood\\nPressure,\\nSitting\\nChange from BL\",\n AVAL_ANRIND_PULSE = paste0(\n \"Pulse Rate Result\\n(\",\n vs_u_rng$PULSE$unit,\n \");\\nRange:(\",\n vs_u_rng$PULSE$range,\n \")\"\n ),\n CHG_PULSE = \"Pulse Rate\\nChange from BL\",\n AVAL_ANRIND_RESP = paste0(\n \"Respiratory Rate\\nResult\\n(\",\n vs_u_rng$RESP$unit,\n \");\\nRange:(\",\n vs_u_rng$RESP$range,\n \")\"\n ),\n CHG_RESP = \"Respiratory Rate\\nChange from BL\"\n )", "crumbs": [ - "Graphs", - "Efficacy", - "MMRMG01" + "Listings", + "Vital Signs", + "VSL01" ] }, { - "objectID": "graphs/efficacy/mmrmg01.html#teal-app", - "href": "graphs/efficacy/mmrmg01.html#teal-app", - "title": "MMRMG01", - "section": "\nteal App", - "text": "teal App\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs %>%\n filter(ABLFL != \"Y\" & ABLFL2 != \"Y\") %>%\n filter(AVISIT %in% c(\"WEEK 1 DAY 8\", \"WEEK 2 DAY 15\", \"WEEK 3 DAY 22\")) %>%\n mutate(\n AVISIT = as.factor(AVISIT),\n AVISITN = rank(AVISITN) %>%\n as.factor() %>%\n as.numeric() %>%\n as.factor() # making consecutive numeric factor\n )\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\narm_ref_comp <- list(\n ARMCD = list(\n ref = \"ARM A\",\n comp = c(\"ARM B\", \"ARM C\")\n )\n)\n\n## Reusable Configuration For Modules\nADQS <- data[[\"ADQS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_a_mmrm(\n label = \"MMRM\",\n dataname = \"ADQS\",\n aval_var = choices_selected(c(\"AVAL\", \"CHG\"), \"AVAL\"),\n id_var = choices_selected(c(\"USUBJID\", \"SUBJID\"), \"USUBJID\"),\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARMCD\"),\n visit_var = choices_selected(c(\"AVISIT\", \"AVISITN\"), \"AVISIT\"),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = \"FKSI-FWB\"\n ),\n cov_var = choices_selected(c(\"BASE\", \"AGE\", \"SEX\", \"BASE:AVISIT\"), NULL),\n conf_level = choices_selected(c(0.95, 0.9, 0.8), 0.95)\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "listings/vital-signs/vsl01.html#reproducibility", + "href": "listings/vital-signs/vsl01.html#reproducibility", + "title": "VSL01", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:36:22 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Efficacy", - "MMRMG01" + "Listings", + "Vital Signs", + "VSL01" ] }, { - "objectID": "graphs/efficacy/mmrmg01.html#reproducibility", - "href": "graphs/efficacy/mmrmg01.html#reproducibility", - "title": "MMRMG01", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:34:25 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n mmrm 0.3.14.9001 2025-01-01 [1] https://p~\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n parallelly 1.41.0 2024-12-18 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n tern.mmrm * 0.3.2.9002 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n TMB 1.9.15 2024-09-09 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "listings/disposition/dsl02.html#output", + "href": "listings/disposition/dsl02.html#output", + "title": "DSL02", + "section": "Output", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = \"TRT01A\",\n disp_cols = names(out),\n main_title = \"Listing of Patients Who Discontinued Early from Study\"\n)\n\nhead(lsting, 20)\n\nListing of Patients Who Discontinued Early from Study\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Day of Study \n Discontinuation Day of Study \n Date of First Day of Last Relative to First Discontinuation \n Study Drug Study Drug Study Drug Relative to Reason for \n Treatment Center/Patient ID Age/Sex/Race Administration Administration Administration Randomization Discontinuation \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X CHN-1/id-62 36/F/WHITE 2020-11-22 455 454 455 DEATH \n B: Placebo CHN-9/id-11 28/F/NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 2021-01-27 388 387 388 DEATH \nC: Combination USA-11/id-136 38/F/ASIAN 2019-10-02 865 864 868 DEATH \n USA-11/id-100 40/F/ASIAN 2020-03-10 705 705 707 LACK OF EFFICACY\n CHN-11/id-91 44/M/BLACK OR AFRICAN AMERICAN 2020-05-29 625 625 626 DEATH \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadsl <- random.cdisc.data::cadsl\n\nout <- adsl %>%\n filter(AEWITHFL == \"Y\") %>%\n mutate(\n ID = paste(SITEID, SUBJID, sep = \"/\"),\n ASR = paste(AGE, SEX, RACE, sep = \"/\"),\n DISCONT = ifelse(!is.na(DCSREAS) & EOSSTT != \"COMPLETED\", \"Yes\", \"No\"),\n SSADTM = as.POSIXct(\n strftime(TRTSDTM, format = \"%Y-%m-%d %H:%M:%S\"),\n format = \"%Y-%m-%d\",\n tz = \"UTC\"\n ),\n SSAEDY = as.numeric(ceiling(difftime(EOSDT, SSADTM, units = \"days\"))),\n RANDEDY = as.numeric(ceiling(difftime(EOSDT, RANDDT, units = \"days\"))),\n ) %>%\n filter(DISCONT == \"Yes\") %>%\n select(ID, ASR, TRT01A, SSADTM, EOSDY, SSAEDY, RANDEDY, DCSREAS)\n\nvar_labels(out) <- c(\n ID = \"Center/Patient ID\",\n ASR = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n SSADTM = \"Date of First\\nStudy Drug\\nAdministration\",\n EOSDY = \"Day of Last\\nStudy Drug\\nAdministration\",\n SSAEDY = \"Day of Study\\nDiscontinuation\\nRelative to First\\nStudy Drug\\nAdministration\",\n RANDEDY = \"Day of Study\\nDiscontinuation\\nRelative to\\nRandomization\",\n DCSREAS = \"Reason for\\nDiscontinuation\"\n)", "crumbs": [ - "Graphs", - "Efficacy", - "MMRMG01" + "Listings", + "Disposition", + "DSL02" ] }, { - "objectID": "graphs/efficacy/fstg01.html#output", - "href": "graphs/efficacy/fstg01.html#output", - "title": "FSTG01", - "section": "Output", - "text": "Output\n\n\nStandard Plot\nPlot Specifying Class Variables and Options for the Treatment Variable\nPlot Selecting Columns and Changing the Alpha Level\nPlot with Fixed Symbol Size\nPlot of CR Only, Setting Values Indicating Response\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodedf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"is_rsp\",\n arm = \"ARM\",\n subgroups = c(\"SEX\", \"BMRKR2\"),\n strata = \"STRATA2\"\n ),\n data = anl_rsp_arms_ab,\n conf_level = 0.95\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\"))\n\nplot <- g_forest(tbl = result)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl_rsp_comb_arms_ac <- anl %>%\n mutate(is_rsp = AVALC %in% c(\"CR\", \"PR\")) %>%\n filter(ARMCD %in% c(\"ARM B\", \"ARM A\", \"ARM C\")) %>%\n mutate(\n ARMCD = relevel(ARMCD, ref = \"ARM B\") %>%\n droplevels() %>%\n combine_levels(levels = c(\"ARM A\", \"ARM C\")),\n ARM = relevel(ARM, ref = \"B: Placebo\") %>%\n droplevels() %>%\n combine_levels(levels = c(\"A: Drug X\", \"C: Combination\")),\n # reorder levels of SEX\n SEX = forcats::fct_relevel(SEX, \"M\", \"F\"),\n # reorder levels of STRATA1 by frequency\n STRATA1 = forcats::fct_infreq(STRATA1)\n ) %>%\n droplevels()\nvar_labels(anl_rsp_comb_arms_ac) <- c(anl_labels, is_rsp = \"Is Responder\")\n\ndf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"is_rsp\",\n arm = \"ARMCD\",\n subgroups = c(\"SEX\", \"BMRKR2\"),\n strata = \"STRATA2\"\n ),\n data = anl_rsp_comb_arms_ac,\n conf_level = 0.95\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\"))\n\nplot <- g_forest(tbl = result)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodedf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"is_rsp\",\n arm = \"ARM\",\n subgroups = c(\"SEX\", \"BMRKR2\"),\n strata = \"STRATA2\"\n ),\n data = anl_rsp_arms_ab,\n conf_level = 0.90\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"or\", \"ci\"))\n\nplot <- g_forest(tbl = result)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodedf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"is_rsp\",\n arm = \"ARM\",\n subgroups = c(\"SEX\", \"BMRKR2\"),\n strata = \"STRATA2\"\n ),\n data = anl_rsp_arms_ab,\n conf_level = 0.95\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\"))\n\nplot <- g_forest(\n tbl = result,\n col_symbol_size = NULL\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl_cr_arms_ab <- anl %>%\n mutate(is_rsp = AVALC == \"CR\") %>%\n filter(ARMCD %in% c(\"ARM B\", \"ARM A\")) %>%\n mutate(\n ARMCD = relevel(ARMCD, ref = \"ARM B\") %>%\n droplevels(),\n ARM = relevel(ARM, ref = \"B: Placebo\") %>%\n droplevels()\n ) %>%\n droplevels()\nvar_labels(anl_cr_arms_ab) <- c(anl_labels, is_rsp = \"Is CR\")\n\ndf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"is_rsp\",\n arm = \"ARM\",\n subgroups = c(\"SEX\", \"BMRKR2\"),\n strata = \"STRATA2\"\n ),\n data = anl_cr_arms_ab,\n conf_level = 0.95\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\"))\n\nplot <- g_forest(tbl = result)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(nestcolor)\n\nadsl_f <- random.cdisc.data::cadsl %>%\n select(STUDYID, USUBJID, ARMCD, ARM, SEX, BMRKR2, STRATA1, STRATA2)\n\nadrs_f <- random.cdisc.data::cadrs %>%\n filter(PARAMCD == \"INVET\") %>%\n select(STUDYID, USUBJID, PARAMCD, AVISIT, AVALC)\n\nanl <- inner_join(adsl_f, adrs_f, by = c(\"STUDYID\", \"USUBJID\"))\nanl <- df_explicit_na(anl)\nanl_labels <- var_labels(anl)\n\nanl_rsp_arms_ab <- anl %>%\n mutate(is_rsp = AVALC %in% c(\"CR\", \"PR\")) %>%\n filter(ARMCD %in% c(\"ARM B\", \"ARM A\")) %>%\n mutate(\n ARMCD = relevel(ARMCD, ref = \"ARM B\") %>%\n droplevels(),\n ARM = relevel(ARM, ref = \"B: Placebo\") %>%\n droplevels()\n ) %>%\n droplevels()\nvar_labels(anl_rsp_arms_ab) <- c(anl_labels, is_rsp = \"Is Responder\")", + "objectID": "listings/disposition/dsl02.html#reproducibility", + "href": "listings/disposition/dsl02.html#reproducibility", + "title": "DSL02", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:36:31 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Efficacy", - "FSTG01" + "Listings", + "Disposition", + "DSL02" ] }, { - "objectID": "graphs/efficacy/fstg01.html#teal-app", - "href": "graphs/efficacy/fstg01.html#teal-app", - "title": "FSTG01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADRS <- data[[\"ADRS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_forest_rsp(\n label = \"Forest Response\",\n dataname = \"ADRS\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n \"ARMCD\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n \"BESRSPI\"\n ),\n subgroup_var = choices_selected(\n variable_choices(ADSL, names(ADSL)),\n c(\"BMRKR2\", \"SEX\")\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"STRATA1\", \"STRATA2\")),\n \"STRATA2\"\n ),\n plot_height = c(600L, 200L, 2000L),\n plot_width = c(1100L, 200L, 2000L)\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADRS <- data[[\"ADRS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_forest_rsp(\n label = \"Forest Response\",\n dataname = \"ADRS\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n \"ARMCD\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n \"BESRSPI\"\n ),\n subgroup_var = choices_selected(\n variable_choices(ADSL, names(ADSL)),\n c(\"BMRKR2\", \"SEX\")\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"STRATA1\", \"STRATA2\")),\n \"STRATA2\"\n ),\n plot_height = c(600L, 200L, 2000L),\n plot_width = c(1100L, 200L, 2000L)\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "listings/ADA/adal02.html#output", + "href": "listings/ADA/adal02.html#output", + "title": "ADAL02", + "section": "Output", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = \"USUBJID\",\n disp_cols = names(out),\n main_title = paste0(\n \"Listing of Anti-\", drugcd, \" Antibody Data for Treatment Emergent ADA Positive Patients, PK Population\",\n \"\\nProtocol: \", unique(adab$PARCAT1)[1]\n ),\n subtitles = paste(\"\\nTreatment Group:\", trt),\n \n main_footer = \"Minimum reportable titer = 1.10 (example only)\n--- = No sample evaluated\nADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies)\nNumber of patients positive for Treatment Emergent ADA = the number of post-baseline evaluable patients determined to have treatment-induced ADA or treatment-enhanced ADA during the study period.\nTreatment-induced ADA = a patient with negative or missing baseline ADA result(s) and at least one positive post-baseline ADA result.\nTreatment-enhanced ADA = a patient with positive ADA result at baseline who has one or more post-baseline titer results that are at least 0.60 t.u. greater than the baseline titer result.\nTransient ADA = ADA positive result detected (a) at only one post-baseline sampling timepoint (excluding last timepoint) OR (b) at 2 or more timepoints during treatment where the first and last ADA positive samples are separated by a period of < 16 weeks, irrespective of any negative samples in between.\nPersistent ADA = ADA positive result detected (a) at the last post-baseline sampling timepoint, OR (b) at 2 or more time points during treatment where the first and last ADA positive samples are separated by a period ≥ 16 weeks, irrespective of any negative samples in between.\nAsterisk denotes sample that tested positive for Neutralizing Antibodies.\"\n \n)\n\nhead(lsting, 20)\n\nListing of Anti-R1800000 Antibody Data for Treatment Emergent ADA Positive Patients, PK Population\nProtocol: A: Drug X Antibody\n\nTreatment Group: A: Drug X\n\n—————————————————————————————————————————————————————\n Day 2 Patient Treatment \n Subject ID (Day 1) Emergent ADA Status\n—————————————————————————————————————————————————————\nAB12345-BRA-1-id-105 --- Enhanced \nAB12345-BRA-1-id-134 --- Enhanced \n AB12345-BRA-1-id-42 --- Enhanced \n AB12345-BRA-1-id-93 --- Enhanced \nAB12345-BRA-11-id-217 --- Enhanced \nAB12345-BRA-11-id-345 --- Enhanced \nAB12345-BRA-11-id-397 --- Enhanced \nAB12345-BRA-11-id-50 --- Enhanced \nAB12345-BRA-13-id-177 --- Enhanced \nAB12345-BRA-14-id-23 --- Enhanced \nAB12345-BRA-15-id-36 --- Enhanced \nAB12345-BRA-2-id-296 --- Enhanced \nAB12345-BRA-6-id-369 --- Enhanced \n AB12345-CAN-1-id-18 --- Enhanced \nAB12345-CAN-11-id-139 --- Enhanced \nAB12345-CAN-14-id-104 --- Enhanced \nAB12345-CHN-1-id-119 --- Enhanced \nAB12345-CHN-1-id-123 --- Enhanced \nAB12345-CHN-1-id-133 --- Enhanced \nAB12345-CHN-1-id-199 --- Enhanced \n—————————————————————————————————————————————————————\n\nMinimum reportable titer = 1.10 (example only)\n--- = No sample evaluated\nADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies)\nNumber of patients positive for Treatment Emergent ADA = the number of post-baseline evaluable patients determined to have treatment-induced ADA or treatment-enhanced ADA during the study period.\nTreatment-induced ADA = a patient with negative or missing baseline ADA result(s) and at least one positive post-baseline ADA result.\nTreatment-enhanced ADA = a patient with positive ADA result at baseline who has one or more post-baseline titer results that are at least 0.60 t.u. greater than the baseline titer result.\nTransient ADA = ADA positive result detected (a) at only one post-baseline sampling timepoint (excluding last timepoint) OR (b) at 2 or more timepoints during treatment where the first and last ADA positive samples are separated by a period of < 16 weeks, irrespective of any negative samples in between.\nPersistent ADA = ADA positive result detected (a) at the last post-baseline sampling timepoint, OR (b) at 2 or more time points during treatment where the first and last ADA positive samples are separated by a period ≥ 16 weeks, irrespective of any negative samples in between.\nAsterisk denotes sample that tested positive for Neutralizing Antibodies.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadab <- random.cdisc.data::cadab %>%\n filter(NFRLT %% 1 == 0 & NFRLT > 0)\n\ntrt <- \"A: Drug X\"\ndrug_a <- \"A: Drug X Antibody\"\ndrugcd <- unique(adab$PARAMCD[adab$PARAM == \"Antibody titer units\"])[1]\nmin_titer <- 1.10\n\nadab_x <- adab %>%\n filter(\n ARM == trt,\n PARCAT1 == drug_a,\n ADPBLPFL == \"Y\"\n ) %>%\n select(-PARAMCD, -AVALC, -AVALU, -ARRLT, -NRRLT) %>%\n unique() %>%\n tidyr::pivot_wider(\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n filter(if_any(matches(\"Treatment Emergent - Positive\"), ~ .x == 1)) %>%\n # filter(`Treatment Emergent - Positive` == 1) %>%\n mutate(\n VISN = factor(paste0(\n VISIT, \"\\n(Day \",\n ifelse(\n NFRLT %% 1 == 0,\n NFRLT,\n as.character(format(round(NFRLT, 2), nsmall = 2))\n ),\n \")\"\n )),\n PTES = ifelse(\n ifelse(\"Treatment induced ADA\" %in% names(.), `Treatment induced ADA` == 1, FALSE),\n ifelse(\n \"Transient ADA\" %in% names(.) & `Transient ADA` == 1,\n \"Induced (Transient)\",\n \"Induced (Persistent)\"\n ),\n \"Enhanced\"\n )\n ) %>%\n mutate(\n AVAL = paste0(\n ifelse(\n ifelse(\"ADA interpreted per sample result\" %in% names(.), `ADA interpreted per sample result` == 0, FALSE),\n \"NEGATIVE\",\n ifelse(\n ifelse(\"Antibody titer units\" %in% names(.), !is.na(`Antibody titer units`), FALSE),\n ifelse(\n `Antibody titer units` < min_titer,\n paste0(\"<\", format(min_titer, nsmall = 2)),\n as.character(format(round(`Antibody titer units`, 2), nsmall = 2))\n ),\n \"---\"\n )\n ),\n ifelse(\n ifelse(\"NAB interpreted per sample result\" %in% names(.), `NAB interpreted per sample result` == 1, FALSE),\n \"*\",\n \"\"\n )\n )\n )\n\nout <- adab_x %>%\n select(USUBJID, VISN, AVAL, PTES) %>%\n tidyr::pivot_wider(\n names_from = VISN,\n values_from = AVAL\n ) %>%\n select(USUBJID, unique(adab_x$VISN[order(adab_x$NFRLT)]), PTES)\n\nvar_labels(out) <- names(out)\n\nout <- out %>%\n var_relabel(\n USUBJID = \"Subject ID\",\n PTES = \"Patient Treatment\\nEmergent ADA Status\"\n )", "crumbs": [ - "Graphs", - "Efficacy", - "FSTG01" + "Listings", + "ADA", + "ADAL02" ] }, { - "objectID": "graphs/efficacy/fstg01.html#reproducibility", - "href": "graphs/efficacy/fstg01.html#reproducibility", - "title": "FSTG01", + "objectID": "listings/ADA/adal02.html#reproducibility", + "href": "listings/ADA/adal02.html#reproducibility", + "title": "ADAL02", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:34:50 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:36:39 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Efficacy", - "FSTG01" + "Listings", + "ADA", + "ADAL02" ] }, { - "objectID": "graphs/efficacy/fstg02.html#output", - "href": "graphs/efficacy/fstg02.html#output", - "title": "FSTG02", + "objectID": "listings/medical-history/mhl01.html#output", + "href": "listings/medical-history/mhl01.html#output", + "title": "MHL01", "section": "Output", - "text": "Output\n\n\nStandard Plot\nPlot Specifying Class Variables and Options for the Treatment Variable\nPlot Selecting Columns and Changing the Alpha Level\nPlot with Fixed Symbol Size\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl1 <- anl\n\ndf <- extract_survival_subgroups(\n variables = list(tte = \"AVAL\", is_event = \"is_event\", arm = \"ARM\", subgroups = c(\"SEX\", \"BMRKR2\")),\n data = anl1\n)\n\nresult <- basic_table() %>%\n tabulate_survival_subgroups(\n df = df,\n vars = c(\"n_tot\", \"n\", \"median\", \"hr\", \"ci\"),\n time_unit = anl1$AVALU[1]\n )\nresult\n\n B: Placebo A: Drug X \nBaseline Risk Factors Total n n Median (Months) n Median (Months) Hazard Ratio 95% Wald CI \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAll Patients 268 134 NA 134 NA 1.00 (0.69, 1.44)\nSex \n F 161 82 NA 79 NA 0.79 (0.49, 1.28)\n M 107 52 NA 55 9.6 1.39 (0.78, 2.47)\nCategorical Level Biomarker 2 \n LOW 95 45 NA 50 9.3 1.14 (0.64, 2.02)\n MEDIUM 93 56 NA 37 NA 0.97 (0.52, 1.82)\n HIGH 80 33 NA 47 NA 0.97 (0.45, 2.12)\n\nCode# Add plot.\nplot <- g_forest(tbl = result)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl2 <- anl %>%\n mutate(\n # Recode levels of arm.\n ARM = forcats::fct_recode(\n ARM,\n \"Placebo\" = \"B: Placebo\",\n \"Drug X\" = \"A: Drug X\"\n ),\n # Reorder levels of `SEX`.\n SEX = forcats::fct_relevel(SEX, \"M\", \"F\"),\n # Reorder levels of `STRATA1`` by frequency.\n STRATA1 = forcats::fct_infreq(STRATA1)\n )\n\ndf <- extract_survival_subgroups(\n variables = list(tte = \"AVAL\", is_event = \"is_event\", arm = \"ARM\", subgroups = c(\"SEX\", \"STRATA1\")),\n data = anl2\n)\n\nresult <- basic_table() %>%\n tabulate_survival_subgroups(\n df = df,\n vars = c(\"n_tot\", \"n\", \"median\", \"hr\", \"ci\"),\n time_unit = anl2$AVALU[1]\n )\nresult\n\n Placebo Drug X \nBaseline Risk Factors Total n n Median (Months) n Median (Months) Hazard Ratio 95% Wald CI \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAll Patients 268 134 NA 134 NA 1.00 (0.69, 1.44)\nSex \n M 107 52 NA 55 9.6 1.39 (0.78, 2.47)\n F 161 82 NA 79 NA 0.79 (0.49, 1.28)\nStratification Factor 1 \n C 94 45 NA 49 NA 0.75 (0.41, 1.38)\n B 92 45 NA 47 NA 1.34 (0.71, 2.54)\n A 82 44 NA 38 NA 1.02 (0.53, 1.97)\n\nCodeplot <- g_forest(tbl = result)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl3 <- anl\n\ndf <- extract_survival_subgroups(\n variables = list(tte = \"AVAL\", is_event = \"is_event\", arm = \"ARM\", subgroups = c(\"SEX\", \"BMRKR2\")),\n control = control_coxph(conf_level = 0.9),\n data = anl3\n)\n\nresult <- basic_table() %>%\n tabulate_survival_subgroups(\n df = df,\n vars = c(\"n_tot\", \"hr\", \"ci\")\n )\nresult\n\n \nBaseline Risk Factors Total n Hazard Ratio 90% Wald CI \n—————————————————————————————————————————————————————————————————————\nAll Patients 268 1.00 (0.74, 1.36)\nSex \n F 161 0.79 (0.53, 1.19)\n M 107 1.39 (0.86, 2.25)\nCategorical Level Biomarker 2 \n LOW 95 1.14 (0.71, 1.84)\n MEDIUM 93 0.97 (0.58, 1.64)\n HIGH 80 0.97 (0.51, 1.87)\n\nCode# Add plot.\nplot <- g_forest(tbl = result)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl4 <- anl\n\ndf <- extract_survival_subgroups(\n variables = list(tte = \"AVAL\", is_event = \"is_event\", arm = \"ARM\", subgroups = c(\"SEX\", \"BMRKR2\")),\n data = anl4\n)\n\nresult <- basic_table() %>%\n tabulate_survival_subgroups(\n df = df,\n vars = c(\"n_tot\", \"n\", \"median\", \"hr\", \"ci\"),\n time_unit = anl4$AVALU[1]\n )\nresult\n\n B: Placebo A: Drug X \nBaseline Risk Factors Total n n Median (Months) n Median (Months) Hazard Ratio 95% Wald CI \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAll Patients 268 134 NA 134 NA 1.00 (0.69, 1.44)\nSex \n F 161 82 NA 79 NA 0.79 (0.49, 1.28)\n M 107 52 NA 55 9.6 1.39 (0.78, 2.47)\nCategorical Level Biomarker 2 \n LOW 95 45 NA 50 9.3 1.14 (0.64, 2.02)\n MEDIUM 93 56 NA 37 NA 0.97 (0.52, 1.82)\n HIGH 80 33 NA 47 NA 0.97 (0.45, 2.12)\n\nCode# Add plot.\nplot <- g_forest(\n tbl = result,\n col_symbol_size = NULL\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(forcats)\nlibrary(nestcolor)\n\npreprocess_adtte <- function(adtte) {\n # Save variable labels before data processing steps.\n adtte_labels <- var_labels(adtte)\n\n adtte <- adtte %>%\n df_explicit_na() %>%\n dplyr::filter(\n PARAMCD == \"OS\",\n ARM %in% c(\"B: Placebo\", \"A: Drug X\"),\n SEX %in% c(\"M\", \"F\")\n ) %>%\n dplyr::mutate(\n # Reorder levels of ARM to display reference arm before treatment arm.\n ARM = droplevels(forcats::fct_relevel(ARM, \"B: Placebo\")),\n SEX = droplevels(SEX),\n is_event = CNSR == 0,\n # Convert time to MONTH\n AVAL = day2month(AVAL),\n AVALU = \"Months\"\n ) %>%\n var_relabel(\n ARM = adtte_labels[\"ARM\"],\n SEX = adtte_labels[\"SEX\"],\n is_event = \"Event Flag\",\n AVAL = adtte_labels[\"AVAL\"],\n AVALU = adtte_labels[\"AVALU\"]\n )\n\n adtte\n}\n\nanl <- random.cdisc.data::cadtte %>%\n preprocess_adtte()", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"ID\", \"ASR\", \"MHBODSYS\", \"MHDECOD\"),\n disp_cols = names(out),\n main_title = \"Listing of Medical History and Concurrent Diseases\"\n)\n\nhead(lsting, 20)\n\nListing of Medical History and Concurrent Diseases\n\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Date of First \n Study Drug Start Date Start Day End Date End Day Time Relation \nTreatment Center/Patient ID Age/Sex/Race SOC Disease Term Administration of Disease of Disease of Disease of Disease of Disease \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-134 47/M/WHITE cl A trm A_2/2 04NOV2020 21SEP2021 321 16FEB2022 469 PRIOR_CONCOMITANT\n 04NOV2020 02DEC2021 393 13JAN2022 435 PRIOR_CONCOMITANT\n cl B trm B_2/3 04NOV2020 15APR2021 162 04OCT2021 334 PRIOR_CONCOMITANT\n cl D trm D_2/3 04NOV2020 19MAY2021 196 31OCT2021 361 PRIOR_CONCOMITANT\n BRA-1/id-42 36/M/BLACK OR AFRICAN AMERICAN cl A trm A_2/2 01JAN2020 09JUN2020 160 22FEB2021 418 PRIOR_CONCOMITANT\n 01JAN2020 04APR2021 459 15OCT2021 653 PRIOR_CONCOMITANT\n 01JAN2020 20APR2021 475 10AUG2021 587 PRIOR_CONCOMITANT\n cl B trm B_1/3 01JAN2020 15APR2021 470 23AUG2021 600 PRIOR_CONCOMITANT\n 01JAN2020 03OCT2021 641 17OCT2021 655 PRIOR_CONCOMITANT\n trm B_3/3 01JAN2020 19OCT2020 292 07DEC2020 341 PRIOR_CONCOMITANT\n cl C trm C_1/2 01JAN2020 11MAY2021 496 19OCT2021 657 PRIOR_CONCOMITANT\n trm C_2/2 01JAN2020 09FEB2020 39 28JUN2021 544 PRIOR_CONCOMITANT\n 01JAN2020 05APR2020 95 04FEB2021 400 PRIOR_CONCOMITANT\n cl D trm D_1/3 01JAN2020 05MAR2020 64 24NOV2021 693 PRIOR_CONCOMITANT\n BRA-1/id-93 34/F/ASIAN cl A trm A_1/2 20JUN2020 03NOV2020 136 19JAN2021 213 PRIOR_CONCOMITANT\n cl B trm B_1/3 20JUN2020 25NOV2021 523 18DEC2021 546 PRIOR_CONCOMITANT\n trm B_3/3 20JUN2020 06FEB2022 596 15FEB2022 605 PRIOR_CONCOMITANT\n cl C trm C_1/2 20JUN2020 28MAR2021 281 11JUL2021 386 PRIOR_CONCOMITANT\n cl D trm D_1/3 20JUN2020 02MAY2021 316 06JAN2022 565 PRIOR_CONCOMITANT\n trm D_2/3 20JUN2020 03AUG2020 44 18SEP2020 90 PRIOR_CONCOMITANT\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadmh <- random.cdisc.data::cadmh\n\nout <- admh %>%\n mutate(\n ASR = paste(AGE, SEX, RACE, sep = \"/\"),\n ID = paste(SITEID, SUBJID, sep = \"/\"),\n TRTSDTM = toupper(format(as.Date(TRTSDTM), \"%d%b%Y\")),\n ASTDTM = toupper(format(as.Date(ASTDTM), \"%d%b%Y\")),\n AENDTM = toupper(format(as.Date(AENDTM), \"%d%b%Y\"))\n ) %>%\n select(ID, ASR, TRT01A, MHBODSYS, MHDECOD, TRTSDTM, ASTDTM, ASTDY, AENDTM, AENDY, ATIREL)\n\nvar_labels(out) <- c(\n ID = \"Center/Patient ID\",\n ASR = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n MHBODSYS = \"SOC\",\n MHDECOD = \"Disease Term\",\n TRTSDTM = \"Date of First\\nStudy Drug\\nAdministration\",\n ASTDTM = \"Start Date\\nof Disease\",\n ASTDY = \"Start Day\\nof Disease\",\n AENDTM = \"End Date\\nof Disease\",\n AENDY = \"End Day\\nof Disease\",\n ATIREL = \"Time Relation\\nof Disease\"\n)", "crumbs": [ - "Graphs", - "Efficacy", - "FSTG02" + "Listings", + "Medical History", + "MHL01" ] }, { - "objectID": "graphs/efficacy/fstg02.html#teal-app", - "href": "graphs/efficacy/fstg02.html#teal-app", - "title": "FSTG02", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n library(forcats)\n\n ADSL <- random.cdisc.data::cadsl\n ADSL <- ADSL %>%\n filter(ARM %in% c(\"B: Placebo\", \"A: Drug X\")) %>%\n mutate(ARM = droplevels(fct_relevel(ARM, \"B: Placebo\"))) %>%\n mutate(ARMCD = droplevels(fct_relevel(ARMCD, \"ARM B\")))\n ADSL$RACE <- droplevels(ADSL$RACE)\n\n ADTTE <- random.cdisc.data::cadtte\n adtte_labels <- col_labels(ADTTE)\n\n ADTTE <- ADTTE %>%\n filter(\n PARAMCD == \"OS\",\n ARM %in% c(\"B: Placebo\", \"A: Drug X\"),\n SEX %in% c(\"M\", \"F\")\n ) %>%\n mutate(\n # Reorder levels of ARM to display reference arm before treatment arm.\n ARM = droplevels(fct_relevel(ARM, \"B: Placebo\")),\n SEX = droplevels(SEX),\n is_event = CNSR == 0,\n # Convert time to MONTH\n AVAL = day2month(AVAL),\n AVALU = \"Months\"\n ) %>%\n col_relabel(\n ARM = adtte_labels[\"ARM\"],\n SEX = adtte_labels[\"SEX\"],\n is_event = \"Event Flag\",\n AVAL = adtte_labels[\"AVAL\"],\n AVALU = adtte_labels[\"AVALU\"]\n )\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_forest_tte(\n label = \"Forest Survival\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n subgroup_var = choices_selected(names(ADSL), c(\"SEX\", \"BMRKR2\")),\n paramcd = choices_selected(value_choices(ADTTE, \"PARAMCD\", \"PARAM\"), \"OS\"),\n strata_var = choices_selected(c(\"STRATA1\", \"STRATA2\"), \"STRATA2\"),\n plot_height = c(600, 200, 2000),\n plot_width = c(1500, 200, 5000)\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n library(forcats)\n\n ADSL <- random.cdisc.data::cadsl\n ADSL <- ADSL %>%\n filter(ARM %in% c(\"B: Placebo\", \"A: Drug X\")) %>%\n mutate(ARM = droplevels(fct_relevel(ARM, \"B: Placebo\"))) %>%\n mutate(ARMCD = droplevels(fct_relevel(ARMCD, \"ARM B\")))\n ADSL$RACE <- droplevels(ADSL$RACE)\n\n ADTTE <- random.cdisc.data::cadtte\n adtte_labels <- col_labels(ADTTE)\n\n ADTTE <- ADTTE %>%\n filter(\n PARAMCD == \"OS\",\n ARM %in% c(\"B: Placebo\", \"A: Drug X\"),\n SEX %in% c(\"M\", \"F\")\n ) %>%\n mutate(\n # Reorder levels of ARM to display reference arm before treatment arm.\n ARM = droplevels(fct_relevel(ARM, \"B: Placebo\")),\n SEX = droplevels(SEX),\n is_event = CNSR == 0,\n # Convert time to MONTH\n AVAL = day2month(AVAL),\n AVALU = \"Months\"\n ) %>%\n col_relabel(\n ARM = adtte_labels[\"ARM\"],\n SEX = adtte_labels[\"SEX\"],\n is_event = \"Event Flag\",\n AVAL = adtte_labels[\"AVAL\"],\n AVALU = adtte_labels[\"AVALU\"]\n )\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_forest_tte(\n label = \"Forest Survival\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n subgroup_var = choices_selected(names(ADSL), c(\"SEX\", \"BMRKR2\")),\n paramcd = choices_selected(value_choices(ADTTE, \"PARAMCD\", \"PARAM\"), \"OS\"),\n strata_var = choices_selected(c(\"STRATA1\", \"STRATA2\"), \"STRATA2\"),\n plot_height = c(600, 200, 2000),\n plot_width = c(1500, 200, 5000)\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "listings/medical-history/mhl01.html#reproducibility", + "href": "listings/medical-history/mhl01.html#reproducibility", + "title": "MHL01", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:36:48 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Efficacy", - "FSTG02" + "Listings", + "Medical History", + "MHL01" ] }, { - "objectID": "graphs/efficacy/fstg02.html#reproducibility", - "href": "graphs/efficacy/fstg02.html#reproducibility", - "title": "FSTG02", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:35:58 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats * 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "listings/lab-results/lbl02a_rls.html#output", + "href": "listings/lab-results/lbl02a_rls.html#output", + "title": "LBL02A_RLS", + "section": "Output", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"LBTEST_U\", \"CPID\"),\n disp_cols = names(out),\n main_title = \"Listing of Laboratory Abnormalities Defined by Roche Safety Lab Standardization\",\n main_footer = \"Standard reference range, marked reference range and clinically relevant change from baseline are from the Roche Safety Lab Standardization guideline. Abnormalities are flagged as high (H) or low (L) if outside the standard reference range; high high (HH) or low low (LL) if outside the marked reference range with a clinically relevant change from baseline.\" \n)\n\nhead(lsting, 20)\n\nListing of Laboratory Abnormalities Defined by Roche Safety Lab Standardization\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Clinically \n Days Since % Change Standard Marked Relevant \n Study Last Dose of from Reference Reference Change Abnormality\nTreatment Lab Test (Unit) Center/Patient ID Day Study Drug Result Baseline Range Range Dec./Inc. Flag \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X Alanine Aminotransferase Measurement (U/L) BRA-1/id-105 80 0 4.3 NA 5.5 - 31.1 7 - 55 40% / 40% LL \n 149 69 24.7 0.0 5.5 - 31.1 7 - 55 40% / 40% \n 314 165 24.9 0.7 5.5 - 31.1 7 - 55 40% / 40% \n 398 84 3.7 -85.2 5.5 - 31.1 7 - 55 40% / 40% LL \n 470 72 18.5 -24.9 5.5 - 31.1 7 - 55 40% / 40% \n 528 58 7.7 -68.7 5.5 - 31.1 7 - 55 40% / 40% \n 535 7 23.5 -4.8 5.5 - 31.1 7 - 55 40% / 40% \n BRA-1/id-134 225 0 7.4 NA 5.5 - 31.1 7 - 55 40% / 40% \n 227 2 16.4 0.0 5.5 - 31.1 7 - 55 40% / 40% \n 255 28 11.2 -32.0 5.5 - 31.1 7 - 55 40% / 40% \n 269 14 15.9 -3.2 5.5 - 31.1 7 - 55 40% / 40% \n 357 88 24.4 48.3 5.5 - 31.1 7 - 55 40% / 40% \n 436 79 16.0 -2.4 5.5 - 31.1 7 - 55 40% / 40% \n 440 4 17.2 4.8 5.5 - 31.1 7 - 55 40% / 40% \n BRA-1/id-42 176 0 16.6 NA 5.5 - 31.1 7 - 55 40% / 40% \n 477 301 16.5 0.0 5.5 - 31.1 7 - 55 40% / 40% \n 534 57 18.7 13.4 5.5 - 31.1 7 - 55 40% / 40% \n 550 16 11.4 -30.6 5.5 - 31.1 7 - 55 40% / 40% \n 569 19 21.7 31.3 5.5 - 31.1 7 - 55 40% / 40% \n 608 39 24.6 49.2 5.5 - 31.1 7 - 55 40% / 40% \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nStandard reference range, marked reference range and clinically relevant change from baseline are from the Roche Safety Lab Standardization guideline. Abnormalities are flagged as high (H) or low (L) if outside the standard reference range; high high (HH) or low low (LL) if outside the marked reference range with a clinically relevant change from baseline.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadlb <- random.cdisc.data::cadlb\n\nadlb_x <- adlb %>%\n filter(\n LBTEST != \"\"\n ) %>%\n mutate(\n LBTEST_U = paste0(LBTEST, \" (\", AVALU, \")\"),\n CPID = paste(SITEID, SUBJID, sep = \"/\")\n ) %>%\n mutate(CRC = paste(\"40%\", \"40%\", sep = \" / \"))\n\nstd_rng <- adlb_x %>%\n group_by(LBTEST_U) %>%\n summarise(\n STD_RNG_LO = stats::quantile(AVAL, probs = c(0.1), na.rm = TRUE),\n STD_RNG_HI = stats::quantile(AVAL, probs = c(0.9), na.rm = TRUE)\n ) %>%\n ungroup()\n\nadlb_x <- adlb_x %>%\n left_join(std_rng, by = \"LBTEST_U\") %>%\n mutate(\n AVAL = format(round(AVAL, 1), nsmall = 1),\n PCHG = format(round(PCHG, 1), nsmall = 1),\n LBNRNG = paste(ANRLO, ANRHI, sep = \" - \"),\n STD_RNG_LO = format(round(STD_RNG_LO, 1), nsmall = 1),\n STD_RNG_HI = format(round(STD_RNG_HI, 1), nsmall = 1)\n ) %>%\n mutate(\n STD_RNG = paste(STD_RNG_LO, STD_RNG_HI, sep = \" - \"),\n ANRIND = factor(case_when(\n ANRIND == \"LOW\" & AVAL > STD_RNG_LO ~ \"L\",\n ANRIND == \"HIGH\" & AVAL < STD_RNG_HI ~ \"H\",\n ANRIND == \"LOW\" & AVAL <= STD_RNG_LO ~ \"LL\",\n ANRIND == \"HIGH\" & AVAL >= STD_RNG_HI ~ \"HH\",\n TRUE ~ \"\"\n ))\n ) %>%\n select(LBTEST_U, TRT01A, CPID, ADY, AVAL, PCHG, STD_RNG, LBNRNG, CRC, ANRIND) %>%\n unique() %>%\n arrange(CPID, ADY) %>%\n group_by(LBTEST_U, CPID) %>%\n mutate(DLD = ADY - lag(ADY)) %>%\n ungroup() %>%\n mutate(DLD = ifelse(is.na(DLD), 0, DLD))\n\nout <- adlb_x %>%\n select(LBTEST_U, TRT01A, CPID, ADY, DLD, AVAL, PCHG, STD_RNG, LBNRNG, CRC, ANRIND)\n\nvar_labels(out) <- names(out)\nout <- out %>%\n var_relabel(\n LBTEST_U = \"Lab Test (Unit)\",\n TRT01A = \"Treatment\",\n CPID = \"Center/Patient ID\",\n ADY = \"Study\\nDay\",\n DLD = \"Days Since\\nLast Dose of\\nStudy Drug\",\n AVAL = \"Result\",\n PCHG = \"% Change\\nfrom\\nBaseline\",\n STD_RNG = \"Standard\\nReference\\nRange\",\n LBNRNG = \"Marked\\nReference\\nRange\",\n CRC = \"Clinically\\nRelevant\\nChange\\nDec./Inc.\",\n ANRIND = \"Abnormality\\nFlag\"\n )", "crumbs": [ - "Graphs", - "Efficacy", - "FSTG02" + "Listings", + "Lab Results", + "LBL02A_RLS" ] }, { - "objectID": "graphs/other/cig01.html#output", - "href": "graphs/other/cig01.html#output", - "title": "CIG01", - "section": "Output", - "text": "Output\n\n\nPlot of Mean and 95% CIs for Mean\nPlot of Confidence Interval Using a Different Stratification Variable\nPlot of Median and 95% CIs for Median\nPlot of Median and 95% CIs for Median Using Different Alpha Level\nTable of Mean and Median\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nThe function stat_mean_ci from the tern package can be used with default values to draw the 95% confidence interval around the mean.\n\nCodeplot <- ggplot(\n data = adlb,\n mapping = aes(\n x = ARMCD, y = AVAL, color = SEX,\n lty = SEX, shape = SEX\n )\n) +\n stat_summary(\n fun.data = tern::stat_mean_ci,\n geom = \"errorbar\",\n width = 0.1,\n position = position_dodge(width = 0.5)\n ) +\n stat_summary(\n fun = mean,\n geom = \"point\",\n position = position_dodge(width = 0.5)\n ) +\n labs(\n title = \"Confidence Interval Plot by Treatment Group\",\n caption = \"Mean and 95% CIs for mean are displayed.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n )\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- ggplot(\n data = adlb,\n mapping = aes(\n x = ARMCD, y = AVAL, color = STRATA2,\n lty = STRATA2, shape = STRATA2\n )\n) +\n stat_summary(\n fun.data = tern::stat_mean_ci,\n geom = \"errorbar\",\n width = 0.1,\n position = position_dodge(width = 0.5)\n ) +\n stat_summary(\n fun = mean,\n geom = \"point\",\n position = position_dodge(width = 0.5)\n ) +\n labs(\n title = \"Confidence Interval Plot by Treatment Group\",\n caption = \"Mean and 95% CIs for mean are displayed.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n )\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nThe function stat_median_ci from the tern package works similarly to stat_mean_ci.\n\nCodeplot <- ggplot(\n data = adlb,\n mapping = aes(\n x = ARMCD, y = AVAL, color = STRATA1,\n lty = STRATA1, shape = STRATA1\n )\n) +\n stat_summary(\n fun.data = stat_median_ci,\n geom = \"errorbar\",\n width = 0.1,\n position = position_dodge(width = 0.5)\n ) +\n stat_summary(\n fun = median,\n geom = \"point\",\n position = position_dodge(width = 0.5)\n ) +\n labs(\n title = \"Confidence Interval Plot by Treatment Group\",\n caption = \"Median and 95% CIs for median are displayed.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n )\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nTo modify the confidence level for the estimation of the confidence interval, the call to stat_mean_ci (or stat_median_ci) can be slightly modified.\n\nCodeplot <- ggplot(\n data = adlb,\n mapping = aes(\n x = ARMCD, y = AVAL, color = SEX,\n lty = SEX, shape = SEX\n )\n) +\n stat_summary(\n fun.data = function(x) tern::stat_mean_ci(x, conf_level = 0.9),\n geom = \"errorbar\",\n width = 0.1,\n position = position_dodge(width = 0.5)\n ) +\n stat_summary(\n fun = mean,\n geom = \"point\",\n position = position_dodge(width = 0.5)\n ) +\n labs(\n title = \"Confidence Interval Plot by Treatment Group\",\n caption = \"Mean and 90% CIs for mean are displayed.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n )\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nThe corresponding table is simply obtained using the rtables framework:\n\nCodelyt <- basic_table() %>%\n split_cols_by(var = \"ARMCD\") %>%\n analyze_vars(vars = \"AVAL\", .stats = c(\"mean_sd\", \"median\"))\ntable <- build_table(lyt = lyt, df = adlb)\ntable\n\n ARM A ARM B ARM C \n————————————————————————————————————————————————\nMean (SD) 17.7 (9.9) 18.7 (9.8) 19.5 (9.1)\nMedian 17.5 18.2 19.0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(ggplot2)\nlibrary(dplyr)\nlibrary(nestcolor)\n\nadlb <- random.cdisc.data::cadlb %>%\n filter(PARAMCD == \"ALT\", AVISIT == \"BASELINE\")", + "objectID": "listings/lab-results/lbl02a_rls.html#reproducibility", + "href": "listings/lab-results/lbl02a_rls.html#reproducibility", + "title": "LBL02A_RLS", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:36:57 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Other", - "CIG01" + "Listings", + "Lab Results", + "LBL02A_RLS" ] }, { - "objectID": "graphs/other/cig01.html#teal-app", - "href": "graphs/other/cig01.html#teal-app", - "title": "CIG01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_ci(\n label = \"Confidence Interval Plot\",\n x_var = data_extract_spec(\n dataname = \"ADSL\",\n select = select_spec(\n choices = c(\"ARMCD\", \"BMRKR2\"),\n selected = c(\"ARMCD\"),\n multiple = FALSE,\n fixed = FALSE\n )\n ),\n y_var = data_extract_spec(\n dataname = \"ADLB\",\n filter = list(\n filter_spec(\n vars = \"PARAMCD\",\n choices = levels(ADLB$PARAMCD),\n selected = levels(ADLB$PARAMCD)[1],\n multiple = FALSE,\n label = \"Select lab:\"\n ),\n filter_spec(\n vars = \"AVISIT\",\n choices = levels(ADLB$AVISIT),\n selected = levels(ADLB$AVISIT)[1],\n multiple = FALSE,\n label = \"Select visit:\"\n )\n ),\n select = select_spec(\n label = \"Analyzed Value\",\n choices = c(\"AVAL\", \"CHG\"),\n selected = \"AVAL\",\n multiple = FALSE,\n fixed = FALSE\n )\n ),\n color = data_extract_spec(\n dataname = \"ADSL\",\n select = select_spec(\n label = \"Color by variable\",\n choices = c(\"SEX\", \"STRATA1\", \"STRATA2\"),\n selected = c(\"STRATA1\"),\n multiple = FALSE,\n fixed = FALSE\n )\n )\n )\n ),\n header = \"Example of Confidence Interval Plot\",\n footer = tags$p(\n class = \"text-muted\", \"Source: `teal.modules.clinical::tm_g_ci`\"\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_ci(\n label = \"Confidence Interval Plot\",\n x_var = data_extract_spec(\n dataname = \"ADSL\",\n select = select_spec(\n choices = c(\"ARMCD\", \"BMRKR2\"),\n selected = c(\"ARMCD\"),\n multiple = FALSE,\n fixed = FALSE\n )\n ),\n y_var = data_extract_spec(\n dataname = \"ADLB\",\n filter = list(\n filter_spec(\n vars = \"PARAMCD\",\n choices = levels(ADLB$PARAMCD),\n selected = levels(ADLB$PARAMCD)[1],\n multiple = FALSE,\n label = \"Select lab:\"\n ),\n filter_spec(\n vars = \"AVISIT\",\n choices = levels(ADLB$AVISIT),\n selected = levels(ADLB$AVISIT)[1],\n multiple = FALSE,\n label = \"Select visit:\"\n )\n ),\n select = select_spec(\n label = \"Analyzed Value\",\n choices = c(\"AVAL\", \"CHG\"),\n selected = \"AVAL\",\n multiple = FALSE,\n fixed = FALSE\n )\n ),\n color = data_extract_spec(\n dataname = \"ADSL\",\n select = select_spec(\n label = \"Color by variable\",\n choices = c(\"SEX\", \"STRATA1\", \"STRATA2\"),\n selected = c(\"STRATA1\"),\n multiple = FALSE,\n fixed = FALSE\n )\n )\n )\n ),\n header = \"Example of Confidence Interval Plot\",\n footer = tags$p(\n class = \"text-muted\", \"Source: `teal.modules.clinical::tm_g_ci`\"\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "listings/lab-results/lbl02b.html#output", + "href": "listings/lab-results/lbl02b.html#output", + "title": "LBL02B", + "section": "Output", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"LBTEST\", \"CPID\"),\n disp_cols = names(out),\n main_title = \"Listing of Laboratory Abnormalities Defined by NCI CTCAE Grade >= 2\",\n main_footer = \"NCI CTCAE grade is displayed as abnormal high (H) or low (L) followed by the grade.\"\n)\n\nhead(lsting, 20)\n\nListing of Laboratory Abnormalities Defined by NCI CTCAE Grade >= 2\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Days Since NCI \n Study Last Dose of Lab Normal CTCAE\nTreatment Lab Test Center/Patient ID Day Date Study Drug Result Unit Range Grade\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X Alanine Aminotransferase Measurement BRA-1/id-105 80 27MAY2020 0 4.3 U/L 7.0 - 55.0 L4 \n 398 10APR2021 318 3.7 U/L 7.0 - 55.0 L3 \n CAN-1/id-18 465 12APR2022 0 1.8 U/L 7.0 - 55.0 L2 \n CHN-1/id-133 127 13DEC2020 0 5.6 U/L 7.0 - 55.0 L2 \n 197 21FEB2021 70 1.2 U/L 7.0 - 55.0 L4 \n CHN-1/id-199 277 11OCT2020 0 5.3 U/L 7.0 - 55.0 L4 \n 672 10NOV2021 395 6.8 U/L 7.0 - 55.0 L2 \n CHN-1/id-235 348 25JUN2020 0 3.0 U/L 7.0 - 55.0 L3 \n CHN-1/id-275 364 01JUN2021 0 5.1 U/L 7.0 - 55.0 L2 \n CHN-1/id-277 483 12MAY2022 0 1.1 U/L 7.0 - 55.0 L4 \n CHN-1/id-287 182 23MAY2020 0 5.9 U/L 7.0 - 55.0 L2 \n 191 01JUN2020 9 5.3 U/L 7.0 - 55.0 L3 \n 515 21APR2021 324 2.9 U/L 7.0 - 55.0 L4 \n CHN-1/id-315 289 05JUN2020 0 4.6 U/L 7.0 - 55.0 L4 \n 599 11APR2021 310 5.2 U/L 7.0 - 55.0 L4 \n CHN-1/id-316 971 14MAY2023 0 3.6 U/L 7.0 - 55.0 L4 \n CHN-1/id-360 689 01APR2022 0 4.7 U/L 7.0 - 55.0 L2 \n CHN-1/id-371 81 01MAY2021 0 5.9 U/L 7.0 - 55.0 L2 \n CHN-1/id-47 236 11SEP2020 0 4.4 U/L 7.0 - 55.0 L3 \n CHN-1/id-53 98 13FEB2020 0 6.4 U/L 7.0 - 55.0 L2 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nNCI CTCAE grade is displayed as abnormal high (H) or low (L) followed by the grade.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadlb <- random.cdisc.data::cadlb\n\nadlb_x <- adlb %>%\n filter(\n !sub(\"-\", \"\", ATOXGR) %in% c(\"\", \"0\", \"1\"),\n LBTEST != \"\",\n !is.na(ADY),\n !ANRIND %in% c(\"\", \"NORMAL\")\n ) %>%\n mutate(\n CPID = paste(SITEID, SUBJID, sep = \"/\"),\n ADTM = toupper(format(as.Date(ADTM), \"%d%b%Y\")),\n AVAL = format(round(AVAL, 1), nsmall = 1),\n LBNRNG = paste(format(round(ANRLO, 1), nsmall = 1), format(round(ANRHI, 1), nsmall = 1), sep = \" - \"),\n ANRIND_GR = factor(\n case_when(\n ANRIND == \"LOW\" ~ paste0(\"L\", sub(\"-\", \"\", ATOXGR)),\n ANRIND == \"HIGH\" ~ paste0(\"H\", ATOXGR)\n )\n )\n ) %>%\n select(LBTEST, TRT01A, CPID, ADY, ADTM, AVAL, AVALU, LBNRNG, ANRIND_GR) %>%\n unique() %>%\n arrange(CPID, ADY) %>%\n group_by(LBTEST, CPID) %>%\n mutate(DLD = ADY - lag(ADY)) %>%\n ungroup() %>%\n mutate(DLD = ifelse(is.na(DLD), 0, DLD))\n\nout <- adlb_x %>%\n select(LBTEST, TRT01A, CPID, ADY, ADTM, DLD, AVAL, AVALU, LBNRNG, ANRIND_GR)\n\nvar_labels(out) <- names(out)\nout <- out %>%\n var_relabel(\n LBTEST = \"Lab Test\",\n TRT01A = \"Treatment\",\n CPID = \"Center/Patient ID\",\n ADY = \"Study\\nDay\",\n ADTM = \"Date\",\n DLD = \"Days Since\\nLast Dose of\\nStudy Drug\",\n AVAL = \"Result\",\n AVALU = \"Unit\",\n LBNRNG = \"Lab Normal\\nRange\",\n ANRIND_GR = \"NCI\\nCTCAE\\nGrade\"\n )", "crumbs": [ - "Graphs", - "Other", - "CIG01" + "Listings", + "Lab Results", + "LBL02B" ] }, { - "objectID": "graphs/other/cig01.html#reproducibility", - "href": "graphs/other/cig01.html#reproducibility", - "title": "CIG01", + "objectID": "listings/lab-results/lbl02b.html#reproducibility", + "href": "listings/lab-results/lbl02b.html#reproducibility", + "title": "LBL02B", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:36:54 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:37:06 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Other", - "CIG01" + "Listings", + "Lab Results", + "LBL02B" ] }, { - "objectID": "graphs/other/brg01.html#output", - "href": "graphs/other/brg01.html#output", - "title": "BRG01", + "objectID": "listings/adverse-events/ael01_nollt.html#output", + "href": "listings/adverse-events/ael01_nollt.html#output", + "title": "AEL01_NOLLT", "section": "Output", - "text": "Output\n\n\nPlot of Frequency\nPlot of Percentage\nPlot of Frequency with Total Number of Subjects\nPlot of Frequency with Horizontal Bars\nPlot of Percentage and Confidence Intervals\nPlot of Percentage by Treatment and Covariate\nPlot of Percentage by Covariate and Treatment\nPlot of Percentage with Mean and Median\nPlot of Categorical Variable\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- adae %>%\n filter(AESER == \"Y\")\nanl <- anl[!duplicated(anl$USUBJID), ]\n\nplot <- ggplot(anl, aes(x = .data[[\"ACTARM\"]])) +\n geom_bar(fill = getOption(\"ggplot2.discrete.fill\")[1]) +\n geom_text(stat = \"count\", aes(label = ggplot2::after_stat(count)), vjust = -.5) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Frequency of Subjects With Serious AEs: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Frequency\")\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- adae %>%\n filter(AESOC == \"cl A\")\n\nanl <- anl[!duplicated(anl$USUBJID), ] %>%\n group_by(ACTARM) %>%\n summarise(n = n()) %>%\n mutate(N = patpop) %>%\n mutate(N = as.numeric(N)) %>%\n mutate(pct = round((n / N) * 100, 2))\n\nplot <- ggplot(anl, aes(x = .data[[\"ACTARM\"]])) +\n geom_col(aes(x = ACTARM, y = pct), fill = getOption(\"ggplot2.discrete.fill\")[1]) +\n scale_y_continuous(labels = scales::comma) +\n geom_text(aes(y = pct, label = pct), stat = \"identity\", vjust = -0.5) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Percent of Subjects With cl A Disorders: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Percent\")\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- adae %>%\n filter(AESOC == \"cl A\")\nanl <- anl[!duplicated(anl$USUBJID), ]\n\nanl <- anl %>%\n group_by(ACTARM) %>%\n mutate(n = n()) %>%\n mutate(xvarlabel = paste0(ACTARM, \"\\n\\nN = \", n))\n\nplot <- ggplot(anl, aes(x = .data[[\"xvarlabel\"]])) +\n geom_bar(fill = getOption(\"ggplot2.discrete.fill\")[1]) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Frequency of Subjects With Serious AEs: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Frequency\")\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- adae %>%\n filter(AESER == \"Y\")\nanl <- anl[!duplicated(anl$USUBJID), ]\n\nplot <- ggplot(anl, aes(x = .data[[\"ACTARM\"]])) +\n geom_bar(fill = getOption(\"ggplot2.discrete.fill\")[1]) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Frequency of Subjects With Serious AEs: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Frequency\") +\n coord_flip()\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\n\nCodeanl <- adlb %>%\n filter(PARAMCD == \"ALT\" & ANRIND == \"HIGH\")\nanl <- anl[!duplicated(anl$USUBJID), ]\n\npatpop5 <- as.data.frame(table(adsl$ACTARM)) %>%\n mutate(ACTARM = as.vector(Var1)) %>%\n mutate(TRTPOP = Freq) %>%\n select(ACTARM, TRTPOP)\n\nanlpop <- as.data.frame(table(anl$ANRIND, anl$ACTARM)) %>%\n filter(Var1 == \"HIGH\") %>%\n mutate(ACTARM = as.vector(Var2)) %>%\n mutate(EVENTCOUNT = Freq) %>%\n select(ACTARM, EVENTCOUNT)\n\nanl <- left_join(patpop5, anlpop, by = \"ACTARM\")\nCIs <- binom.confint(x = anl$EVENTCOUNT, n = anl$TRTPOP, methods = \"exact\") \nanl <- cbind(anl, CIs[, 4:6])\n\nplot <- ggplot(anl) +\n geom_bar(\n aes(x = ACTARM, y = mean * 100),\n stat = \"identity\",\n fill = getOption(\"ggplot2.discrete.fill\")[1],\n alpha = 0.7\n ) +\n geom_errorbar(\n aes(x = ACTARM, ymin = lower * 100, ymax = upper * 100),\n width = 0.5,\n colour = \"#20b4ff\",\n alpha = 0.9,\n linewidth = 1.0\n ) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Percent of Subjects with Abnormaly High ALT: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Percentage\")\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- adae %>%\n filter(AESER == \"Y\")\n\npatpop6 <- dplyr::count(adsl, ACTARM, SEX, name = \"N_arm_sex\")\n\nanl <- anl[!duplicated(anl$USUBJID), ] %>%\n group_by(ACTARM, SEX) %>%\n summarise(n = n(), .groups = \"drop\") %>%\n left_join(patpop6, by = c(\"ACTARM\", \"SEX\")) %>%\n mutate(pct = round((n / N_arm_sex) * 100, 2))\n\nplot <- ggplot(anl, aes(x = .data[[\"ACTARM\"]], fill = .data[[\"SEX\"]])) +\n geom_col(aes(y = pct), position = position_dodge()) +\n guides(fill = guide_legend(title = getElement(vl_ae, \"SEX\"))) +\n scale_y_continuous(labels = scales::comma) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Percent of Subjects With Serious AEs: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Percent\")\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- adae %>%\n filter(AESER == \"Y\")\n\nanl <- anl[!duplicated(anl$USUBJID), ] %>%\n group_by(SEX, ACTARM) %>%\n summarise(n = n(), .groups = \"drop_last\") %>%\n mutate(N = patpop) %>%\n mutate(N = as.numeric(N)) %>%\n mutate(pct = round((n / N) * 100, 2))\n\nplot <- ggplot(anl, aes(x = .data[[\"SEX\"]], fill = .data[[\"ACTARM\"]])) +\n geom_col(aes(y = pct), position = position_dodge()) +\n guides(fill = guide_legend(title = getElement(vl_ae, \"ACTARM\"))) +\n scale_y_continuous(labels = scales::comma) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Percent of Subjects With Serious AEs: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"SEX\"), \" (N = \", denom, \")\")) +\n ylab(\"Percent\")\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl1 <- adlb %>%\n filter(AVISIT == \"BASELINE\", PARAMCD == \"CRP\" & ANRIND == \"HIGH\")\n\nanl <- anl1[!duplicated(anl1$USUBJID), ] %>%\n group_by(ACTARM) %>%\n summarise(n = n()) %>%\n mutate(N = patpop) %>%\n mutate(N = as.numeric(N)) %>%\n mutate(pct = round((n / N) * 100, 2))\n\ngraph <- ggplot(anl, aes(x = .data[[\"ACTARM\"]])) +\n geom_col(aes(x = ACTARM, y = pct), fill = getOption(\"ggplot2.discrete.fill\")[1]) +\n scale_y_continuous(labels = scales::comma, expand = expansion(c(0, .25))) +\n geom_text(aes(y = pct, label = pct), stat = \"identity\", vjust = -0.5) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Percent of Subjects with Abnormaly High CRP at Baseline \\n Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_lb, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Percent\")\n\nsd_w <- anl1 %>%\n group_by(ACTARM) %>%\n summarise(\n mean = round(mean(AVAL, na.rm = TRUE), 2),\n median = round(median(AVAL, na.rm = TRUE), 2)\n ) %>%\n arrange(ACTARM)\n\nsd_l <- gather(sd_w, key = stat, value = value, mean:median)\nsd_l <- sd_l %>% mutate(\n stat_lbl = case_when(\n stat == \"mean\" ~ \"Mean\",\n stat == \"median\" ~ \"Median\"\n )\n)\n\nsd_l$stat_lbl <- factor(sd_l$stat_lbl, levels = c(\"Median\", \"Mean\"))\n\ntbl_theme <- theme(\n panel.border = element_blank(),\n panel.grid.major = element_blank(),\n panel.grid.minor = element_blank(),\n axis.ticks = element_blank(),\n axis.title = element_blank(),\n axis.text.y = element_text(face = \"plain\"),\n axis.text.x = element_blank()\n)\n\ntbl <- ggplot(sd_l, aes(x = ACTARM, y = stat_lbl, label = value)) +\n geom_text(size = 3) +\n scale_y_discrete(labels = levels(sd_l$stat_lbl)) +\n theme_bw() +\n tbl_theme\n\nplot <- cowplot::plot_grid(graph, tbl,\n rel_heights = c(4, 1),\n ncol = 1, nrow = 2, align = \"v\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- adae\n\nanl <- anl %>%\n arrange(USUBJID, AETOXGRC) %>%\n group_by(USUBJID) %>%\n slice(n()) %>%\n ungroup()\n\nanl <- anl[!duplicated(anl$USUBJID), ] %>%\n group_by(ACTARM, AETOXGRC) %>%\n summarise(n = n(), .groups = \"drop_last\") %>%\n mutate(N = patpop) %>%\n mutate(N = as.numeric(N)) %>%\n mutate(pct = round((n / N) * 100, 2))\n\nplot <- ggplot(anl, aes(x = .data[[\"ACTARM\"]], fill = .data[[\"AETOXGRC\"]])) +\n geom_col(aes(y = pct)) +\n guides(fill = guide_legend(title = getElement(vl_ae, \"AETOXGRC\"))) +\n scale_y_continuous(labels = scales::comma) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Percent of Subjects With AE by Highest \\n NCI CTCAE Grade: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Percent\")\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(binom)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(tidyr)\nlibrary(tern)\nlibrary(nestcolor)\n\nadsl <- random.cdisc.data::cadsl\n\n# filtered population\npatpop_df <- adsl %>%\n group_by(STUDYID) %>%\n summarise(patpop = n())\npatpop <- setNames(patpop_df$patpop, patpop_df$STUDYID)\ndenom <- patpop_df$patpop\n\nadae <- random.cdisc.data::cadae %>%\n mutate(AETOXGRC = as.character(AETOXGR))\nattributes(adae$AETOXGRC)$label <- \"Analysis Toxicity Grade (C)\"\nvl_ae <- var_labels(adae)\n\nadlb <- random.cdisc.data::cadlb\nvl_lb <- var_labels(adlb)", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"AESOC\", \"AEDECOD\"),\n disp_cols = names(out),\n main_title = \"Listing of Preferred Terms and Investigator-Specified Adverse Event Terms\"\n)\n\nhead(lsting, 20)\n\nListing of Preferred Terms and Investigator-Specified Adverse Event Terms\n\n——————————————————————————————————————————————————————————————————————————\n Investigator-Specified\nMedDRA System Organ Class MedDRA Preferred Term Adverse Event Term \n——————————————————————————————————————————————————————————————————————————\n cl A dcd A.1.1.1.1 trm A.1.1.1.1 \n dcd A.1.1.1.2 trm A.1.1.1.2 \n cl B dcd B.1.1.1.1 trm B.1.1.1.1 \n dcd B.2.1.2.1 trm B.2.1.2.1 \n dcd B.2.2.3.1 trm B.2.2.3.1 \n cl C dcd C.1.1.1.3 trm C.1.1.1.3 \n dcd C.2.1.2.1 trm C.2.1.2.1 \n cl D dcd D.1.1.1.1 trm D.1.1.1.1 \n dcd D.1.1.4.2 trm D.1.1.4.2 \n dcd D.2.1.5.3 trm D.2.1.5.3 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadae <- random.cdisc.data::cadae\n\nout <- adae %>%\n select(AESOC, AEDECOD, AETERM) %>%\n unique()\n\nvar_labels(out) <- c(\n AESOC = \"MedDRA System Organ Class\",\n AEDECOD = \"MedDRA Preferred Term\",\n AETERM = \"Investigator-Specified\\nAdverse Event Term\"\n)", "crumbs": [ - "Graphs", - "Other", - "BRG01" + "Listings", + "Adverse Events", + "AEL01_NOLLT" ] }, { - "objectID": "graphs/other/brg01.html#reproducibility", - "href": "graphs/other/brg01.html#reproducibility", - "title": "BRG01", + "objectID": "listings/adverse-events/ael01_nollt.html#reproducibility", + "href": "listings/adverse-events/ael01_nollt.html#reproducibility", + "title": "AEL01_NOLLT", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:37:29 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n binom * 1.1-1.1 2022-05-02 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr * 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:37:15 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Other", - "BRG01" + "Listings", + "Adverse Events", + "AEL01_NOLLT" ] }, { - "objectID": "graphs/other/bwg01.html#output", - "href": "graphs/other/bwg01.html#output", - "title": "BWG01", + "objectID": "listings/adverse-events/ael02.html#output", + "href": "listings/adverse-events/ael02.html#output", + "title": "AEL02", "section": "Output", - "text": "Output\n\n\nStandard Plot\nPlot Changing Whiskers\nPlot Adding Outliers\nPlot Specifying Marker for Outliers and Adding Patient ID\nPlot Specifying Marker for Mean\nPlot by Treatment and Timepoint\nPlot by Timepoint and Treatment\nPlot with Table Section\nPlot with Number of Patients only in Table Section\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodebp_1 <- ggplot(adlb, aes(x = ARMCD, y = AVAL)) +\n stat_summary(geom = \"boxplot\", fun.data = five_num, fill = fc, color = oc) +\n stat_summary(geom = \"point\", fun = mean, size = 3, shape = 8) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n subtitle = paste(\"Visit:\", adlb$AVISIT[1]),\n caption = \"The whiskers extend to the minimum and maximum values.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\nplot <- bp_annos(bp_1, oc)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodebp_3 <- ggplot(adlb, aes(x = ARMCD, y = AVAL)) +\n stat_summary(\n geom = \"boxplot\", fun.data = five_num,\n fun.args = list(probs = c(0.05, 0.25, 0.5, 0.75, 0.95)), fill = fc, color = oc\n ) +\n stat_summary(geom = \"point\", fun = mean, size = 3, shape = 8) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n subtitle = paste(\"Visit:\", adlb$AVISIT[1]),\n caption = \"The whiskers extend to the 5th and 95th percentile. Values outside the whiskers have not been plotted.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\nplot <- bp_annos(bp_3, oc)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodebp_4 <- ggplot(adlb, aes(x = ARMCD, y = AVAL)) +\n stat_summary(\n geom = \"boxplot\", fun.data = five_num,\n fun.args = list(probs = c(0.05, 0.25, 0.5, 0.75, 0.95)), fill = fc, color = oc\n ) +\n stat_summary(geom = \"point\", fun = get_outliers, shape = 1) +\n stat_summary(geom = \"point\", fun = mean, size = 3, shape = 8) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n subtitle = paste(\"Visit:\", adlb$AVISIT[1]),\n caption = \"The whiskers extend to the 5th and 95th percentile.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\nplot <- bp_annos(bp_4, oc)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_o <- adlb %>%\n group_by(ARMCD) %>%\n mutate(OUTLIER = AVAL < quantile(AVAL, 0.01) | AVAL > quantile(AVAL, 0.99)) %>%\n filter(OUTLIER == TRUE) %>%\n select(ARMCD, AVAL, USUBJID)\n# Next step may be study-specific: shorten USUBJID to make annotation labels\n# next 2 lines of code split USUBJID by \"-\" and take the last syllable as ID\nn_split <- max(vapply(strsplit(adlb_o$USUBJID, \"-\"), length, numeric(1)))\nadlb_o$ID <- vapply(strsplit(adlb_o$USUBJID, \"-\"), `[[`, n_split, FUN.VALUE = \"a\")\n\nbp_5 <- ggplot(adlb, aes(x = ARMCD, y = AVAL)) +\n stat_summary(\n geom = \"boxplot\", fun.data = five_num,\n fun.args = list(probs = c(0.01, 0.25, 0.5, 0.75, 0.99)), fill = fc, color = oc\n ) +\n stat_summary(geom = \"point\", fun = mean, size = 3, shape = 8) +\n geom_point(data = adlb_o, aes(x = ARMCD, y = AVAL), shape = 1) +\n geom_text(data = adlb_o, aes(x = ARMCD, y = AVAL, label = ID), size = 3, hjust = -0.2) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n subtitle = paste(\"Visit:\", adlb$AVISIT[1]),\n caption = \"The whiskers extend to the largest and smallest observed value within 1.5*IQR.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\nplot <- bp_annos(bp_5, oc)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodebp_6 <- ggplot(adlb, aes(x = ARMCD, y = AVAL)) +\n geom_boxplot(fill = fc, color = oc) +\n stat_summary(geom = \"point\", fun = mean, size = 3, shape = 5) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n subtitle = paste(\"Visit:\", adlb$AVISIT[1]),\n caption = \"The whiskers extend to the minimum and maximum values.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\nplot <- bp_annos(bp_6, oc)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\nadlb_v <- adlb %>%\n filter(PARAMCD == \"ALT\" & AVISIT %in% c(\"WEEK 1 DAY 8\", \"WEEK 2 DAY 15\", \"WEEK 3 DAY 22\", \"WEEK 4 DAY 29\"))\n\nbp_7 <- ggplot(adlb_v, aes(x = AVISIT, y = AVAL)) +\n stat_summary(\n geom = \"boxplot\",\n fun.data = five_num,\n position = position_dodge2(.5),\n aes(fill = ARMCD, color = ARMCD)\n ) +\n stat_summary(\n geom = \"point\",\n fun = mean,\n aes(group = ARMCD),\n size = 3,\n shape = 8,\n position = position_dodge2(1)\n ) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n caption = \"The whiskers extend to the minimum and maximum values.\",\n x = \"Visit\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\nplot <- bp_annos(bp_7, oc, 2)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodebp_8 <- ggplot(adlb_v, aes(x = ARMCD, y = AVAL)) +\n stat_summary(\n geom = \"boxplot\",\n fun.data = five_num,\n position = position_dodge2(width = .5),\n aes(fill = AVISIT, color = AVISIT)\n ) +\n stat_summary(\n geom = \"point\",\n fun = mean,\n aes(group = AVISIT),\n size = 3,\n shape = 8,\n position = position_dodge2(1)\n ) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n caption = \"The whiskers extend to the minimum and maximum values.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\nplot <- bp_annos(bp_8, oc, 2)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Make wide dataset with summary statistics\nadlb_wide <- adlb %>%\n group_by(ARMCD) %>%\n summarise(\n n = n(),\n mean = round(mean(AVAL), 1),\n median = round(median(AVAL), 1),\n median_ci = paste(round(DescTools::MedianCI(AVAL)[1:2], 1), collapse = \" - \"),\n q1_q3 = paste(round(quantile(AVAL, c(0.25, 0.75)), 1), collapse = \" - \"),\n min_max = paste0(round(min(AVAL), 1), \"-\", max(round(AVAL, 2)))\n )\n\n# Make long dataset\nadlb_long <- tidyr::gather(adlb_wide, key = type, value = stat, n:min_max)\nadlb_long <- adlb_long %>% mutate(\n type_lbl = case_when(\n type == \"n\" ~ \"n\",\n type == \"mean\" ~ \"Mean\",\n type == \"median\" ~ \"Median\",\n type == \"median_ci\" ~ \"95% CI for Median\",\n type == \"q1_q3\" ~ \"25% and 75%-ile\",\n type == \"min_max\" ~ \"Min - Max\"\n )\n)\nadlb_long$type_lbl <- factor(adlb_long$type_lbl,\n levels = c(\"Min - Max\", \"25% and 75%-ile\", \"95% CI for Median\", \"Median\", \"Mean\", \"n\")\n)\n\nbp_9 <- ggplot(adlb, aes(x = ARMCD, y = AVAL)) +\n stat_summary(geom = \"boxplot\", fun.data = five_num, fill = fc, color = oc) +\n stat_summary(geom = \"point\", fun = mean, size = 3, shape = 8) +\n labs(\n title = \"Box Plot of Laboratory Test Results\",\n subtitle = paste(\"Visit:\", adlb$AVISIT[1]),\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n ) +\n theme_bp\n\ntbl_theme <- theme(\n panel.border = element_blank(),\n panel.grid.major = element_blank(),\n panel.grid.minor = element_blank(),\n axis.ticks = element_blank(),\n axis.title = element_blank(),\n axis.text.y = element_text(face = \"plain\"),\n axis.text.x = element_blank()\n)\n\ntbl_1 <- ggplot(adlb_long, aes(x = ARMCD, y = type_lbl, label = stat), vjust = 10) +\n geom_text(size = 3) +\n scale_y_discrete(labels = levels(adlb_long$type_lbl)) +\n theme_bw() +\n tbl_theme +\n labs(caption = \"The whiskers extend to the minimum and maximum values.\") +\n theme_bp\n\nplot <- cowplot::plot_grid(bp_annos(bp_9, oc), tbl_1,\n rel_heights = c(4, 2),\n ncol = 1, nrow = 2, align = \"v\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodetbl_2 <- adlb_long %>%\n filter(type == \"n\") %>%\n ggplot(aes(x = ARMCD, y = type_lbl, label = stat)) +\n geom_text(size = 3) +\n scale_y_discrete(labels = \"n\") +\n theme_bw() +\n tbl_theme +\n labs(caption = \"The whiskers extend to the minimum and maximum values.\") +\n theme_bp\n\nplot <- cowplot::plot_grid(bp_annos(bp_9, oc), tbl_2,\n rel_heights = c(6, 1),\n ncol = 1, nrow = 2, align = \"v\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\n\nadlb <- random.cdisc.data::cadlb\nadlb <- adlb %>% filter(PARAMCD == \"ALT\" & AVISIT == \"WEEK 2 DAY 15\")\n\n# Definition of boxplot boundaries and whiskers\nfive_num <- function(x, probs = c(0, 0.25, 0.5, 0.75, 1)) {\n r <- quantile(x, probs)\n names(r) <- c(\"ymin\", \"lower\", \"middle\", \"upper\", \"ymax\")\n r\n}\n\n# get outliers based on quantile\n# for outliers based on IQR see coef in geom_boxplot\nget_outliers <- function(x, probs = c(0.05, 0.95)) {\n r <- subset(x, x < quantile(x, probs[1]) | quantile(x, probs[2]) < x)\n if (!is.null(x)) {\n x_names <- subset(names(x), x < quantile(x, probs[1]) | quantile(x, probs[2]) < x)\n names(r) <- x_names\n }\n r\n}\n\n# create theme used for all plots\ntheme_bp <- theme(\n plot.title = element_text(hjust = 0),\n plot.subtitle = element_text(hjust = 0),\n plot.caption = element_text(hjust = 0),\n panel.background = element_rect(fill = \"white\", color = \"grey50\")\n)\n\n# assign fill color and outline color\nfc <- \"#eaeef5\"\noc <- getOption(\"ggplot2.discrete.fill\")[1]\n\n# get plot metadata data to derive coordinates for adding annotations\nbp_annos <- function(bp, color, annos = 1) {\n bp_mdat <- ggplot_build(bp)$data[[1]]\n if (annos == 1) {\n bp <- bp +\n geom_segment(data = bp_mdat, aes(\n x = xmin + (xmax - xmin) / 4, xend = xmax - (xmax - xmin) / 4,\n y = ymax, yend = ymax\n ), linewidth = .5, color = color) +\n geom_segment(data = bp_mdat, aes(\n x = xmin + (xmax - xmin) / 4, xend = xmax - (xmax - xmin) / 4,\n y = ymin, yend = ymin\n ), linewidth = .5, color = color)\n } else {\n bp <- bp +\n geom_segment(data = bp_mdat, aes(\n x = xmin + (xmax - xmin) / 4, xend = xmax - (xmax - xmin) / 4,\n y = ymax, yend = ymax\n ), linewidth = .5, color = color) +\n geom_segment(data = bp_mdat, aes(\n x = xmin + (xmax - xmin) / 4, xend = xmax - (xmax - xmin) / 4,\n y = ymin, yend = ymin\n ), linewidth = .5, color = color) +\n geom_segment(data = bp_mdat, aes(\n x = xmin, xend = xmax,\n y = middle, yend = middle\n ), colour = color, linewidth = .5)\n }\n return(bp)\n}", - "crumbs": [ - "Graphs", - "Other", - "BWG01" - ] - }, - { - "objectID": "graphs/other/bwg01.html#teal-app", - "href": "graphs/other/bwg01.html#teal-app", - "title": "BWG01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.general)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(tern)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n\n # If PARAMCD and AVISIT are not factors, convert to factors\n # Also fill in missing values with \"<Missing>\"\n ADLB <- ADLB %>%\n df_explicit_na(\n omit_columns = setdiff(names(ADLB), c(\"PARAMCD\", \"AVISIT\")),\n char_as_factor = TRUE\n )\n\n # If statment below fails, pre-process ADLB to be one record per\n # study, subject, param and visit eg. filter with ANLFL = 'Y'\n stopifnot(nrow(ADLB) == nrow(unique(ADLB[, c(\"STUDYID\", \"USUBJID\", \"PARAMCD\", \"AVISIT\")])))\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_bivariate(\n x = data_extract_spec(\n dataname = \"ADSL\",\n select = select_spec(\n label = \"Select variable:\",\n choices = names(ADSL),\n selected = \"ARMCD\",\n fixed = FALSE\n )\n ),\n y = data_extract_spec(\n dataname = \"ADLB\",\n filter = list(\n filter_spec(\n vars = c(\"PARAMCD\"),\n choices = levels(ADLB$PARAMCD),\n selected = levels(ADLB$PARAMCD)[1],\n multiple = FALSE,\n label = \"Choose lab parameter\"\n ),\n filter_spec(\n vars = c(\"AVISIT\"),\n choices = levels(ADLB$AVISIT),\n selected = levels(ADLB$AVISIT)[1],\n multiple = FALSE,\n label = \"Choose visit\"\n )\n ),\n select = select_spec(\n label = \"Select variable:\",\n choices = names(ADLB),\n selected = \"AVAL\",\n multiple = FALSE,\n fixed = TRUE\n )\n ),\n row_facet = data_extract_spec(\n dataname = \"ADLB\",\n select = select_spec(\n label = \"Select variables:\",\n choices = names(ADLB),\n selected = NULL,\n multiple = FALSE,\n fixed = FALSE\n )\n ),\n col_facet = data_extract_spec(\n dataname = \"ADLB\",\n select = select_spec(\n label = \"Select variables:\",\n choices = names(ADLB),\n selected = NULL,\n multiple = FALSE,\n fixed = FALSE\n )\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\nWarning: Removed 8000 rows containing non-finite outside the scale range\n(`stat_boxplot()`).\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.general)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(tern)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n\n # If PARAMCD and AVISIT are not factors, convert to factors\n # Also fill in missing values with \"<Missing>\"\n ADLB <- ADLB %>%\n df_explicit_na(\n omit_columns = setdiff(names(ADLB), c(\"PARAMCD\", \"AVISIT\")),\n char_as_factor = TRUE\n )\n\n # If statment below fails, pre-process ADLB to be one record per\n # study, subject, param and visit eg. filter with ANLFL = 'Y'\n stopifnot(nrow(ADLB) == nrow(unique(ADLB[, c(\"STUDYID\", \"USUBJID\", \"PARAMCD\", \"AVISIT\")])))\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_bivariate(\n x = data_extract_spec(\n dataname = \"ADSL\",\n select = select_spec(\n label = \"Select variable:\",\n choices = names(ADSL),\n selected = \"ARMCD\",\n fixed = FALSE\n )\n ),\n y = data_extract_spec(\n dataname = \"ADLB\",\n filter = list(\n filter_spec(\n vars = c(\"PARAMCD\"),\n choices = levels(ADLB$PARAMCD),\n selected = levels(ADLB$PARAMCD)[1],\n multiple = FALSE,\n label = \"Choose lab parameter\"\n ),\n filter_spec(\n vars = c(\"AVISIT\"),\n choices = levels(ADLB$AVISIT),\n selected = levels(ADLB$AVISIT)[1],\n multiple = FALSE,\n label = \"Choose visit\"\n )\n ),\n select = select_spec(\n label = \"Select variable:\",\n choices = names(ADLB),\n selected = \"AVAL\",\n multiple = FALSE,\n fixed = TRUE\n )\n ),\n row_facet = data_extract_spec(\n dataname = \"ADLB\",\n select = select_spec(\n label = \"Select variables:\",\n choices = names(ADLB),\n selected = NULL,\n multiple = FALSE,\n fixed = FALSE\n )\n ),\n col_facet = data_extract_spec(\n dataname = \"ADLB\",\n select = select_spec(\n label = \"Select variables:\",\n choices = names(ADLB),\n selected = NULL,\n multiple = FALSE,\n fixed = FALSE\n )\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"CPID\", \"ASR\"),\n disp_cols = names(out),\n main_title = \"Listing of Adverse Events\",\n main_footer = \"\n(1) Outcome: 1 = fatal; 2 = not recovered/not resolved; 3 = recovered/resolved;\n 4 = recovered/resolved with sequelae; 5 = recovering/resolving; 6 = unknown.\n(2) Action taken with study drug: 1 = dose increased; 2 = dose not changed;\n 3 = dose reduced; 4 = drug interrupted; 5 = drug withdrawn; 6 = not applicable;\n 7 = unknown.\n* Study day derived from imputed onset date.\n** Duration derived from imputed onset date and/or end date.\"\n)\n\nhead(lsting, 20)\n\nListing of Adverse Events\n\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Date of \n Adverse First Study Study AE Most Caused by Action\n Event MedDRA Drug Day of Duration Extreme Study Outcome Treatment Taken \nTreatment Center/Patient ID Age/Sex/Race Preferred Term Administration Onset in Days Serious Intensity Drug (1) for AE (2) \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-134 47/M/WHITE dcd B.2.1.2.1 04NOV2020 162 173 No MODERATE No 5 Yes 2 \n dcd D.1.1.4.2 04NOV2020 196 166 No MODERATE No 5 No 2 \n dcd A.1.1.1.2 04NOV2020 321 149 Yes MODERATE No 5 Yes 2 \n dcd A.1.1.1.2 04NOV2020 393 43 Yes MODERATE No 5 No 5 \n BRA-1/id-42 36/M/BLACK OR AFRICAN AMERICAN dcd C.2.1.2.1 01JAN2020 39 506 No MODERATE Yes 2 No 6 \n dcd D.1.1.1.1 01JAN2020 64 630 Yes SEVERE Yes 1 No 6 \n dcd C.2.1.2.1 01JAN2020 95 306 No MODERATE Yes 5 No 2 \n dcd A.1.1.1.2 01JAN2020 160 259 Yes MODERATE No 2 Yes 2 \n dcd B.2.2.3.1 01JAN2020 292 50 Yes MILD No 3 No 2 \n dcd A.1.1.1.2 01JAN2020 459 195 Yes MODERATE No 5 Yes 2 \n dcd B.1.1.1.1 01JAN2020 470 131 Yes SEVERE Yes 1 No 6 \n dcd A.1.1.1.2 01JAN2020 475 113 Yes MODERATE No 4 Yes 2 \n dcd C.1.1.1.3 01JAN2020 496 162 No SEVERE Yes 5 Yes 2 \n dcd B.1.1.1.1 01JAN2020 641 15 Yes SEVERE Yes 1 Yes 6 \n BRA-1/id-93 34/F/ASIAN dcd D.1.1.4.2 20JUN2020 44 47 No MODERATE No 5 Yes 2 \n dcd D.2.1.5.3 20JUN2020 79 300 No MILD Yes 5 No 3 \n dcd A.1.1.1.1 20JUN2020 136 78 No MILD No 3 Yes 2 \n dcd D.2.1.5.3 20JUN2020 260 305 No MILD Yes 5 No 2 \n dcd C.1.1.1.3 20JUN2020 281 106 No SEVERE Yes 5 Yes 2 \n dcd D.1.1.1.1 20JUN2020 316 250 Yes SEVERE Yes 1 No 6 \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n\n(1) Outcome: 1 = fatal; 2 = not recovered/not resolved; 3 = recovered/resolved;\n 4 = recovered/resolved with sequelae; 5 = recovering/resolving; 6 = unknown.\n(2) Action taken with study drug: 1 = dose increased; 2 = dose not changed;\n 3 = dose reduced; 4 = drug interrupted; 5 = drug withdrawn; 6 = not applicable;\n 7 = unknown.\n* Study day derived from imputed onset date.\n** Duration derived from imputed onset date and/or end date.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadae <- random.cdisc.data::cadae\n\nout <- adae %>%\n mutate(\n CPID = paste(SITEID, SUBJID, sep = \"/\"),\n ASR = paste(AGE, SEX, RACE, sep = \"/\"),\n Date_First = toupper(format(as.Date(TRTSDTM), \"%d%b%Y\")),\n Duration = AENDY - ASTDY + 1,\n Serious = ifelse(AESER == \"Y\", \"Yes\", ifelse(AESER == \"N\", \"No\", \"\")),\n Related = ifelse(AEREL == \"Y\", \"Yes\", ifelse(AEREL == \"N\", \"No\", \"\")),\n Outcome = case_when(\n AEOUT == \"FATAL\" ~ 1,\n AEOUT == \"NOT RECOVERED/NOT RESOLVED\" ~ 2,\n AEOUT == \"RECOVERED/RESOLVED\" ~ 3,\n AEOUT == \"RECOVERED/RESOLVED WITH SEQUELAE\" ~ 4,\n AEOUT == \"RECOVERING/RESOLVING\" ~ 5,\n AEOUT == \"UNKNOWN\" ~ 6\n ),\n Treated = ifelse(AECONTRT == \"Y\", \"Yes\", ifelse(AECONTRT == \"N\", \"No\", \"\")),\n Action = case_when(\n AEACN == \"DOSE INCREASED\" ~ 1,\n AEACN == \"DOSE NOT CHANGED\" ~ 2,\n AEACN == \"DOSE REDUCED\" | AEACN == \"DOSE RATE REDUCED\" ~ 3,\n AEACN == \"DRUG INTERRUPTED\" ~ 4,\n AEACN == \"DRUG WITHDRAWN\" ~ 5,\n AEACN == \"NOT APPLICABLE\" | AEACN == \"NOT EVALUABLE\" ~ 6,\n AEACN == \"UNKNOWN\" ~ 7\n )\n ) %>%\n select(CPID, ASR, TRT01A, AEDECOD, Date_First, ASTDY, Duration, Serious, AESEV, Related, Outcome, Treated, Action)\n\nvar_labels(out) <- c(\n CPID = \"Center/Patient ID\",\n ASR = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n AEDECOD = \"Adverse\\nEvent MedDRA\\nPreferred Term\",\n Date_First = \"Date of\\nFirst Study\\nDrug\\nAdministration\",\n ASTDY = \"Study\\nDay of\\nOnset\",\n Duration = \"AE\\nDuration\\nin Days\",\n Serious = \"Serious\",\n AESEV = \"Most\\nExtreme\\nIntensity\",\n Related = \"Caused by\\nStudy\\nDrug\",\n Outcome = \"Outcome\\n(1)\",\n Treated = \"Treatment\\nfor AE\",\n Action = \"Action\\nTaken\\n(2)\"\n)", "crumbs": [ - "Graphs", - "Other", - "BWG01" + "Listings", + "Adverse Events", + "AEL02" ] }, { - "objectID": "graphs/other/bwg01.html#reproducibility", - "href": "graphs/other/bwg01.html#reproducibility", - "title": "BWG01", + "objectID": "listings/adverse-events/ael02.html#reproducibility", + "href": "listings/adverse-events/ael02.html#reproducibility", + "title": "AEL02", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:38:13 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n boot 1.3-31 2024-08-28 [2] CRAN (R 4.4.1)\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n cellranger 1.1.0 2016-07-27 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n class 7.3-23 2025-01-01 [1] CRAN (R 4.4.1)\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n DescTools 0.99.58 2024-11-08 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n e1071 1.7-16 2024-09-16 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n Exact 3.3 2024-07-21 [1] RSPM\n expm 1.0-0 2024-08-19 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggmosaic * 0.3.3 2021-02-23 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n ggrepel 0.9.6 2024-09-07 [1] RSPM\n gld 2.6.6 2022-10-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n haven 2.5.4 2023-11-30 [1] RSPM\n hms 1.1.3 2023-03-21 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n lmom 3.2 2024-09-30 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n proxy 0.4-27 2022-06-09 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n readxl 1.4.3 2023-07-06 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rootSolve 1.8.2.4 2023-09-21 [1] RSPM\n rstudioapi 0.17.1 2024-10-22 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.general * 0.3.0.9061 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:37:24 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Other", - "BWG01" + "Listings", + "Adverse Events", + "AEL02" ] }, { - "objectID": "graphs/pharmacokinetic/pkpg04.html#output", - "href": "graphs/pharmacokinetic/pkpg04.html#output", - "title": "PKPG04", + "objectID": "listings/adverse-events/ael01.html#output", + "href": "listings/adverse-events/ael01.html#output", + "title": "AEL01", "section": "Output", - "text": "Output\n\n\nPlot of CMAX by Visit\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# filtered parameter\nadpp <- adpp %>% filter(toupper(PARAMCD) == \"CMAX\" & toupper(PPSPEC) == \"PLASMA\")\n\nuse_title <- paste0(\"Boxplot of \", as.character(unique(adpp$PARAM)), \" by Visit\")\nuse_subtitle <- paste0(\n \"Analyte:\\nPK Parameter: \",\n as.character(unique(adpp$PARAM)),\n \" (\",\n as.character(unique(adpp$AVALU)),\n \")\"\n)\nuse_footnote <- \"Program: \\nOutput:\"\n\np <- ggplot(adpp, aes(x = AVISIT, y = AVAL, fill = ACTARM)) +\n geom_boxplot(outlier.size = 2) +\n stat_boxplot(geom = \"errorbar\") +\n stat_summary(geom = \"point\", fun = \"mean\", col = \"black\", size = 5, shape = 8, position = position_dodge(0.75)) +\n geom_text_repel(\n data = . %>% dplyr::group_by(AVISIT, ACTARM) %>% dplyr::filter(AVAL %in% boxplot.stats(AVAL)$out),\n aes(x = AVISIT, y = AVAL, label = SUBJID, color = ACTARM),\n size = 3, hjust = -0.2, position = position_dodge(0.75)\n ) +\n labs(\n title = use_title,\n subtitle = use_subtitle,\n caption = use_footnote,\n x = \"Visit\",\n y = paste0(as.character(unique(adpp$PARAM)), \" (\", as.character(unique(adpp$AVALU)), \")\")\n ) +\n theme(plot.caption = element_text(hjust = 0)) +\n theme_nest()\n\nplot <- p + geom_point(aes(fill = ACTARM), size = 2, shape = 21, position = position_dodge(0.75))\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(ggrepel)\nlibrary(nestcolor)\n\nadpp <- random.cdisc.data::cadpp", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"AESOC\", \"AEDECOD\", \"AELLT\"),\n disp_cols = names(out),\n main_title = \"Listing of Preferred Terms, Lowest Level Terms, and Investigator-Specified Adverse Event Terms\"\n)\n\nhead(lsting, 20)\n\nListing of Preferred Terms, Lowest Level Terms, and Investigator-Specified Adverse Event Terms\n\n—————————————————————————————————————————————————————————————————————————————————————————————————————\n Investigator-Specified\nMedDRA System Organ Class MedDRA Preferred Term MedDRA Lowest Level Term Adverse Event Term \n—————————————————————————————————————————————————————————————————————————————————————————————————————\n cl A dcd A.1.1.1.1 llt A.1.1.1.1 trm A.1.1.1.1 \n dcd A.1.1.1.2 llt A.1.1.1.2 trm A.1.1.1.2 \n cl B dcd B.1.1.1.1 llt B.1.1.1.1 trm B.1.1.1.1 \n dcd B.2.1.2.1 llt B.2.1.2.1 trm B.2.1.2.1 \n dcd B.2.2.3.1 llt B.2.2.3.1 trm B.2.2.3.1 \n cl C dcd C.1.1.1.3 llt C.1.1.1.3 trm C.1.1.1.3 \n dcd C.2.1.2.1 llt C.2.1.2.1 trm C.2.1.2.1 \n cl D dcd D.1.1.1.1 llt D.1.1.1.1 trm D.1.1.1.1 \n dcd D.1.1.4.2 llt D.1.1.4.2 trm D.1.1.4.2 \n dcd D.2.1.5.3 llt D.2.1.5.3 trm D.2.1.5.3 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadae <- random.cdisc.data::cadae\n\nout <- adae %>%\n select(AESOC, AEDECOD, AELLT, AETERM) %>%\n unique()\n\nvar_labels(out) <- c(\n AESOC = \"MedDRA System Organ Class\",\n AEDECOD = \"MedDRA Preferred Term\",\n AELLT = \"MedDRA Lowest Level Term\",\n AETERM = \"Investigator-Specified\\nAdverse Event Term\"\n)", "crumbs": [ - "Graphs", - "Pharmacokinetic", - "PKPG04" + "Listings", + "Adverse Events", + "AEL01" ] }, { - "objectID": "graphs/pharmacokinetic/pkpg04.html#reproducibility", - "href": "graphs/pharmacokinetic/pkpg04.html#reproducibility", - "title": "PKPG04", + "objectID": "listings/adverse-events/ael01.html#reproducibility", + "href": "listings/adverse-events/ael01.html#reproducibility", + "title": "AEL01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:38:41 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n ggrepel * 0.9.6 2024-09-07 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:37:32 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Pharmacokinetic", - "PKPG04" + "Listings", + "Adverse Events", + "AEL01" ] }, { - "objectID": "graphs/pharmacokinetic/pkcg01.html#output", - "href": "graphs/pharmacokinetic/pkcg01.html#output", - "title": "PKCG01", + "objectID": "listings/concomitant-medications/cml02b_gl.html#output", + "href": "listings/concomitant-medications/cml02b_gl.html#output", + "title": "CML02B_GL", "section": "Output", - "text": "Output\n\n\nPlot in Linear Scale\nPlot in Log Scale\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpc_a <- adpc %>%\n filter(\n PARAM == \"Plasma Drug X\",\n ARMCD == \"ARM A\"\n ) %>%\n mutate(Patient_ID = sub(\".*id-\", \"\", USUBJID))\n\nuse_title <- \"Plot of Plasma Drug X (ug/mL) Concentrations Over Time by\\nPatient: PK Evaluable Patients\"\nuse_subtitle <- \"Analyte: Plasma Drug X (ug/mL) \\nTreatment Group: ARM A\"\nuse_footnote <- \"Program: \\nOutput:\"\n\nresult <- g_ipp(\n df = adpc_a,\n xvar = \"NFRLT\",\n yvar = \"AVAL\",\n xlab = \"Norminal Time from First Dose (hr)\",\n ylab = \"Concentration (ug/mL)\",\n id_var = \"Patient_ID\",\n add_baseline_hline = FALSE,\n yvar_baseline = \"AVAL\", # yvar_baseline cannot be NA or ignore\n title = use_title,\n subtitle = use_subtitle,\n caption = use_footnote,\n plotting_choices = \"separate_by_obs\"\n)\nplot <- result[[1]] # only show the first subject\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpc_a <- adpc %>%\n filter(\n PARAM == \"Plasma Drug X\",\n ARMCD == \"ARM A\"\n ) %>%\n mutate(avalog = ifelse(AVAL != 0, AVAL, 0.001)) %>%\n mutate(Patient_ID = sub(\".*id-\", \"\", USUBJID))\n\nuse_title2 <- \"Plot of Plasma Drug X (ug/mL) Concentrations Over Time by\\nPatient: PK Evaluable Patients\"\nuse_subtitle2 <- \"Analyte: Plasma Drug X (ug/mL) \\nTreatment Group: ARM A\"\nuse_footnote2 <- \"Program: \\nOutput:\"\n\nresult <- g_ipp(\n df = adpc_a,\n xvar = \"NFRLT\",\n yvar = \"avalog\",\n xlab = \"Norminal Time from First Dose (hr)\",\n ylab = \"Concentration (ug/mL)\",\n id_var = \"Patient_ID\",\n add_baseline_hline = FALSE,\n yvar_baseline = \"AVAL\", # yvar_baseline cannot be NA or ignore\n title = use_title2,\n subtitle = use_subtitle2,\n caption = use_footnote2,\n plotting_choices = \"separate_by_obs\"\n)\nplot <- result[[1]] + ggplot2::scale_y_log10(breaks = c(0.001, 0.01, 0.1, 1, 10), labels = c(0.001, 0.01, 0.1, 1, 10))\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\n\nadpc <- random.cdisc.data::cadpc", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"ATC1\", \"ATC2\", \"ATC3\", \"ATC4\"),\n disp_cols = names(out),\n main_title = \"Listing of Concomitant Medication Class, Preferred Name, and Investigator-Specified Terms\"\n)\n\nhead(lsting, 20)\n\nListing of Concomitant Medication Class, Preferred Name, and Investigator-Specified Terms\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Investigator-Specified\nATC Class Level 1 ATC Class Level 2 ATC Class Level 3 ATC Class Level 4 WHODrug Preferred Name Treatment Term \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n ATCCLAS1 A ATCCLAS2 A ATCCLAS3 A ATCCLAS4 A medname A_2/3 A_2/3 \n medname A_3/3 A_3/3 \n medname A_1/3 A_1/3 \n ATCCLAS1 A p2 ATCCLAS2 A p2 ATCCLAS3 A p2 ATCCLAS4 A p2 medname A_3/3 A_3/3 \n ATCCLAS1 B ATCCLAS2 B ATCCLAS3 B ATCCLAS4 B medname B_1/4 B_1/4 \n medname B_4/4 B_4/4 \n medname B_2/4 B_2/4 \n medname B_3/4 B_3/4 \n ATCCLAS1 B p2 ATCCLAS2 B p2 ATCCLAS3 B p2 ATCCLAS4 B p2 medname B_1/4 B_1/4 \n medname B_2/4 B_2/4 \n ATCCLAS1 B p3 ATCCLAS2 B p3 ATCCLAS3 B p3 ATCCLAS4 B p3 medname B_1/4 B_1/4 \n medname B_2/4 B_2/4 \n ATCCLAS1 C ATCCLAS2 C ATCCLAS3 C ATCCLAS4 C medname C_1/2 C_1/2 \n medname C_2/2 C_2/2 \n ATCCLAS1 C p2 ATCCLAS2 C p2 ATCCLAS3 C p2 ATCCLAS4 C p2 medname C_1/2 C_1/2 \n medname C_2/2 C_2/2 \n ATCCLAS1 C p3 ATCCLAS2 C p3 ATCCLAS3 C p3 ATCCLAS4 C p3 medname C_2/2 C_2/2 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadcm <- random.cdisc.data::cadcm\n\nout <- adcm %>%\n select(ATC1, ATC2, ATC3, ATC4, CMDECOD, CMTRT) %>%\n unique()\n\nvar_labels(out) <- c(\n ATC1 = \"ATC Class Level 1\",\n ATC2 = \"ATC Class Level 2\",\n ATC3 = \"ATC Class Level 3\",\n ATC4 = \"ATC Class Level 4\",\n CMDECOD = \"WHODrug Preferred Name\",\n CMTRT = \"Investigator-Specified\\nTreatment Term\"\n)", "crumbs": [ - "Graphs", - "Pharmacokinetic", - "PKCG01" + "Listings", + "Concomitant Medications", + "CML02B_GL" ] }, { - "objectID": "graphs/pharmacokinetic/pkcg01.html#reproducibility", - "href": "graphs/pharmacokinetic/pkcg01.html#reproducibility", - "title": "PKCG01", + "objectID": "listings/concomitant-medications/cml02b_gl.html#reproducibility", + "href": "listings/concomitant-medications/cml02b_gl.html#reproducibility", + "title": "CML02B_GL", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:38:58 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:37:41 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Pharmacokinetic", - "PKCG01" + "Listings", + "Concomitant Medications", + "CML02B_GL" ] }, { - "objectID": "graphs/pharmacokinetic/pkpg02.html#output", - "href": "graphs/pharmacokinetic/pkpg02.html#output", - "title": "PKPG02", + "objectID": "listings/concomitant-medications/cml02a_gl.html#output", + "href": "listings/concomitant-medications/cml02a_gl.html#output", + "title": "CML02A_GL", "section": "Output", - "text": "Output\n\n\nSummary of Pharmacokinetic Parameters – Plasma\nSummary of Plasma Pharmacokinetic Parameters with Median Points\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# calculate Summary Statistics (mean and sd) for each group\nSummaryStat <- adpp_adex %>% \n group_by(Dose = as.factor(Dose)) %>%\n summarise(AUCsd = sd(AUCinf), meanAUC = mean(AUCinf))\nSummaryStat$Dose <- as.numeric(as.character(SummaryStat$Dose)) \n\n# generate linear model\nmod1 <- lm(log(AUCinf) ~ log(Dose), adpp_adex)\n\n# obtain linear model coefficient values\ncf <- round(coef(mod1), 2)\n\n# generate linear model equation\neq <- paste0(\n \"y = \", cf[1],\n ifelse(sign(cf[2]) == 1, \" + \", \" - \"), abs(cf[2]), \" x , \",\n \"R²\",\n \" = \",\n signif(summary(mod1)$adj.r.squared, 3)\n)\n\nplot <- ggplot(adpp_adex, aes(x = .data[[x_var]], y = .data[[y_var]])) +\n annotate(geom = \"text\", x = min(adpp_adex[[x_var]]), y = max(adpp_adex[[y_var]]), label = eq, hjust = 0.1) +\n geom_point(size = 1, aes(color = factor(`count`))) +\n scale_x_continuous(\n name = \"Dose (mg/mL)\",\n breaks = unique(adpp_adex$Dose)\n ) +\n scale_y_continuous(\n name = paste(y_var, adpp_a$AVALU),\n transform = \"log\",\n breaks = exp(ceiling(seq(\n from = min(log(adpp_adex$AUCinf)), to = max(log(adpp_adex$AUCinf)),\n by = 1\n ))),\n labels = as.character(ceiling(seq(\n from = min(log(adpp_adex$AUCinf)),\n to = max(log(adpp_adex$AUCinf)), by = 1\n )))\n ) +\n geom_smooth(method = \"lm\", formula = y ~ x, se = FALSE, color = \"black\", linewidth = 0.5) +\n # Display error bars for each dosing group (this will only appear if the sd is less than the mean)\n geom_errorbar(\n data = SummaryStat,\n aes(x = `Dose`, y = `meanAUC`, ymin = `meanAUC` - `AUCsd`, ymax = `meanAUC` + AUCsd),\n width = .05,\n position = position_dodge(.1)\n ) +\n geom_point(data = SummaryStat, aes(x = Dose, y = meanAUC, size = 1), shape = 2, show.legend = FALSE) +\n ggtitle(paste(\n \"Dose-Proportionality Plot of Serum\", as.character(unique(adex$TRT01P)),\n y_var, \"in\", adpp_a$AVALU\n ), subtitle = \"Summary of serum PK parameters by treatment\") +\n labs(color = \"Treatment Arm\") +\n theme_nest()\n\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# calculate median for each group if preferred\nSummaryStat <- adpp_adex %>% \n group_by(Dose = as.factor(Dose)) %>%\n summarise(medAUC = median(AUCinf))\nSummaryStat$Dose <- as.numeric(as.character(SummaryStat$Dose)) \n\nplot <- ggplot(adpp_adex, aes(x = .data[[x_var]], y = .data[[y_var]])) +\n annotate(geom = \"text\", x = min(adpp_adex[[x_var]]), y = max(adpp_adex[[y_var]]), label = eq, hjust = 0.1) +\n geom_point(size = 1, aes(color = factor(`count`))) +\n geom_smooth(method = \"lm\", formula = y ~ x, se = FALSE, color = \"black\", linewidth = 0.5) +\n geom_point(data = SummaryStat, aes(x = Dose, y = medAUC, size = 1), shape = 2, show.legend = FALSE) +\n ggtitle(\n paste(\n \"Dose-Proportionality Plot of Serum\",\n as.character(unique(adex$TRT01P)),\n y_var,\n \"in\",\n adpp_a$AVALU\n ),\n subtitle = \"Summary of serum PK parameters by treatment\"\n ) +\n labs(color = \"Treatment Arm\") +\n scale_y_continuous(\n name = paste(y_var, adpp_a$AVALU),\n transform = \"log\",\n breaks = exp(ceiling(seq(from = min(log(adpp_adex$AUCinf)), to = max(log(adpp_adex$AUCinf)), by = 1))),\n labels = as.character(ceiling(seq(from = min(log(adpp_adex$AUCinf)), to = max(log(adpp_adex$AUCinf)), by = 1)))\n ) +\n scale_x_continuous(\n name = \"Dose (mg/mL)\",\n breaks = unique(adpp_adex$Dose)\n ) +\n theme_nest()\n\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\n\n# need adex for dose info and adpp for AUC max info\nadex <- random.cdisc.data::cadex\nadpp <- random.cdisc.data::cadpp\n\nadpp_a <- adpp %>%\n filter(\n PPSPEC == \"Plasma\",\n AVISITN == \"1\",\n PARAMCD == \"AUCIFO\"\n ) %>%\n mutate(AUCinf = AVAL)\n\nadex_a <- adex %>%\n filter(\n AVISITN == \"1\",\n PARAMCD == \"DOSE\"\n ) %>%\n mutate(Dose = AVAL) %>%\n select(USUBJID, Dose)\n\n# join the dose information to the adpp table\nadpp_adex <- left_join(adpp_a, adex_a, by = \"USUBJID\") %>%\n group_by(`ARM`) %>%\n mutate(count = paste0(`ARM`, \" (\", n(), \")\"))\n\n# set x and y variable names\nx_var <- \"Dose\"\ny_var <- \"AUCinf\"", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"ATC2\", \"CMDECOD\", \"CMTRT\"),\n disp_cols = names(out),\n main_title = \"Listing of Concomitant Medication Class Level 2, Preferred Name, and Investigator-Specified Terms\"\n)\n\nhead(lsting, 20)\n\nListing of Concomitant Medication Class Level 2, Preferred Name, and Investigator-Specified Terms\n\n———————————————————————————————————————————————————————————————————\n Investigator-Specified\nATC Class Level 2 WHODrug Preferred Name Treatment Term \n———————————————————————————————————————————————————————————————————\n ATCCLAS2 A medname A_1/3 A_1/3 \n medname A_2/3 A_2/3 \n medname A_3/3 A_3/3 \n ATCCLAS2 A p2 medname A_3/3 A_3/3 \n ATCCLAS2 B medname B_1/4 B_1/4 \n medname B_2/4 B_2/4 \n medname B_3/4 B_3/4 \n medname B_4/4 B_4/4 \n ATCCLAS2 B p2 medname B_1/4 B_1/4 \n medname B_2/4 B_2/4 \n ATCCLAS2 B p3 medname B_1/4 B_1/4 \n medname B_2/4 B_2/4 \n ATCCLAS2 C medname C_1/2 C_1/2 \n medname C_2/2 C_2/2 \n ATCCLAS2 C p2 medname C_1/2 C_1/2 \n medname C_2/2 C_2/2 \n ATCCLAS2 C p3 medname C_2/2 C_2/2 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadcm <- random.cdisc.data::cadcm\n\nout <- adcm %>%\n select(ATC2, CMDECOD, CMTRT) %>%\n unique()\n\nvar_labels(out) <- c(\n ATC2 = \"ATC Class Level 2\",\n CMDECOD = \"WHODrug Preferred Name\",\n CMTRT = \"Investigator-Specified\\nTreatment Term\"\n)", "crumbs": [ - "Graphs", - "Pharmacokinetic", - "PKPG02" + "Listings", + "Concomitant Medications", + "CML02A_GL" ] }, { - "objectID": "graphs/pharmacokinetic/pkpg02.html#reproducibility", - "href": "graphs/pharmacokinetic/pkpg02.html#reproducibility", - "title": "PKPG02", + "objectID": "listings/concomitant-medications/cml02a_gl.html#reproducibility", + "href": "listings/concomitant-medications/cml02a_gl.html#reproducibility", + "title": "CML02A_GL", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:39:12 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n mgcv 1.9-1 2023-12-21 [2] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:37:49 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", - "Pharmacokinetic", - "PKPG02" + "Listings", + "Concomitant Medications", + "CML02A_GL" ] }, { - "objectID": "graphs/pharmacokinetic/pkpg01.html#output", - "href": "graphs/pharmacokinetic/pkpg01.html#output", - "title": "PKPG01", + "objectID": "listings/pharmacokinetic/pkpl01.html#output", + "href": "listings/pharmacokinetic/pkpl01.html#output", + "title": "PKPL01", "section": "Output", - "text": "Output\n\n\nPlot with Two Cohorts\nPlot with Six Cohorts\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeuse_title <- \"Plot of Mean (+/- SD) Cummulative Percentage (%) of Recovered Drug in Urine \\nby Analyte, Visit: PK Evaluable Patients\" \nuse_subtitle <- \"Analyte: Plasma Drug X \\nVisit: CYCLE 1 DAY 1 \\nPK Parameter:\"\nuse_footnote <- \"Program: \\nOutput:\"\n\nseparation_between_barplots <- 1.5\n\nresult <- g_lineplot(\n df = adpp,\n variables = control_lineplot_vars(\n x = \"Time\",\n y = \"AVAL\",\n group_var = \"ARM\",\n paramcd = \"PARAM1\",\n y_unit = \"AVALU\"\n ),\n alt_counts_df = adpp,\n y_lab = \"Cummulative Percentage\",\n x_lab = \"Time (hours)\",\n y_lab_add_paramcd = FALSE,\n y_lab_add_unit = TRUE,\n interval = \"mean_sdi\",\n whiskers = c(\"mean_sdi_lwr\", \"mean_sdi_upr\"),\n title = use_title,\n subtitle = use_subtitle,\n caption = use_footnote,\n ggtheme = theme_nest(),\n position = ggplot2::position_dodge(width = 2)\n)\n\nplot <- result + theme(plot.caption = element_text(hjust = 0)) +\n scale_x_continuous(breaks = c(12, 24))\n\nScale for x is already present.\nAdding another scale for x, which will replace the existing scale.\n\nCodeplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nIn this case we need to process the data further by artificially adding more random rows. Of course this step is not necessary in the case that data already has more cohorts.\n\nCodeadpp_hck <- adpp %>%\n mutate(AVAL + 1 * rnorm(nrow(adpp), mean = 1, sd = 1)) %>%\n mutate(ARM = as.factor(sample(\n c(\n \"D: Drug D\",\n \"E: Drug E\",\n \"F: Drug F\",\n \"G: Drug G\"\n ),\n nrow(adpp),\n replace = TRUE,\n prob = c(0.4, 0.3, 0.2, 0.1)\n )))\n\nadpp <- bind_rows(adpp, adpp_hck)\n\nuse_title <- \"Plot of Mean (+/- SD) Cummulative Percentage (%) of Recovered Drug in Urine \\nby Analyte, Visit: PK Evaluable Patients\" \nuse_subtitle <- \"Analyte: Plasma Drug X \\nVisit: CYCLE 1 DAY 1 \\nPK Parameter:\"\nuse_footnote <- \"Program: \\nOutput:\"\n\nseparation_between_barplots <- 1.5\n\nresult <- g_lineplot(\n df = adpp,\n variables = control_lineplot_vars(\n x = \"Time\",\n y = \"AVAL\",\n group_var = \"ARM\",\n paramcd = \"PARAM1\",\n y_unit = \"AVALU\"\n ),\n alt_counts_df = adpp,\n y_lab = \"Cummulative Percentage\",\n x_lab = \"Time (hours)\",\n y_lab_add_paramcd = FALSE,\n y_lab_add_unit = TRUE,\n interval = \"mean_sdi\",\n whiskers = c(\"mean_sdi_lwr\", \"mean_sdi_upr\"),\n title = use_title,\n subtitle = use_subtitle,\n caption = use_footnote,\n ggtheme = theme_nest(),\n position = ggplot2::position_dodge(width = 2)\n)\n\nplot <- result + theme(plot.caption = element_text(hjust = 0)) +\n scale_x_continuous(breaks = c(12, 24))\n\nScale for x is already present.\nAdding another scale for x, which will replace the existing scale.\n\nCodeplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\nset.seed(123)\n\n# loading in the data\nadpp <- random.cdisc.data::cadpp\n\n# filtering the rows for specific data entries\nadpp <- adpp %>%\n filter(PARAMCD == \"RCPCINT\", AVISIT == \"CYCLE 1 DAY 1\", PPCAT == \"Plasma Drug X\")\n\n# adding or modifying specific columns\nadpp <- adpp %>%\n mutate(ARM = as.factor(TRT01A)) %>%\n mutate(PARAM1 = \"Fe\") %>% # re-format PK parameter name\n mutate(Time = as.numeric(gsub(\"PT*|\\\\.|H$\", \"\", PPENINT))) %>%\n droplevels() %>%\n df_explicit_na()\n\n# in cases where the cohorts are numeric it is possible to rename them\nlevels(adpp$ARM) <- c(\n \"A: Drug X\",\n \"C: Combination\"\n)", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"USUBJID\", \"AVISIT\"),\n disp_cols = names(out),\n main_title = paste(\"Listing of\", drug_a, spec, \"PK Parameters, PK Population\\nProtocol: xxnnnnn\"),\n subtitles = paste(\"Analyte:\", drug_a)\n)\n\nhead(lsting, 20)\n\nListing of Plasma Drug X Plasma PK Parameters, PK Population\nProtocol: xxnnnnn\nAnalyte: Plasma Drug X\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Group Subject ID Visit AUC Infinity Obs (day*ug/mL) Max Conc (ug/mL) Total CL Obs (ml/day/kg)\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X AB12345-BRA-1-id-105 SCREENING 145.191684898102 35.5067335878638 5.1567601025515 \n CYCLE 1 DAY 1 246.349321001289 31.2264481880236 4.41386730113941 \n CYCLE 1 DAY 2 225.443483077171 43.4987268488453 4.81490455551286 \n AB12345-BRA-1-id-134 SCREENING 157.461703380688 32.1171292884992 6.0374125711965 \n CYCLE 1 DAY 1 248.519038520728 21.7795763901966 4.561839813278 \n CYCLE 1 DAY 2 230.794839837734 21.0627132276049 6.95200595313275 \n AB12345-BRA-1-id-42 SCREENING 194.224015921831 20.4565798423567 6.33709739029277 \n CYCLE 1 DAY 1 210.528307366678 26.7845825535397 3.50776680376268 \n CYCLE 1 DAY 2 167.592869235882 34.8276545020143 4.11969088323673 \n AB12345-BRA-1-id-93 SCREENING 186.75868084484 27.3983170052516 3.40495133575408 \n CYCLE 1 DAY 1 160.406798051843 17.5296885232566 3.8508725098954 \n CYCLE 1 DAY 2 252.04512291352 32.4903879259459 6.21586252565961 \n AB12345-BRA-11-id-217 SCREENING 215.367414313054 20.8879942219526 6.55883385955605 \n CYCLE 1 DAY 1 272.094354596647 34.2812274648873 5.04441608634882 \n CYCLE 1 DAY 2 174.183265394136 23.04243406023 4.07416508597243 \n AB12345-BRA-11-id-345 SCREENING 235.746948097021 26.5740342881269 5.52059967823211 \n CYCLE 1 DAY 1 228.51025073098 39.7523164840323 6.32996327499752 \n CYCLE 1 DAY 2 120.712762389698 24.37143486359 5.02620823564574 \n AB12345-BRA-11-id-397 SCREENING 165.925716319045 21.8770819414152 6.3713157196375 \n CYCLE 1 DAY 1 201.536920713046 36.5841424116449 4.32440907316618 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\ndrug_a <- \"Plasma Drug X\"\nspec <- \"Plasma\"\n\nadpp <- random.cdisc.data::cadpp\nadpp_x <- adpp %>% filter(\n PPCAT == drug_a,\n PPSPEC == spec\n)\n\nout <- adpp_x %>%\n mutate(PARAM = paste0(PARAM, \" (\", AVALU, \")\")) %>%\n select(TRT01A, USUBJID, AVISIT, PARAM, AVAL) %>%\n tidyr::pivot_wider(\n id_cols = c(TRT01A, USUBJID, AVISIT),\n names_from = PARAM,\n values_from = AVAL\n )\n\nvar_labels(out) <- names(out)\nout <- out %>% var_relabel(\n TRT01A = \"Treatment Group\",\n USUBJID = \"Subject ID\",\n AVISIT = \"Visit\"\n)", "crumbs": [ - "Graphs", + "Listings", "Pharmacokinetic", - "PKPG01" + "PKPL01" ] }, { - "objectID": "graphs/pharmacokinetic/pkpg01.html#reproducibility", - "href": "graphs/pharmacokinetic/pkpg01.html#reproducibility", - "title": "PKPG01", + "objectID": "listings/pharmacokinetic/pkpl01.html#reproducibility", + "href": "listings/pharmacokinetic/pkpl01.html#reproducibility", + "title": "PKPL01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:39:27 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:37:58 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Graphs", + "Listings", "Pharmacokinetic", - "PKPG01" + "PKPL01" ] }, { - "objectID": "appendix/reproducibility.html#session-info", - "href": "appendix/reproducibility.html#session-info", - "title": "Reproducibility", - "section": "Session Info", - "text": "Session Info\n\nCodesessionInfo()\n\nR version 4.4.1 (2024-06-14)\nPlatform: x86_64-pc-linux-gnu\nRunning under: Ubuntu 22.04.5 LTS\n\nMatrix products: default\nBLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 \nLAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so; LAPACK version 3.10.0\n\nlocale:\n [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C \n [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 \n [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 \n [7] LC_PAPER=en_US.UTF-8 LC_NAME=C \n [9] LC_ADDRESS=C LC_TELEPHONE=C \n[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C \n\ntime zone: Etc/UTC\ntzcode source: system (glibc)\n\nattached base packages:\n[1] stats graphics grDevices utils datasets methods base \n\nloaded via a namespace (and not attached):\n [1] digest_0.6.37 R6_2.5.1 codetools_0.2-20 fastmap_1.2.0 \n [5] pkgcache_2.2.3 xfun_0.49 magrittr_2.0.3 glue_1.8.0 \n [9] knitr_1.49 htmltools_0.5.8.1 rmarkdown_2.29 lifecycle_1.0.4 \n[13] ps_1.8.1 cli_3.6.3 processx_3.8.4 vctrs_0.6.5 \n[17] testthat_3.2.2 compiler_4.4.1 tools_4.4.1 brio_1.1.5 \n[21] curl_6.0.1 evaluate_1.0.1 pillar_1.10.0 yaml_2.3.10 \n[25] htmlwidgets_1.6.4 rlang_1.1.4 jsonlite_1.8.9 \n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\n\nCodewithr::with_options(\n list(renv.verbose = FALSE),\n renv::snapshot(\"..\", lockfile = \"../assets/www/renv.lock\", prompt = FALSE, force = TRUE)\n)\n\n\nDownload", + "objectID": "listings/pharmacokinetic/pkcl02.html#output", + "href": "listings/pharmacokinetic/pkcl02.html#output", + "title": "PKCL02", + "section": "Output", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"USUBJID\", \"VISIT\"),\n disp_cols = names(out),\n main_title = paste0(\n \"Listing of \", drug_a, \" Urine Concentration and Volumes following \", unique(adpc_x$REGIMEN)[1],\n \" of \", drug_a, \", PK Population\\nProtocol: xxnnnnn\"\n ),\n subtitles = paste(\"Analyte:\", drug_a)\n)\n\nhead(lsting, 20)\n\nListing of Drug X Urine Concentration and Volumes following BID of Drug X, PK Population\nProtocol: xxnnnnn\nAnalyte: Drug X\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n UR_Conc (ug/mL) - Vurine (mL) - UR_Conc (ug/mL) - Vurine (mL) - UR_Conc (ug/mL) - Vurine (mL) - UR_Conc (ug/mL) - Vurine (mL) - UR_Conc (ug/mL) - Vurine (mL) - \n Urine Collection Urine Collection Urine Collection Urine Collection Urine Collection Urine Collection Urine Collection Urine Collection Urine Collection Urine Collection \n Interval: Interval: Interval (hours): Interval (hours): Interval (hours): Interval (hours): Interval (hours): Interval (hours): Interval (hours): Interval (hours):\nTreatment Group Subject ID Visit redose redose 0 - 4 0 - 4 4 - 8 4 - 8 8 - 12 8 - 12 0 - 24 0 - 24 \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X AB12345-BRA-1-id-105 Day 1 0 713.94 5.461 96.92 0.562 235.38 0.049 384.98 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 735.22 \n AB12345-BRA-1-id-134 Day 1 0 1068.83 4.064 145.1 0.178 352.39 0.006 576.35 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 1080.14 \n AB12345-BRA-1-id-42 Day 1 0 817.09 4.277 110.93 0.305 269.39 0.018 440.6 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 737.25 \n AB12345-BRA-1-id-93 Day 1 0 864.61 4.324 117.38 0.278 285.06 0.015 466.23 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 757.23 \n AB12345-BRA-11-id-217 Day 1 0 724.93 6.225 98.41 0.672 239.01 0.059 390.91 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 1185.46 \n AB12345-BRA-11-id-345 Day 1 0 840.09 6.511 114.05 0.588 276.98 0.04 453.01 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 883.89 \n AB12345-BRA-11-id-397 Day 1 0 974.41 5.478 132.28 0.354 321.26 0.017 525.44 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 918.67 \n AB12345-BRA-11-id-50 Day 1 0 922.97 4.122 125.3 0.228 304.3 0.01 497.7 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 808.08 \n AB12345-BRA-13-id-177 Day 1 0 694.09 4.267 94.23 0.421 228.84 0.038 374.28 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 908.45 \n AB12345-BRA-14-id-23 Day 1 0 722.84 4.254 98.13 0.386 238.32 0.032 389.78 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 862.1 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\ndrug_a <- \"Drug X\"\nspec <- \"URINE\"\n\nadpc <- random.cdisc.data::cadpc\nadpc_x <- adpc %>%\n mutate(REGIMEN = ifelse(\"REGIMEN\" %in% names(adpc), REGIMEN, \"BID\")) %>%\n filter(\n grepl(drug_a, PARAM),\n ASMED == spec\n )\n\nout <- adpc_x %>%\n tidyr::pivot_longer(\n cols = c(AVAL, PCVOL),\n names_to = \"URCD\",\n values_to = \"VALUE\"\n ) %>%\n mutate(\n URCD = case_when(\n URCD == \"AVAL\" ~ \"UR_Conc\",\n URCD == \"PCVOL\" ~ \"Vurine\",\n TRUE ~ URCD\n ),\n UNIT = case_when(\n URCD == \"UR_Conc\" ~ as.character(AVALU),\n URCD == \"Vurine\" ~ as.character(PCVOLU),\n TRUE ~ \"NA\"\n )\n ) %>%\n mutate(\n PARAM_INT = paste0(\n URCD, \" (\", UNIT, \") -\\nUrine Collection\\nInterval\",\n ifelse(PCTPT == \"Predose\", \"\", \" (hours)\"), \":\\n\",\n gsub(\"[PTH]\", \"\", PCTPT)\n )\n ) %>%\n select(TRT01A, USUBJID, VISIT, PARAM_INT, VALUE) %>%\n unique() %>%\n tidyr::pivot_wider(\n id_cols = c(TRT01A, USUBJID, VISIT),\n names_from = PARAM_INT,\n values_from = VALUE\n )\n\nvar_labels(out) <- names(out)\nout <- out %>% var_relabel(\n TRT01A = \"Treatment Group\",\n USUBJID = \"Subject ID\",\n VISIT = \"Visit\"\n)", "crumbs": [ - "Appendix", - "Reproducibility" + "Listings", + "Pharmacokinetic", + "PKCL02" ] }, { - "objectID": "tables/efficacy/cmht01.html#output", - "href": "tables/efficacy/cmht01.html#output", - "title": "CMHT01", - "section": "Output", - "text": "Output\n\n\nTable of Single Parameter\nTable of Multiple Parameters\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl_01 <- adqs %>%\n filter(PARAMCD == \"FKSI-FWB\" & AVISIT == \"WEEK 1 DAY 8\") %>%\n mutate(is_rsp = PCHG > 15) %>%\n mutate(ARM = relevel(ARM, ref = \"A: Drug X\")) %>%\n var_relabel(ARM = \"Description of Planned Arm\") %>%\n mutate(strata = interaction(STRATA1, STRATA2, drop = TRUE))\n\nlyt_01 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n estimate_proportion(vars = \"is_rsp\", table_names = \"est_prop\") %>%\n estimate_proportion_diff(\n var_labels = \"Unstratified Analysis\",\n vars = \"is_rsp\",\n show_labels = \"visible\",\n table_names = \"est_prop_diff\"\n ) %>%\n test_proportion_diff(vars = \"is_rsp\", table_names = \"test_prop\") %>%\n estimate_odds_ratio(vars = \"is_rsp\", table_names = \"est_or\") %>%\n estimate_proportion_diff(\n var_labels = \"Stratified Analysis\",\n vars = \"is_rsp\",\n show_labels = \"visible\",\n method = \"cmh\",\n variables = list(strata = \"strata\"),\n table_names = \"est_prop_diff_strat\"\n ) %>%\n test_proportion_diff(\n vars = \"is_rsp\",\n method = \"cmh\",\n variables = list(strata = \"strata\"),\n table_names = \"test_prop_strat\"\n ) %>%\n estimate_odds_ratio(\n vars = \"is_rsp\",\n variables = list(strata = \"strata\", arm = \"ARM\"),\n table_names = \"est_or_strat\"\n )\n\nresult <- build_table(\n lyt = lyt_01,\n df = anl_01,\n alt_counts_df = adsl\n)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————\nResponders 49 (36.6%) 51 (38.1%) 47 (35.6%) \n95% CI (Wald, with correction) (28.0, 45.1) (29.5, 46.7) (27.1, 44.2) \nUnstratified Analysis \n Difference in Response rate (%) 1.5 -1.0 \n 95% CI (Wald, with correction) (-10.8, 13.8) (-13.3, 11.3) \n p-value (Chi-Squared Test) 0.8006 0.8704 \nOdds Ratio (95% CI) 1.07 (0.65 - 1.75) 0.96 (0.58 - 1.58)\nStratified Analysis \n Difference in Response rate (%) 2.8 -1.5 \n 95% CI (CMH, without correction) (-8.2, 13.8) (-13.0, 9.9) \n p-value (Cochran-Mantel-Haenszel Test) 0.6397 0.7952 \nOdds Ratio (95% CI) 1.12 (0.68 - 1.83) 0.99 (0.60 - 1.64)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl_02 <- adqs %>%\n filter(AVISIT == \"WEEK 1 DAY 8\") %>%\n mutate(is_rsp = PCHG > 15) %>%\n mutate(PARAM = droplevels(PARAM)) %>%\n mutate(ARM = relevel(ARM, ref = \"A: Drug X\")) %>%\n var_relabel(ARM = \"Description of Planned Arm\") %>%\n mutate(strata = interaction(STRATA1, STRATA2, drop = TRUE))\n\nvar_labels(anl_02)[\"PARAM\"] <- \"Parameter\"\n\nsplit_fun <- drop_split_levels\n\nlyt_02 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n split_rows_by(\n var = \"PARAM\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(anl_02$PARAM)\n ) %>%\n estimate_proportion(vars = \"is_rsp\", table_names = \"est_prop\") %>%\n estimate_proportion_diff(\n var_labels = \"Unstratified Analysis\",\n vars = \"is_rsp\",\n show_labels = \"visible\",\n table_names = \"est_prop_diff\"\n ) %>%\n test_proportion_diff(vars = \"is_rsp\", table_names = \"test_prop\") %>%\n estimate_odds_ratio(vars = \"is_rsp\", table_names = \"est_or\") %>%\n estimate_proportion_diff(\n var_labels = \"Stratified Analysis\",\n vars = \"is_rsp\",\n show_labels = \"visible\",\n method = \"cmh\",\n variables = list(strata = \"strata\"),\n table_names = \"est_prop_diff_strat\"\n ) %>%\n test_proportion_diff(\n vars = \"is_rsp\",\n method = \"cmh\",\n variables = list(strata = \"strata\"),\n table_names = \"test_prop_strat\"\n ) %>%\n estimate_odds_ratio(\n vars = \"is_rsp\",\n variables = list(strata = \"strata\", arm = \"ARM\"),\n table_names = \"est_or_strat\"\n )\n\nresult <- build_table(\n lyt = lyt_02,\n df = anl_02,\n alt_counts_df = adsl\n)\nresult\n\n A: Drug X B: Placebo C: Combination \nParameter (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————\nBFI All Questions \n Responders 57 (42.5%) 65 (48.5%) 50 (37.9%) \n 95% CI (Wald, with correction) (33.8, 51.3) (39.7, 57.3) (29.2, 46.5) \n Unstratified Analysis \n Difference in Response rate (%) 6.0 -4.7 \n 95% CI (Wald, with correction) (-6.7, 18.6) (-17.2, 7.9) \n p-value (Chi-Squared Test) 0.3264 0.4385 \n Odds Ratio (95% CI) 1.27 (0.79 - 2.06) 0.82 (0.50 - 1.35)\n Stratified Analysis \n Difference in Response rate (%) 6.7 -5.1 \n 95% CI (CMH, without correction) (-5.0, 18.4) (-16.8, 6.6) \n p-value (Cochran-Mantel-Haenszel Test) 0.2781 0.4056 \n Odds Ratio (95% CI) 1.30 (0.80 - 2.11) 0.80 (0.49 - 1.32)\nFatigue Interference \n Responders 66 (49.3%) 50 (37.3%) 48 (36.4%) \n 95% CI (Wald, with correction) (40.4, 58.1) (28.8, 45.9) (27.8, 44.9) \n Unstratified Analysis \n Difference in Response rate (%) -11.9 -12.9 \n 95% CI (Wald, with correction) (-24.5, 0.6) (-25.4, -0.3) \n p-value (Chi-Squared Test) 0.0485 0.0337 \n Odds Ratio (95% CI) 0.61 (0.38 - 1.00) 0.59 (0.36 - 0.96)\n Stratified Analysis \n Difference in Response rate (%) -12.0 -13.3 \n 95% CI (CMH, without correction) (-23.7, -0.2) (-24.9, -1.6) \n p-value (Cochran-Mantel-Haenszel Test) 0.0518 0.0303 \n Odds Ratio (95% CI) 0.61 (0.37 - 0.99) 0.58 (0.36 - 0.96)\nFKSI-19 All Questions \n Responders 60 (44.8%) 57 (42.5%) 68 (51.5%) \n 95% CI (Wald, with correction) (36.0, 53.6) (33.8, 51.3) (42.6, 60.4) \n Unstratified Analysis \n Difference in Response rate (%) -2.2 6.7 \n 95% CI (Wald, with correction) (-14.9, 10.4) (-6.0, 19.5) \n p-value (Chi-Squared Test) 0.7118 0.2714 \n Odds Ratio (95% CI) 0.91 (0.56 - 1.48) 1.31 (0.81 - 2.12)\n Stratified Analysis \n Difference in Response rate (%) -2.8 5.6 \n 95% CI (CMH, without correction) (-14.3, 8.8) (-6.2, 17.4) \n p-value (Cochran-Mantel-Haenszel Test) 0.6442 0.3683 \n Odds Ratio (95% CI) 0.90 (0.56 - 1.47) 1.26 (0.77 - 2.04)\nFunction/Well-Being (GF1,GF3,GF7) \n Responders 49 (36.6%) 51 (38.1%) 47 (35.6%) \n 95% CI (Wald, with correction) (28.0, 45.1) (29.5, 46.7) (27.1, 44.2) \n Unstratified Analysis \n Difference in Response rate (%) 1.5 -1.0 \n 95% CI (Wald, with correction) (-10.8, 13.8) (-13.3, 11.3) \n p-value (Chi-Squared Test) 0.8006 0.8704 \n Odds Ratio (95% CI) 1.07 (0.65 - 1.75) 0.96 (0.58 - 1.58)\n Stratified Analysis \n Difference in Response rate (%) 2.8 -1.5 \n 95% CI (CMH, without correction) (-8.2, 13.8) (-13.0, 9.9) \n p-value (Cochran-Mantel-Haenszel Test) 0.6397 0.7952 \n Odds Ratio (95% CI) 1.12 (0.68 - 1.83) 0.99 (0.60 - 1.64)\nTreatment Side Effects (GP2,C5,GP5) \n Responders 62 (46.3%) 49 (36.6%) 51 (38.6%) \n 95% CI (Wald, with correction) (37.5, 55.1) (28.0, 45.1) (30.0, 47.3) \n Unstratified Analysis \n Difference in Response rate (%) -9.7 -7.6 \n 95% CI (Wald, with correction) (-22.2, 2.8) (-20.2, 5.0) \n p-value (Chi-Squared Test) 0.1069 0.2080 \n Odds Ratio (95% CI) 0.67 (0.41 - 1.09) 0.73 (0.45 - 1.19)\n Stratified Analysis \n Difference in Response rate (%) -9.6 -7.1 \n 95% CI (CMH, without correction) (-21.0, 1.8) (-18.8, 4.6) \n p-value (Cochran-Mantel-Haenszel Test) 0.1168 0.2426 \n Odds Ratio (95% CI) 0.67 (0.41 - 1.10) 0.73 (0.45 - 1.19)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadqs <- random.cdisc.data::cadqs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadqs <- df_explicit_na(adqs)", + "objectID": "listings/pharmacokinetic/pkcl02.html#reproducibility", + "href": "listings/pharmacokinetic/pkcl02.html#reproducibility", + "title": "PKCL02", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:38:07 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Tables", - "Efficacy", - "CMHT01" + "Listings", + "Pharmacokinetic", + "PKCL02" ] }, { - "objectID": "tables/efficacy/cmht01.html#teal-app", - "href": "tables/efficacy/cmht01.html#teal-app", - "title": "CMHT01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ARMCD = list(ref = \"ARM B\", comp = c(\"ARM A\", \"ARM C\")),\n ARM = list(ref = \"B: Placebo\", comp = c(\"A: Drug X\", \"C: Combination\"))\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_binary_outcome(\n label = \"Responders\",\n dataname = \"ADRS\",\n paramcd = choices_selected(\n choices = value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n selected = \"BESRSPI\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADRS, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n strata_var = choices_selected(\n choices = variable_choices(ADRS, c(\"SEX\", \"BMRKR2\")),\n select = NULL\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ARMCD = list(ref = \"ARM B\", comp = c(\"ARM A\", \"ARM C\")),\n ARM = list(ref = \"B: Placebo\", comp = c(\"A: Drug X\", \"C: Combination\"))\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_binary_outcome(\n label = \"Responders\",\n dataname = \"ADRS\",\n paramcd = choices_selected(\n choices = value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n selected = \"BESRSPI\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADRS, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n strata_var = choices_selected(\n choices = variable_choices(ADRS, c(\"SEX\", \"BMRKR2\")),\n select = NULL\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "listings/pharmacokinetic/adal01.html#output", + "href": "listings/pharmacokinetic/adal01.html#output", + "title": "ADAL01", + "section": "Output", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"USUBJID\", \"VISIT\"),\n disp_cols = names(out),\n main_title = paste0(\n \"Listing of Anti-\", drugcd, \" Antibody Data for Patients with At Least One ADA Sample Datum by Treatment, \",\n \"PK Population\\nProtocol: \", drug_a\n ),\n subtitles = paste(\"\\nTreatment Group:\", trt),\n main_footer = \"(1) Minimum reportable titer = 1.10 (example only)\n(2) Minimum reportable titer = 1.10 (example only)\n(3) Minimum reportable concentration = 3.0 (example only)\nBLQ = Below Limit of Quantitation, LTR = Lower than Reportable, N/A = Not Applicable, N.C. = Not Calculable,\nADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies)\nROXXXXXXX is also known as [drug]\"\n)\n\ntail(lsting, 50)[1:24, ]\n\nListing of Anti-R1800000 Antibody Data for Patients with At Least One ADA Sample Datum by Treatment, PK Population\nProtocol: A: Drug X Antibody\n\nTreatment Group: A: Drug X\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n ADA NAb Sample Patient Patient \n Nominal Titer Titer Sample Neutralizing Treatment Treatment Drug \n Time Units Units ADA Antibody Emergent ADA Emergent NAb Concentration\n Subject ID Visit Timepoint (hr) (1) (2) Result (NAb) Result Status Status (ug/mL) (3) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAB12345-PAK-11-id-145 Day 1 Predose 0.00 N/A N/A Negative Negative Negative Negative N/A \n Day 2 24H 1.00 N/A N/A Negative Negative N/A \nAB12345-PAK-11-id-187 Day 1 Predose 0.00 N/A N/A Negative Negative Positive Negative N/A \n Day 2 24H 1.00 1.16 1.16 Positive Positive N/A \nAB12345-PAK-11-id-268 Day 1 Predose 0.00 N/A N/A Negative Negative Negative Negative N/A \n Day 2 24H 1.00 N/A N/A Negative Negative N/A \nAB12345-PAK-11-id-68 Day 1 Predose 0.00 1.08 1.08 Positive Positive Positive Negative N/A \n Day 2 24H 1.00 1.19 1.19 Positive Positive N/A \nAB12345-PAK-12-id-328 Day 1 Predose 0.00 1.11 1.11 Positive Positive Negative Negative N/A \n Day 2 24H 1.00 N/A N/A Negative Negative N/A \nAB12345-PAK-12-id-85 Day 1 Predose 0.00 1.06 1.06 Positive Positive Positive Negative N/A \n Day 2 24H 1.00 1.35 1.35 Positive Positive N/A \nAB12345-PAK-13-id-251 Day 1 Predose 0.00 N/A N/A Negative Negative Positive Negative N/A \n Day 2 24H 1.00 1.14 1.14 Positive Positive N/A \nAB12345-PAK-14-id-117 Day 1 Predose 0.00 1.04 1.04 Positive Positive Positive Negative N/A \n Day 2 24H 1.00 1.06 1.06 Positive Positive N/A \nAB12345-PAK-15-id-314 Day 1 Predose 0.00 N/A N/A Negative Negative Positive Negative N/A \n Day 2 24H 1.00 1.02 1.02 Positive Positive N/A \nAB12345-PAK-2-id-213 Day 1 Predose 0.00 1.24 1.24 Positive Positive Negative Negative N/A \n Day 2 24H 1.00 N/A N/A Negative Negative N/A \n AB12345-RUS-1-id-52 Day 1 Predose 0.00 N/A N/A Negative Negative Positive Negative N/A \n Day 2 24H 1.00 1.22 1.22 Positive Positive N/A \nAB12345-RUS-13-id-70 Day 1 Predose 0.00 N/A N/A Negative Negative Negative Negative N/A \n Day 2 24H 1.00 N/A N/A Negative Negative N/A \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n(1) Minimum reportable titer = 1.10 (example only)\n(2) Minimum reportable titer = 1.10 (example only)\n(3) Minimum reportable concentration = 3.0 (example only)\nBLQ = Below Limit of Quantitation, LTR = Lower than Reportable, N/A = Not Applicable, N.C. = Not Calculable,\nADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies)\nROXXXXXXX is also known as [drug]\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\nlibrary(random.cdisc.data)\n\nadpc <- cadpc\nadab <- cadab\n\ntrt <- \"A: Drug X\"\nmin_titer_ada <- 1.10\nmin_titer_nab <- 1.10\nmin_conc <- 3.0\n\nif (unique(adpc$RELTMU) == \"hr\") adpc$NFRLT <- adpc$NFRLT / 24\nadpc_f <- adpc %>% filter(PARAM == \"Plasma Drug X\")\n\n\ndrug_a <- unique(adab$PARCAT1)[1]\ndrugcd <- unique(adab$PARAMCD[adab$PARAM == \"Antibody titer units\"])[1]\nconc_u <- unique(adpc_f$AVALU)\n\nadpc_f <- adpc_f %>% select(USUBJID, NFRLT, AVAL)\nadab1 <- adab %>%\n filter(ARM == trt) %>%\n select(-PARAM, -PARCAT1, -AVALC, -AVALU) %>%\n left_join(\n adpc_f,\n by = c(\"USUBJID\", \"NFRLT\"),\n suffix = c(\"_ab\", \"_pk\")\n ) %>%\n filter(!is.na(AVAL_ab))\n\nadab_f <- adab1 %>%\n tidyr::pivot_wider(\n id_cols = c(USUBJID, VISIT, NFRLT, ISTPT, AVAL_pk),\n names_from = PARAMCD,\n values_from = AVAL_ab\n )\n# Select the necessary ADA parameters\nadab_f1 <- adab_f %>%\n select(USUBJID, VISIT, NFRLT, ISTPT, AVAL_pk, R1800000, R1800001, RESULT1, RESULT2, ADASTAT1, ADASTAT2) %>%\n mutate(ADA = R1800000, NAB = R1800001) %>%\n select(-R1800000, -R1800001)\n\n\n# Find subject level ADA status\nadab_s <- adab_f1 %>%\n select(USUBJID, ADASTAT1, ADASTAT2) %>%\n filter(!is.na(ADASTAT1), !is.na(ADASTAT2))\n# Find time-vary ADA records\nadab_r <- adab_f1 %>%\n select(-ADASTAT1, -ADASTAT2) %>%\n filter(!is.na(VISIT))\n\nadab_o <- adab_r %>% left_join(adab_s, by = \"USUBJID\")\n\nout <- adab_o %>%\n mutate(AVAL_pk = ifelse(AVAL_pk == 0, NA, AVAL_pk)) %>%\n mutate(NFRLT = as.numeric(NFRLT)) %>%\n mutate(\n RESULT1 = ifelse(RESULT1 == 1, \"Positive\", \"Negative\"),\n RESULT2 = ifelse(RESULT2 == 1, \"Positive\", \"Negative\"),\n ADASTAT1 = ifelse(ADASTAT1 == 1, \"Positive\", \"Negative\"),\n ADASTAT2 = ifelse(ADASTAT2 == 1, \"Positive\", \"Negative\"),\n # ADA = ifelse(ADA < min_titer_ada, NA, ADA),\n # NAB = ifelse(NAB < min_titer_nab, NA, NAB),\n AVAL_pk = ifelse(AVAL_pk < min_conc, \"BLQ\", AVAL_pk)\n ) %>%\n select(\n USUBJID, VISIT, ISTPT, NFRLT, ADA, NAB, RESULT1, RESULT2, ADASTAT1, ADASTAT2,\n AVAL_pk\n ) %>%\n mutate_at(\n c(\"NFRLT\", \"ADA\", \"NAB\", \"AVAL_pk\"),\n ~ ifelse(is.na(.), replace(., is.na(.), \"N/A\"), format(round(., 2), nsmall = 2))\n )\n\nvar_labels(out) <- names(out)\n\nout <- out %>%\n arrange(USUBJID, VISIT, desc(ISTPT), NFRLT) %>%\n group_by(USUBJID) %>%\n mutate(\n ADASTAT1 = ifelse(row_number() == 1, ADASTAT1, \"\"),\n ADASTAT2 = ifelse(row_number() == 1, ADASTAT2, \"\")\n ) %>% # Keep only the first value in ADA status, set others to \"\"\n var_relabel(\n USUBJID = \"Subject ID\",\n VISIT = \"Visit\",\n ISTPT = \"Timepoint\",\n NFRLT = \"Nominal\\nTime\\n(hr)\",\n RESULT1 = \"Sample\\nADA\\nResult\",\n ADA = \"ADA\\nTiter\\nUnits\\n(1)\",\n ADASTAT1 = \"Patient\\nTreatment\\nEmergent ADA\\nStatus\",\n RESULT2 = \"Sample\\nNeutralizing\\nAntibody\\n(NAb) Result\",\n NAB = \"NAb\\nTiter\\nUnits\\n(2)\",\n ADASTAT2 = \"Patient\\nTreatment\\nEmergent NAb\\nStatus\",\n AVAL_pk = paste0(\"Drug\\nConcentration\\n(\", conc_u, \") (3)\")\n )", "crumbs": [ - "Tables", - "Efficacy", - "CMHT01" + "Listings", + "Pharmacokinetic", + "ADAL01" ] }, { - "objectID": "tables/efficacy/cmht01.html#reproducibility", - "href": "tables/efficacy/cmht01.html#reproducibility", - "title": "CMHT01", + "objectID": "listings/pharmacokinetic/adal01.html#reproducibility", + "href": "listings/pharmacokinetic/adal01.html#reproducibility", + "title": "ADAL01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:40:32 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:38:16 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data * 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Tables", - "Efficacy", - "CMHT01" + "Listings", + "Pharmacokinetic", + "ADAL01" ] }, { - "objectID": "tables/efficacy/dort01.html#output", - "href": "tables/efficacy/dort01.html#output", - "title": "DORT01", + "objectID": "listings/efficacy/oncl01.html#output", + "href": "listings/efficacy/oncl01.html#output", + "title": "ONCL01", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Selecting Sections to Display\nTable Modifying Analysis Details like Conf. Type and Alpha Level\nTable Modifying Time Point for the “XX Months duration” Analysis\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n count_values(\n vars = \"USUBJID\",\n values = unique(adtte$USUBJID),\n .labels = \"Responders\",\n .stats = \"count\"\n ) %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders with subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n show_labels = \"hidden\",\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Responders with subsequent event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 2L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders without subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Duration of response (Months)\",\n is_event = \"is_event\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months duration\",\n is_event = \"is_event\",\n time_point = 12\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table(prune_func = prune_zeros_only)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————\nResponders 68 73 62 \n Responders with subsequent event (%) 46 (67.6%) 39 (53.4%) 32 (51.6%) \n Earliest contributing event \n Death 26 24 16 \n Disease Progression 20 15 16 \n Responders without subsequent event (%) 22 (32.4%) 34 (46.6%) 30 (48.4%) \nDuration of response (Months) \n Median 5.3 6.2 5.3 \n 95% CI (4.6, 5.8) (5.4, 6.3) (4.6, 5.8) \n 25% and 75%-ile 3.8, 6.3 4.6, 6.4 4.0, 6.1 \n Range 0.5 to 6.4 0.9 to 6.5 0.6 to 6.6 \n12 Months duration \n Patients remaining at risk NA NA NA \n Event Free Rate (%) NA NA NA \n 95% CI NA NA NA \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n count_values(\n vars = \"USUBJID\",\n values = unique(adtte$USUBJID),\n .labels = \"Responders\",\n .stats = \"count\"\n ) %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders with subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n show_labels = \"hidden\",\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Responders with subsequent event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 2L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders without subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Duration of response (Months)\",\n is_event = \"is_event\",\n table_names = \"surv_time\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = c(\"Unstratified Analysis\"),\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"cox_pair\"\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table(prune_func = prune_zeros_only)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————\nResponders 68 73 62 \n Responders with subsequent event (%) 46 (67.6%) 39 (53.4%) 32 (51.6%) \n Earliest contributing event \n Death 26 24 16 \n Disease Progression 20 15 16 \n Responders without subsequent event (%) 22 (32.4%) 34 (46.6%) 30 (48.4%) \nDuration of response (Months) \n Median 5.3 6.2 5.3 \n 95% CI (4.6, 5.8) (5.4, 6.3) (4.6, 5.8) \n 25% and 75%-ile 3.8, 6.3 4.6, 6.4 4.0, 6.1 \n Range 0.5 to 6.4 0.9 to 6.5 0.6 to 6.6 \nUnstratified Analysis \n p-value (log-rank) 0.0223 0.6659 \n Hazard Ratio 0.60 0.90 \n 95% CI (0.39, 0.93) (0.57, 1.44) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n count_values(\n vars = \"USUBJID\",\n values = unique(adtte$USUBJID),\n .labels = \"Responders\",\n .stats = \"count\"\n ) %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders with subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n show_labels = \"hidden\",\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Responders with subsequent event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 2L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders without subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Duration of response (Months)\",\n is_event = \"is_event\",\n control = control_surv_time(conf_level = 0.90, conf_type = \"log-log\")\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months duration\",\n is_event = \"is_event\",\n time_point = 12,\n control = control_surv_timepoint(conf_level = 0.975)\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table(prune_func = prune_zeros_only)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————\nResponders 68 73 62 \n Responders with subsequent event (%) 46 (67.6%) 39 (53.4%) 32 (51.6%) \n Earliest contributing event \n Death 26 24 16 \n Disease Progression 20 15 16 \n Responders without subsequent event (%) 22 (32.4%) 34 (46.6%) 30 (48.4%) \nDuration of response (Months) \n Median 5.3 6.2 5.3 \n 90% CI (4.6, 5.8) (5.5, 6.3) (4.6, 5.7) \n 25% and 75%-ile 3.8, 6.3 4.6, 6.4 4.0, 6.1 \n Range 0.5 to 6.4 0.9 to 6.5 0.6 to 6.6 \n12 Months duration \n Patients remaining at risk NA NA NA \n Event Free Rate (%) NA NA NA \n 97.5% CI NA NA NA \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n count_values(\n vars = \"USUBJID\",\n values = unique(adtte$USUBJID),\n .labels = \"Responders\",\n .stats = \"count\"\n ) %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders with subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n show_labels = \"hidden\",\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Responders with subsequent event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 2L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Responders without subsequent event (%)\"),\n .indent_mods = c(count_fraction = 1L),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Duration of response (Months)\",\n is_event = \"is_event\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months duration\",\n is_event = \"is_event\",\n time_point = 6\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table(prune_func = prune_zeros_only)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————————\nResponders 68 73 62 \n Responders with subsequent event (%) 46 (67.6%) 39 (53.4%) 32 (51.6%) \n Earliest contributing event \n Death 26 24 16 \n Disease Progression 20 15 16 \n Responders without subsequent event (%) 22 (32.4%) 34 (46.6%) 30 (48.4%) \nDuration of response (Months) \n Median 5.3 6.2 5.3 \n 95% CI (4.6, 5.8) (5.4, 6.3) (4.6, 5.8) \n 25% and 75%-ile 3.8, 6.3 4.6, 6.4 4.0, 6.1 \n Range 0.5 to 6.4 0.9 to 6.5 0.6 to 6.6 \n6 Months duration \n Patients remaining at risk 10 18 7 \n Event Free Rate (%) 33.46 50.23 30.56 \n 95% CI (20.88, 46.05) (36.54, 63.92) (13.56, 47.57)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadtte <- random.cdisc.data::cadtte\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadtte <- df_explicit_na(adtte)\n\nadtte_f <- adtte %>%\n filter(PARAMCD == \"CRSD\" & BMEASIFL == \"Y\") %>%\n dplyr::mutate(\n AVAL = day2month(AVAL),\n is_event = CNSR == 0,\n is_not_event = CNSR == 1,\n EVNT1 = factor(\n case_when(\n is_event == TRUE ~ \"Responders with subsequent event (%)\",\n is_event == FALSE ~ \"Responders without subsequent event (%)\"\n ),\n levels = c(\"Responders with subsequent event (%)\", \"Responders without subsequent event (%)\")\n ),\n EVNTDESC = factor(EVNTDESC)\n )", + "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"ID\"),\n disp_cols = names(out),\n main_title = \"Listing of Individual Efficacy Data\",\n main_footer = \"PFS = Progression Free Survival\"\n)\n\nhead(lsting, 20)\n\nListing of Individual Efficacy Data\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Best Confirmed Investigator Duration of \n Number of Doses Overall Response End Of Induction Overall Survival PFS Triggering Event Confirmed Response\nTreatment Center/Patient ID Received by Investigator Response (days) (days) for PFS (days) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-105 7 CR CR 402.6 235.7 Disease Progression 119.6 \n 7 CR CR 402.6 235.7 NA 119.6 \n 7 CR CR 402.6 235.7 NA 119.6 \n BRA-1/id-134 7 CR CR 90.1 90.1 Death 90.1 \n 7 CR CR 90.1 90.1 Death 90.1 \n 7 CR CR 90.1 90.1 Death 90.1 \n BRA-1/id-42 7 PR PR 407.0 204.6 Disease Progression 193.9 \n 7 PR PR 407.0 204.6 NA 193.9 \n 7 PR PR 407.0 204.6 NA 193.9 \n BRA-1/id-93 7 CR PD 316.0 255.7 NA 140.3 \n 7 CR PD 316.0 255.7 NA 140.3 \n 7 CR PD 316.0 255.7 NA 140.3 \n BRA-11/id-217 7 CR CR 293.0 293.0 Disease Progression 153.2 \n 7 CR CR 293.0 293.0 Death 153.2 \n 7 CR CR 293.0 293.0 Death 153.2 \n BRA-11/id-345 7 CR CR 305.5 272.6 NA 150.6 \n 7 CR CR 305.5 272.6 NA 150.6 \n 7 CR CR 305.5 272.6 NA 150.6 \n BRA-11/id-397 7 PR PR 138.7 138.7 Death 138.7 \n 7 PR PR 138.7 138.7 Death 138.7 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nPFS = Progression Free Survival\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadrs <- random.cdisc.data::cadrs\nadtte <- random.cdisc.data::cadtte\nadex <- random.cdisc.data::cadex\n\nout_ex <- adex %>%\n filter(PARAMCD == \"TNDOSE\") %>%\n mutate(ID = paste(SITEID, SUBJID, sep = \"/\")) %>%\n select(ID, AVAL)\n\nout_rs <- adrs %>%\n filter(PARAM %in% c(\"Investigator End Of Induction Response\", \"Best Confirmed Overall Response by Investigator\")) %>%\n mutate(ID = paste(SITEID, SUBJID, sep = \"/\")) %>%\n select(ID, AVALC, PARAM) %>%\n tidyr::pivot_wider(\n id_cols = ID,\n names_from = PARAM,\n values_from = AVALC\n ) %>%\n right_join(out_ex, ., by = \"ID\", multiple = \"all\")\n\nadtte_flt <- adtte %>%\n filter(PARAMCD %in% c(\"OS\", \"PFS\", \"CRSD\")) %>%\n mutate(\n PARAM = paste(PARAM, paste0(\"(\", AVALU, \")\"), sep = \" \"), ID = paste(SITEID, SUBJID, sep = \"/\"),\n trigeventpfs = ifelse(CNSR == 0, EVNTDESC, NA)\n )\n\n# Select triggering event variable\nout_trg <- adtte_flt %>%\n select(ID, trigeventpfs)\n\nout_tte <- adtte_flt %>%\n select(ID, TRT01A, PARAM, AVAL, trigeventpfs) %>%\n tidyr::pivot_wider(\n id_cols = c(ID, TRT01A),\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n mutate_at(\n c(\"Overall Survival (DAYS)\", \"Progression Free Survival (DAYS)\", \"Duration of Confirmed Response (DAYS)\"),\n function(x) format(round(x, 1), nsmall = 1)\n ) %>%\n select(\n ID,\n TRT01A,\n `Overall Survival (DAYS)`,\n `Progression Free Survival (DAYS)`,\n `Duration of Confirmed Response (DAYS)`\n ) %>%\n right_join(out_trg, ., by = \"ID\", multiple = \"all\")\n\nout <- out_tte %>%\n right_join(out_rs, ., by = \"ID\", multiple = \"all\") %>%\n select(\n \"ID\", \"TRT01A\", \"AVAL\", \"Best Confirmed Overall Response by Investigator\",\n \"Investigator End Of Induction Response\", \"Overall Survival (DAYS)\", \"Progression Free Survival (DAYS)\",\n \"trigeventpfs\", \"Duration of Confirmed Response (DAYS)\"\n )\n\nvar_labels(out) <- names(out)\nout <- out %>%\n var_relabel(\n ID = \"Center/Patient ID\",\n TRT01A = \"Treatment\",\n AVAL = \"Number of Doses\\nReceived\",\n `Best Confirmed Overall Response by Investigator` = \"Best Confirmed\\nOverall Response\\nby Investigator\",\n `Investigator End Of Induction Response` = \"Investigator\\nEnd Of Induction\\nResponse\",\n trigeventpfs = \"Triggering Event\\n for PFS\",\n `Overall Survival (DAYS)` = \"Overall Survival\\n(days)\",\n `Progression Free Survival (DAYS)` = \"PFS\\n(days)\",\n `Duration of Confirmed Response (DAYS)` = \"Duration of\\nConfirmed Response\\n(days)\"\n )", "crumbs": [ - "Tables", + "Listings", "Efficacy", - "DORT01" + "ONCL01" ] }, { - "objectID": "tables/efficacy/dort01.html#teal-app", - "href": "tables/efficacy/dort01.html#teal-app", - "title": "DORT01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADTTE <- df_explicit_na(ADTTE)\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To Event Table\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"),\n \"CRSD\"\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n \"SEX\"\n ),\n time_points = choices_selected(c(6, 8), 6),\n event_desc_var = choices_selected(\n variable_choices(ADTTE, \"EVNTDESC\"),\n \"EVNTDESC\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADTTE <- df_explicit_na(ADTTE)\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To Event Table\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"),\n \"CRSD\"\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n \"SEX\"\n ),\n time_points = choices_selected(c(6, 8), 6),\n event_desc_var = choices_selected(\n variable_choices(ADTTE, \"EVNTDESC\"),\n \"EVNTDESC\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "listings/efficacy/oncl01.html#reproducibility", + "href": "listings/efficacy/oncl01.html#reproducibility", + "title": "ONCL01", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:38:25 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9013 2025-01-08 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Tables", + "Listings", "Efficacy", - "DORT01" + "ONCL01" ] }, { - "objectID": "tables/efficacy/dort01.html#reproducibility", - "href": "tables/efficacy/dort01.html#reproducibility", - "title": "DORT01", + "objectID": "repro.html#reproducibility", + "href": "repro.html#reproducibility", + "title": "", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:41:18 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", - "crumbs": [ - "Tables", - "Efficacy", - "DORT01" - ] + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:38:29 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload" }, { - "objectID": "tables/efficacy/aovt03.html#output", - "href": "tables/efficacy/aovt03.html#output", - "title": "AOVT03", + "objectID": "tables/vital-signs/vst01.html#output", + "href": "tables/vital-signs/vst01.html#output", + "title": "VST01", "section": "Output", - "text": "Output\nThis example will focus on data from multiple visits and take the interaction between visits and arms into consideration.\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARMCD\", ref_group = \"ARM A\") %>%\n split_rows_by(\"PARAM\", split_fun = drop_split_levels) %>%\n summarize_ancova(\n vars = \"CHG\",\n variables = list(arm = \"ARMCD\", covariates = c(\"BASE\", \"AVISIT\", \"AVISIT*ARMCD\")),\n conf_level = 0.95,\n var_labels = \"WEEK 1 DAY 8\",\n table_names = \"WEEK 1 DAY 8\",\n interaction_y = \"WEEK 1 DAY 8\",\n interaction_item = \"AVISIT\"\n ) %>%\n summarize_ancova(\n vars = \"CHG\",\n variables = list(arm = \"ARMCD\", covariates = c(\"BASE\", \"AVISIT\", \"AVISIT*ARMCD\")),\n conf_level = 0.95,\n var_labels = \"WEEK 2 DAY 15\",\n table_names = \"WEEK 2 DAY 15\",\n interaction_y = \"WEEK 2 DAY 15\",\n interaction_item = \"AVISIT\"\n ) %>%\n summarize_ancova(\n vars = \"CHG\",\n variables = list(arm = \"ARMCD\", covariates = c(\"BASE\", \"AVISIT\", \"AVISIT*ARMCD\")),\n conf_level = 0.95,\n var_labels = \"WEEK 5 DAY 36\",\n table_names = \"WEEK 5 DAY 36\",\n interaction_y = \"WEEK 5 DAY 36\",\n interaction_item = \"AVISIT\"\n ) %>%\n build_table(adqs_in, alt_counts_df = adsl)\n\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————\nBFI All Questions \n WEEK 1 DAY 8 \n n 68 73 62 \n Adjusted Mean 4.34 5.96 3.90 \n Difference in Adjusted Means 1.62 -0.44 \n 95% CI (-1.75, 4.98) (-3.94, 3.06)\n p-value 0.3460 0.8059 \n WEEK 2 DAY 15 \n n 68 73 62 \n Adjusted Mean 12.99 11.23 9.86 \n Difference in Adjusted Means -1.76 -3.13 \n 95% CI (-5.12, 1.60) (-6.64, 0.37)\n p-value 0.3048 0.0795 \n WEEK 5 DAY 36 \n n 68 73 62 \n Adjusted Mean 23.88 23.08 28.21 \n Difference in Adjusted Means -0.81 4.33 \n 95% CI (-4.17, 2.56) (0.83, 7.83) \n p-value 0.6383 0.0155 \nFatigue Interference \n WEEK 1 DAY 8 \n n 68 73 62 \n Adjusted Mean 5.97 5.19 5.21 \n Difference in Adjusted Means -0.78 -0.76 \n 95% CI (-4.17, 2.61) (-4.30, 2.78)\n p-value 0.6522 0.6729 \n WEEK 2 DAY 15 \n n 68 73 62 \n Adjusted Mean 11.39 9.42 9.55 \n Difference in Adjusted Means -1.96 -1.84 \n 95% CI (-5.35, 1.43) (-5.37, 1.70)\n p-value 0.2560 0.3084 \n WEEK 5 DAY 36 \n n 68 73 62 \n Adjusted Mean 22.79 25.37 23.43 \n Difference in Adjusted Means 2.58 0.64 \n 95% CI (-0.81, 5.97) (-2.89, 4.18)\n p-value 0.1353 0.7212 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadqs <- random.cdisc.data::cadqs\n\nadqs_in <- adqs %>%\n filter(AVISIT %in% c(\"WEEK 1 DAY 8\", \"WEEK 2 DAY 15\", \"WEEK 5 DAY 36\")) %>%\n droplevels() %>%\n filter(PARAM %in% c(\"BFI All Questions\", \"Fatigue Interference\")) %>%\n mutate(CHG = ifelse(BMEASIFL == \"Y\", CHG, NA)) # only analyze evaluable population", - "crumbs": [ - "Tables", - "Efficacy", - "AOVT03" - ] - }, - { - "objectID": "tables/efficacy/aovt03.html#reproducibility", - "href": "tables/efficacy/aovt03.html#reproducibility", - "title": "AOVT03", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:41:53 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nafun <- function(x, .var, .spl_context, ...) {\n n_fun <- sum(!is.na(x), na.rm = TRUE)\n if (n_fun == 0) {\n mean_sd_fun <- c(NA, NA)\n median_fun <- NA\n min_max_fun <- c(NA, NA)\n } else {\n mean_sd_fun <- c(mean(x, na.rm = TRUE), sd(x, na.rm = TRUE))\n median_fun <- median(x, na.rm = TRUE)\n min_max_fun <- c(min(x), max(x))\n }\n is_chg <- .var == \"CHG\"\n is_baseline <- .spl_context$value[which(.spl_context$split == \"AVISIT\")] == \"BASELINE\"\n if (is_baseline && is_chg) n_fun <- mean_sd_fun <- median_fun <- min_max_fun <- NULL\n\n in_rows(\n \"n\" = n_fun,\n \"Mean (SD)\" = mean_sd_fun,\n \"Median\" = median_fun,\n \"Min - Max\" = min_max_fun,\n .formats = list(\"n\" = \"xx\", \"Mean (SD)\" = \"xx.xx (xx.xx)\", \"Median\" = \"xx.xx\", \"Min - Max\" = \"xx.xx - xx.xx\"),\n .format_na_strs = list(\"n\" = \"NE\", \"Mean (SD)\" = \"NE (NE)\", \"Median\" = \"NE\", \"Min - Max\" = \"NE - NE\")\n )\n}\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\"AVISIT\", split_fun = split_fun, label_pos = \"topleft\", split_label = \"\\n\\nAnalysis Visit\") %>%\n split_cols_by_multivar(\n vars = c(\"AVAL\", \"CHG\"),\n varlabels = c(\"Value at Visit\", \"Change from\\nBaseline\")\n ) %>%\n analyze_colvars(afun = afun)\n\nresult <- build_table(lyt = lyt, df = advs_f, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination \n Change from Change from Change from \n Value at Visit Baseline Value at Visit Baseline Value at Visit Baseline \nAnalysis Visit (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nSCREENING \n n 134 0 134 0 132 0 \n Mean (SD) 99.92 (17.99) NE (NE) 101.88 (21.07) NE (NE) 100.48 (19.07) NE (NE) \n Median 99.26 NE 100.22 NE 99.10 NE \n Min - Max 54.22 - 152.98 NE - NE 48.15 - 148.03 NE - NE 42.22 - 149.95 NE - NE \nBASELINE \n n 134 134 132 \n Mean (SD) 96.50 (19.90) 101.10 (19.87) 102.77 (19.48) \n Median 96.05 100.45 102.01 \n Min - Max 44.28 - 136.59 29.21 - 143.77 49.37 - 153.50 \nWEEK 1 DAY 8 \n n 134 134 134 134 132 132 \n Mean (SD) 100.65 (18.79) 4.14 (26.93) 99.19 (19.36) -1.92 (27.37) 97.14 (19.72) -5.63 (25.95) \n Median 100.22 1.52 99.37 -2.79 94.19 -5.57 \n Min - Max 57.60 - 147.46 -50.92 - 74.84 59.28 - 141.21 -64.50 - 70.93 50.98 - 142.47 -55.15 - 56.11\nWEEK 2 DAY 15 \n n 134 134 134 134 132 132 \n Mean (SD) 102.09 (19.62) 5.58 (29.38) 99.29 (21.11) -1.81 (31.11) 99.95 (20.85) -2.81 (29.10) \n Median 103.59 7.82 100.57 -1.77 102.52 -5.68 \n Min - Max 54.73 - 150.85 -59.71 - 98.08 51.60 - 145.28 -71.00 - 92.43 37.06 - 138.92 -73.10 - 76.80\nWEEK 3 DAY 22 \n n 134 134 134 134 132 132 \n Mean (SD) 101.78 (19.54) 5.28 (27.16) 97.73 (19.85) -3.37 (27.76) 99.86 (19.15) -2.91 (27.25) \n Median 100.39 6.53 98.83 -5.79 100.06 -1.54 \n Min - Max 47.68 - 162.22 -64.46 - 76.64 36.25 - 142.78 -70.23 - 84.74 53.80 - 146.37 -74.30 - 67.46\nWEEK 4 DAY 29 \n n 134 134 134 134 132 132 \n Mean (SD) 100.18 (20.18) 3.68 (27.21) 99.06 (17.75) -2.04 (26.59) 99.27 (20.12) -3.50 (27.62) \n Median 98.17 3.00 97.98 -1.89 99.61 -0.46 \n Min - Max 48.52 - 153.41 -77.30 - 61.90 56.78 - 142.45 -82.96 - 89.87 46.87 - 146.12 -88.68 - 70.90\nWEEK 5 DAY 36 \n n 134 134 134 134 132 132 \n Mean (SD) 101.42 (18.83) 4.92 (28.02) 95.92 (19.90) -5.19 (29.34) 97.73 (18.92) -5.04 (26.64) \n Median 98.56 3.93 94.30 -7.18 98.09 -5.62 \n Min - Max 62.66 - 155.52 -63.05 - 78.66 51.06 - 151.52 -78.07 - 72.91 51.48 - 157.27 -76.13 - 86.42\nPost-Baseline Last \n n 134 134 134 134 132 132 \n Mean (SD) 101.42 (18.83) 4.92 (28.02) 95.92 (19.90) -5.19 (29.34) 97.73 (18.92) -5.04 (26.64) \n Median 98.56 3.93 94.30 -7.18 98.09 -5.62 \n Min - Max 62.66 - 155.52 -63.05 - 78.66 51.06 - 151.52 -78.07 - 72.91 51.48 - 157.27 -76.13 - 86.42\nPost-Baseline Minimum \n n 134 134 134 134 132 132 \n Mean (SD) 78.98 (11.94) -17.52 (23.92) 75.77 (13.25) -25.33 (25.39) 76.35 (13.13) -26.41 (22.78)\n Median 80.14 -13.96 75.71 -26.70 76.26 -27.17 \n Min - Max 47.68 - 110.54 -77.30 - 33.00 36.25 - 113.53 -82.96 - 69.23 37.06 - 112.35 -88.68 - 34.24\nPost-Baseline Maximum \n n 134 134 134 134 132 132 \n Mean (SD) 125.08 (12.28) 28.57 (23.20) 121.33 (12.01) 20.23 (23.64) 121.42 (12.09) 18.65 (22.74) \n Median 124.20 29.14 120.80 18.74 122.55 16.93 \n Min - Max 94.06 - 162.22 -21.49 - 98.08 94.43 - 151.52 -34.95 - 92.43 79.39 - 157.27 -43.32 - 86.42\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadvs <- random.cdisc.data::cadvs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadvs <- df_explicit_na(advs)\n\nadvs_label <- var_labels(advs)\n\nadvs <- advs %>%\n filter(\n PARAMCD == \"DIABP\",\n PARAM == \"Diastolic Blood Pressure\"\n ) %>%\n mutate(\n PARAMCD = droplevels(PARAMCD),\n PARAM = droplevels(PARAM)\n )\n\n# post-baseline\nadvs_pb <- advs %>%\n filter(ABLFL != \"Y\", ABLFL2 != \"Y\")\n\nadvs_pb_max <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(desc(AVAL)) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Maximum\")\n\nadvs_pb_min <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(AVAL) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Minimum\")\n\nadvs_pb_last <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(desc(AVISITN)) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Last\")\n\n# Please note that for real data, per ADaM Spec 1.1, the advs_f can be obtained by filtering on PARAMCD, then\n# ANL01FL == 'Y' or AVISIT in c('POST-BASELINE MAXIMUM', 'POST-BASELINE MINIMUM', 'POST-BASELINE LAST')\n\nadvs_f <- rbind(\n advs,\n advs_pb_last,\n advs_pb_min,\n advs_pb_max\n)\n\nadvs_f <- advs_f %>%\n mutate(AVISIT = droplevels(AVISIT))\n\nvar_labels(advs_f) <- advs_label", "crumbs": [ "Tables", - "Efficacy", - "AOVT03" + "Vital Signs", + "VST01" ] }, { - "objectID": "tables/efficacy/ratet01.html#output", - "href": "tables/efficacy/ratet01.html#output", - "title": "RATET01", - "section": "Output", - "text": "Output\nThis example will focus on data from a single visit “WEEK 1 DAY 8” and a single endpoint “FKSI-FWB”. Only evaluable populations will be analyzed.\n\n\nCustomized Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\", ref_group = \"B: Placebo\", split_fun = ref_group_position(\"first\")) %>%\n analyze_vars(\n \"AVAL_f\",\n var_labels = \"Number of exacerbations per patient\",\n .stats = c(\"count_fraction\"),\n .formats = c(\"count_fraction\" = \"xx (xx.xx%)\"),\n .labels = c(\"Number of exacerbations per patient\")\n ) %>%\n summarize_glm_count(\n vars = \"AVAL\",\n variables = list(arm = \"ARM\", offset = \"lgTMATRSK\", covariates = NULL),\n conf_level = 0.95,\n distribution = \"poisson\",\n rate_mean_method = \"emmeans\",\n var_labels = \"Unadjusted exacerbation rate (per year)\",\n table_names = \"unadj\",\n .stats = c(\"rate\"),\n .labels = c(rate = \"Rate\")\n ) %>%\n summarize_glm_count(\n vars = \"AVAL\",\n variables = list(arm = \"ARM\", offset = \"lgTMATRSK\", covariates = c(\"REGION1\")),\n conf_level = 0.95,\n distribution = \"quasipoisson\",\n rate_mean_method = \"ppmeans\",\n var_labels = \"Adjusted (QP) exacerbation rate (per year)\",\n table_names = \"adj-qp\",\n .stats = c(\"rate\", \"rate_ci\", \"rate_ratio\", \"rate_ratio_ci\", \"pval\"),\n .labels = c(\n rate = \"Rate\", rate_ci = \"Rate CI\", rate_ratio = \"Rate Ratio\",\n rate_ratio_ci = \"Rate Ratio CI\", pval = \"p-value\"\n )\n ) %>%\n summarize_glm_count(\n vars = \"AVAL\",\n variables = list(arm = \"ARM\", offset = \"lgTMATRSK\", covariates = c(\"REGION1\")),\n conf_level = 0.95,\n distribution = \"negbin\",\n rate_mean_method = \"emmeans\",\n var_labels = \"Adjusted (NB) exacerbation rate (per year)\",\n table_names = \"adj-nb\",\n .stats = c(\"rate\", \"rate_ci\", \"rate_ratio\", \"rate_ratio_ci\", \"pval\"),\n .labels = c(\n rate = \"Rate\", rate_ci = \"Rate CI\", rate_ratio = \"Rate Ratio\",\n rate_ratio_ci = \"Rate Ratio CI\", pval = \"p-value\"\n )\n )\nresult <- build_table(\n lyt = lyt,\n df = anl\n)\nresult\n\n B: Placebo A: Drug X C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————————————\nNumber of exacerbations per patient \n 0 10 (7.46%) 6 (4.48%) 11 (8.33%) \n 1 25 (18.66%) 21 (15.67%) 14 (10.61%) \n 2 38 (28.36%) 41 (30.60%) 33 (25.00%) \n 3 22 (16.42%) 26 (19.40%) 21 (15.91%) \n 4 13 (9.70%) 18 (13.43%) 30 (22.73%) \n 5 11 (8.21%) 10 (7.46%) 12 (9.09%) \n 6 10 (7.46%) 7 (5.22%) 7 (5.30%) \n 7 3 (2.24%) 4 (2.99%) 3 (2.27%) \n 8 1 (0.75%) 1 (0.75%) 1 (0.76%) \n 9 1 (0.75%) 0 (0.00%) 0 (0.00%) \nUnadjusted exacerbation rate (per year) \n Rate 7.2364 8.2148 9.8131 \nAdjusted (QP) exacerbation rate (per year) \n Rate 2.4550 2.8514 3.4304 \n Rate CI (1.6194, 3.7219) (1.8974, 4.2850) (2.2946, 5.1284) \n Rate Ratio 1.1615 1.3973 \n Rate Ratio CI (0.6462, 2.0877) (0.7789, 2.5067) \n p-value 0.6169 0.2619 \nAdjusted (NB) exacerbation rate (per year) \n Rate 18.4450 28.0582 23.9304 \n Rate CI (13.9015, 24.4736) (21.3288, 36.9108) (18.1382, 31.5722)\n Rate Ratio 1.5212 1.2974 \n Rate Ratio CI (1.1166, 2.0724) (0.9505, 1.7708) \n p-value 0.0078 0.1009 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nanl <- random.cdisc.data::cadtte %>%\n filter(PARAMCD == \"TNE\")\n\n# Ensure number of exacerbation is a factor and NAs are explicit missing levels.\nanl$AVAL_f <- as.factor(anl$AVAL)\nanl <- df_explicit_na(anl)", + "objectID": "tables/vital-signs/vst01.html#teal-app", + "href": "tables/vital-signs/vst01.html#teal-app", + "title": "VST01", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADVS <- random.cdisc.data::cadvs\n advs_label <- col_labels(ADVS)\n\n # post-baseline\n advs_pb <- ADVS %>%\n filter(\n ABLFL != \"Y\",\n ABLFL2 != \"Y\"\n )\n\n advs_pb_max <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(desc(AVAL)) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Maximum\")\n\n advs_pb_min <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(AVAL) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Minimum\")\n\n advs_pb_last <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(desc(AVISITN)) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Last\")\n\n ADVS <- rbind(\n ADVS,\n advs_pb_last,\n advs_pb_min,\n advs_pb_max\n ) %>%\n mutate(AVISIT = droplevels(AVISIT))\n\n col_labels(ADVS) <- advs_label\n})\ndatanames <- c(\"ADSL\", \"ADVS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADVS <- data[[\"ADVS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Vital Sign Results and Change from Baseline by Visit\",\n dataname = \"ADVS\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADVS, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\", \"PARAM\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADVS, c(\"AVAL\", \"CHG\")),\n selected = c(\"AVAL\", \"CHG\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADVS, \"PARAMCD\", \"PARAM\"),\n selected = \"DIABP\"\n ),\n parallel_vars = TRUE\n )\n ),\n filter = teal_slices(teal_slice(\"ADVS\", \"AVAL\", selected = NULL))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADVS <- random.cdisc.data::cadvs\n advs_label <- col_labels(ADVS)\n\n # post-baseline\n advs_pb <- ADVS %>%\n filter(\n ABLFL != \"Y\",\n ABLFL2 != \"Y\"\n )\n\n advs_pb_max <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(desc(AVAL)) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Maximum\")\n\n advs_pb_min <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(AVAL) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Minimum\")\n\n advs_pb_last <- advs_pb %>%\n group_by(PARAM, USUBJID) %>%\n arrange(desc(AVISITN)) %>%\n slice(1) %>%\n ungroup() %>%\n mutate(AVISIT = \"Post-Baseline Last\")\n\n ADVS <- rbind(\n ADVS,\n advs_pb_last,\n advs_pb_min,\n advs_pb_max\n ) %>%\n mutate(AVISIT = droplevels(AVISIT))\n\n col_labels(ADVS) <- advs_label\n})\ndatanames <- c(\"ADSL\", \"ADVS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADVS <- data[[\"ADVS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Vital Sign Results and Change from Baseline by Visit\",\n dataname = \"ADVS\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADVS, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\", \"PARAM\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADVS, c(\"AVAL\", \"CHG\")),\n selected = c(\"AVAL\", \"CHG\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADVS, \"PARAMCD\", \"PARAM\"),\n selected = \"DIABP\"\n ),\n parallel_vars = TRUE\n )\n ),\n filter = teal_slices(teal_slice(\"ADVS\", \"AVAL\", selected = NULL))\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Efficacy", - "RATET01" + "Vital Signs", + "VST01" ] }, { - "objectID": "tables/efficacy/ratet01.html#reproducibility", - "href": "tables/efficacy/ratet01.html#reproducibility", - "title": "RATET01", + "objectID": "tables/vital-signs/vst01.html#reproducibility", + "href": "tables/vital-signs/vst01.html#reproducibility", + "title": "VST01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:42:23 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:39:13 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Efficacy", - "RATET01" + "Vital Signs", + "VST01" ] }, { - "objectID": "tables/efficacy/ttet01.html#output", - "href": "tables/efficacy/ttet01.html#output", - "title": "TTET01", + "objectID": "tables/deaths/dtht01.html#output", + "href": "tables/deaths/dtht01.html#output", + "title": "DTHT01", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Selecting Sections to Display\nTable Modifying Analysis Details like Conf. Type, Ties, Alpha Level\nTable with Stratified Analysis\nTable Modifying Time Point for the “XX Months” Analysis\nTable Requesting > 1 p-value\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n var = \"ARM\", ref_group = \"A: Drug X\"\n ) %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients with event (%)\")\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Patients with event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 1L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients without event (%)\"),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Time to Event (Months)\",\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = c(\"Unstratified Analysis\"),\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"coxph_unstratified\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months\",\n time_point = c(6, 12),\n is_event = \"is_event\",\n method = \"both\",\n control = control_surv_timepoint()\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table()\n\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\nPatients with event (%) 58 (43.3%) 58 (43.3%) 69 (52.3%) \n Earliest contributing event \n Death 58 58 69 \nPatients without event (%) 76 (56.7%) 76 (56.7%) 63 (47.7%) \nTime to Event (Months) \n Median NA NA 9.4 \n 95% CI (9.3, NA) (9.4, NA) (7.6, NA) \n 25% and 75%-ile 5.6, NA 5.6, NA 5.0, NA \n Range 0.5 to 16.4 {1} 0.9 to 16.3 {1} 0.5 to 16.3 {1}\nUnstratified Analysis \n p-value (log-rank) 0.9998 0.1541 \n Hazard Ratio 1.00 1.29 \n 95% CI (0.69, 1.44) (0.91, 1.83) \n6 Months \n Patients remaining at risk 97 97 90 \n Event Free Rate (%) 72.39 72.39 68.18 \n 95% CI (64.82, 79.96) (64.82, 79.96) (60.24, 76.13) \n Difference in Event Free Rate 0.00 -4.21 \n 95% CI (-10.71, 10.71) (-15.18, 6.77) \n p-value (Z-test) 1.0000 0.4525 \n12 Months \n Patients remaining at risk 49 48 37 \n Event Free Rate (%) 56.72 56.72 47.73 \n 95% CI (48.33, 65.11) (48.33, 65.11) (39.21, 56.25) \n Difference in Event Free Rate 0.00 -8.99 \n 95% CI (-11.86, 11.86) (-20.95, 2.97) \n p-value (Z-test) 1.0000 0.1406 \n—————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observation: range maximum\n—————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\", ref_group = \"A: Drug X\") %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients with event (%)\")\n ) %>%\n analyze_vars(\n \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients without event (%)\"),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Time to Event (Months)\",\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = c(\"Unstratified Analysis\"),\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"coxph_unstratified\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months\",\n is_event = \"is_event\",\n method = \"surv\",\n time_point = c(6, 12)\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————\nPatients with event (%) 58 (43.3%) 58 (43.3%) 69 (52.3%) \nPatients without event (%) 76 (56.7%) 76 (56.7%) 63 (47.7%) \nTime to Event (Months) \n Median NA NA 9.4 \n 95% CI (9.3, NA) (9.4, NA) (7.6, NA) \n 25% and 75%-ile 5.6, NA 5.6, NA 5.0, NA \n Range 0.5 to 16.4 {1} 0.9 to 16.3 {1} 0.5 to 16.3 {1}\nUnstratified Analysis \n p-value (log-rank) 0.9998 0.1541 \n Hazard Ratio 1.00 1.29 \n 95% CI (0.69, 1.44) (0.91, 1.83) \n6 Months \n Patients remaining at risk 97 97 90 \n Event Free Rate (%) 72.39 72.39 68.18 \n 95% CI (64.82, 79.96) (64.82, 79.96) (60.24, 76.13) \n12 Months \n Patients remaining at risk 49 48 37 \n Event Free Rate (%) 56.72 56.72 47.73 \n 95% CI (48.33, 65.11) (48.33, 65.11) (39.21, 56.25) \n——————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observation: range maximum\n——————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\", ref_group = \"A: Drug X\") %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients with event (%)\")\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Patients with event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 1L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients without event (%)\"),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Time to Event (Months)\",\n is_event = \"is_event\",\n control = control_surv_time(conf_level = 0.9, conf_type = \"log-log\"),\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = c(\"Unstratified Analysis\"),\n control = control_coxph(\n pval_method = \"log-rank\",\n conf_level = 0.95,\n ties = \"efron\"\n ),\n table_names = \"coxph_unstratified\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months\",\n is_event = \"is_event\",\n time_point = 12,\n control = control_surv_timepoint(conf_level = 0.9, conf_type = \"log-log\"),\n table_names_suffix = \"_log_log\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n show_labels = \"hidden\",\n is_event = \"is_event\",\n time_point = 12,\n method = \"surv_diff\",\n control = control_surv_timepoint(conf_level = 0.975),\n table_names_suffix = \"_975_pct\"\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table()\n\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————\nPatients with event (%) 58 (43.3%) 58 (43.3%) 69 (52.3%) \n Earliest contributing event \n Death 58 58 69 \nPatients without event (%) 76 (56.7%) 76 (56.7%) 63 (47.7%) \nTime to Event (Months) \n Median NA NA 9.4 \n 90% CI (9.6, NA) (9.6, NA) (7.7, NA) \n 25% and 75%-ile 5.6, NA 5.6, NA 5.0, NA \n Range 0.5 to 16.4 {1} 0.9 to 16.3 {1} 0.5 to 16.3 {1}\nUnstratified Analysis \n p-value (log-rank) 0.9998 0.1541 \n Hazard Ratio 1.00 1.29 \n 95% CI (0.69, 1.44) (0.91, 1.83) \n12 Months \n Patients remaining at risk 49 48 37 \n Event Free Rate (%) 56.72 56.72 47.73 \n 90% CI (49.37, 63.41) (49.37, 63.41) (40.42, 54.66) \nDifference in Event Free Rate 0.00 -8.99 \n 97.5% CI (-13.57, 13.57) (-22.66, 4.69) \n p-value (Z-test) 1.0000 0.1406 \n———————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observation: range maximum\n———————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\", ref_group = \"A: Drug X\") %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients with event (%)\")\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Patients with event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 1L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients without event (%)\"),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Time to Event (Months)\",\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = \"Unstratified Analysis\",\n table_names = \"coxph_unstratified\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = \"Stratified Analysis\",\n strata = \"SEX\",\n table_names = \"coxph_stratified\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months\",\n is_event = \"is_event\",\n method = \"both\",\n time_point = 12\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table()\n\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\nPatients with event (%) 58 (43.3%) 58 (43.3%) 69 (52.3%) \n Earliest contributing event \n Death 58 58 69 \nPatients without event (%) 76 (56.7%) 76 (56.7%) 63 (47.7%) \nTime to Event (Months) \n Median NA NA 9.4 \n 95% CI (9.3, NA) (9.4, NA) (7.6, NA) \n 25% and 75%-ile 5.6, NA 5.6, NA 5.0, NA \n Range 0.5 to 16.4 {1} 0.9 to 16.3 {1} 0.5 to 16.3 {1}\nUnstratified Analysis \n p-value (log-rank) 0.9998 0.1541 \n Hazard Ratio 1.00 1.29 \n 95% CI (0.69, 1.44) (0.91, 1.83) \nStratified Analysis \n p-value (log-rank) 0.9978 0.1733 \n Hazard Ratio 1.00 1.27 \n 95% CI (0.69, 1.44) (0.90, 1.81) \n12 Months \n Patients remaining at risk 49 48 37 \n Event Free Rate (%) 56.72 56.72 47.73 \n 95% CI (48.33, 65.11) (48.33, 65.11) (39.21, 56.25) \n Difference in Event Free Rate 0.00 -8.99 \n 95% CI (-11.86, 11.86) (-20.95, 2.97) \n p-value (Z-test) 1.0000 0.1406 \n—————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observation: range maximum\n—————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\", ref_group = \"A: Drug X\") %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients with event (%)\")\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Patients with event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 1L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients without event (%)\"),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Time to Event (Months)\",\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = c(\"Unstratified Analysis\"),\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"coxph_unstratified\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months\",\n is_event = \"is_event\",\n time_point = 6,\n method = \"both\"\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table()\n\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\nPatients with event (%) 58 (43.3%) 58 (43.3%) 69 (52.3%) \n Earliest contributing event \n Death 58 58 69 \nPatients without event (%) 76 (56.7%) 76 (56.7%) 63 (47.7%) \nTime to Event (Months) \n Median NA NA 9.4 \n 95% CI (9.3, NA) (9.4, NA) (7.6, NA) \n 25% and 75%-ile 5.6, NA 5.6, NA 5.0, NA \n Range 0.5 to 16.4 {1} 0.9 to 16.3 {1} 0.5 to 16.3 {1}\nUnstratified Analysis \n p-value (log-rank) 0.9998 0.1541 \n Hazard Ratio 1.00 1.29 \n 95% CI (0.69, 1.44) (0.91, 1.83) \n6 Months \n Patients remaining at risk 97 97 90 \n Event Free Rate (%) 72.39 72.39 68.18 \n 95% CI (64.82, 79.96) (64.82, 79.96) (60.24, 76.13) \n Difference in Event Free Rate 0.00 -4.21 \n 95% CI (-10.71, 10.71) (-15.18, 6.77) \n p-value (Z-test) 1.0000 0.4525 \n—————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observation: range maximum\n—————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\", ref_group = \"A: Drug X\") %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients with event (%)\")\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Patients with event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 1L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients without event (%)\"),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Time to Event (Months)\",\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = c(\"Unstratified Analysis\"),\n control = control_coxph(pval_method = \"log-rank\"),\n .stats = \"pvalue\",\n table_names = \"coxph_unstratified\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n show_labels = \"hidden\",\n control = control_coxph(pval_method = \"wald\"),\n .stats = \"pvalue\",\n .indent_mods = c(pvalue = 1L),\n table_names = \"coxph_wald_pvalue\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n show_labels = \"hidden\",\n control = control_coxph(pval_method = \"likelihood\"),\n .indent_mods = c(pvalue = 1L, hr = 2L, hr_ci = 3L),\n table_names = \"coxph_likelihood_pvalue\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months\",\n is_event = \"is_event\",\n time_point = 12,\n method = \"both\"\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table()\n\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\nPatients with event (%) 58 (43.3%) 58 (43.3%) 69 (52.3%) \n Earliest contributing event \n Death 58 58 69 \nPatients without event (%) 76 (56.7%) 76 (56.7%) 63 (47.7%) \nTime to Event (Months) \n Median NA NA 9.4 \n 95% CI (9.3, NA) (9.4, NA) (7.6, NA) \n 25% and 75%-ile 5.6, NA 5.6, NA 5.0, NA \n Range 0.5 to 16.4 {1} 0.9 to 16.3 {1} 0.5 to 16.3 {1}\nUnstratified Analysis \n p-value (log-rank) 0.9998 0.1541 \n p-value (wald) 0.9998 0.1552 \n p-value (likelihood) 0.9998 0.1543 \n Hazard Ratio 1.00 1.29 \n 95% CI (0.69, 1.44) (0.91, 1.83) \n12 Months \n Patients remaining at risk 49 48 37 \n Event Free Rate (%) 56.72 56.72 47.73 \n 95% CI (48.33, 65.11) (48.33, 65.11) (39.21, 56.25) \n Difference in Event Free Rate 0.00 -8.99 \n 95% CI (-11.86, 11.86) (-20.95, 2.97) \n p-value (Z-test) 1.0000 0.1406 \n—————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observation: range maximum\n—————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadtte <- random.cdisc.data::cadtte\n\n# Ensure that character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadtte <- df_explicit_na(adtte)\n\nadtte_f <- adtte %>%\n dplyr::filter(PARAMCD == \"OS\") %>%\n dplyr::mutate(\n AVAL = day2month(AVAL),\n is_event = CNSR == 0,\n is_not_event = CNSR == 1,\n EVNT1 = factor(\n case_when(\n is_event == TRUE ~ \"Patients with event (%)\",\n is_event == FALSE ~ \"Patients without event (%)\"\n ),\n levels = c(\"Patients with event (%)\", \"Patients without event (%)\")\n ),\n EVNTDESC = factor(EVNTDESC)\n )", - "crumbs": [ - "Tables", - "Efficacy", - "TTET01" - ] - }, - { - "objectID": "tables/efficacy/ttet01.html#teal-app", - "href": "tables/efficacy/ttet01.html#teal-app", - "title": "TTET01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADTTE <- df_explicit_na(ADTTE)\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To Event Table\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"),\n \"OS\"\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n \"SEX\"\n ),\n time_points = choices_selected(c(6, 8), 6),\n event_desc_var = choices_selected(\n variable_choices(ADTTE, \"EVNTDESC\"),\n \"EVNTDESC\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADTTE <- df_explicit_na(ADTTE)\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To Event Table\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"),\n \"OS\"\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n \"SEX\"\n ),\n time_points = choices_selected(c(6, 8), 6),\n event_desc_var = choices_selected(\n variable_choices(ADTTE, \"EVNTDESC\"),\n \"EVNTDESC\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "Output\n\n\nStandard Table\nTable Selecting Sections to Display\nTable for Studies Collecting Death Information from Public Records\nTable Adding Details for “All other causes” Category for Studies Collecting Death Information from Public Records\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\", split_fun = add_overall_level(\"All Patients\", first = FALSE)) %>%\n count_values(\n \"DTHFL\",\n values = \"Y\",\n .labels = c(count_fraction = \"Total number of deaths\"),\n .formats = c(count_fraction = \"xx (xx.x%)\")\n ) %>%\n analyze_vars(vars = c(\"DTHCAT\"), var_labels = c(\"Primary Cause of Death\"))\n\nresult <- build_table(lyt, df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n————————————————————————————————————————————————————————————————————————————————\nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) 70 (17.5%) \nPrimary Cause of Death \n n 25 23 22 70 \n ADVERSE EVENT 9 (36%) 7 (30.4%) 10 (45.5%) 26 (37.1%) \n PROGRESSIVE DISEASE 8 (32%) 6 (26.1%) 6 (27.3%) 20 (28.6%) \n OTHER 8 (32%) 10 (43.5%) 6 (27.3%) 24 (34.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\", split_fun = add_overall_level(\"All Patients\", first = FALSE)) %>%\n count_values(\n \"DTHFL\",\n values = \"Y\",\n .labels = c(count_fraction = \"Total number of deaths\"),\n .formats = c(count_fraction = \"xx (xx.x%)\")\n ) %>%\n analyze_vars(vars = c(\"DTHCAT\"), var_labels = c(\"Primary Cause of Death\")) %>%\n split_rows_by(\"DTHCAT\", split_fun = keep_split_levels(\"OTHER\"), child_labels = \"hidden\") %>%\n analyze_vars(\n \"DTHCAUS\",\n .stats = \"count_fraction\",\n .indent_mods = c(\"count_fraction\" = 2L),\n show_labels = \"hidden\"\n ) %>%\n analyze_vars(\n vars = \"LDDTHGR1\",\n nested = FALSE,\n var_labels = \"Days from last drug administration\",\n show_labels = \"visible\"\n ) %>%\n split_rows_by(\n \"LDDTHGR1\",\n split_fun = remove_split_levels(\"<Missing>\"),\n split_label = \"Primary cause by days from last study drug administration\",\n label_pos = \"visible\"\n ) %>%\n analyze_vars(\"DTHCAT\")\n\nresult <- build_table(lyt, df = adsl) %>% prune_table()\n\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) 70 (17.5%) \nPrimary Cause of Death \n n 25 23 22 70 \n ADVERSE EVENT 9 (36%) 7 (30.4%) 10 (45.5%) 26 (37.1%) \n PROGRESSIVE DISEASE 8 (32%) 6 (26.1%) 6 (27.3%) 20 (28.6%) \n OTHER 8 (32%) 10 (43.5%) 6 (27.3%) 24 (34.3%) \n LOST TO FOLLOW UP 2 (25%) 2 (20%) 2 (33.3%) 6 (25%) \n MISSING 2 (25%) 3 (30%) 2 (33.3%) 7 (29.2%) \n Post-study reporting of death 1 (12.5%) 2 (20%) 1 (16.7%) 4 (16.7%) \n SUICIDE 2 (25%) 2 (20%) 1 (16.7%) 5 (20.8%) \n UNKNOWN 1 (12.5%) 1 (10%) 0 2 (8.3%) \nDays from last drug administration \n n 25 23 22 70 \n <=30 14 (56%) 11 (47.8%) 14 (63.6%) 39 (55.7%) \n >30 11 (44%) 12 (52.2%) 8 (36.4%) 31 (44.3%) \nPrimary cause by days from last study drug administration \n <=30 \n n 14 11 14 39 \n ADVERSE EVENT 4 (28.6%) 2 (18.2%) 6 (42.9%) 12 (30.8%) \n PROGRESSIVE DISEASE 6 (42.9%) 3 (27.3%) 4 (28.6%) 13 (33.3%) \n OTHER 4 (28.6%) 6 (54.5%) 4 (28.6%) 14 (35.9%) \n >30 \n n 11 12 8 31 \n ADVERSE EVENT 5 (45.5%) 5 (41.7%) 4 (50%) 14 (45.2%) \n PROGRESSIVE DISEASE 2 (18.2%) 3 (25%) 2 (25%) 7 (22.6%) \n OTHER 4 (36.4%) 4 (33.3%) 2 (25%) 10 (32.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodedthcaus_levels <- levels(adsl[adsl$DTHCAT == \"OTHER\", ]$DTHCAUS)\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\", split_fun = add_overall_level(\"All Patients\", first = FALSE)) %>%\n count_values(\n \"DTHFL\",\n values = \"Y\",\n .labels = c(count_fraction = \"Total number of deaths\"),\n .formats = c(count_fraction = \"xx (xx.x%)\")\n ) %>%\n analyze_vars(\n vars = c(\"DTHCAT\"),\n var_labels = c(\"Primary Cause of Death\"),\n table_names = \"primary_cause\"\n ) %>%\n split_rows_by(\n \"DTHCAT\",\n split_fun = keep_split_levels(\"OTHER\"),\n child_labels = \"hidden\"\n ) %>%\n count_values(\n \"DTHCAUS\",\n values = dthcaus_levels[5],\n .labels = c(count_fraction = \"Post-study reportings of death\"),\n .formats = c(count_fraction = \"xx (xx.x%)\"),\n .indent_mods = c(count_fraction = 2L),\n table_names = \"post_study_deaths\"\n ) %>%\n count_values(\n \"DTHCAUS\",\n values = dthcaus_levels[-5],\n .labels = c(count_fraction = \"All other causes\"),\n .formats = c(count_fraction = \"xx (xx.x%)\"),\n .indent_mods = c(count_fraction = 2L),\n table_names = \"all_other_causes\"\n )\n\nresult <- build_table(lyt, df = adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) 70 (17.5%) \nPrimary Cause of Death \n n 25 23 22 70 \n ADVERSE EVENT 9 (36%) 7 (30.4%) 10 (45.5%) 26 (37.1%) \n PROGRESSIVE DISEASE 8 (32%) 6 (26.1%) 6 (27.3%) 20 (28.6%) \n OTHER 8 (32%) 10 (43.5%) 6 (27.3%) 24 (34.3%) \n Post-study reportings of death 1 (12.5%) 2 (20.0%) 1 (16.7%) 4 (16.7%) \n All other causes 7 (87.5%) 8 (80.0%) 5 (83.3%) 20 (83.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodedthcaus_levels <- levels(adsl[adsl$DTHCAT == \"OTHER\", ]$DTHCAUS)\n\n# create a helper variable DTHCAUS_other\nadsl <- adsl %>%\n mutate(\n DTHCAUS_other = factor(ifelse(\n DTHCAT == \"OTHER\" & DTHCAUS != \"Post-study reporting of death\", as.character(DTHCAUS), NA\n ), levels = c(\"LOST TO FOLLOW UP\", \"SUICIDE\", \"UNKNOWN\", \"MISSING\")) %>% explicit_na()\n )\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\", split_fun = add_overall_level(\"All Patients\", first = FALSE)) %>%\n count_values(\n \"DTHFL\",\n values = \"Y\",\n .labels = c(count_fraction = \"Total number of deaths\"),\n .formats = c(count_fraction = \"xx (xx.x%)\")\n ) %>%\n analyze_vars(\n vars = c(\"DTHCAT\"),\n var_labels = c(\"Primary Cause of Death\"),\n table_names = \"primary_cause\"\n ) %>%\n split_rows_by(\"DTHCAT\", split_fun = keep_split_levels(\"OTHER\"), child_labels = \"hidden\") %>%\n count_values(\n \"DTHCAUS\",\n values = dthcaus_levels[5],\n .labels = c(count_fraction = \"Post-study reportings of death\"),\n .formats = c(count_fraction = \"xx (xx.x%)\"),\n .indent_mods = c(count_fraction = 2L),\n table_names = \"post_study_deaths\"\n ) %>%\n count_values(\n \"DTHCAUS\",\n values = dthcaus_levels[-5],\n .labels = c(count_fraction = \"All other causes\"),\n .formats = c(count_fraction = \"xx (xx.x%)\"),\n .indent_mods = c(count_fraction = 2L),\n table_names = \"all_other_causes\"\n ) %>%\n analyze_vars(\n \"DTHCAUS_other\",\n .stats = \"count_fraction\",\n .indent_mods = c(\"count_fraction\" = 3L),\n show_labels = \"hidden\"\n )\n\nresult <- build_table(lyt, df = adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) 70 (17.5%) \nPrimary Cause of Death \n n 25 23 22 70 \n ADVERSE EVENT 9 (36%) 7 (30.4%) 10 (45.5%) 26 (37.1%) \n PROGRESSIVE DISEASE 8 (32%) 6 (26.1%) 6 (27.3%) 20 (28.6%) \n OTHER 8 (32%) 10 (43.5%) 6 (27.3%) 24 (34.3%) \n Post-study reportings of death 1 (12.5%) 2 (20.0%) 1 (16.7%) 4 (16.7%) \n All other causes 7 (87.5%) 8 (80.0%) 5 (83.3%) 20 (83.3%) \n LOST TO FOLLOW UP 2 (28.6%) 2 (25%) 2 (40%) 6 (30%) \n SUICIDE 2 (28.6%) 2 (25%) 1 (20%) 5 (25%) \n UNKNOWN 1 (14.3%) 1 (12.5%) 0 2 (10%) \n MISSING 2 (28.6%) 3 (37.5%) 2 (40%) 7 (35%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl) %>% filter(SAFFL == \"Y\")\n\n# Reorder the levels in \"DTHCAT\" to put Other category at the end.\nadsl$DTHCAT <- factor(adsl$DTHCAT, levels = c(\"ADVERSE EVENT\", \"PROGRESSIVE DISEASE\", \"OTHER\", \"<Missing>\"))", "crumbs": [ "Tables", - "Efficacy", - "TTET01" + "Deaths", + "DTHT01" ] }, { - "objectID": "tables/efficacy/ttet01.html#reproducibility", - "href": "tables/efficacy/ttet01.html#reproducibility", - "title": "TTET01", + "objectID": "tables/deaths/dtht01.html#reproducibility", + "href": "tables/deaths/dtht01.html#reproducibility", + "title": "DTHT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:44:13 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:39:45 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Efficacy", - "TTET01" + "Deaths", + "DTHT01" ] }, { - "objectID": "tables/efficacy/onct05.html#output", - "href": "tables/efficacy/onct05.html#output", - "title": "ONCT05", + "objectID": "tables/disposition/pdt01.html#output", + "href": "tables/disposition/pdt01.html#output", + "title": "PDT01", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Specifying Class Variables\nTable Selecting Columns and Changing the Alpha Level\nTable Setting Values Indicating Response\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodedf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"rsp\",\n arm = \"ARM\",\n subgroups = c(\"SEX\", \"STRATA2\")\n ),\n data = anl\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\"))\n\nresult\n\n B: Placebo A: Drug X \nBaseline Risk Factors Total n n Responders Response (%) n Responders Response (%) Odds Ratio 95% CI \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAll Patients 268 134 84 62.7% 134 100 74.6% 1.75 (1.04, 2.95)\nSex \n F 161 82 48 58.5% 79 61 77.2% 2.40 (1.21, 4.76)\n M 107 52 36 69.2% 55 39 70.9% 1.08 (0.47, 2.48)\nStratification Factor 2 \n S1 140 67 38 56.7% 73 56 76.7% 2.51 (1.22, 5.20)\n S2 128 67 46 68.7% 61 44 72.1% 1.18 (0.55, 2.53)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nHere, the levels of subgroup variables SEX and STRATA1 are reordered. STRATA1 is reordered by frequency.\n\nCodeanl_reorder <- anl %>%\n mutate(\n SEX = forcats::fct_relevel(SEX, \"M\", \"F\"),\n STRATA1 = forcats::fct_infreq(STRATA1)\n )\n\ndf <- extract_rsp_subgroups(\n variables = list(rsp = \"rsp\", arm = \"ARM\", subgroups = c(\"SEX\", \"STRATA1\")),\n data = anl_reorder\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\"))\n\nresult\n\n B: Placebo A: Drug X \nBaseline Risk Factors Total n n Responders Response (%) n Responders Response (%) Odds Ratio 95% CI \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAll Patients 268 134 84 62.7% 134 100 74.6% 1.75 (1.04, 2.95)\nSex \n M 107 52 36 69.2% 55 39 70.9% 1.08 (0.47, 2.48)\n F 161 82 48 58.5% 79 61 77.2% 2.40 (1.21, 4.76)\nStratification Factor 1 \n C 94 45 33 73.3% 49 37 75.5% 1.12 (0.44, 2.83)\n B 92 45 26 57.8% 47 32 68.1% 1.56 (0.66, 3.66)\n A 82 44 25 56.8% 38 31 81.6% 3.37 (1.22, 9.28)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodedf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"rsp\",\n arm = \"ARM\",\n subgroups = c(\"SEX\", \"STRATA2\")\n ),\n data = anl,\n conf_level = 0.9,\n method = \"chisq\"\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\", \"pval\"))\n\nresult\n\n B: Placebo A: Drug X \nBaseline Risk Factors Total n n Responders Response (%) n Responders Response (%) Odds Ratio 90% CI p-value (Chi-Squared Test)\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAll Patients 268 134 84 62.7% 134 100 74.6% 1.75 (1.13, 2.72) 0.0351 \nSex \n F 161 82 48 58.5% 79 61 77.2% 2.40 (1.35, 4.27) 0.0113 \n M 107 52 36 69.2% 55 39 70.9% 1.08 (0.54, 2.17) 0.8497 \nStratification Factor 2 \n S1 140 67 38 56.7% 73 56 76.7% 2.51 (1.37, 4.63) 0.0119 \n S2 128 67 46 68.7% 61 44 72.1% 1.18 (0.62, 2.24) 0.6674 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nCreate a new variable new_rsp in anl data that uses new criteria for responder.\n\nCodeanl_new <- anl %>%\n mutate(new_rsp = AVALC == \"CR\")\n\ndf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"new_rsp\",\n arm = \"ARM\",\n subgroups = c(\"SEX\", \"STRATA2\")\n ),\n data = anl_new\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\"))\n\nresult\n\n B: Placebo A: Drug X \nBaseline Risk Factors Total n n Responders Response (%) n Responders Response (%) Odds Ratio 95% CI \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAll Patients 268 134 47 35.1% 134 60 44.8% 1.50 (0.92, 2.45)\nSex \n F 161 82 25 30.5% 79 39 49.4% 2.22 (1.17, 4.24)\n M 107 52 22 42.3% 55 21 38.2% 0.84 (0.39, 1.83)\nStratification Factor 2 \n S1 140 67 21 31.3% 73 31 42.5% 1.62 (0.81, 3.24)\n S2 128 67 26 38.8% 61 29 47.5% 1.43 (0.71, 2.89)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadrs <- random.cdisc.data::cadrs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadrs <- df_explicit_na(adrs)\n\nadsl <- adsl %>%\n select(STUDYID, USUBJID, ARM, SEX, RACE, STRATA1, STRATA2)\n\nadrs <- adrs %>%\n filter(PARAMCD == \"INVET\") %>%\n select(STUDYID, USUBJID, PARAMCD, AVALC)\n\nanl <- inner_join(adsl, adrs, by = c(\"STUDYID\", \"USUBJID\"))\nanl_labels <- var_labels(anl)\n\nanl <- anl %>%\n filter(ARM %in% c(\"A: Drug X\", \"B: Placebo\")) %>%\n mutate(\n # Reorder levels of factor to make the placebo group the reference arm.\n ARM = relevel(ARM, ref = \"B: Placebo\") %>%\n droplevels()\n ) %>%\n droplevels() %>%\n mutate(rsp = AVALC %in% c(\"CR\", \"PR\"))\n\nvar_labels(anl) <- c(anl_labels, rsp = \"Is Response\")", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one major protocol deviation\",\n nonunique = \"Total number of major protocol deviations\"\n )\n ) %>%\n split_rows_by(\n \"DVDECOD\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(addv$DVDECOD)\n ) %>%\n count_occurrences(vars = \"DVTERM\") %>%\n append_varlabels(addv, \"DVTERM\", indent = 1L)\n\nresult <- build_table(lyt = lyt, df = addv, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(path = c(\"DVDECOD\", \"*\", \"DVTERM\"), scorefun = score_occurrences)\n\nresult\n\nCategory A: Drug X B: Placebo C: Combination\n Description (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one major protocol deviation 28 (20.9%) 22 (16.4%) 18 (13.6%) \nTotal number of major protocol deviations 49 35 35 \nEXCLUSION CRITERIA \n Active or untreated or other excluded cns metastases 2 (1.5%) 4 (3.0%) 1 (0.8%) \n Pregnancy criteria 3 (2.2%) 3 (2.2%) 1 (0.8%) \n History of other malignancies within the last 5 years 3 (2.2%) 1 (0.7%) 1 (0.8%) \n Uncontrolled concurrent condition 2 (1.5%) 0 3 (2.3%) \n Other exclusion criteria 1 (0.7%) 0 2 (1.5%) \n Received prior prohibited therapy or medication 2 (1.5%) 1 (0.7%) 0 \nINCLUSION CRITERIA \n No signed ICF at study entry 5 (3.7%) 0 6 (4.5%) \n Ineligible cancer type or current cancer stage 3 (2.2%) 2 (1.5%) 4 (3.0%) \n Inclusion lab values outside allowed limits 4 (3.0%) 1 (0.7%) 0 \n Does not meet prior therapy requirements 2 (1.5%) 1 (0.7%) 1 (0.8%) \n Inclusion-related test not done/out of window 1 (0.7%) 1 (0.7%) 0 \nMEDICATION \n Discontinued study drug for unspecified reason 3 (2.2%) 2 (1.5%) 1 (0.8%) \n Significant deviation from planned dose 3 (2.2%) 1 (0.7%) 2 (1.5%) \n Received incorrect study medication 0 3 (2.2%) 1 (0.8%) \n Received prohibited concomitant medication 1 (0.7%) 2 (1.5%) 1 (0.8%) \n Dose missed or significantly out of window 2 (1.5%) 0 1 (0.8%) \nPROCEDURAL \n Eligibility-related test not done/out of window 2 (1.5%) 4 (3.0%) 3 (2.3%) \n Omission of screening tumor assessment 4 (3.0%) 1 (0.7%) 3 (2.3%) \n Missed assessment affecting safety/study outcomes 2 (1.5%) 3 (2.2%) 1 (0.8%) \n Failure to sign updated ICF within two visits 2 (1.5%) 1 (0.7%) 1 (0.8%) \n Missed 2 or more efficacy assessments 1 (0.7%) 2 (1.5%) 0 \n Omission of complete lab panel required by protocol 0 0 1 (0.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\naddv <- random.cdisc.data::caddv\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\naddv <- df_explicit_na(addv)\n\naddv <- addv %>%\n var_relabel(\n DVDECOD = \"Category\",\n DVTERM = \"Description\"\n )", "crumbs": [ "Tables", - "Efficacy", - "ONCT05" + "Disposition", + "PDT01" ] }, { - "objectID": "tables/efficacy/onct05.html#teal-app", - "href": "tables/efficacy/onct05.html#teal-app", - "title": "ONCT05", + "objectID": "tables/disposition/pdt01.html#teal-app", + "href": "tables/disposition/pdt01.html#teal-app", + "title": "PDT01", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCode# Use table, embedded in response forest plot module.\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADRS <- df_explicit_na(ADRS)\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_forest_rsp(\n label = \"Forest Response\",\n dataname = \"ADRS\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n \"ARMCD\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n \"BESRSPI\"\n ),\n subgroup_var = choices_selected(\n variable_choices(ADSL, names(ADSL)),\n c(\"SEX\")\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"STRATA1\", \"STRATA2\")),\n \"STRATA2\"\n ),\n plot_height = c(600L, 200L, 2000L)\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\n# Use table, embedded in response forest plot module.\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADRS <- df_explicit_na(ADRS)\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_forest_rsp(\n label = \"Forest Response\",\n dataname = \"ADRS\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n \"ARMCD\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n \"BESRSPI\"\n ),\n subgroup_var = choices_selected(\n variable_choices(ADSL, names(ADSL)),\n c(\"SEX\")\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"STRATA1\", \"STRATA2\")),\n \"STRATA2\"\n ),\n plot_height = c(600L, 200L, 2000L)\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADDV <- random.cdisc.data::caddv\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADDV <- df_explicit_na(ADDV)\n})\ndatanames <- c(\"ADSL\", \"ADDV\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADDV <- data[[\"ADDV\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Major Protocol Deviations Table\",\n dataname = \"ADDV\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADDV, c(\"DVTERM\")),\n selected = c(\"DVTERM\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADDV, c(\"DVDECOD\")),\n selected = \"DVDECOD\"\n ),\n add_total = TRUE,\n event_type = \"major protocol deviation\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADDV <- random.cdisc.data::caddv\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADDV <- df_explicit_na(ADDV)\n})\ndatanames <- c(\"ADSL\", \"ADDV\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADDV <- data[[\"ADDV\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Major Protocol Deviations Table\",\n dataname = \"ADDV\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADDV, c(\"DVTERM\")),\n selected = c(\"DVTERM\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADDV, c(\"DVDECOD\")),\n selected = \"DVDECOD\"\n ),\n add_total = TRUE,\n event_type = \"major protocol deviation\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Efficacy", - "ONCT05" + "Disposition", + "PDT01" ] }, { - "objectID": "tables/efficacy/onct05.html#reproducibility", - "href": "tables/efficacy/onct05.html#reproducibility", - "title": "ONCT05", + "objectID": "tables/disposition/pdt01.html#reproducibility", + "href": "tables/disposition/pdt01.html#reproducibility", + "title": "PDT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:45:03 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:40:20 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Efficacy", - "ONCT05" + "Disposition", + "PDT01" ] }, { - "objectID": "tables/efficacy/aovt02.html#output", - "href": "tables/efficacy/aovt02.html#output", - "title": "AOVT02", + "objectID": "tables/ADA/adat04b.html#output", + "href": "tables/ADA/adat04b.html#output", + "title": "ADAT04B", "section": "Output", - "text": "Output\nThis example will focus on data from a single visit “WEEK 1 DAY 8” and a single endpoint “FKSI-FWB”. Only evaluable populations will be analyzed.\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARMCD\", ref_group = \"ARM A\") %>%\n append_varlabels(adqs_single, \"PARAM\") %>%\n summarize_ancova(\n vars = \"CHG\",\n variables = list(arm = \"ARMCD\", covariates = NULL),\n conf_level = 0.95,\n var_labels = \"Unadjusted comparison\",\n .labels = c(lsmean = \"Mean\", lsmean_diff = \"Difference in Means\"),\n table_names = \"unadjusted\"\n ) %>%\n summarize_ancova(\n vars = \"CHG\",\n variables = list(arm = \"ARMCD\", covariates = c(\"BASE\", \"STRATA1\")),\n conf_level = 0.95,\n var_labels = \"Adjusted comparison (covariates BASE and STRATA1)\",\n table_names = \"adjusted\"\n )\n\nresult <- build_table(\n lyt = lyt,\n df = adqs_single,\n alt_counts_df = adsl\n)\n\nresult\n\n ARM A ARM B ARM C \nParameter (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————\nUnadjusted comparison \n n 68 73 62 \n Mean 3.68 5.07 3.09 \n Difference in Means 1.38 -0.59 \n 95% CI (-2.76, 5.53) (-4.91, 3.73)\n p-value 0.5113 0.7873 \nAdjusted comparison (covariates BASE and STRATA1) \n n 68 73 62 \n Adjusted Mean 4.06 3.57 3.34 \n Difference in Adjusted Means -0.49 -0.72 \n 95% CI (-3.28, 2.29) (-3.57, 2.12)\n p-value 0.7277 0.6165 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadqs <- random.cdisc.data::cadqs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadqs <- df_explicit_na(adqs)\n\nadqs_single <- adqs %>%\n filter(\n AVISIT == \"WEEK 1 DAY 8\",\n PARAMCD == \"FKSI-FWB\"\n ) %>%\n mutate(CHG = ifelse(BMEASIFL == \"Y\", CHG, NA))", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Layout for Baseline Prevalence of NAbs\nlyt_bl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = custom_column_split_fun\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(\"ADABLPFL\", \"PADABLPFL\"),\n .stats = \"count\",\n var_labels = \"Baseline Prevalence of NAbs\",\n show_labels = \"visible\",\n table_names = \"t1\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"PNABBLFL\",\n table_names = \"t2\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"NNABBLFL\",\n .stats = \"count\",\n table_names = \"t3\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n )\n\n# Layout for incidence of NAbs\nlyt_pb <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = custom_column_split_fun\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(\"ADPBLPFL\", \"ADAPFL\"),\n .stats = \"count\",\n var_labels = \"Incidence of NAbs\",\n show_labels = \"visible\",\n table_names = \"tb1\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"NABPFL\",\n table_names = \"tb2\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"NABNFL\",\n .stats = \"count\",\n table_names = \"tb3\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n )\n\nresult_1 <- build_table(lyt_bl, df = adab_b, alt_counts_df = adsl)\nresult_2 <- build_table(lyt_pb, df = adab_pb, alt_counts_df = adsl)\n\n# Combine tables.\nresult <- rbind(result_1, result_2)\n\nmain_title(result) <- paste(\n \"Baseline Prevalence and Incidence of Neutralizing Antibodies (NAbs)\"\n)\nsubtitles(result) <- paste(\"Protocol:\", unique(adab$PARCAT1)[1])\n\nmain_footer(result) <- \"NAb = Neutralizing Antibodies ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies) Baseline evaluable patient for ADA = a patient with an ADA assay result from a baseline sample(s) Baseline evaluable patient for NAb = a patient with a NAb assay result from a baseline sample(s) Post-baseline evaluable patient for ADA = a patient with an ADA assay result from at least one post-baseline sample Post-baseline evaluable patient for NAb = a patient with a NAb assay result from at least one post-baseline sample Number of patients positive for ADA = the number of post-baseline evaluable patients for ADA determined to have Treatment Emergent ADA during the study period.\nNumber of patients positive for NAb = the number (and percentage) of post-baseline evaluable patients for ADA determined to have at least one positive post-baseline NAb result during the study period. Number of patients negative for NAb = number of post-baseline evaluable patients with all negative post-baseline NAb results.\"\n\nresult\n\nBaseline Prevalence and Incidence of Neutralizing Antibodies (NAbs)\nProtocol: A: Drug X Antibody\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X C: Combination All Drug X B: Placebo All Patients\n (N=134) (N=132) (N=266) (N=134) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nBaseline Prevalence of NAbs \n Baseline evaluable patients for ADA 134 132 266 0 266 \n Patients with a positive ADA sample at baseline 63 64 127 0 127 \n Patients with a positive NAb sample at baseline 0 0 0 0 0 \n Patients with no positive NAb sample at baseline 0 0 0 0 0 \nIncidence of NAbs \n Post-baseline evaluable patients for ADA 134 132 266 0 266 \n Patients positive for ADA 66 59 125 0 125 \n Patients positive for NAb 0 0 0 0 0 \n Patients negative for NAb 134 132 266 0 266 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nNAb = Neutralizing Antibodies ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies) Baseline evaluable patient for ADA = a patient with an ADA assay result from a baseline sample(s) Baseline evaluable patient for NAb = a patient with a NAb assay result from a baseline sample(s) Post-baseline evaluable patient for ADA = a patient with an ADA assay result from at least one post-baseline sample Post-baseline evaluable patient for NAb = a patient with a NAb assay result from at least one post-baseline sample Number of patients positive for ADA = the number of post-baseline evaluable patients for ADA determined to have Treatment Emergent ADA during the study period.\nNumber of patients positive for NAb = the number (and percentage) of post-baseline evaluable patients for ADA determined to have at least one positive post-baseline NAb result during the study period. Number of patients negative for NAb = number of post-baseline evaluable patients with all negative post-baseline NAb results.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(tibble)\n\nadsl <- random.cdisc.data::cadsl\nadab <- random.cdisc.data::cadab\n\n# Order needed for the columns is c(1, 3, 4, 2, 5)\nreorder_facets <- function(splret, spl, fulldf, ...) {\n ord <- c(1, 3, 4, 2, 5)\n make_split_result(\n splret$values[ord],\n splret$datasplit[ord],\n splret$labels[ord]\n )\n}\n\n# Create a custom split function for adding the new columns (facets) and sorting them\ncustom_column_split_fun <- make_split_fun(\n post = list(\n add_combo_facet(\"all_X\",\n label = \"All Drug X\",\n levels = c(\"A: Drug X\", \"C: Combination\")\n ),\n add_combo_facet(\"all_pt\",\n label = \"All Patients\",\n levels = c(\"A: Drug X\", \"B: Placebo\", \"C: Combination\")\n ),\n reorder_facets\n )\n)\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\n\n# Baseline Pts\nadab_b <- df_explicit_na(adab) %>%\n filter(\n ABLFL == \"Y\",\n ADABLPFL == \"Y\",\n PARAM %in% c(\n \"ADA interpreted per sample result\",\n \"NAB interpreted per sample result\"\n )\n ) %>%\n select(-PARAMCD, -AVALC, -AVALU) %>%\n tidyr::pivot_wider(\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n mutate(\n across(\n any_of(c(\n \"ADA interpreted per sample result\",\n \"NAB interpreted per sample result\"\n )),\n as.logical\n )\n ) %>%\n mutate(\n ADABLPFL = ADABLPFL == \"Y\",\n PADABLPFL = if (exists(\"ADA interpreted per sample result\", where = .)) {\n `ADA interpreted per sample result` == \"TRUE\"\n } else {\n FALSE\n },\n PNABBLFL = if (exists(\"NAB interpreted per sample result\", where = .)) {\n `NAB interpreted per sample result` == \"TRUE\"\n } else {\n FALSE\n },\n NNABBLFL = if (exists(\"NAB interpreted per sample result\", where = .)) {\n `NAB interpreted per sample result` == \"FALSE\"\n } else {\n FALSE\n }\n ) %>%\n var_relabel(\n ADABLPFL = \"Baseline evaluable patients for ADA\",\n PADABLPFL = \"Patients with a positive ADA sample at baseline\",\n PNABBLFL = \"Patients with a positive NAb sample at baseline\",\n NNABBLFL = \"Patients with no positive NAb sample at baseline\"\n )\n\n# Post-Baseline Evaluable Pts\nadab_pb_ada <- df_explicit_na(adab) %>%\n filter(ADPBLPFL == \"Y\") %>%\n select(STUDYID, USUBJID, ARM, ACTARM, ADPBLPFL) %>%\n mutate(ADPBLPFL = ADPBLPFL == \"Y\") %>%\n distinct()\n\n# Post-Baseline ADA Positive Pts\nadab_pb_adap <- df_explicit_na(adab) %>%\n filter(\n ABLFL != \"Y\",\n PARAM == \"ADA interpreted per sample result\",\n AVALC == \"POSITIVE\"\n ) %>%\n mutate(ADAPFL = AVALC == \"POSITIVE\") %>%\n select(STUDYID, USUBJID, ARM, ACTARM, ADAPFL) %>%\n distinct()\n\n# Post-Baseline NAb Positive Pts\nadab_pb_nabp <- df_explicit_na(adab) %>%\n filter(\n ABLFL != \"Y\",\n PARAM == \"NAb interpreted per sample result\",\n AVALC == \"POSITIVE\"\n ) %>%\n mutate(NABPFL = AVALC == \"POSITIVE\") %>%\n select(STUDYID, USUBJID, ARM, ACTARM, NABPFL) %>%\n distinct()\n\n# Post-Baseline NAb Negative Pts\nadab_pb_nabn <- df_explicit_na(adab) %>%\n filter(\n ABLFL != \"Y\",\n PARAM == \"NAb interpreted per sample result\",\n AVALC == \"NEGATIVE\"\n ) %>%\n rename(NABNFL = AVALC) %>%\n select(STUDYID, USUBJID, ARM, ACTARM, NABNFL) %>%\n distinct()\n\nmergecol <- c(\"STUDYID\", \"USUBJID\", \"ARM\", \"ACTARM\")\n\nadab_pb <- left_join(adab_pb_ada, adab_pb_adap, by = mergecol) %>%\n left_join(adab_pb_nabp, by = mergecol) %>%\n mutate(\n NABNFL = ifelse(is.na(NABPFL), \"TRUE\", \"FALSE\"),\n NABNFL = NABNFL == \"TRUE\"\n ) %>%\n var_relabel(\n ADPBLPFL = \"Post-baseline evaluable patients for ADA\",\n ADAPFL = \"Patients positive for ADA\",\n NABPFL = \"Patients positive for NAb\",\n NABNFL = \"Patients negative for NAb\"\n )", "crumbs": [ "Tables", - "Efficacy", - "AOVT02" + "ADA", + "ADAT04B" ] }, { - "objectID": "tables/efficacy/aovt02.html#teal-app", - "href": "tables/efficacy/aovt02.html#teal-app", - "title": "AOVT02", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADQS <- df_explicit_na(ADQS)\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADQS <- data[[\"ADQS\"]]\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_ancova(\n label = \"ANCOVA table\",\n dataname = \"ADQS\",\n avisit = choices_selected(\n choices = value_choices(ADQS, \"AVISIT\"),\n selected = \"WEEK 1 DAY 8\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ACTARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n aval_var = choices_selected(\n choices = variable_choices(ADQS, c(\"CHG\", \"AVAL\")),\n selected = \"CHG\"\n ),\n cov_var = choices_selected(\n choices = variable_choices(ADQS, c(\"BASE\", \"STRATA1\", \"SEX\")),\n selected = \"STRATA1\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = \"FKSI-FWB\"\n )\n )\n )\n)\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADQS <- df_explicit_na(ADQS)\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADQS <- data[[\"ADQS\"]]\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_ancova(\n label = \"ANCOVA table\",\n dataname = \"ADQS\",\n avisit = choices_selected(\n choices = value_choices(ADQS, \"AVISIT\"),\n selected = \"WEEK 1 DAY 8\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ACTARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n aval_var = choices_selected(\n choices = variable_choices(ADQS, c(\"CHG\", \"AVAL\")),\n selected = \"CHG\"\n ),\n cov_var = choices_selected(\n choices = variable_choices(ADQS, c(\"BASE\", \"STRATA1\", \"SEX\")),\n selected = \"STRATA1\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = \"FKSI-FWB\"\n )\n )\n )\n)\nshinyApp(app$ui, app$server)", + "objectID": "tables/ADA/adat04b.html#reproducibility", + "href": "tables/ADA/adat04b.html#reproducibility", + "title": "ADAT04B", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:40:36 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Efficacy", - "AOVT02" + "ADA", + "ADAT04B" ] }, { - "objectID": "tables/efficacy/aovt02.html#reproducibility", - "href": "tables/efficacy/aovt02.html#reproducibility", - "title": "AOVT02", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:45:47 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/ADA/adat03.html#output", + "href": "tables/ADA/adat03.html#output", + "title": "ADAT03", + "section": "Output", + "text": "Output\n\n\nStandard Table (μg/mL)\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# parameters in columns\nadat03_stats <- c(\"n\", \"mean\", \"sd\", \"median\", \"min\", \"max\", \"cv\", \"geom_mean\", \"count_fraction\")\nadat03_lbls <- c(\n n = \"Total Number\\nof Measurable\\n Samples\",\n mean = \"Mean\",\n sd = \"SD\",\n median = \"Median\",\n min = \"Minimum\",\n max = \"Maximum\",\n cv = \"CV (%)\",\n geom_mean = \"Geometric Mean\",\n count_fraction = paste0(\"Samples with\\nConcentration\\n≤ \", max_conc, \"μg/mL\")\n)\nadat03_fmts <- c(\n n = \"xx.\",\n mean = format_sigfig(3),\n sd = format_sigfig(3),\n median = format_sigfig(3),\n min = format_sigfig(3),\n max = format_sigfig(3),\n cv = \"xx.x\",\n geom_mean = format_sigfig(3),\n count_fraction = format_count_fraction\n)\n\nafun_list <- lapply(\n 1:9,\n function(i) make_afun(s_summary, .stats = adat03_stats[i], .formats = adat03_fmts[i], .labels = \"Overall\")\n)\n\n# lyt creation\nlyt <- basic_table() %>%\n split_rows_by(\n var = \"ARM\",\n label_pos = \"topleft\",\n split_label = \"Treatment Group\",\n split_fun = drop_split_levels,\n section_div = \"\"\n ) %>%\n add_rowcounts() %>%\n split_rows_by(\n var = \"VISIT\",\n label_pos = \"topleft\",\n split_label = \"Visit\",\n split_fun = drop_split_levels,\n child_labels = \"hidden\"\n ) %>%\n analyze_vars_in_cols(\n vars = c(rep(\"AVAL\", 8), \"AVAL_LT\"),\n .stats = adat03_stats,\n .labels = adat03_lbls,\n .formats = adat03_fmts\n ) %>%\n analyze_colvars(\n afun_list,\n nested = FALSE,\n extra_args = list(\".labels\" = \"Overall\")\n )\n\nresult <- build_table(lyt, anl, alt_counts_df = adsl)\n\nmain_title(result) <- paste(\n \"Summary of Serum Concentrations (μg/mL) at Timepoints Where ADA Samples Were Collected and Analyzed\\n\n Protocol:\", unique(adab$PARCAT1)[1]\n)\nsubtitles(result) <- paste(\"Analyte:\", unique(adab$PARAMCD)[1])\nfnotes_at_path(result, rowpath = NULL, colpath = c(\"multivars\", \"AVAL\")) <- \"Refers to the total no. of measurable ADA samples that have a corresponding measurable drug concentration sample (i.e. results with valid numeric values and LTRs). LTR results on post-dose samples are replaced by aaa µg/mL i.e. half of MQC value.\" \nfnotes_at_path(result, rowpath = NULL, colpath = c(\"multivars\", \"AVAL_LT\")) <- \"In validation, the assay was able to detect yyy ng/mL of surrogate ADA in the presence of zzz µg/mL of [drug]. BLQ = Below Limit of Quantitation, LTR = Lower than Reportable, MQC = Minimum Quantifiable Concentration, ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies). RXXXXXXX is also known as [drug]\" \n\nresult\n\nSummary of Serum Concentrations (μg/mL) at Timepoints Where ADA Samples Were Collected and Analyzed\n\n Protocol: A: Drug X Antibody\nAnalyte: R1800000\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Total Number Samples with \nTreatment Group of Measurable Concentration\n Visit Samples {1} Mean SD Median Minimum Maximum CV (%) Geometric Mean ≤ 15μg/mL {2}\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X (N=536) \n Day 1 402 0 0 0 0 0 NA NA 402 (100%) \n Day 2 134 16.2 1.63 16.2 12.6 19.9 10.0 16.1 39 (29.1%) \n\nC: Combination (N=792) \n Day 1 528 0 0 0 0 0 NA NA 528 (100%) \n Day 2 264 24.7 8.65 22.5 12.6 39.5 35.0 23.2 28 (10.6%) \n\nOverall 1328 6.54 11.0 0 0 39.5 167.5 NA 997 (75.1%) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Refers to the total no. of measurable ADA samples that have a corresponding measurable drug concentration sample (i.e. results with valid numeric values and LTRs). LTR results on post-dose samples are replaced by aaa µg/mL i.e. half of MQC value.\n{2} - In validation, the assay was able to detect yyy ng/mL of surrogate ADA in the presence of zzz µg/mL of [drug]. BLQ = Below Limit of Quantitation, LTR = Lower than Reportable, MQC = Minimum Quantifiable Concentration, ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies). RXXXXXXX is also known as [drug]\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadab <- random.cdisc.data::cadab\nadpc <- random.cdisc.data::cadpc\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadab <- df_explicit_na(adab)\nadpc <- df_explicit_na(adpc)\n\n# Adjust zzz parameter\nmax_conc <- 15\n\nadpc <- adpc %>% select(USUBJID, NFRLT, AVAL, AVALU, AVALCAT1)\n\nanl <- adab %>%\n filter(., PARAM == \"ADA interpreted per sample result\") %>%\n select(-AVAL, AVALC, AVALU)\n\nanl <- merge(anl, adpc, by = c(\"USUBJID\", \"NFRLT\")) %>%\n mutate(AVAL_LT = ifelse(AVAL <= max_conc, TRUE, FALSE))", "crumbs": [ "Tables", - "Efficacy", - "AOVT02" + "ADA", + "ADAT03" ] }, { - "objectID": "tables/vital-signs/vst02.html#output", - "href": "tables/vital-signs/vst02.html#output", - "title": "VST02", - "section": "Output", - "text": "Output\n\n\nVST02_1 – Table of Abnormalities Regardless of Abnormality at Baseline\nVST02_2 – Table of Abnormalities Among Subjects Without Abnormality at Baseline\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n add_overall_col(\"All Patients\") %>%\n split_rows_by(\"PARAM\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(advs_f$PARAM)) %>%\n count_abnormal(\n \"ANRIND\",\n abnormal = list(Low = c(\"LOW\", \"LOW LOW\"), High = c(\"HIGH\", \"HIGH HIGH\")),\n exclude_base_abn = FALSE\n ) %>%\n append_varlabels(advs_f, \"ANRIND\", indent = 1L)\n\nresult <- build_table(lyt = lyt, df = advs_f, alt_counts_df = adsl)\n\nresult\n\nAssessment A: Drug X B: Placebo C: Combination All Patients \n Abnormality (N=134) (N=134) (N=132) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————————\nDiastolic Blood Pressure \n Low 66/134 (49.3%) 86/134 (64.2%) 78/132 (59.1%) 230/400 (57.5%)\n High 88/134 (65.7%) 70/134 (52.2%) 76/132 (57.6%) 234/400 (58.5%)\nPulse Rate \n Low 58/134 (43.3%) 32/134 (23.9%) 48/132 (36.4%) 138/400 (34.5%)\n High 53/134 (39.6%) 49/134 (36.6%) 44/132 (33.3%) 146/400 (36.5%)\nRespiratory Rate \n Low 97/134 (72.4%) 84/134 (62.7%) 98/132 (74.2%) 279/400 (69.8%)\n High 96/134 (71.6%) 98/134 (73.1%) 98/132 (74.2%) 292/400 (73%) \nSystolic Blood Pressure \n Low 71/134 (53%) 77/134 (57.5%) 73/132 (55.3%) 221/400 (55.2%)\n High 78/134 (58.2%) 74/134 (55.2%) 73/132 (55.3%) 225/400 (56.2%)\nTemperature \n Low 108/134 (80.6%) 110/134 (82.1%) 108/132 (81.8%) 326/400 (81.5%)\n High 112/134 (83.6%) 106/134 (79.1%) 107/132 (81.1%) 325/400 (81.2%)\nWeight \n Low 43/134 (32.1%) 39/134 (29.1%) 39/132 (29.5%) 121/400 (30.2%)\n High 46/134 (34.3%) 43/134 (32.1%) 44/132 (33.3%) 133/400 (33.2%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n add_overall_col(\"All Patients\") %>%\n split_rows_by(\"PARAM\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(advs_f$PARAM)) %>%\n count_abnormal(\n \"ANRIND\",\n abnormal = list(Low = c(\"LOW\", \"LOW LOW\"), High = c(\"HIGH\", \"HIGH HIGH\")),\n exclude_base_abn = TRUE\n ) %>%\n append_varlabels(advs_f, \"ANRIND\", indent = 1L)\n\nresult <- build_table(lyt = lyt, df = advs_f, alt_counts_df = adsl)\n\nresult\n\nAssessment A: Drug X B: Placebo C: Combination All Patients \n Abnormality (N=134) (N=134) (N=132) (N=400) \n—————————————————————————————————————————————————————————————————————————————————————————————\nDiastolic Blood Pressure \n Low 54/108 (50%) 76/116 (65.5%) 68/114 (59.6%) 198/338 (58.6%)\n High 74/114 (64.9%) 56/109 (51.4%) 62/106 (58.5%) 192/329 (58.4%)\nPulse Rate \n Low 53/121 (43.8%) 30/125 (24%) 42/119 (35.3%) 125/365 (34.2%)\n High 48/123 (39%) 45/116 (38.8%) 39/120 (32.5%) 132/359 (36.8%)\nRespiratory Rate \n Low 72/100 (72%) 72/110 (65.5%) 79/102 (77.5%) 223/312 (71.5%)\n High 77/107 (72%) 78/108 (72.2%) 79/109 (72.5%) 234/324 (72.2%)\nSystolic Blood Pressure \n Low 62/117 (53%) 63/114 (55.3%) 57/103 (55.3%) 182/334 (54.5%)\n High 64/110 (58.2%) 67/120 (55.8%) 68/115 (59.1%) 199/345 (57.7%)\nTemperature \n Low 77/96 (80.2%) 78/94 (83%) 74/90 (82.2%) 229/280 (81.8%)\n High 78/93 (83.9%) 73/92 (79.3%) 81/100 (81%) 232/285 (81.4%)\nWeight \n Low 42/129 (32.6%) 37/125 (29.6%) 37/123 (30.1%) 116/377 (30.8%)\n High 41/126 (32.5%) 41/124 (33.1%) 42/121 (34.7%) 124/371 (33.4%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadvs <- random.cdisc.data::cadvs\n\n# Ensure character variables are converted to factors and empty strings\n# and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadvs <- df_explicit_na(advs)\n\n# Note: We keep only post-baseline for analysis.\nadvs_f <- advs %>%\n filter(ONTRTFL == \"Y\", ANRIND != \"<Missing>\") %>%\n var_relabel(\n PARAM = \"Assessment\",\n ANRIND = \"Abnormality\"\n )\n\nsplit_fun <- drop_split_levels", + "objectID": "tables/ADA/adat03.html#reproducibility", + "href": "tables/ADA/adat03.html#reproducibility", + "title": "ADAT03", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:40:50 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Vital Signs", - "VST02" + "ADA", + "ADAT03" ] }, { - "objectID": "tables/vital-signs/vst02.html#teal-app", - "href": "tables/vital-signs/vst02.html#teal-app", - "title": "VST02", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADVS <- random.cdisc.data::cadvs %>%\n mutate(ONTRTFL = ifelse(AVISIT %in% c(\"SCREENING\", \"BASELINE\"), \"\", \"Y\")) %>%\n col_relabel(ONTRTFL = \"On Treatment Record Flag\")\n})\ndatanames <- c(\"ADSL\", \"ADVS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADVS <- data[[\"ADVS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality(\n label = \"Abnormality Table\",\n dataname = \"ADVS\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADVS, subset = c(\"VSCAT\", \"PARAM\", \"AVISIT\")),\n selected = c(\"PARAM\"),\n keep_order = TRUE\n ),\n grade = choices_selected(\n choices = variable_choices(ADVS, subset = \"ANRIND\"),\n selected = \"ANRIND\",\n fixed = TRUE\n ),\n abnormal = list(Low = c(\"LOW\", \"LOW LOW\"), High = c(\"HIGH\", \"HIGH HIGH\")),\n exclude_base_abn = FALSE\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADVS <- random.cdisc.data::cadvs %>%\n mutate(ONTRTFL = ifelse(AVISIT %in% c(\"SCREENING\", \"BASELINE\"), \"\", \"Y\")) %>%\n col_relabel(ONTRTFL = \"On Treatment Record Flag\")\n})\ndatanames <- c(\"ADSL\", \"ADVS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADVS <- data[[\"ADVS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality(\n label = \"Abnormality Table\",\n dataname = \"ADVS\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADVS, subset = c(\"VSCAT\", \"PARAM\", \"AVISIT\")),\n selected = c(\"PARAM\"),\n keep_order = TRUE\n ),\n grade = choices_selected(\n choices = variable_choices(ADVS, subset = \"ANRIND\"),\n selected = \"ANRIND\",\n fixed = TRUE\n ),\n abnormal = list(Low = c(\"LOW\", \"LOW LOW\"), High = c(\"HIGH\", \"HIGH HIGH\")),\n exclude_base_abn = FALSE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "tables/ADA/adat02.html#output", + "href": "tables/ADA/adat02.html#output", + "title": "ADAT02", + "section": "Output", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Layout for post-baseline evaluable patient variables from adab dataset.\nlyt_adab <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = drop_split_levels\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"ADPBLPFL\",\n .stats = \"count\",\n table_names = \"post_baseline\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"TI_ADA\"\n )\n\n# Layout for treatment-induced patient variables from adab dataset.\nlyt_adab_ti <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = keep_split_levels(levels(adab_ti$ACTARM)[-2]) # temp fix\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(\"Transient ADA\", \"Persistent ADA\"),\n var_labels = \"Treatment-induced ADA patients with\",\n show_labels = \"visible\"\n ) %>%\n analyze_vars(\n \"Time to onset of ADA\",\n .stats = \"median\",\n nested = FALSE,\n .labels = c(median = \"Median time to onset of ADA (weeks)\")\n ) %>%\n analyze_vars(\n \"Antibody titer units\",\n .stats = \"range\",\n nested = FALSE,\n .labels = c(range = \"ADA titer range (min - max)\")\n )\n\nresult_adab <- build_table(lyt_adab, df = adab, alt_counts_df = adsl)\nresult_adab_ti <- build_table(lyt_adab_ti, df = adab_ti, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adab) <- col_info(result_adab_ti)\nresult <- rbind(\n result_adab,\n result_adab_ti\n)\n\nmain_title(result) <- paste(\n \"Summary of Patients with Treatment-Induced ADA, PK Population\"\n)\nsubtitles(result) <- paste(\"Protocol:\", unique(adab$PARCAT1)[1])\nmain_footer(result) <- paste(\n \"ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic\n Antibodies)\n Treatment-induced ADA = negative or missing baseline.\n ADA result(s) and at least one positive post-baseline ADA result.\n Transient ADA = ADA positive result detected (a) at only one post-baseline\n sampling timepoint (excluding last timepoint) OR (b) at 2 or more timepoints\n during treatment where the first and last ADA positive samples are separated\n by a period of < 16 weeks, irrespective of any negative samples in between.\n Persistent ADA = ADA positive result detected (a) at the last post-baseline\n sampling timepoint, OR (b) at 2 or more time points during treatment where\n the first and last ADA positive samples are separated by a period ≥ 16\n weeks, irrespective of any negative samples in between.\"\n)\nresult\n\nSummary of Patients with Treatment-Induced ADA, PK Population\nProtocol: A: Drug X Antibody\n\n—————————————————————————————————————————————————————————————————\n A: Drug X C: Combination\n (N=134) (N=132) \n—————————————————————————————————————————————————————————————————\nPost-baseline evaluable patients 134 132 \nTreatment-induced ADA patients 38 (28.4%) 26 (19.7%) \nTreatment-induced ADA patients with \n Transient ADA 0 0 \n Persistent ADA 0 0 \nMedian time to onset of ADA (weeks) 0.1 0.1 \nADA titer range (min - max) NA NA \n—————————————————————————————————————————————————————————————————\n\nADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic\n Antibodies)\n Treatment-induced ADA = negative or missing baseline.\n ADA result(s) and at least one positive post-baseline ADA result.\n Transient ADA = ADA positive result detected (a) at only one post-baseline\n sampling timepoint (excluding last timepoint) OR (b) at 2 or more timepoints\n during treatment where the first and last ADA positive samples are separated\n by a period of < 16 weeks, irrespective of any negative samples in between.\n Persistent ADA = ADA positive result detected (a) at the last post-baseline\n sampling timepoint, OR (b) at 2 or more time points during treatment where\n the first and last ADA positive samples are separated by a period ≥ 16\n weeks, irrespective of any negative samples in between.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadab <- random.cdisc.data::cadab\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadab <- df_explicit_na(adab) %>%\n mutate(ADPBLPFL = \"Y\") %>% # temp fix\n filter(\n ADPBLPFL == \"Y\",\n !PARAM %in% c(\n \"NAB interpreted per sample result\",\n \"NAB Status of a patient\",\n \"Treatment enhanced ADA\"\n )\n ) %>%\n select(-PARAMCD, -AVALC, -AVALU, -ARRLT, -NRRLT) %>%\n unique() %>%\n tidyr::pivot_wider(\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n mutate(\n across(\n any_of(c(\n \"Treatment induced ADA\",\n \"Transient ADA\",\n \"Persistent ADA\"\n )),\n as.logical\n )\n ) %>%\n mutate(\n ADPBLPFL = ADPBLPFL == \"Y\",\n TI_ADA = if (exists(\"Treatment induced ADA\", where = .)) `Treatment induced ADA` else FALSE\n ) %>%\n var_relabel(\n ADPBLPFL = \"Post-baseline evaluable patients\",\n TI_ADA = \"Treatment-induced ADA patients\"\n )\n\nadab_ti <- adab %>%\n filter(TI_ADA)", "crumbs": [ "Tables", - "Vital Signs", - "VST02" + "ADA", + "ADAT02" ] }, { - "objectID": "tables/vital-signs/vst02.html#reproducibility", - "href": "tables/vital-signs/vst02.html#reproducibility", - "title": "VST02", + "objectID": "tables/ADA/adat02.html#reproducibility", + "href": "tables/ADA/adat02.html#reproducibility", + "title": "ADAT02", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:46:32 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:41:02 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Vital Signs", - "VST02" + "ADA", + "ADAT02" ] }, { - "objectID": "tables/disclosures/eudrat01.html#output", - "href": "tables/disclosures/eudrat01.html#output", - "title": "EUDRAT01", + "objectID": "tables/medical-history/mht01.html#output", + "href": "tables/medical-history/mht01.html#output", + "title": "MHT01", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table() %>%\n split_cols_by(\"ARM\") %>%\n summarize_patients_events_in_cols(\n custom_label = \"Total number of patients with at least one non-serious adverse event occuring at a relative frequency of >=5% and number of events\" \n ) %>%\n split_rows_by(\"AEBODSYS\",\n nested = FALSE,\n split_fun = split_fun,\n indent_mod = -1L,\n label_pos = \"topleft\",\n split_label = obj_label(adae_trim$AEBODSYS)\n ) %>%\n split_rows_by(\"AEDECOD\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adae_trim$AEDECOD)) %>%\n summarize_patients_events_in_cols(\n col_split = FALSE\n )\n\nresult <- build_table(lyt, adae_trim)\nresult\n\nBody System or Organ Class A: Drug X B: Placebo C: Combination \n Dictionary-Derived Term Patients (All) Events (All) Patients (All) Events (All) Patients (All) Events (All)\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one non-serious adverse event occuring at a relative frequency of >=5% and number of events 106 360 112 367 112 421 \ncl A.1 \n dcd A.1.1.1.1 50 64 45 62 63 88 \ncl B.2 \n dcd B.2.1.2.1 49 65 44 62 52 66 \ncl C.1 \n dcd C.1.1.1.3 43 55 46 63 43 64 \ncl C.2 \n dcd C.2.1.2.1 35 48 48 53 55 65 \ncl D.1 \n dcd D.1.1.4.2 48 66 42 55 50 64 \ncl D.2 \n dcd D.2.1.5.3 47 62 58 72 57 74 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nDefine a trimming function get_adae_trimmed to filter for AEs of greater than 5% incidence rate.\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\nadae_nonser <- adae %>% filter(AESER != \"Y\", SAFFL == \"Y\")\n\nget_adae_trimmed <- function(adsl, adae, cutoff_rate) {\n n_per_arm <- adsl %>%\n dplyr::count(ARM)\n\n anl_terms <- adae %>%\n dplyr::group_by(ARM, AEBODSYS, AEDECOD) %>%\n dplyr::count(\n unique_terms = n_distinct(USUBJID)\n ) %>%\n dplyr::select(-n) %>%\n dplyr::ungroup()\n\n anl_terms <- dplyr::left_join(\n anl_terms,\n n_per_arm,\n by = \"ARM\"\n ) %>%\n dplyr::mutate(\n ae_rate = unique_terms / n\n ) %>%\n dplyr::filter(ae_rate >= cutoff_rate) %>%\n dplyr::select(AEDECOD) %>%\n unique()\n\n anl <- dplyr::left_join(\n anl_terms,\n adae,\n by = \"AEDECOD\"\n )\n anl\n}\n\nadae_trim <- get_adae_trimmed(adsl, adae_nonser, cutoff_rate = 0.05)", + "text": "Output\n\n\nStandard Table\nTable of History Prior to Study\nTable with Total Number of Conditions Suppressed\nTable with Total Number of Conditions Per Body System After The Summary of Patients\nTable Showing Additional “All Patients” Column\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\"Total number of patients with at least one condition\", \"Total number of conditions\")\n ) %>%\n split_rows_by(\n var = \"MHBODSYS\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(admh_f$MHBODSYS)\n ) %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\"Total number of patients with at least one condition\", \"Total number of conditions\"),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(vars = \"MHDECOD\") %>%\n append_varlabels(admh_f, \"MHDECOD\", indent = 1L)\n\nresult <- build_table(lyt, admh_f, alt_counts_df = adsl_f) %>%\n prune_table()\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one condition 122 (91.0%) 123 (91.8%) 120 (90.9%) \nTotal number of conditions 609 622 703 \ncl A \n Total number of patients with at least one condition 78 (58.2%) 75 (56.0%) 89 (67.4%) \n Total number of conditions 132 130 160 \n trm A_1/2 50 (37.3%) 45 (33.6%) 63 (47.7%) \n trm A_2/2 48 (35.8%) 48 (35.8%) 50 (37.9%) \ncl B \n Total number of patients with at least one condition 96 (71.6%) 89 (66.4%) 97 (73.5%) \n Total number of conditions 185 198 205 \n trm B_1/3 47 (35.1%) 49 (36.6%) 43 (32.6%) \n trm B_2/3 49 (36.6%) 44 (32.8%) 52 (39.4%) \n trm B_3/3 48 (35.8%) 54 (40.3%) 51 (38.6%) \ncl C \n Total number of patients with at least one condition 67 (50.0%) 75 (56.0%) 79 (59.8%) \n Total number of conditions 103 116 129 \n trm C_1/2 43 (32.1%) 46 (34.3%) 43 (32.6%) \n trm C_2/2 35 (26.1%) 48 (35.8%) 55 (41.7%) \ncl D \n Total number of patients with at least one condition 96 (71.6%) 90 (67.2%) 98 (74.2%) \n Total number of conditions 189 178 209 \n trm D_1/3 50 (37.3%) 42 (31.3%) 51 (38.6%) \n trm D_2/3 48 (35.8%) 42 (31.3%) 50 (37.9%) \n trm D_3/3 47 (35.1%) 58 (43.3%) 57 (43.2%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadmh_f_prior <- admh_f %>%\n filter(ASTDY <= 0)\n\nresult <- build_table(lyt, admh_f_prior, alt_counts_df = adsl_f) %>%\n prune_table()\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one condition 0 0 1 (0.8%) \nTotal number of conditions 0 0 1 \ncl D \n Total number of patients with at least one condition 0 0 1 (0.8%) \n Total number of conditions 0 0 1 \n trm D_2/3 0 0 1 (0.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(\"Total number of patients with at least one condition\")\n ) %>%\n split_rows_by(\n var = \"MHBODSYS\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(admh_f$MHBODSYS)\n ) %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(\"Total number of patients with at least one condition\"),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(vars = \"MHDECOD\") %>%\n append_varlabels(admh_f, \"MHDECOD\", indent = 1L)\n\nresult <- build_table(lyt, admh_f, alt_counts_df = adsl) %>%\n prune_table()\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one condition 122 (91.0%) 123 (91.8%) 120 (90.9%) \ncl A \n Total number of patients with at least one condition 78 (58.2%) 75 (56.0%) 89 (67.4%) \n trm A_1/2 50 (37.3%) 45 (33.6%) 63 (47.7%) \n trm A_2/2 48 (35.8%) 48 (35.8%) 50 (37.9%) \ncl B \n Total number of patients with at least one condition 96 (71.6%) 89 (66.4%) 97 (73.5%) \n trm B_1/3 47 (35.1%) 49 (36.6%) 43 (32.6%) \n trm B_2/3 49 (36.6%) 44 (32.8%) 52 (39.4%) \n trm B_3/3 48 (35.8%) 54 (40.3%) 51 (38.6%) \ncl C \n Total number of patients with at least one condition 67 (50.0%) 75 (56.0%) 79 (59.8%) \n trm C_1/2 43 (32.1%) 46 (34.3%) 43 (32.6%) \n trm C_2/2 35 (26.1%) 48 (35.8%) 55 (41.7%) \ncl D \n Total number of patients with at least one condition 96 (71.6%) 90 (67.2%) 98 (74.2%) \n trm D_1/3 50 (37.3%) 42 (31.3%) 51 (38.6%) \n trm D_2/3 48 (35.8%) 42 (31.3%) 50 (37.9%) \n trm D_3/3 47 (35.1%) 58 (43.3%) 57 (43.2%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNot currently supported by rtables. Users, please notify us if this variation is important to you.\n\n\nConditions are further sorted by decreasing high level terms and low level terms.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n add_overall_col(\"All Patients\") %>%\n analyze_num_patients(\n \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(unique = \"Total number of patients with at least one event\", nonunique = \"Total number of conditions\")\n ) %>%\n split_rows_by(\n var = \"MHBODSYS\",\n split_fun = split_fun,\n child_labels = \"visible\",\n label_pos = \"topleft\",\n split_label = obj_label(admh_f$MHBODSYS)\n ) %>%\n summarize_num_patients(\n \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(unique = \"Total number of patients with at least one event\", nonunique = \"Total number of conditions\")\n ) %>%\n count_occurrences(vars = \"MHDECOD\", .indent_mods = -1L) %>%\n append_varlabels(admh_f, \"MHDECOD\", indent = 1L)\n\nscorefun_hlt <- cont_n_allcols\nscorefun_llt <- score_occurrences_cols(col_indices = nlevels(adsl_f$ACTARM) + 1)\n\nresult <- build_table(lyt, admh_f, alt_counts_df = adsl_f) %>%\n prune_table() %>%\n sort_at_path(path = c(\"MHBODSYS\"), scorefun = scorefun_hlt) %>%\n sort_at_path(path = c(\"MHBODSYS\", \"*\", \"MHDECOD\"), scorefun = scorefun_llt)\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination All Patients\n MedDRA Preferred Term (N=134) (N=134) (N=132) (N=400) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one event 122 (91.0%) 123 (91.8%) 120 (90.9%) 365 (91.2%) \nTotal number of conditions 609 622 703 1934 \ncl D \n Total number of patients with at least one event 96 (71.6%) 90 (67.2%) 98 (74.2%) 284 (71.0%) \n Total number of conditions 189 178 209 576 \n trm D_3/3 47 (35.1%) 58 (43.3%) 57 (43.2%) 162 (40.5%) \n trm D_1/3 50 (37.3%) 42 (31.3%) 51 (38.6%) 143 (35.8%) \n trm D_2/3 48 (35.8%) 42 (31.3%) 50 (37.9%) 140 (35.0%) \ncl B \n Total number of patients with at least one event 96 (71.6%) 89 (66.4%) 97 (73.5%) 282 (70.5%) \n Total number of conditions 185 198 205 588 \n trm B_3/3 48 (35.8%) 54 (40.3%) 51 (38.6%) 153 (38.2%) \n trm B_2/3 49 (36.6%) 44 (32.8%) 52 (39.4%) 145 (36.2%) \n trm B_1/3 47 (35.1%) 49 (36.6%) 43 (32.6%) 139 (34.8%) \ncl A \n Total number of patients with at least one event 78 (58.2%) 75 (56.0%) 89 (67.4%) 242 (60.5%) \n Total number of conditions 132 130 160 422 \n trm A_1/2 50 (37.3%) 45 (33.6%) 63 (47.7%) 158 (39.5%) \n trm A_2/2 48 (35.8%) 48 (35.8%) 50 (37.9%) 146 (36.5%) \ncl C \n Total number of patients with at least one event 67 (50.0%) 75 (56.0%) 79 (59.8%) 221 (55.2%) \n Total number of conditions 103 116 129 348 \n trm C_2/2 35 (26.1%) 48 (35.8%) 55 (41.7%) 138 (34.5%) \n trm C_1/2 43 (32.1%) 46 (34.3%) 43 (32.6%) 132 (33.0%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadmh <- random.cdisc.data::cadmh\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadmh <- df_explicit_na(admh)\n\nadsl_f <- adsl %>%\n filter(SAFFL == \"Y\") %>%\n select(USUBJID, ACTARM)\n\nadmh_f <- admh %>%\n filter(SAFFL == \"Y\" & MHBODSYS != \"\" & MHDECOD != \"\") %>%\n var_relabel(\n MHBODSYS = \"MedDRA System Organ Class\",\n MHDECOD = \"MedDRA Preferred Term\"\n )", "crumbs": [ "Tables", - "Disclosures", - "EUDRAT01" + "Medical History", + "MHT01" ] }, { - "objectID": "tables/disclosures/eudrat01.html#reproducibility", - "href": "tables/disclosures/eudrat01.html#reproducibility", - "title": "EUDRAT01", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:47:06 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/medical-history/mht01.html#teal-app", + "href": "tables/medical-history/mht01.html#teal-app", + "title": "MHT01", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl %>%\n filter(SAFFL == \"Y\")\n ADMH <- random.cdisc.data::cadmh %>%\n filter(SAFFL == \"Y\" & MHBODSYS != \"\" & MHDECOD != \"\")\n})\ndatanames <- c(\"ADSL\", \"ADMH\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADMH <- data[[\"ADMH\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Medical History Table\",\n dataname = \"ADMH\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADMH, c(\"MHTERM\", \"MHDECOD\")),\n selected = c(\"MHDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADMH, c(\"MHBODSYS\", \"MHSOC\")),\n selected = \"MHBODSYS\"\n ),\n add_total = TRUE,\n event_type = \"condition\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl %>%\n filter(SAFFL == \"Y\")\n ADMH <- random.cdisc.data::cadmh %>%\n filter(SAFFL == \"Y\" & MHBODSYS != \"\" & MHDECOD != \"\")\n})\ndatanames <- c(\"ADSL\", \"ADMH\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADMH <- data[[\"ADMH\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Medical History Table\",\n dataname = \"ADMH\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADMH, c(\"MHTERM\", \"MHDECOD\")),\n selected = c(\"MHDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADMH, c(\"MHBODSYS\", \"MHSOC\")),\n selected = \"MHBODSYS\"\n ),\n add_total = TRUE,\n event_type = \"condition\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Disclosures", - "EUDRAT01" + "Medical History", + "MHT01" ] }, { - "objectID": "tables/disclosures/disclosurest01.html#reproducibility", - "href": "tables/disclosures/disclosurest01.html#reproducibility", - "title": "DISCLOSUREST01", + "objectID": "tables/medical-history/mht01.html#reproducibility", + "href": "tables/medical-history/mht01.html#reproducibility", + "title": "MHT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:47:22 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:41:40 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Disclosures", - "DISCLOSUREST01" + "Medical History", + "MHT01" ] }, { - "objectID": "tables/risk-management-plan/rmpt01.html#output", - "href": "tables/risk-management-plan/rmpt01.html#output", - "title": "RMPT01", + "objectID": "tables/lab-results/lbt06.html#output", + "href": "tables/lab-results/lbt06.html#output", + "title": "LBT06", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(\n title = \"Duration of Exposure: Safety-Evaluable Patients\",\n main_footer = \"* Patient Time is the sum of exposure across all patients in days.\",\n show_colcounts = TRUE\n) %>%\n summarize_patients_exposure_in_cols(\n var = \"AVAL\", col_split = TRUE,\n .labels = c(n_patients = \"Number of Patients\", sum_exposure = \"Patient Time*\"),\n custom_label = \"Total Number of Patients and Patient Time\"\n ) %>%\n analyze_patients_exposure_in_cols(\n var = \"aval_months_cat\",\n col_split = FALSE\n ) %>%\n append_topleft(c(\"\", \"Duration of exposure\"))\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_f)\nresult\n\nDuration of Exposure: Safety-Evaluable Patients\n\n——————————————————————————————————————————————————————————————————————————————\n Number of Patients Patient Time*\nDuration of exposure (N=400) (N=400) \n——————————————————————————————————————————————————————————————————————————————\nTotal Number of Patients and Patient Time 217 (54.2%) 20641 \n < 1 month 28 (7.0%) 504 \n 1 to <3 months 79 (19.8%) 4727 \n 3 to <6 months 101 (25.2%) 13690 \n >=6 months 9 (2.2%) 1720 \n——————————————————————————————————————————————————————————————————————————————\n\n* Patient Time is the sum of exposure across all patients in days.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadex <- random.cdisc.data::cadex\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadex <- df_explicit_na(adex)\n\n# Simulate ADEX records with PARAMCD == \"TDURD\" as they are not in sample random.cdisc.data dataset.\nset.seed(1, kind = \"Mersenne-Twister\")\nadex2 <- adex %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE)\n ) %>%\n bind_rows(adex)\n\n# Now pre-processing steps are carried out.\nanl <- adex2 %>%\n filter(\n PARAMCD == \"TDURD\",\n PARCAT2 == \"Drug A\",\n SAFFL == \"Y\"\n ) %>%\n mutate(\n aval_months = day2month(AVAL),\n aval_months_cat = factor(case_when(\n aval_months < 1 ~ \"< 1 month\",\n aval_months >= 1 & aval_months < 3 ~ \"1 to <3 months\",\n aval_months >= 3 & aval_months < 6 ~ \"3 to <6 months\",\n TRUE ~ \">=6 months\"\n ), levels = c(\"< 1 month\", \"1 to <3 months\", \"3 to <6 months\", \">=6 months\"))\n )\n\nadsl_f <- adsl %>% filter(adsl$SAFFL == \"Y\")", - "crumbs": [ - "Tables", - "Risk Management Plan", - "RMPT01" - ] - }, - { - "objectID": "tables/risk-management-plan/rmpt01.html#teal-app", - "href": "tables/risk-management-plan/rmpt01.html#teal-app", - "title": "RMPT01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\"\n ) %>%\n bind_rows(ADEX)\n\n ADEX <- ADEX %>%\n mutate(\n aval_months = day2month(AVAL),\n aval_months_cat = factor(case_when(\n aval_months < 1 ~ \"< 1 month\",\n aval_months >= 1 & aval_months < 3 ~ \"1 to <3 months\",\n aval_months >= 3 & aval_months < 6 ~ \"3 to <6 months\",\n TRUE ~ \">=6 months\"\n ), levels = c(\"< 1 month\", \"1 to <3 months\", \"3 to <6 months\", \">=6 months\")) %>% with_label(\"Overall duration\")\n ) %>%\n select(-aval_months)\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"aval_months_cat\", \"RACE\", \"STRATA1\", \"SEX\")),\n selected = \"aval_months_cat\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\"\n ) %>%\n bind_rows(ADEX)\n\n ADEX <- ADEX %>%\n mutate(\n aval_months = day2month(AVAL),\n aval_months_cat = factor(case_when(\n aval_months < 1 ~ \"< 1 month\",\n aval_months >= 1 & aval_months < 3 ~ \"1 to <3 months\",\n aval_months >= 3 & aval_months < 6 ~ \"3 to <6 months\",\n TRUE ~ \">=6 months\"\n ), levels = c(\"< 1 month\", \"1 to <3 months\", \"3 to <6 months\", \">=6 months\")) %>% with_label(\"Overall duration\")\n ) %>%\n select(-aval_months)\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"aval_months_cat\", \"RACE\", \"STRATA1\", \"SEX\")),\n selected = \"aval_months_cat\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", + "text": "Output\n\n\nStandard Table for Single Lab Test\nStandard Table for Multiple Lab Tests\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_rows_by(\"AVISIT\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adlb_f_crp$AVISIT)) %>%\n count_abnormal_by_baseline(\n \"ANRIND\",\n abnormal = c(Low = \"LOW\", High = \"HIGH\"),\n .indent_mods = 4L\n ) %>%\n append_varlabels(adlb_f_crp, \"ANRIND\", indent = 1L) %>%\n append_topleft(\" Baseline Status\")\n\nresult <- build_table(\n lyt = lyt,\n df = adlb_f_crp,\n alt_counts_df = adsl\n) %>%\n trim_rows()\n\nresult\n\nVisit \n Analysis Reference Range Indicator A: Drug X B: Placebo C: Combination\n Baseline Status (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————\nWEEK 1 DAY 8 \n Low \n Not low 16/119 (13.4%) 22/113 (19.5%) 24/112 (21.4%)\n Low 2/15 (13.3%) 2/21 (9.5%) 7/20 (35%) \n Total 18/134 (13.4%) 24/134 (17.9%) 31/132 (23.5%)\n High \n Not high 21/114 (18.4%) 20/112 (17.9%) 17/115 (14.8%)\n High 2/20 (10%) 4/22 (18.2%) 3/17 (17.6%) \n Total 23/134 (17.2%) 24/134 (17.9%) 20/132 (15.2%)\nWEEK 2 DAY 15 \n Low \n Not low 26/119 (21.8%) 20/113 (17.7%) 12/112 (10.7%)\n Low 2/15 (13.3%) 3/21 (14.3%) 4/20 (20%) \n Total 28/134 (20.9%) 23/134 (17.2%) 16/132 (12.1%)\n High \n Not high 15/114 (13.2%) 17/112 (15.2%) 15/115 (13%) \n High 2/20 (10%) 4/22 (18.2%) 4/17 (23.5%) \n Total 17/134 (12.7%) 21/134 (15.7%) 19/132 (14.4%)\nWEEK 3 DAY 22 \n Low \n Not low 15/119 (12.6%) 21/113 (18.6%) 18/112 (16.1%)\n Low 0/15 3/21 (14.3%) 0/20 \n Total 15/134 (11.2%) 24/134 (17.9%) 18/132 (13.6%)\n High \n Not high 22/114 (19.3%) 18/112 (16.1%) 17/115 (14.8%)\n High 2/20 (10%) 5/22 (22.7%) 1/17 (5.9%) \n Total 24/134 (17.9%) 23/134 (17.2%) 18/132 (13.6%)\nWEEK 4 DAY 29 \n Low \n Not low 30/119 (25.2%) 13/113 (11.5%) 16/112 (14.3%)\n Low 3/15 (20%) 2/21 (9.5%) 5/20 (25%) \n Total 33/134 (24.6%) 15/134 (11.2%) 21/132 (15.9%)\n High \n Not high 17/114 (14.9%) 11/112 (9.8%) 16/115 (13.9%)\n High 2/20 (10%) 6/22 (27.3%) 3/17 (17.6%) \n Total 19/134 (14.2%) 17/134 (12.7%) 19/132 (14.4%)\nWEEK 5 DAY 36 \n Low \n Not low 17/119 (14.3%) 19/113 (16.8%) 16/112 (14.3%)\n Low 2/15 (13.3%) 3/21 (14.3%) 5/20 (25%) \n Total 19/134 (14.2%) 22/134 (16.4%) 21/132 (15.9%)\n High \n Not high 19/114 (16.7%) 17/112 (15.2%) 11/115 (9.6%) \n High 4/20 (20%) 6/22 (27.3%) 2/17 (11.8%) \n Total 23/134 (17.2%) 23/134 (17.2%) 13/132 (9.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# The following code generates one large table for multiple lab tests.\n# If separate tables are needed for each lab test per GDSR standard, use the code for \"single lab test\".\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_rows_by(\"PARAM\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adlb_f$PARAM)) %>%\n split_rows_by(\"AVISIT\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adlb_f$AVISIT)) %>%\n count_abnormal_by_baseline(\n \"ANRIND\",\n abnormal = c(Low = \"LOW\", High = \"HIGH\"),\n .indent_mods = 4L\n ) %>%\n append_varlabels(adlb_f, \"ANRIND\", indent = 2L) %>%\n append_topleft(\" Baseline Status\")\n\nresult <- build_table(\n lyt = lyt,\n df = adlb_f,\n alt_counts_df = adsl\n) %>%\n trim_rows()\n\nresult\n\nParameter \n Visit \n Analysis Reference Range Indicator A: Drug X B: Placebo C: Combination\n Baseline Status (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————\nAlanine Aminotransferase Measurement \n WEEK 1 DAY 8 \n Low \n Not low 19/113 (16.8%) 13/117 (11.1%) 14/123 (11.4%)\n Low 2/21 (9.5%) 1/17 (5.9%) 1/9 (11.1%) \n Total 21/134 (15.7%) 14/134 (10.4%) 15/132 (11.4%)\n High \n Not high 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n WEEK 2 DAY 15 \n Low \n Not low 17/113 (15%) 13/117 (11.1%) 13/123 (10.6%)\n Low 2/21 (9.5%) 2/17 (11.8%) 4/9 (44.4%) \n Total 19/134 (14.2%) 15/134 (11.2%) 17/132 (12.9%)\n High \n Not high 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n WEEK 3 DAY 22 \n Low \n Not low 10/113 (8.8%) 20/117 (17.1%) 21/123 (17.1%)\n Low 4/21 (19%) 4/17 (23.5%) 2/9 (22.2%) \n Total 14/134 (10.4%) 24/134 (17.9%) 23/132 (17.4%)\n High \n Not high 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n WEEK 4 DAY 29 \n Low \n Not low 15/113 (13.3%) 19/117 (16.2%) 18/123 (14.6%)\n Low 2/21 (9.5%) 3/17 (17.6%) 1/9 (11.1%) \n Total 17/134 (12.7%) 22/134 (16.4%) 19/132 (14.4%)\n High \n Not high 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n WEEK 5 DAY 36 \n Low \n Not low 17/113 (15%) 23/117 (19.7%) 18/123 (14.6%)\n Low 0/21 1/17 (5.9%) 1/9 (11.1%) \n Total 17/134 (12.7%) 24/134 (17.9%) 19/132 (14.4%)\n High \n Not high 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \nC-Reactive Protein Measurement \n WEEK 1 DAY 8 \n Low \n Not low 16/119 (13.4%) 22/113 (19.5%) 24/112 (21.4%)\n Low 2/15 (13.3%) 2/21 (9.5%) 7/20 (35%) \n Total 18/134 (13.4%) 24/134 (17.9%) 31/132 (23.5%)\n High \n Not high 21/114 (18.4%) 20/112 (17.9%) 17/115 (14.8%)\n High 2/20 (10%) 4/22 (18.2%) 3/17 (17.6%) \n Total 23/134 (17.2%) 24/134 (17.9%) 20/132 (15.2%)\n WEEK 2 DAY 15 \n Low \n Not low 26/119 (21.8%) 20/113 (17.7%) 12/112 (10.7%)\n Low 2/15 (13.3%) 3/21 (14.3%) 4/20 (20%) \n Total 28/134 (20.9%) 23/134 (17.2%) 16/132 (12.1%)\n High \n Not high 15/114 (13.2%) 17/112 (15.2%) 15/115 (13%) \n High 2/20 (10%) 4/22 (18.2%) 4/17 (23.5%) \n Total 17/134 (12.7%) 21/134 (15.7%) 19/132 (14.4%)\n WEEK 3 DAY 22 \n Low \n Not low 15/119 (12.6%) 21/113 (18.6%) 18/112 (16.1%)\n Low 0/15 3/21 (14.3%) 0/20 \n Total 15/134 (11.2%) 24/134 (17.9%) 18/132 (13.6%)\n High \n Not high 22/114 (19.3%) 18/112 (16.1%) 17/115 (14.8%)\n High 2/20 (10%) 5/22 (22.7%) 1/17 (5.9%) \n Total 24/134 (17.9%) 23/134 (17.2%) 18/132 (13.6%)\n WEEK 4 DAY 29 \n Low \n Not low 30/119 (25.2%) 13/113 (11.5%) 16/112 (14.3%)\n Low 3/15 (20%) 2/21 (9.5%) 5/20 (25%) \n Total 33/134 (24.6%) 15/134 (11.2%) 21/132 (15.9%)\n High \n Not high 17/114 (14.9%) 11/112 (9.8%) 16/115 (13.9%)\n High 2/20 (10%) 6/22 (27.3%) 3/17 (17.6%) \n Total 19/134 (14.2%) 17/134 (12.7%) 19/132 (14.4%)\n WEEK 5 DAY 36 \n Low \n Not low 17/119 (14.3%) 19/113 (16.8%) 16/112 (14.3%)\n Low 2/15 (13.3%) 3/21 (14.3%) 5/20 (25%) \n Total 19/134 (14.2%) 22/134 (16.4%) 21/132 (15.9%)\n High \n Not high 19/114 (16.7%) 17/112 (15.2%) 11/115 (9.6%) \n High 4/20 (20%) 6/22 (27.3%) 2/17 (11.8%) \n Total 23/134 (17.2%) 23/134 (17.2%) 13/132 (9.8%) \nImmunoglobulin A Measurement \n WEEK 1 DAY 8 \n Low \n Not low 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n High \n Not high 18/119 (15.1%) 20/116 (17.2%) 14/113 (12.4%)\n High 1/15 (6.7%) 5/18 (27.8%) 4/19 (21.1%) \n Total 19/134 (14.2%) 25/134 (18.7%) 18/132 (13.6%)\n WEEK 2 DAY 15 \n Low \n Not low 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n High \n Not high 16/119 (13.4%) 13/116 (11.2%) 12/113 (10.6%)\n High 1/15 (6.7%) 1/18 (5.6%) 2/19 (10.5%) \n Total 17/134 (12.7%) 14/134 (10.4%) 14/132 (10.6%)\n WEEK 3 DAY 22 \n Low \n Not low 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n High \n Not high 17/119 (14.3%) 15/116 (12.9%) 21/113 (18.6%)\n High 0/15 1/18 (5.6%) 1/19 (5.3%) \n Total 17/134 (12.7%) 16/134 (11.9%) 22/132 (16.7%)\n WEEK 4 DAY 29 \n Low \n Not low 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n High \n Not high 19/119 (16%) 16/116 (13.8%) 19/113 (16.8%)\n High 4/15 (26.7%) 5/18 (27.8%) 3/19 (15.8%) \n Total 23/134 (17.2%) 21/134 (15.7%) 22/132 (16.7%)\n WEEK 5 DAY 36 \n Low \n Not low 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n High \n Not high 16/119 (13.4%) 21/116 (18.1%) 20/113 (17.7%)\n High 1/15 (6.7%) 3/18 (16.7%) 0/19 \n Total 17/134 (12.7%) 24/134 (17.9%) 20/132 (15.2%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadlb <- df_explicit_na(adlb)\n# Please note that df_explict_na has a na_level argument defaulting to \"<Missing>\",\n# Please don't change the na_level to anything other than NA, empty string or the default \"<Missing>\".\n\nadlb_f <- adlb %>%\n dplyr::filter(ABLFL != \"Y\") %>%\n dplyr::filter(!(AVISIT %in% c(\"SCREENING\", \"BASELINE\"))) %>%\n dplyr::mutate(AVISIT = droplevels(AVISIT)) %>%\n var_relabel(AVISIT = \"Visit\")\n\nadlb_f_crp <- adlb_f %>% dplyr::filter(PARAMCD == \"CRP\")", "crumbs": [ "Tables", - "Risk Management Plan", - "RMPT01" + "Lab Results", + "LBT06" ] }, { - "objectID": "tables/risk-management-plan/rmpt01.html#reproducibility", - "href": "tables/risk-management-plan/rmpt01.html#reproducibility", - "title": "RMPT01", + "objectID": "tables/lab-results/lbt06.html#reproducibility", + "href": "tables/lab-results/lbt06.html#reproducibility", + "title": "LBT06", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:48:01 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:42:27 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Risk Management Plan", - "RMPT01" + "Lab Results", + "LBT06" ] }, { - "objectID": "tables/risk-management-plan/rmpt03.html#output", - "href": "tables/risk-management-plan/rmpt03.html#output", - "title": "RMPT03", + "objectID": "tables/lab-results/lbt11_bl.html#output", + "href": "tables/lab-results/lbt11_bl.html#output", + "title": "LBT11_BL", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Excluding Empty Age Groups\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(\n title = \"Extent of Exposure by Age Group and Gender: Safety-Evaluable Patients\",\n main_footer = \"* Patient Time is the sum of exposure across all patients in days.\"\n) %>%\n split_cols_by(\"SEX\", split_fun = add_overall_level(\"Total\", first = FALSE)) %>%\n summarize_patients_exposure_in_cols(\n var = \"AVAL\", col_split = TRUE,\n .labels = c(n_patients = \"Number of Patients\", sum_exposure = \"Patient Time*\"),\n custom_label = \"Total Number of Patients and Patient Time\"\n ) %>%\n analyze_patients_exposure_in_cols(\n var = \"AGEGR1\",\n col_split = FALSE\n ) %>%\n append_topleft(c(\"\", \"Age group (years)\"))\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_f)\nresult\n\nExtent of Exposure by Age Group and Gender: Safety-Evaluable Patients\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Female Male Total \nAge group (years) Number of Patients Patient Time* Number of Patients Patient Time* Number of Patients Patient Time*\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal Number of Patients and Patient Time 134 (58.0%) 12591 83 (49.1%) 8050 217 (54.2%) 20641 \n <65 134 (58.0%) 12591 82 (48.5%) 7970 216 (54.0%) 20561 \n >=65 0 (0.0%) 0 1 (0.6%) 80 1 (0.2%) 80 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n* Patient Time is the sum of exposure across all patients in days.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(\n title = \"Duration of Exposure: Safety-Evaluable Patients\",\n main_footer = \"* Patient Time is the sum of exposure across all patients in days.\"\n) %>%\n split_cols_by(\"SEX\", split_fun = add_overall_level(\"Total\", first = FALSE)) %>%\n summarize_patients_exposure_in_cols(\n var = \"AVAL\", col_split = TRUE,\n .labels = c(n_patients = \"Number of Patients\", sum_exposure = \"Patient Time*\"),\n custom_label = \"Total Number of Patients and Patient Time\"\n ) %>%\n analyze_patients_exposure_in_cols(\n var = \"AGEGR2\",\n col_split = FALSE\n ) %>%\n append_topleft(c(\"\", \"Age group (years)\"))\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_f) %>%\n prune_table()\nresult\n\nDuration of Exposure: Safety-Evaluable Patients\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Female Male Total \nAge group (years) Number of Patients Patient Time* Number of Patients Patient Time* Number of Patients Patient Time*\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal Number of Patients and Patient Time 134 (58.0%) 12591 83 (49.1%) 8050 217 (54.2%) 20641 \n 18 - 40 118 (51.1%) 11203 60 (35.5%) 5787 178 (44.5%) 16990 \n 41 - 64 16 (6.9%) 1388 22 (13.0%) 2183 38 (9.5%) 3571 \n >=65 0 (0.0%) 0 1 (0.6%) 80 1 (0.2%) 80 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n* Patient Time is the sum of exposure across all patients in days.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadex <- random.cdisc.data::cadex\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadex <- df_explicit_na(adex)\n\n# Simulate ADEX records with PARAMCD == \"TDURD\" as they are not in sample random.cdisc.data dataset.\nset.seed(1, kind = \"Mersenne-Twister\")\nadex2 <- adex %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE)\n ) %>%\n bind_rows(adex)\n\n# Now pre-processing steps are carried out.\nanl <- adex2 %>%\n filter(\n PARAMCD == \"TDURD\",\n PARCAT2 == \"Drug A\",\n SAFFL == \"Y\"\n ) %>%\n mutate(\n AGEGR1 = factor(ifelse(AGE < 65, \"<65\", \">=65\")),\n AGEGR2 = factor(case_when(\n AGE < 18 ~ \"< 18\",\n AGE >= 18 & AGE <= 40 ~ \"18 - 40\",\n AGE > 40 & AGE <= 64 ~ \"41 - 64\",\n TRUE ~ \">=65\"\n ), levels = c(\"< 18\", \"18 - 40\", \"41 - 64\", \">=65\")),\n SEX = factor(case_when(\n SEX == \"F\" ~ \"Female\",\n SEX == \"M\" ~ \"Male\"\n ))\n )\n\nadsl_f <- adsl %>%\n filter(adsl$SAFFL == \"Y\") %>%\n mutate(SEX = factor(case_when(\n SEX == \"F\" ~ \"Female\",\n SEX == \"M\" ~ \"Male\"\n )))", + "text": "Output\n\n\nTime-To-Event Summary\nTime-To-Event Summary Selecting Sections to Display\nTime-To-Event Summary with Stratified Analysis\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARMCD\", ref_group = \"ARM A\") %>%\n count_occurrences(vars = \"event_grp\") %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = paste0(\"Time to 1st LLT Event (\", levels(anl$AVALU), \")\"),\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = \"Unstratified Analysis\",\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"coxph_unstratified\"\n )\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_safl)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————\nPatients with LLT event (%) 14 (10.4%) 18 (13.4%) 15 (11.4%) \nPatients without LLT event (%) 120 (89.6%) 116 (86.6%) 117 (88.6%) \nTime to 1st LLT Event (DAYS) \n Median NA NA 721.0 \n 95% CI NA (681.0, NA) (691.0, NA) \n 25% and 75%-ile 608.0, NA 558.0, NA 644.0, NA \n Range 1.0 to 728.0 {1} 1.0 to 726.0 {1} 1.0 to 724.0 {1}\nUnstratified Analysis \n p-value (log-rank) 0.5013 0.6413 \n Hazard Ratio 1.27 0.84 \n 95% CI (0.63, 2.56) (0.40, 1.75) \n———————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observations: range minimum & maximum\n———————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARMCD\", ref_group = \"ARM A\") %>%\n count_occurrences(vars = \"event_grp\") %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = paste0(\"Time to 1st LLT Event (\", levels(anl$AVALU), \")\"),\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n )\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_safl)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————\nPatients with LLT event (%) 14 (10.4%) 18 (13.4%) 15 (11.4%) \nPatients without LLT event (%) 120 (89.6%) 116 (86.6%) 117 (88.6%) \nTime to 1st LLT Event (DAYS) \n Median NA NA 721.0 \n 95% CI NA (681.0, NA) (691.0, NA) \n 25% and 75%-ile 608.0, NA 558.0, NA 644.0, NA \n Range 1.0 to 728.0 {1} 1.0 to 726.0 {1} 1.0 to 724.0 {1}\n———————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observations: range minimum & maximum\n———————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodestrata <- c(\"RACE\", \"SEX\")\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARMCD\", ref_group = \"ARM A\") %>%\n count_occurrences(vars = \"event_grp\") %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = paste0(\"Time to 1st LLT Event (\", levels(anl$AVALU), \")\"),\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = \"Unstratified Analysis\",\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"coxph_unstratified\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = paste0(\"Stratified By: \", paste(strata, collapse = \", \")),\n strata = strata,\n table_names = \"coxph_stratified\"\n )\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_safl)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————\nPatients with LLT event (%) 14 (10.4%) 18 (13.4%) 15 (11.4%) \nPatients without LLT event (%) 120 (89.6%) 116 (86.6%) 117 (88.6%) \nTime to 1st LLT Event (DAYS) \n Median NA NA 721.0 \n 95% CI NA (681.0, NA) (691.0, NA) \n 25% and 75%-ile 608.0, NA 558.0, NA 644.0, NA \n Range 1.0 to 728.0 {1} 1.0 to 726.0 {1} 1.0 to 724.0 {1}\nUnstratified Analysis \n p-value (log-rank) 0.5013 0.6413 \n Hazard Ratio 1.27 0.84 \n 95% CI (0.63, 2.56) (0.40, 1.75) \nStratified By: RACE, SEX \n p-value (log-rank) 0.3886 0.7970 \n Hazard Ratio 1.39 0.91 \n 95% CI (0.65, 2.97) (0.43, 1.93) \n———————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observations: range minimum & maximum\n———————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadaette <- random.cdisc.data::cadaette\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadaette <- df_explicit_na(adaette)\n\nadsl_safl <- dplyr::filter(adsl, .data$SAFFL == \"Y\")\n\nanl <- adaette %>%\n dplyr::filter(\n SAFFL == \"Y\",\n PARAMCD == \"HYSTTEBL\"\n ) %>%\n dplyr::mutate(\n AVAL = .data$AVAL * dplyr::case_when( # convert to days, if possible\n .data$AVALU == \"WEEKS\" ~ 7,\n .data$AVALU == \"MONTHS\" ~ 30.4375,\n .data$AVALU == \"YEARS\" ~ 365,\n TRUE ~ 1\n ),\n AVALU = factor(dplyr::case_when(\n .data$AVALU %in% c(\"WEEKS\", \"MONTHS\", \"YEARS\") ~ factor(\"DAYS\"),\n TRUE ~ .data$AVALU\n ), levels = \"DAYS\"),\n is_event = CNSR == 0, # this will be a LLT event\n event_grp = factor(\n dplyr::case_when(\n CNSR == 0 ~ \"Patients with LLT event (%)\",\n CNSR == 1 ~ \"Patients without LLT event (%)\"\n ),\n levels = c(\n \"Patients with LLT event (%)\",\n \"Patients without LLT event (%)\"\n )\n )\n )", "crumbs": [ "Tables", - "Risk Management Plan", - "RMPT03" + "Lab Results", + "LBT11_BL" ] }, { - "objectID": "tables/risk-management-plan/rmpt03.html#teal-app", - "href": "tables/risk-management-plan/rmpt03.html#teal-app", - "title": "RMPT03", + "objectID": "tables/lab-results/lbt11_bl.html#teal-app", + "href": "tables/lab-results/lbt11_bl.html#teal-app", + "title": "LBT11_BL", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n\n labels <- col_labels(ADEX)\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\",\n SEX = factor(case_when(\n SEX == \"F\" ~ \"Female\",\n SEX == \"M\" ~ \"Male\"\n ))\n ) %>%\n bind_rows(ADEX)\n\n col_labels(ADEX) <- labels\n\n ADEX <- ADEX %>%\n mutate(\n AGEGR1 = factor(ifelse(AGE < 65, \"<65\", \">=65\")) %>% with_label(\"Age group (years)\"),\n AGEGR2 = factor(case_when(\n AGE < 18 ~ \"< 18\",\n AGE >= 18 & AGE <= 40 ~ \"18 - 40\",\n AGE > 40 & AGE <= 64 ~ \"41 - 64\",\n TRUE ~ \">=65\"\n ), levels = c(\"< 18\", \"18 - 40\", \"41 - 64\", \">=65\")) %>% with_label(\"Age group (years)\")\n )\n\n ADSL <- ADSL %>%\n mutate(SEX = factor(case_when(\n SEX == \"F\" ~ \"Female\",\n SEX == \"M\" ~ \"Male\"\n )) %>% with_label(\"Sex\"))\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"AGEGR1\", \"AGEGR2\")),\n selected = \"AGEGR1\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n\n labels <- col_labels(ADEX)\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\",\n SEX = factor(case_when(\n SEX == \"F\" ~ \"Female\",\n SEX == \"M\" ~ \"Male\"\n ))\n ) %>%\n bind_rows(ADEX)\n\n col_labels(ADEX) <- labels\n\n ADEX <- ADEX %>%\n mutate(\n AGEGR1 = factor(ifelse(AGE < 65, \"<65\", \">=65\")) %>% with_label(\"Age group (years)\"),\n AGEGR2 = factor(case_when(\n AGE < 18 ~ \"< 18\",\n AGE >= 18 & AGE <= 40 ~ \"18 - 40\",\n AGE > 40 & AGE <= 64 ~ \"41 - 64\",\n TRUE ~ \">=65\"\n ), levels = c(\"< 18\", \"18 - 40\", \"41 - 64\", \">=65\")) %>% with_label(\"Age group (years)\")\n )\n\n ADSL <- ADSL %>%\n mutate(SEX = factor(case_when(\n SEX == \"F\" ~ \"Female\",\n SEX == \"M\" ~ \"Male\"\n )) %>% with_label(\"Sex\"))\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"AGEGR1\", \"AGEGR2\")),\n selected = \"AGEGR1\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n ADSL <- filter(ADSL, .data$SAFFL == \"Y\")\n ADAETTE <- filter(ADAETTE, .data$SAFFL == \"Y\")\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To LLT Event Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADAETTE, \"PARAMCD\", \"PARAM\"),\n \"HYSTTEBL\"\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"RACE\", \"SEX\")),\n c(\"RACE\", \"SEX\")\n ),\n time_points = choices_selected(0, NULL),\n event_desc_var = choices_selected(\"EVNTDESC\", \"EVNTDESC\", fixed = TRUE)\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n ADSL <- filter(ADSL, .data$SAFFL == \"Y\")\n ADAETTE <- filter(ADAETTE, .data$SAFFL == \"Y\")\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To LLT Event Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADAETTE, \"PARAMCD\", \"PARAM\"),\n \"HYSTTEBL\"\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"RACE\", \"SEX\")),\n c(\"RACE\", \"SEX\")\n ),\n time_points = choices_selected(0, NULL),\n event_desc_var = choices_selected(\"EVNTDESC\", \"EVNTDESC\", fixed = TRUE)\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Risk Management Plan", - "RMPT03" + "Lab Results", + "LBT11_BL" ] }, { - "objectID": "tables/risk-management-plan/rmpt03.html#reproducibility", - "href": "tables/risk-management-plan/rmpt03.html#reproducibility", - "title": "RMPT03", + "objectID": "tables/lab-results/lbt11_bl.html#reproducibility", + "href": "tables/lab-results/lbt11_bl.html#reproducibility", + "title": "LBT11_BL", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:48:31 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:43:04 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Risk Management Plan", - "RMPT03" + "Lab Results", + "LBT11_BL" ] }, { - "objectID": "tables/risk-management-plan/rmpt05.html#output", - "href": "tables/risk-management-plan/rmpt05.html#output", - "title": "RMPT05", + "objectID": "tables/lab-results/lbt02.html#output", + "href": "tables/lab-results/lbt02.html#output", + "title": "LBT02", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(\n title = \"Extent of Exposure by Race: Safety-Evaluable Patients\",\n main_footer = \"* Person time is the sum of exposure across all patients in unit: days.\",\n show_colcounts = TRUE\n) %>%\n summarize_patients_exposure_in_cols(\n var = \"AVAL\", col_split = TRUE,\n .labels = c(n_patients = \"Patients\", sum_exposure = \"Person time*\")\n ) %>%\n analyze_patients_exposure_in_cols(\n var = \"RACE\",\n col_split = FALSE\n ) %>%\n append_topleft(c(\"\", obj_label(adex$RACE)))\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_f)\nresult\n\nExtent of Exposure by Race: Safety-Evaluable Patients\n\n————————————————————————————————————————————————————————————————————————\n Patients Person time*\nRace (N=400) (N=400) \n————————————————————————————————————————————————————————————————————————\nTotal patients numbers/person time 217 (54.2%) 20641 \n ASIAN 113 (28.2%) 10239 \n BLACK OR AFRICAN AMERICAN 48 (12.0%) 4481 \n WHITE 40 (10.0%) 4237 \n AMERICAN INDIAN OR ALASKA NATIVE 14 (3.5%) 1566 \n MULTIPLE 1 (0.2%) 58 \n NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 1 (0.2%) 60 \n OTHER 0 (0.0%) 0 \n UNKNOWN 0 (0.0%) 0 \n————————————————————————————————————————————————————————————————————————\n\n* Person time is the sum of exposure across all patients in unit: days.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadex <- random.cdisc.data::cadex\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadex <- df_explicit_na(adex)\n\n# Simulate ADEX records with PARAMCD == \"TDURD\" as they are not in the sample dataset.\nset.seed(1)\nadex2 <- adex %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE)\n ) %>%\n bind_rows(adex)\n\n# Now pre-processing steps are carried out.\nanl <- adex2 %>%\n filter(\n PARAMCD == \"TDURD\",\n PARCAT2 == \"Drug A\",\n SAFFL == \"Y\"\n ) %>%\n mutate()\n\nadsl_f <- adsl %>% filter(adsl$SAFFL == \"Y\")", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n add_overall_col(\"All Patients\") %>%\n split_rows_by(\n var = \"AVISIT\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adlb$AVISIT)\n ) %>%\n analyze_vars(vars = \"AVAL\")\n\nresult <- build_table(l,\n df = adlb,\n alt_counts_df = adsl\n)\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\nAnalysis Visit (N=134) (N=134) (N=132) (N=400) \n——————————————————————————————————————————————————————————————————————————\nBASELINE \n n 134 134 132 400 \n Mean (SD) 17.7 (9.9) 18.7 (9.8) 19.5 (9.1) 18.6 (9.6) \n Median 17.5 18.2 19.0 18.0 \n Min - Max 0.0 - 44.1 1.5 - 54.4 0.6 - 39.8 0.0 - 54.4 \nWEEK 1 DAY 8 \n n 134 134 132 400 \n Mean (SD) 16.8 (9.1) 18.9 (9.2) 19.6 (9.3) 18.4 (9.2) \n Median 16.0 18.2 19.0 18.0 \n Min - Max 0.1 - 36.3 0.7 - 39.9 0.9 - 44.7 0.1 - 44.7 \nWEEK 2 DAY 15 \n n 134 134 132 400 \n Mean (SD) 17.8 (9.6) 18.8 (9.7) 16.5 (8.2) 17.7 (9.2) \n Median 15.9 18.0 17.0 17.0 \n Min - Max 0.4 - 44.3 0.2 - 44.3 0.3 - 34.7 0.2 - 44.3 \nWEEK 3 DAY 22 \n n 134 134 132 400 \n Mean (SD) 18.4 (9.3) 17.6 (9.6) 16.8 (9.5) 17.6 (9.5) \n Median 18.1 17.7 15.1 17.2 \n Min - Max 0.6 - 41.7 0.0 - 38.6 0.5 - 39.2 0.0 - 41.7 \nWEEK 4 DAY 29 \n n 134 134 132 400 \n Mean (SD) 19.2 (11.0) 17.2 (10.6) 17.9 (9.3) 18.1 (10.3) \n Median 17.4 15.9 17.7 17.3 \n Min - Max 0.9 - 54.2 0.4 - 48.0 0.2 - 41.3 0.2 - 54.2 \nWEEK 5 DAY 36 \n n 134 134 132 400 \n Mean (SD) 19.2 (9.5) 18.0 (9.9) 18.5 (9.4) 18.6 (9.6) \n Median 19.8 18.3 19.3 19.0 \n Min - Max 0.0 - 43.4 0.1 - 40.6 0.0 - 37.5 0.0 - 43.4 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCode# Preparation of an illustrative dataset\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\nadlb_labels <- var_labels(adlb)\n\n# For illustration purposes, the example focuses on ALT\n# Measurements starting from baseline and excluding all screening visits\nadlb <- subset(adlb, AVISIT != \"SCREENING\" & PARAMCD == \"ALT\")\nadlb$AVISIT <- droplevels(adlb$AVISIT)\n\nvar_labels(adlb) <- adlb_labels\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadlb <- df_explicit_na(adlb)", "crumbs": [ "Tables", - "Risk Management Plan", - "RMPT05" + "Lab Results", + "LBT02" ] }, { - "objectID": "tables/risk-management-plan/rmpt05.html#teal-app", - "href": "tables/risk-management-plan/rmpt05.html#teal-app", - "title": "RMPT05", + "objectID": "tables/lab-results/lbt02.html#teal-app", + "href": "tables/lab-results/lbt02.html#teal-app", + "title": "LBT02", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n\n labels <- col_labels(ADEX)\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\"\n ) %>%\n bind_rows(ADEX)\n\n col_labels(ADEX) <- labels\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"RACE\", \"STRATA1\", \"SEX\")),\n selected = \"RACE\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n\n labels <- col_labels(ADEX)\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\"\n ) %>%\n bind_rows(ADEX)\n\n col_labels(ADEX) <- labels\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"RACE\", \"STRATA1\", \"SEX\")),\n selected = \"RACE\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADLB <- df_explicit_na(ADLB)\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Laboratory Test Results by Visit\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n # note: order matters here. If `PARAM` is first, the split will be first by `PARAM`and then by `AVISIT`\n choices = variable_choices(ADLB, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"PARAM\", \"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADLB, c(\"AVAL\")),\n selected = c(\"AVAL\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"ALT\"\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADLB\", \"AVAL\", selected = NULL))\n)\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADLB <- df_explicit_na(ADLB)\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Laboratory Test Results by Visit\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n # note: order matters here. If `PARAM` is first, the split will be first by `PARAM`and then by `AVISIT`\n choices = variable_choices(ADLB, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"PARAM\", \"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADLB, c(\"AVAL\")),\n selected = c(\"AVAL\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"ALT\"\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADLB\", \"AVAL\", selected = NULL))\n)\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Risk Management Plan", - "RMPT05" + "Lab Results", + "LBT02" ] }, { - "objectID": "tables/risk-management-plan/rmpt05.html#reproducibility", - "href": "tables/risk-management-plan/rmpt05.html#reproducibility", - "title": "RMPT05", + "objectID": "tables/lab-results/lbt02.html#reproducibility", + "href": "tables/lab-results/lbt02.html#reproducibility", + "title": "LBT02", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:49:12 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:43:30 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Risk Management Plan", - "RMPT05" + "Lab Results", + "LBT02" ] }, { - "objectID": "tables/lab-results/lbt12_bl.html#output", - "href": "tables/lab-results/lbt12_bl.html#output", - "title": "LBT12_BL", + "objectID": "tables/lab-results/lbt12.html#output", + "href": "tables/lab-results/lbt12.html#output", + "title": "LBT12", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table() %>%\n split_cols_by(\"TITLE\") %>%\n split_cols_by(\"APERIODC\") %>%\n split_rows_by(\"PARAM\") %>%\n split_rows_by(\"ACTARM\", split_fun = drop_split_levels, child_labels = \"hidden\") %>%\n count_occurrences(\"ARM_AVALC\", .stats = \"fraction\", denom = \"n\", drop = TRUE) %>%\n build_table(anl)\n\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n dplyr::if_else(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- result %>% trim_rows(criteria = criteria_fun)\nresult\n\n First Elevated Result Occurring During \n PERIOD 1 PERIOD 2 \n——————————————————————————————————————————————————————————————————————————————\nAST>3x Baseline \n A: Drug X 14/134 (10.4%) 8/134 (6.0%) \n B: Placebo 11/134 (8.2%) 11/134 (8.2%) \n C: Combination 15/132 (11.4%) 14/132 (10.6%) \nALT>3x Baseline \n A: Drug X 7/134 (5.2%) 20/134 (14.9%) \n B: Placebo 10/134 (7.5%) 9/134 (6.7%) \n C: Combination 12/132 (9.1%) 8/132 (6.1%) \nAST>3x Baseline or ALT>3x Baseline \n A: Drug X 8/134 (6.0%) 22/134 (16.4%) \n B: Placebo 19/134 (14.2%) 15/134 (11.2%) \n C: Combination 14/132 (10.6%) 13/132 (9.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadhy <- random.cdisc.data::cadhy\n\nanl <- adhy\nanl$APERIODC <- as.factor(anl$APERIODC) # to ensure the table is built even if there is no patients after filtering\nanl$ACTARM <- as.factor(anl$ACTARM) # to ensure the table is built even if there is no patients after filtering\n\nanl <- anl %>%\n filter(\n SAFFL == \"Y\",\n PARAMCD %in% c(\"ASTPBASE\", \"ALTPBASE\", \"ALTASTPB\") & AVISIT == \"POST-BASELINE\"\n ) %>%\n mutate(\n ARM_AVALC = factor(\n case_when(\n AVALC == \"Y\" ~ as.character(ACTARM),\n TRUE ~ \"Criteria not met\"\n ),\n levels = c(levels(anl$ACTARM), \"Criteria not met\")\n ),\n PARAM = factor(\n case_when(\n PARAMCD == \"ASTPBASE\" ~ \"AST>3x Baseline\",\n PARAMCD == \"ALTPBASE\" ~ \"ALT>3x Baseline\",\n PARAMCD == \"ALTASTPB\" ~ \"AST>3x Baseline or ALT>3x Baseline\"\n ),\n levels = c(\"AST>3x Baseline\", \"ALT>3x Baseline\", \"AST>3x Baseline or ALT>3x Baseline\")\n ),\n TITLE = factor(\"First Elevated Result Occurring During\")\n )\n\nanl <- df_explicit_na(anl)", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table() %>%\n split_cols_by(\"TITLE\") %>%\n split_cols_by(\"APERIODC\") %>%\n split_rows_by(\"PARAM\") %>%\n split_rows_by(\"ACTARM\", split_fun = drop_split_levels, child_labels = \"hidden\") %>%\n count_occurrences(\"ARM_AVALC\", .stats = \"fraction\", denom = \"n\", drop = TRUE) %>%\n build_table(anl)\n\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n dplyr::if_else(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- result %>% trim_rows(criteria = criteria_fun)\nresult\n\n First Elevated Result Occurring During \n PERIOD 1 PERIOD 2 \n——————————————————————————————————————————————————————————————————————\nAST >3x ULN \n A: Drug X 11/134 (8.2%) 21/134 (15.7%) \n B: Placebo 17/134 (12.7%) 16/134 (11.9%) \n C: Combination 10/132 (7.6%) 8/132 (6.1%) \nALT >3x ULN \n A: Drug X 14/134 (10.4%) 8/134 (6.0%) \n B: Placebo 24/134 (17.9%) 18/134 (13.4%) \n C: Combination 16/132 (12.1%) 10/132 (7.6%) \nAST >3x ULN or ALT >x3 ULN \n A: Drug X 14/134 (10.4%) 15/134 (11.2%) \n B: Placebo 8/134 (6.0%) 13/134 (9.7%) \n C: Combination 11/132 (8.3%) 12/132 (9.1%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadhy <- random.cdisc.data::cadhy\n\nanl <- adhy\nanl$APERIODC <- as.factor(anl$APERIODC) # to ensure the table is built even if there is no patients after filtering\nanl$ACTARM <- as.factor(anl$ACTARM) # to ensure the table is built even if there is no patients after filtering\n\nanl <- anl %>%\n filter(\n SAFFL == \"Y\",\n PARAMCD %in% c(\"ASTPULN\", \"ALTPULN\", \"ALTASTPU\") & AVISIT == \"POST-BASELINE\"\n ) %>%\n mutate(\n ARM_AVALC = factor(\n case_when(\n AVALC == \"Y\" ~ as.character(ACTARM),\n TRUE ~ \"Criteria not met\"\n ),\n levels = c(levels(anl$ACTARM), \"Criteria not met\")\n ),\n PARAM = factor(\n case_when(\n PARAMCD == \"ASTPULN\" ~ \"AST >3x ULN\",\n PARAMCD == \"ALTPULN\" ~ \"ALT >3x ULN\",\n PARAMCD == \"ALTASTPU\" ~ \"AST >3x ULN or ALT >x3 ULN\"\n ),\n levels = c(\"AST >3x ULN\", \"ALT >3x ULN\", \"AST >3x ULN or ALT >x3 ULN\")\n ),\n TITLE = factor(\"First Elevated Result Occurring During\")\n )\n\nanl <- df_explicit_na(anl)", + "crumbs": [ + "Tables", + "Lab Results", + "LBT12" + ] + }, + { + "objectID": "tables/lab-results/lbt12.html#reproducibility", + "href": "tables/lab-results/lbt12.html#reproducibility", + "title": "LBT12", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:43:49 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", "Lab Results", - "LBT12_BL" + "LBT12" ] }, { - "objectID": "tables/lab-results/lbt12_bl.html#reproducibility", - "href": "tables/lab-results/lbt12_bl.html#reproducibility", - "title": "LBT12_BL", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:49:32 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/lab-results/lbt03.html#output", + "href": "tables/lab-results/lbt03.html#output", + "title": "LBT03", + "section": "Output", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\nThe LBT03 template is the result of a junction between the analysis of AVAL at baseline and CHG at visit time. AVAL is summarized for baseline visits and and CHG is summarized for post-baseline visits.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_rows_by(\"AVISIT\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adlb_f$AVISIT)) %>%\n summarize_change(\n \"CHG\",\n variables = list(value = \"AVAL\", baseline_flag = \"ABLFLL\"),\n na.rm = TRUE\n )\n\nresult <- build_table(\n lyt = lyt,\n df = adlb_f,\n alt_counts_df = adsl\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\nAnalysis Visit (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————\nBASELINE \n n 134 134 132 \n Mean (SD) 9.06 (0.93) 8.99 (0.98) 8.98 (0.89) \n Median 9.07 8.92 8.96 \n Min - Max 6.21 - 11.87 6.23 - 11.63 6.24 - 11.18 \nWEEK 1 DAY 8 \n n 134 0 132 \n Mean (SD) -0.05 (1.38) NA -0.02 (1.30) \n Median -0.17 NA 0.02 \n Min - Max -3.56 - 3.48 NA -3.28 - 3.33 \nWEEK 2 DAY 15 \n n 134 134 132 \n Mean (SD) -0.19 (1.47) 0.01 (1.45) 0.15 (1.25) \n Median -0.27 -0.00 0.15 \n Min - Max -4.53 - 4.45 -3.79 - 3.43 -2.92 - 3.28 \nWEEK 3 DAY 22 \n n 134 134 132 \n Mean (SD) 0.03 (1.38) -0.02 (1.49) 0.02 (1.34) \n Median 0.15 -0.04 0.20 \n Min - Max -3.95 - 2.99 -4.28 - 4.24 -2.76 - 3.26 \nWEEK 4 DAY 29 \n n 134 134 132 \n Mean (SD) -0.26 (1.45) 0.05 (1.24) -0.01 (1.17) \n Median -0.37 0.10 -0.06 \n Min - Max -3.74 - 4.15 -3.34 - 3.71 -3.06 - 3.22 \nWEEK 5 DAY 36 \n n 134 134 132 \n Mean (SD) -0.02 (1.50) 0.07 (1.34) 0.03 (1.27) \n Median 0.01 0.15 0.05 \n Min - Max -4.15 - 3.96 -3.50 - 3.53 -3.63 - 4.78 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nIn the final step, a new variable is derived from AVISIT that can specify the method of estimation of the evaluated change.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb_f %>% mutate(AVISIT_header = recode(AVISIT,\n \"BASELINE\" = \"BASELINE\",\n \"WEEK 1 DAY 8\" = \"WEEK 1 DAY 8 value minus baseline\",\n \"WEEK 2 DAY 15\" = \"WEEK 2 DAY 15 value minus baseline\",\n \"WEEK 3 DAY 22\" = \"WEEK 3 DAY 22 value minus baseline\",\n \"WEEK 4 DAY 29\" = \"WEEK 4 DAY 29 value minus baseline\",\n \"WEEK 5 DAY 36\" = \"WEEK 5 DAY 36 value minus baseline\"\n))\n\n# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_rows_by(\"AVISIT_header\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adlb_f$AVISIT)\n ) %>%\n summarize_change(\n \"CHG\",\n variables = list(value = \"AVAL\", baseline_flag = \"ABLFLL\"),\n na.rm = TRUE\n )\n\nresult <- build_table(\n lyt = lyt,\n df = adlb_f,\n alt_counts_df = adsl\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\nAnalysis Visit (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————\nBASELINE \n n 134 134 132 \n Mean (SD) 9.06 (0.93) 8.99 (0.98) 8.98 (0.89) \n Median 9.07 8.92 8.96 \n Min - Max 6.21 - 11.87 6.23 - 11.63 6.24 - 11.18 \nWEEK 1 DAY 8 value minus baseline \n n 134 0 132 \n Mean (SD) -0.05 (1.38) NA -0.02 (1.30) \n Median -0.17 NA 0.02 \n Min - Max -3.56 - 3.48 NA -3.28 - 3.33 \nWEEK 2 DAY 15 value minus baseline \n n 134 134 132 \n Mean (SD) -0.19 (1.47) 0.01 (1.45) 0.15 (1.25) \n Median -0.27 -0.00 0.15 \n Min - Max -4.53 - 4.45 -3.79 - 3.43 -2.92 - 3.28 \nWEEK 3 DAY 22 value minus baseline \n n 134 134 132 \n Mean (SD) 0.03 (1.38) -0.02 (1.49) 0.02 (1.34) \n Median 0.15 -0.04 0.20 \n Min - Max -3.95 - 2.99 -4.28 - 4.24 -2.76 - 3.26 \nWEEK 4 DAY 29 value minus baseline \n n 134 134 132 \n Mean (SD) -0.26 (1.45) 0.05 (1.24) -0.01 (1.17) \n Median -0.37 0.10 -0.06 \n Min - Max -3.74 - 4.15 -3.34 - 3.71 -3.06 - 3.22 \nWEEK 5 DAY 36 value minus baseline \n n 134 134 132 \n Mean (SD) -0.02 (1.50) 0.07 (1.34) 0.03 (1.27) \n Median 0.01 0.15 0.05 \n Min - Max -4.15 - 3.96 -3.50 - 3.53 -3.63 - 4.78 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nFor illustration purposes, this example focuses on “C-Reactive Protein Measurement” starting from baseline, while excluding visit at week 1 for subjects who were randomized to the placebo group.\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadlb <- df_explicit_na(adlb)\n\nsaved_labels <- var_labels(adlb)\n\nadlb_f <- adlb %>%\n filter(\n PARAM == \"C-Reactive Protein Measurement\",\n !(ARM == \"B: Placebo\" & AVISIT == \"WEEK 1 DAY 8\"),\n AVISIT != \"SCREENING\"\n ) %>%\n dplyr::mutate(\n AVISIT = droplevels(AVISIT),\n ABLFLL = ABLFL == \"Y\"\n )\n\nvar_labels(adlb_f) <- c(saved_labels, \"\")", "crumbs": [ "Tables", "Lab Results", - "LBT12_BL" + "LBT03" ] }, { - "objectID": "tables/lab-results/lbt06.html#output", - "href": "tables/lab-results/lbt06.html#output", - "title": "LBT06", - "section": "Output", - "text": "Output\n\n\nStandard Table for Single Lab Test\nStandard Table for Multiple Lab Tests\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_rows_by(\"AVISIT\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adlb_f_crp$AVISIT)) %>%\n count_abnormal_by_baseline(\n \"ANRIND\",\n abnormal = c(Low = \"LOW\", High = \"HIGH\"),\n .indent_mods = 4L\n ) %>%\n append_varlabels(adlb_f_crp, \"ANRIND\", indent = 1L) %>%\n append_topleft(\" Baseline Status\")\n\nresult <- build_table(\n lyt = lyt,\n df = adlb_f_crp,\n alt_counts_df = adsl\n) %>%\n trim_rows()\n\nresult\n\nVisit \n Analysis Reference Range Indicator A: Drug X B: Placebo C: Combination\n Baseline Status (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————\nWEEK 1 DAY 8 \n Low \n Not low 16/119 (13.4%) 22/113 (19.5%) 24/112 (21.4%)\n Low 2/15 (13.3%) 2/21 (9.5%) 7/20 (35%) \n Total 18/134 (13.4%) 24/134 (17.9%) 31/132 (23.5%)\n High \n Not high 21/114 (18.4%) 20/112 (17.9%) 17/115 (14.8%)\n High 2/20 (10%) 4/22 (18.2%) 3/17 (17.6%) \n Total 23/134 (17.2%) 24/134 (17.9%) 20/132 (15.2%)\nWEEK 2 DAY 15 \n Low \n Not low 26/119 (21.8%) 20/113 (17.7%) 12/112 (10.7%)\n Low 2/15 (13.3%) 3/21 (14.3%) 4/20 (20%) \n Total 28/134 (20.9%) 23/134 (17.2%) 16/132 (12.1%)\n High \n Not high 15/114 (13.2%) 17/112 (15.2%) 15/115 (13%) \n High 2/20 (10%) 4/22 (18.2%) 4/17 (23.5%) \n Total 17/134 (12.7%) 21/134 (15.7%) 19/132 (14.4%)\nWEEK 3 DAY 22 \n Low \n Not low 15/119 (12.6%) 21/113 (18.6%) 18/112 (16.1%)\n Low 0/15 3/21 (14.3%) 0/20 \n Total 15/134 (11.2%) 24/134 (17.9%) 18/132 (13.6%)\n High \n Not high 22/114 (19.3%) 18/112 (16.1%) 17/115 (14.8%)\n High 2/20 (10%) 5/22 (22.7%) 1/17 (5.9%) \n Total 24/134 (17.9%) 23/134 (17.2%) 18/132 (13.6%)\nWEEK 4 DAY 29 \n Low \n Not low 30/119 (25.2%) 13/113 (11.5%) 16/112 (14.3%)\n Low 3/15 (20%) 2/21 (9.5%) 5/20 (25%) \n Total 33/134 (24.6%) 15/134 (11.2%) 21/132 (15.9%)\n High \n Not high 17/114 (14.9%) 11/112 (9.8%) 16/115 (13.9%)\n High 2/20 (10%) 6/22 (27.3%) 3/17 (17.6%) \n Total 19/134 (14.2%) 17/134 (12.7%) 19/132 (14.4%)\nWEEK 5 DAY 36 \n Low \n Not low 17/119 (14.3%) 19/113 (16.8%) 16/112 (14.3%)\n Low 2/15 (13.3%) 3/21 (14.3%) 5/20 (25%) \n Total 19/134 (14.2%) 22/134 (16.4%) 21/132 (15.9%)\n High \n Not high 19/114 (16.7%) 17/112 (15.2%) 11/115 (9.6%) \n High 4/20 (20%) 6/22 (27.3%) 2/17 (11.8%) \n Total 23/134 (17.2%) 23/134 (17.2%) 13/132 (9.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# The following code generates one large table for multiple lab tests.\n# If separate tables are needed for each lab test per GDSR standard, use the code for \"single lab test\".\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_rows_by(\"PARAM\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adlb_f$PARAM)) %>%\n split_rows_by(\"AVISIT\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adlb_f$AVISIT)) %>%\n count_abnormal_by_baseline(\n \"ANRIND\",\n abnormal = c(Low = \"LOW\", High = \"HIGH\"),\n .indent_mods = 4L\n ) %>%\n append_varlabels(adlb_f, \"ANRIND\", indent = 2L) %>%\n append_topleft(\" Baseline Status\")\n\nresult <- build_table(\n lyt = lyt,\n df = adlb_f,\n alt_counts_df = adsl\n) %>%\n trim_rows()\n\nresult\n\nParameter \n Visit \n Analysis Reference Range Indicator A: Drug X B: Placebo C: Combination\n Baseline Status (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————\nAlanine Aminotransferase Measurement \n WEEK 1 DAY 8 \n Low \n Not low 19/113 (16.8%) 13/117 (11.1%) 14/123 (11.4%)\n Low 2/21 (9.5%) 1/17 (5.9%) 1/9 (11.1%) \n Total 21/134 (15.7%) 14/134 (10.4%) 15/132 (11.4%)\n High \n Not high 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n WEEK 2 DAY 15 \n Low \n Not low 17/113 (15%) 13/117 (11.1%) 13/123 (10.6%)\n Low 2/21 (9.5%) 2/17 (11.8%) 4/9 (44.4%) \n Total 19/134 (14.2%) 15/134 (11.2%) 17/132 (12.9%)\n High \n Not high 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n WEEK 3 DAY 22 \n Low \n Not low 10/113 (8.8%) 20/117 (17.1%) 21/123 (17.1%)\n Low 4/21 (19%) 4/17 (23.5%) 2/9 (22.2%) \n Total 14/134 (10.4%) 24/134 (17.9%) 23/132 (17.4%)\n High \n Not high 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n WEEK 4 DAY 29 \n Low \n Not low 15/113 (13.3%) 19/117 (16.2%) 18/123 (14.6%)\n Low 2/21 (9.5%) 3/17 (17.6%) 1/9 (11.1%) \n Total 17/134 (12.7%) 22/134 (16.4%) 19/132 (14.4%)\n High \n Not high 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n WEEK 5 DAY 36 \n Low \n Not low 17/113 (15%) 23/117 (19.7%) 18/123 (14.6%)\n Low 0/21 1/17 (5.9%) 1/9 (11.1%) \n Total 17/134 (12.7%) 24/134 (17.9%) 19/132 (14.4%)\n High \n Not high 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \nC-Reactive Protein Measurement \n WEEK 1 DAY 8 \n Low \n Not low 16/119 (13.4%) 22/113 (19.5%) 24/112 (21.4%)\n Low 2/15 (13.3%) 2/21 (9.5%) 7/20 (35%) \n Total 18/134 (13.4%) 24/134 (17.9%) 31/132 (23.5%)\n High \n Not high 21/114 (18.4%) 20/112 (17.9%) 17/115 (14.8%)\n High 2/20 (10%) 4/22 (18.2%) 3/17 (17.6%) \n Total 23/134 (17.2%) 24/134 (17.9%) 20/132 (15.2%)\n WEEK 2 DAY 15 \n Low \n Not low 26/119 (21.8%) 20/113 (17.7%) 12/112 (10.7%)\n Low 2/15 (13.3%) 3/21 (14.3%) 4/20 (20%) \n Total 28/134 (20.9%) 23/134 (17.2%) 16/132 (12.1%)\n High \n Not high 15/114 (13.2%) 17/112 (15.2%) 15/115 (13%) \n High 2/20 (10%) 4/22 (18.2%) 4/17 (23.5%) \n Total 17/134 (12.7%) 21/134 (15.7%) 19/132 (14.4%)\n WEEK 3 DAY 22 \n Low \n Not low 15/119 (12.6%) 21/113 (18.6%) 18/112 (16.1%)\n Low 0/15 3/21 (14.3%) 0/20 \n Total 15/134 (11.2%) 24/134 (17.9%) 18/132 (13.6%)\n High \n Not high 22/114 (19.3%) 18/112 (16.1%) 17/115 (14.8%)\n High 2/20 (10%) 5/22 (22.7%) 1/17 (5.9%) \n Total 24/134 (17.9%) 23/134 (17.2%) 18/132 (13.6%)\n WEEK 4 DAY 29 \n Low \n Not low 30/119 (25.2%) 13/113 (11.5%) 16/112 (14.3%)\n Low 3/15 (20%) 2/21 (9.5%) 5/20 (25%) \n Total 33/134 (24.6%) 15/134 (11.2%) 21/132 (15.9%)\n High \n Not high 17/114 (14.9%) 11/112 (9.8%) 16/115 (13.9%)\n High 2/20 (10%) 6/22 (27.3%) 3/17 (17.6%) \n Total 19/134 (14.2%) 17/134 (12.7%) 19/132 (14.4%)\n WEEK 5 DAY 36 \n Low \n Not low 17/119 (14.3%) 19/113 (16.8%) 16/112 (14.3%)\n Low 2/15 (13.3%) 3/21 (14.3%) 5/20 (25%) \n Total 19/134 (14.2%) 22/134 (16.4%) 21/132 (15.9%)\n High \n Not high 19/114 (16.7%) 17/112 (15.2%) 11/115 (9.6%) \n High 4/20 (20%) 6/22 (27.3%) 2/17 (11.8%) \n Total 23/134 (17.2%) 23/134 (17.2%) 13/132 (9.8%) \nImmunoglobulin A Measurement \n WEEK 1 DAY 8 \n Low \n Not low 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n High \n Not high 18/119 (15.1%) 20/116 (17.2%) 14/113 (12.4%)\n High 1/15 (6.7%) 5/18 (27.8%) 4/19 (21.1%) \n Total 19/134 (14.2%) 25/134 (18.7%) 18/132 (13.6%)\n WEEK 2 DAY 15 \n Low \n Not low 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n High \n Not high 16/119 (13.4%) 13/116 (11.2%) 12/113 (10.6%)\n High 1/15 (6.7%) 1/18 (5.6%) 2/19 (10.5%) \n Total 17/134 (12.7%) 14/134 (10.4%) 14/132 (10.6%)\n WEEK 3 DAY 22 \n Low \n Not low 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n High \n Not high 17/119 (14.3%) 15/116 (12.9%) 21/113 (18.6%)\n High 0/15 1/18 (5.6%) 1/19 (5.3%) \n Total 17/134 (12.7%) 16/134 (11.9%) 22/132 (16.7%)\n WEEK 4 DAY 29 \n Low \n Not low 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n High \n Not high 19/119 (16%) 16/116 (13.8%) 19/113 (16.8%)\n High 4/15 (26.7%) 5/18 (27.8%) 3/19 (15.8%) \n Total 23/134 (17.2%) 21/134 (15.7%) 22/132 (16.7%)\n WEEK 5 DAY 36 \n Low \n Not low 0/134 0/134 0/132 \n Total 0/134 0/134 0/132 \n High \n Not high 16/119 (13.4%) 21/116 (18.1%) 20/113 (17.7%)\n High 1/15 (6.7%) 3/18 (16.7%) 0/19 \n Total 17/134 (12.7%) 24/134 (17.9%) 20/132 (15.2%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadlb <- df_explicit_na(adlb)\n# Please note that df_explict_na has a na_level argument defaulting to \"<Missing>\",\n# Please don't change the na_level to anything other than NA, empty string or the default \"<Missing>\".\n\nadlb_f <- adlb %>%\n dplyr::filter(ABLFL != \"Y\") %>%\n dplyr::filter(!(AVISIT %in% c(\"SCREENING\", \"BASELINE\"))) %>%\n dplyr::mutate(AVISIT = droplevels(AVISIT)) %>%\n var_relabel(AVISIT = \"Visit\")\n\nadlb_f_crp <- adlb_f %>% dplyr::filter(PARAMCD == \"CRP\")", + "objectID": "tables/lab-results/lbt03.html#teal-app", + "href": "tables/lab-results/lbt03.html#teal-app", + "title": "LBT03", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\nHere, we pre-process and manually define the variable “Baseline or Absolute Change from Baseline”.\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- df_explicit_na(random.cdisc.data::cadsl)\n ADLB <- df_explicit_na(random.cdisc.data::cadlb) %>%\n filter(\n !(ARM == \"B: Placebo\" & AVISIT == \"WEEK 1 DAY 8\"),\n AVISIT != \"SCREENING\"\n ) %>%\n mutate(\n AVISIT = droplevels(AVISIT),\n ABLFLL = ABLFL == \"Y\",\n AVISIT_header = recode(AVISIT,\n \"BASELINE\" = \"BASELINE\",\n \"WEEK 1 DAY 8\" = \"WEEK 1 DAY 8 value minus baseline\",\n \"WEEK 2 DAY 15\" = \"WEEK 2 DAY 15 value minus baseline\",\n \"WEEK 3 DAY 22\" = \"WEEK 3 DAY 22 value minus baseline\",\n \"WEEK 4 DAY 29\" = \"WEEK 4 DAY 29 value minus baseline\",\n \"WEEK 5 DAY 36\" = \"WEEK 5 DAY 36 value minus baseline\"\n )\n ) %>%\n group_by(USUBJID, PARAM) %>%\n mutate(\n AVAL_CHG = AVAL - (!ABLFLL) * sum(AVAL * ABLFLL)\n ) %>%\n ungroup() %>%\n col_relabel(\n AVAL_CHG = \"Baseline or Absolute Change from Baseline\",\n ABLFLL = \"Baseline Flag (TRUE/FALSE)\",\n AVISIT_header = \"Analysis Visit\"\n )\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Laboratory Test Results Change from Baseline by Visit\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n # note: order matters here. If `PARAM` is first, the split will be first by `PARAM`and then by `AVISIT`\n choices = variable_choices(ADLB, c(\"PARAM\", \"AVISIT_header\")),\n selected = c(\"PARAM\", \"AVISIT_header\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADLB, c(\"AVAL\", \"CHG\", \"AVAL_CHG\")),\n selected = c(\"AVAL_CHG\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"CRP\"\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADLB\", \"AVAL\", selected = NULL))\n)\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- df_explicit_na(random.cdisc.data::cadsl)\n ADLB <- df_explicit_na(random.cdisc.data::cadlb) %>%\n filter(\n !(ARM == \"B: Placebo\" & AVISIT == \"WEEK 1 DAY 8\"),\n AVISIT != \"SCREENING\"\n ) %>%\n mutate(\n AVISIT = droplevels(AVISIT),\n ABLFLL = ABLFL == \"Y\",\n AVISIT_header = recode(AVISIT,\n \"BASELINE\" = \"BASELINE\",\n \"WEEK 1 DAY 8\" = \"WEEK 1 DAY 8 value minus baseline\",\n \"WEEK 2 DAY 15\" = \"WEEK 2 DAY 15 value minus baseline\",\n \"WEEK 3 DAY 22\" = \"WEEK 3 DAY 22 value minus baseline\",\n \"WEEK 4 DAY 29\" = \"WEEK 4 DAY 29 value minus baseline\",\n \"WEEK 5 DAY 36\" = \"WEEK 5 DAY 36 value minus baseline\"\n )\n ) %>%\n group_by(USUBJID, PARAM) %>%\n mutate(\n AVAL_CHG = AVAL - (!ABLFLL) * sum(AVAL * ABLFLL)\n ) %>%\n ungroup() %>%\n col_relabel(\n AVAL_CHG = \"Baseline or Absolute Change from Baseline\",\n ABLFLL = \"Baseline Flag (TRUE/FALSE)\",\n AVISIT_header = \"Analysis Visit\"\n )\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Laboratory Test Results Change from Baseline by Visit\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n # note: order matters here. If `PARAM` is first, the split will be first by `PARAM`and then by `AVISIT`\n choices = variable_choices(ADLB, c(\"PARAM\", \"AVISIT_header\")),\n selected = c(\"PARAM\", \"AVISIT_header\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADLB, c(\"AVAL\", \"CHG\", \"AVAL_CHG\")),\n selected = c(\"AVAL_CHG\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"CRP\"\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADLB\", \"AVAL\", selected = NULL))\n)\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", "Lab Results", - "LBT06" + "LBT03" ] }, { - "objectID": "tables/lab-results/lbt06.html#reproducibility", - "href": "tables/lab-results/lbt06.html#reproducibility", - "title": "LBT06", + "objectID": "tables/lab-results/lbt03.html#reproducibility", + "href": "tables/lab-results/lbt03.html#reproducibility", + "title": "LBT03", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:50:03 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:44:32 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", "Lab Results", - "LBT06" + "LBT03" ] }, { @@ -3024,7 +2957,7 @@ "href": "tables/lab-results/lbt05.html#reproducibility", "title": "LBT05", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:50:32 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:44:51 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", "Lab Results", @@ -3032,39 +2965,39 @@ ] }, { - "objectID": "tables/lab-results/lbt07.html#output", - "href": "tables/lab-results/lbt07.html#output", - "title": "LBT07", + "objectID": "tables/lab-results/lbt15.html#output", + "href": "tables/lab-results/lbt15.html#output", + "title": "LBT15", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n label_pos = \"topleft\",\n split_label = obj_label(adlb_f$PARAM)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n required = \"ATOXGR\",\n .stats = \"unique_count\"\n ) %>%\n split_rows_by(\n \"GRADE_DIR\",\n label_pos = \"topleft\",\n split_label = obj_label(adlb_f$GRADE_DIR),\n split_fun = trim_levels_to_map(map)\n ) %>%\n count_abnormal_by_worst_grade(\n var = \"GRADE_ANL\",\n variables = list(id = \"USUBJID\", param = \"PARAM\", grade_dir = \"GRADE_DIR\"),\n .indent_mods = 4L\n ) %>%\n append_topleft(\" Highest NCI CTCAE Grade\")\n\nresult <- build_table(lyt = lyt, df = adlb_f, alt_counts_df = adsl)\nresult <- result %>% prune_table()\n\nresult\n\nParameter \n Direction of Abnormality A: Drug X B: Placebo C: Combination\n Highest NCI CTCAE Grade (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————\nAlanine Aminotransferase Measurement (n) 134 134 132 \n LOW \n 1 15 (11.2%) 11 (8.2%) 15 (11.4%) \n 2 18 (13.4%) 24 (17.9%) 17 (12.9%) \n 3 16 (11.9%) 24 (17.9%) 16 (12.1%) \n 4 17 (12.7%) 10 (7.5%) 18 (13.6%) \n Any 66 (49.3%) 69 (51.5%) 66 (50%) \nC-Reactive Protein Measurement (n) 134 134 132 \n LOW \n 1 21 (15.7%) 22 (16.4%) 12 (9.1%) \n 2 24 (17.9%) 22 (16.4%) 18 (13.6%) \n 3 29 (21.6%) 21 (15.7%) 25 (18.9%) \n 4 10 (7.5%) 16 (11.9%) 22 (16.7%) \n Any 84 (62.7%) 81 (60.4%) 77 (58.3%) \n HIGH \n 1 20 (14.9%) 22 (16.4%) 22 (16.7%) \n 2 21 (15.7%) 15 (11.2%) 14 (10.6%) \n 3 25 (18.7%) 16 (11.9%) 20 (15.2%) \n 4 13 (9.7%) 20 (14.9%) 11 (8.3%) \n Any 79 (59%) 73 (54.5%) 67 (50.8%) \nImmunoglobulin A Measurement (n) 134 134 132 \n HIGH \n 1 19 (14.2%) 12 (9%) 18 (13.6%) \n 2 17 (12.7%) 24 (17.9%) 19 (14.4%) \n 3 21 (15.7%) 23 (17.2%) 23 (17.4%) \n 4 13 (9.7%) 13 (9.7%) 9 (6.8%) \n Any 70 (52.2%) 72 (53.7%) 69 (52.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(forcats)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\nadlb_labels <- var_labels(adlb)\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadlb <- df_explicit_na(adlb)\n\n# Select worst post-baseline records.\nadlb_f <- adlb %>%\n filter(ATOXGR != \"<Missing>\") %>%\n filter(ONTRTFL == \"Y\") %>%\n filter(WGRLOFL == \"Y\" | WGRHIFL == \"Y\")\n\nvar_labels(adlb_f) <- adlb_labels\n\n# Derive GRADE_DIR and GRADE_ANL to use in layout from ATOXGR\nadlb_f <- adlb_f %>%\n mutate(\n GRADE_DIR = factor(\n case_when(\n ATOXGR %in% c(\"-1\", \"-2\", \"-3\", \"-4\") & .data$WGRLOFL == \"Y\" ~ \"LOW\",\n ATOXGR == \"0\" ~ \"ZERO\",\n ATOXGR %in% c(\"1\", \"2\", \"3\", \"4\") & .data$WGRHIFL == \"Y\" ~ \"HIGH\",\n TRUE ~ \"NONE\"\n ),\n levels = c(\"LOW\", \"ZERO\", \"HIGH\", \"NONE\")\n ),\n GRADE_ANL = forcats::fct_relevel(\n forcats::fct_recode(ATOXGR,\n `1` = \"-1\", `2` = \"-2\", `3` = \"-3\", `4` = \"-4\"\n ),\n c(\"0\", \"1\", \"2\", \"3\", \"4\")\n )\n ) %>%\n var_relabel(\n GRADE_DIR = \"Direction of Abnormality\",\n GRADE_ANL = \"Analysis Grade\"\n )\n\n# Construct analysis map\nmap <- expand.grid(\n PARAM = levels(adlb$PARAM),\n GRADE_DIR = c(\"LOW\", \"HIGH\"),\n GRADE_ANL = as.character(1:4),\n stringsAsFactors = FALSE\n) %>%\n arrange(PARAM, desc(GRADE_DIR), GRADE_ANL)", + "text": "Output\n\n\nStandard Table\nTable Modifying Cut Point\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Argument exclude_base_abn must be TRUE to include patients with normal or abnormal in the opposite\n# direction in the denom.\n# So for \"High\" direction, subjects with baseline grade 3-4 are not in the denom.\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n add_overall_col(\"All Patients\") %>%\n split_rows_by(\n \"PARCAT1\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb$PARCAT1)\n ) %>%\n split_rows_by(\n \"PARAM\",\n split_fun = drop_split_levels, label_pos = \"topleft\", split_label = obj_label(adlb$PARAM)\n ) %>%\n count_abnormal(\n var = \"ANRIND\",\n abnormal = list(Low = \"LOW\", High = \"HIGH\"),\n variables = list(id = \"USUBJID\", baseline = \"BNRIND\"),\n exclude_base_abn = TRUE,\n .indent_mods = 4L\n ) %>%\n append_topleft(\" Direction of Abnormality\")\n\nresult <- build_table(lyt, adlb, alt_counts_df = adsl)\nresult\n\nCategory for Lab Test \n Parameter A: Drug X B: Placebo C: Combination All Patients \n Direction of Abnormality (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————\nCHEMISTRY \n Alanine Aminotransferase Measurement \n Low 32/127 (25.2%) 32/128 (25%) 32/128 (25%) 96/383 (25.1%) \n High 0/134 0/134 0/132 0/400 \n C-Reactive Protein Measurement \n Low 36/127 (28.3%) 36/127 (28.3%) 42/123 (34.1%) 114/377 (30.2%)\n High 34/124 (27.4%) 33/128 (25.8%) 31/129 (24%) 98/381 (25.7%) \nIMMUNOLOGY \n Immunoglobulin A Measurement \n Low 0/134 0/134 0/132 0/400 \n High 33/128 (25.8%) 32/124 (25.8%) 28/120 (23.3%) 93/372 (25%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- build_table(lyt, adlb_alt_cut, alt_counts_df = adsl)\nresult\n\nCategory for Lab Test \n Parameter A: Drug X B: Placebo C: Combination All Patients \n Direction of Abnormality (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————\nCHEMISTRY \n Alanine Aminotransferase Measurement \n Low 46/119 (38.7%) 54/123 (43.9%) 47/127 (37%) 147/369 (39.8%)\n High 0/134 0/134 0/132 0/400 \n C-Reactive Protein Measurement \n Low 59/122 (48.4%) 56/118 (47.5%) 58/121 (47.9%) 173/361 (47.9%)\n High 54/122 (44.3%) 46/122 (37.7%) 44/122 (36.1%) 144/366 (39.3%)\nIMMUNOLOGY \n Immunoglobulin A Measurement \n Low 0/134 0/134 0/132 0/400 \n High 47/124 (37.9%) 54/120 (45%) 47/115 (40.9%) 148/359 (41.2%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nBecause the random.cdisc.data dataset adlb doesn’t have the PARCAT1 variable, this variable is created from LBCAT in pre-processing.\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(forcats)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\nadlb <- adlb %>%\n mutate(\n PARAM = with_label(.data$PARAM, \"Laboratory Test\"),\n ANRIND = with_label(.data$ANRIND, \"Direction of Abnormality\")\n ) %>%\n mutate(\n PARCAT1 = LBCAT\n ) %>%\n mutate(\n ANRIND = fct_collapse(.data$ATOXGR,\n \"LOW\" = c(\"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-2\", \"-1\", \"0\", \"1\", \"2\"),\n \"HIGH\" = c(\"3\", \"4\")\n ),\n BNRIND = fct_collapse(.data$BTOXGR,\n \"LOW\" = c(\"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-2\", \"-1\", \"0\", \"1\", \"2\"),\n \"HIGH\" = c(\"3\", \"4\")\n ),\n PARCAT1 = LBCAT\n ) %>%\n filter(ONTRTFL == \"Y\")\n\n\nadlb_alt_cut <- adlb %>%\n mutate(\n ANRIND = fct_collapse(.data$ATOXGR,\n \"LOW\" = c(\"-2\", \"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-1\", \"0\", \"1\"),\n \"HIGH\" = c(\"2\", \"3\", \"4\")\n ),\n BNRIND = fct_collapse(.data$BTOXGR,\n \"LOW\" = c(\"-2\", \"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-1\", \"0\", \"1\"),\n \"HIGH\" = c(\"2\", \"3\", \"4\")\n )\n ) %>%\n filter(ONTRTFL == \"Y\")\n\nadlb <- adlb %>% var_relabel(\n PARCAT1 = \"Category for Lab Test\",\n PARAM = \"Parameter\"\n)", "crumbs": [ "Tables", "Lab Results", - "LBT07" + "LBT15" ] }, { - "objectID": "tables/lab-results/lbt07.html#teal-app", - "href": "tables/lab-results/lbt07.html#teal-app", - "title": "LBT07", + "objectID": "tables/lab-results/lbt15.html#teal-app", + "href": "tables/lab-results/lbt15.html#teal-app", + "title": "LBT15", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb %>%\n filter(!AVISIT %in% c(\"SCREENING\", \"BASELINE\"))\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality_by_worst_grade(\n label = \"Laboratory Test Results with Highest Grade Post-Baseline\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = c(\"ALT\", \"CRP\", \"IGA\")\n ),\n add_total = FALSE\n )\n ),\n filter = (\n teal_slices(\n teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"),\n teal_slice(\"ADLB\", \"ONTRTFL\", selected = \"Y\")\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb %>%\n filter(!AVISIT %in% c(\"SCREENING\", \"BASELINE\"))\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality_by_worst_grade(\n label = \"Laboratory Test Results with Highest Grade Post-Baseline\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = c(\"ALT\", \"CRP\", \"IGA\")\n ),\n add_total = FALSE\n )\n ),\n filter = (\n teal_slices(\n teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"),\n teal_slice(\"ADLB\", \"ONTRTFL\", selected = \"Y\")\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\nThe current module tm_t_abnormality is only displaying rows that are not all-zero, so the result could be a little different from static output where all-zero rows can be shown.\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n library(forcats)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb %>%\n mutate(\n ANRIND = fct_collapse(ATOXGR,\n \"LOW\" = c(\"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-2\", \"-1\", \"0\", \"1\", \"2\"),\n \"HIGH\" = c(\"3\", \"4\")\n ),\n BNRIND = fct_collapse(.data$BTOXGR,\n \"LOW\" = c(\"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-2\", \"-1\", \"0\", \"1\", \"2\"),\n \"HIGH\" = c(\"3\", \"4\")\n )\n ) %>%\n filter(ONTRTFL == \"Y\") %>%\n col_relabel(ANRIND = \"Direction of Abnormality\")\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality(\n label = \"Abnormality Table\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"PARAM\")),\n selected = c(\"PARAM\"),\n keep_order = TRUE\n ),\n grade = choices_selected(\n choices = variable_choices(ADLB, subset = \"ANRIND\"),\n selected = \"ANRIND\",\n fixed = TRUE\n ),\n baseline_var = choices_selected(\n choices = variable_choices(ADLB, subset = \"BNRIND\"),\n selected = \"BNRIND\",\n fixed = TRUE\n ),\n abnormal = list(Low = \"LOW\", High = \"HIGH\"),\n exclude_base_abn = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n library(forcats)\n\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb %>%\n mutate(\n ANRIND = fct_collapse(ATOXGR,\n \"LOW\" = c(\"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-2\", \"-1\", \"0\", \"1\", \"2\"),\n \"HIGH\" = c(\"3\", \"4\")\n ),\n BNRIND = fct_collapse(.data$BTOXGR,\n \"LOW\" = c(\"-3\", \"-4\"),\n \"MODERATE/NORMAL\" = c(\"-2\", \"-1\", \"0\", \"1\", \"2\"),\n \"HIGH\" = c(\"3\", \"4\")\n )\n ) %>%\n filter(ONTRTFL == \"Y\") %>%\n col_relabel(ANRIND = \"Direction of Abnormality\")\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality(\n label = \"Abnormality Table\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"PARAM\")),\n selected = c(\"PARAM\"),\n keep_order = TRUE\n ),\n grade = choices_selected(\n choices = variable_choices(ADLB, subset = \"ANRIND\"),\n selected = \"ANRIND\",\n fixed = TRUE\n ),\n baseline_var = choices_selected(\n choices = variable_choices(ADLB, subset = \"BNRIND\"),\n selected = \"BNRIND\",\n fixed = TRUE\n ),\n abnormal = list(Low = \"LOW\", High = \"HIGH\"),\n exclude_base_abn = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", "Lab Results", - "LBT07" + "LBT15" ] }, { - "objectID": "tables/lab-results/lbt07.html#reproducibility", - "href": "tables/lab-results/lbt07.html#reproducibility", - "title": "LBT07", + "objectID": "tables/lab-results/lbt15.html#reproducibility", + "href": "tables/lab-results/lbt15.html#reproducibility", + "title": "LBT15", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:51:10 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats * 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:45:13 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats * 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", "Lab Results", - "LBT07" + "LBT15" ] }, { @@ -3096,7 +3029,7 @@ "href": "tables/lab-results/lbt04.html#reproducibility", "title": "LBT04", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:51:52 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:45:52 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", "Lab Results", @@ -3104,195 +3037,315 @@ ] }, { - "objectID": "tables/lab-results/lbt02.html#output", - "href": "tables/lab-results/lbt02.html#output", - "title": "LBT02", + "objectID": "tables/lab-results/lbt10_bl.html#output", + "href": "tables/lab-results/lbt10_bl.html#output", + "title": "LBT10_BL", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n add_overall_col(\"All Patients\") %>%\n split_rows_by(\n var = \"AVISIT\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adlb$AVISIT)\n ) %>%\n analyze_vars(vars = \"AVAL\")\n\nresult <- build_table(l,\n df = adlb,\n alt_counts_df = adsl\n)\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\nAnalysis Visit (N=134) (N=134) (N=132) (N=400) \n——————————————————————————————————————————————————————————————————————————\nBASELINE \n n 134 134 132 400 \n Mean (SD) 17.7 (9.9) 18.7 (9.8) 19.5 (9.1) 18.6 (9.6) \n Median 17.5 18.2 19.0 18.0 \n Min - Max 0.0 - 44.1 1.5 - 54.4 0.6 - 39.8 0.0 - 54.4 \nWEEK 1 DAY 8 \n n 134 134 132 400 \n Mean (SD) 16.8 (9.1) 18.9 (9.2) 19.6 (9.3) 18.4 (9.2) \n Median 16.0 18.2 19.0 18.0 \n Min - Max 0.1 - 36.3 0.7 - 39.9 0.9 - 44.7 0.1 - 44.7 \nWEEK 2 DAY 15 \n n 134 134 132 400 \n Mean (SD) 17.8 (9.6) 18.8 (9.7) 16.5 (8.2) 17.7 (9.2) \n Median 15.9 18.0 17.0 17.0 \n Min - Max 0.4 - 44.3 0.2 - 44.3 0.3 - 34.7 0.2 - 44.3 \nWEEK 3 DAY 22 \n n 134 134 132 400 \n Mean (SD) 18.4 (9.3) 17.6 (9.6) 16.8 (9.5) 17.6 (9.5) \n Median 18.1 17.7 15.1 17.2 \n Min - Max 0.6 - 41.7 0.0 - 38.6 0.5 - 39.2 0.0 - 41.7 \nWEEK 4 DAY 29 \n n 134 134 132 400 \n Mean (SD) 19.2 (11.0) 17.2 (10.6) 17.9 (9.3) 18.1 (10.3) \n Median 17.4 15.9 17.7 17.3 \n Min - Max 0.9 - 54.2 0.4 - 48.0 0.2 - 41.3 0.2 - 54.2 \nWEEK 5 DAY 36 \n n 134 134 132 400 \n Mean (SD) 19.2 (9.5) 18.0 (9.9) 18.5 (9.4) 18.6 (9.6) \n Median 19.8 18.3 19.3 19.0 \n Min - Max 0.0 - 43.4 0.1 - 40.6 0.0 - 37.5 0.0 - 43.4 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCode# Preparation of an illustrative dataset\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\nadlb_labels <- var_labels(adlb)\n\n# For illustration purposes, the example focuses on ALT\n# Measurements starting from baseline and excluding all screening visits\nadlb <- subset(adlb, AVISIT != \"SCREENING\" & PARAMCD == \"ALT\")\nadlb$AVISIT <- droplevels(adlb$AVISIT)\n\nvar_labels(adlb) <- adlb_labels\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadlb <- df_explicit_na(adlb)", + "text": "Output\n\n\nStandard Table\nTable Selecting Sections\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodetbl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n split_rows_by(\"PARAMCAT\") %>%\n split_rows_by(\"PARAM\", split_fun = drop_split_levels, child_labels = \"hidden\") %>%\n count_occurrences(\n vars = \"AVALC_FORMAT\",\n .stats = c(\"fraction\"),\n denom = \"n\",\n drop = TRUE\n ) %>%\n build_table(anl, alt_counts_df = adsl)\n\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n ifelse(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- tbl %>% trim_rows(criteria = criteria_fun)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————\nTotal Bilirubin <= 2xULN \n ALT >3xULN at 2 Visits 25/134 (18.7%) 20/134 (14.9%) 27/132 (20.5%)\n AST >3xULN at 2 Visits 22/134 (16.4%) 14/134 (10.4%) 37/132 (28.0%)\nTotal Bilirubin > 2xULN \n ALT >3xULN at 2 Visits 26/134 (19.4%) 31/134 (23.1%) 23/132 (17.4%)\n AST >3xULN at 2 Visits 30/134 (22.4%) 27/134 (20.1%) 26/132 (19.7%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodetbl2 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n split_rows_by(\"PARAMCAT\", split_fun = remove_split_levels(\"Total Bilirubin > 2xULN\")) %>%\n split_rows_by(\"PARAM\", split_fun = drop_split_levels, child_labels = \"hidden\") %>%\n count_occurrences(\n vars = \"AVALC_FORMAT\",\n .stats = c(\"fraction\"),\n denom = \"n\",\n drop = TRUE\n ) %>%\n build_table(anl, alt_counts_df = adsl)\n\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n ifelse(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- tbl2 %>% trim_rows(criteria = criteria_fun)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————\nTotal Bilirubin <= 2xULN \n ALT >3xULN at 2 Visits 25/134 (18.7%) 20/134 (14.9%) 27/132 (20.5%)\n AST >3xULN at 2 Visits 22/134 (16.4%) 14/134 (10.4%) 37/132 (28.0%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadhy <- random.cdisc.data::cadhy\n\nadhy_liver <- adhy %>%\n filter(PARAMCD %in% c(\n \"BL2AL2CB\", \"BL2AS2CB\", \"BG2AL2CB\", \"BG2AS2CB\", \"B2A2L2CB\", \"B2A2S2CB\", \"B2A5L2CB\", \"B2A5S2CB\"\n )) %>%\n mutate(PARAMCAT = case_when(\n PARAMCD %in% c(\"BL2AL2CB\", \"BL2AS2CB\") ~ \"Total Bilirubin <= 2xULN\",\n PARAMCD %in% c(\"BG2AL2CB\", \"BG2AS2CB\") ~ \"Total Bilirubin > 2xULN\",\n PARAMCD %in% c(\"B2A2L2CB\", \"B2A2S2CB\") ~ \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 2xULN\",\n PARAMCD %in% c(\"B2A5L2CB\", \"B2A5S2CB\") ~ \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 5xULN\"\n )) %>%\n mutate(AVALC_FORMAT = case_when(\n PARAMCD %in% c(\"BL2AL2CB\", \"BG2AL2CB\", \"B2A2L2CB\", \"B2A5L2CB\") & AVALC == \"Y\" ~ \"ALT >3xULN at 2 Visits\",\n PARAMCD %in% c(\"BL2AS2CB\", \"BG2AS2CB\", \"B2A2S2CB\", \"B2A5S2CB\") & AVALC == \"Y\" ~ \"AST >3xULN at 2 Visits\",\n TRUE ~ \"Criteria not met\"\n ))\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nanl <- df_explicit_na(adhy_liver)", "crumbs": [ "Tables", "Lab Results", - "LBT02" + "LBT10_BL" ] }, { - "objectID": "tables/lab-results/lbt02.html#teal-app", - "href": "tables/lab-results/lbt02.html#teal-app", - "title": "LBT02", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADLB <- df_explicit_na(ADLB)\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Laboratory Test Results by Visit\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n # note: order matters here. If `PARAM` is first, the split will be first by `PARAM`and then by `AVISIT`\n choices = variable_choices(ADLB, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"PARAM\", \"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADLB, c(\"AVAL\")),\n selected = c(\"AVAL\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"ALT\"\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADLB\", \"AVAL\", selected = NULL))\n)\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADLB <- df_explicit_na(ADLB)\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"Laboratory Test Results by Visit\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n # note: order matters here. If `PARAM` is first, the split will be first by `PARAM`and then by `AVISIT`\n choices = variable_choices(ADLB, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"PARAM\", \"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADLB, c(\"AVAL\")),\n selected = c(\"AVAL\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"ALT\"\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADLB\", \"AVAL\", selected = NULL))\n)\nshinyApp(app$ui, app$server)", + "objectID": "tables/lab-results/lbt10_bl.html#reproducibility", + "href": "tables/lab-results/lbt10_bl.html#reproducibility", + "title": "LBT10_BL", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:46:33 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", "Lab Results", - "LBT02" + "LBT10_BL" ] }, { - "objectID": "tables/lab-results/lbt02.html#reproducibility", - "href": "tables/lab-results/lbt02.html#reproducibility", - "title": "LBT02", + "objectID": "tables/adverse-events/aet02.html#output", + "href": "tables/adverse-events/aet02.html#output", + "title": "AET02", + "section": "Output", + "text": "Output\n\n\nStandard Table\nTable with Event Totals\nTable with High-Level Term\nTable with Preferred Terms Only\nTable with Fill-In of Treatment Groups\nTable of AEs with an Incidence Rate \\(\\geq\\) 5% in Any Treatment Group (subsetting preferred terms based on frequency)\nTable of AEs with an Incidence Rate \\(\\geq\\) 5% in Any Treatment Group (subsetting preferred terms based on frequency with high-level terms)\nTable of AEs with an Incidence Rate \\(\\geq\\) 10% in Any Treatment Group (subsetting preferred terms based on frequency)\nTable of AEs with an Incidence Rate \\(\\geq\\) 3 Patients in Any Treatment Group (subsetting preferred terms based on number of patients)\nTable of AEs with a Difference in Incidence Rate \\(\\geq\\) 5% Between Any Treatment (subsetting preferred terms based on difference in percentage between treatment groups)\nTable of AEs with an Incidence Rate \\(\\geq\\) 5% in B: Placebo (subsetting preferred terms based on frequency for a particular treatment group)\nTable of AEs with a Difference in Incidence Rate \\(\\geq\\) 5% Between Arm A and Arm B or Arm C (displaying preferred terms with a difference of at least x% between selected treatment groups)\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n add_overall_col(label = \"All Patients\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = -1L\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl)\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination All Patients\n MedDRA Preferred Term (N=134) (N=134) (N=132) (N=400) \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 100 (74.6%) 98 (73.1%) 103 (78.0%) 301 (75.2%) \nOverall total number of events 502 480 604 1586 \ncl A.1 \n Total number of patients with at least one adverse event 68 (50.7%) 58 (43.3%) 76 (57.6%) 202 (50.5%) \n Total number of events 115 99 137 351 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) 128 (32.0%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) 122 (30.5%) \ncl B.1 \n Total number of patients with at least one adverse event 38 (28.4%) 37 (27.6%) 36 (27.3%) 111 (27.8%) \n Total number of events 44 43 50 137 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) 111 (27.8%) \ncl B.2 \n Total number of patients with at least one adverse event 62 (46.3%) 56 (41.8%) 74 (56.1%) 192 (48.0%) \n Total number of events 102 106 127 335 \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) 119 (29.8%) \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) 123 (30.8%) \ncl C.1 \n Total number of patients with at least one adverse event 36 (26.9%) 34 (25.4%) 36 (27.3%) 106 (26.5%) \n Total number of events 47 51 54 152 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) 106 (26.5%) \ncl C.2 \n Total number of patients with at least one adverse event 28 (20.9%) 36 (26.9%) 48 (36.4%) 112 (28.0%) \n Total number of events 39 40 57 136 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) 112 (28.0%) \ncl D.1 \n Total number of patients with at least one adverse event 64 (47.8%) 54 (40.3%) 68 (51.5%) 186 (46.5%) \n Total number of events 106 84 114 304 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) 120 (30.0%) \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) 112 (28.0%) \ncl D.2 \n Total number of patients with at least one adverse event 37 (27.6%) 46 (34.3%) 50 (37.9%) 133 (33.2%) \n Total number of events 49 57 65 171 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) 133 (33.2%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nThe variable result corresponds to the adverse events table. However, it includes many empty rows accounting for events which were not reported. The table can be post-processed to prune empty rows and to sort rows, for example by occurrence.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- result %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination All Patients\n MedDRA Preferred Term (N=134) (N=134) (N=132) (N=400) \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 100 (74.6%) 98 (73.1%) 103 (78.0%) 301 (75.2%) \nOverall total number of events 502 480 604 1586 \ncl A.1 \n Total number of patients with at least one adverse event 68 (50.7%) 58 (43.3%) 76 (57.6%) 202 (50.5%) \n Total number of events 115 99 137 351 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) 128 (32.0%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) 122 (30.5%) \ncl B.2 \n Total number of patients with at least one adverse event 62 (46.3%) 56 (41.8%) 74 (56.1%) 192 (48.0%) \n Total number of events 102 106 127 335 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) 123 (30.8%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) 119 (29.8%) \ncl D.1 \n Total number of patients with at least one adverse event 64 (47.8%) 54 (40.3%) 68 (51.5%) 186 (46.5%) \n Total number of events 106 84 114 304 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) 120 (30.0%) \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) 112 (28.0%) \ncl D.2 \n Total number of patients with at least one adverse event 37 (27.6%) 46 (34.3%) 50 (37.9%) 133 (33.2%) \n Total number of events 49 57 65 171 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) 133 (33.2%) \ncl C.2 \n Total number of patients with at least one adverse event 28 (20.9%) 36 (26.9%) 48 (36.4%) 112 (28.0%) \n Total number of events 39 40 57 136 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) 112 (28.0%) \ncl B.1 \n Total number of patients with at least one adverse event 38 (28.4%) 37 (27.6%) 36 (27.3%) 111 (27.8%) \n Total number of events 44 43 50 137 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) 111 (27.8%) \ncl C.1 \n Total number of patients with at least one adverse event 36 (26.9%) 34 (25.4%) 36 (27.3%) 106 (26.5%) \n Total number of events 47 51 54 152 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) 106 (26.5%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n add_overall_col(label = \"All Patients\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L) %>%\n count_values(\n \"STUDYID\",\n values = as.character(unique(adae$STUDYID)),\n .stats = \"count\",\n .labels = c(count = \"Total number of events\"),\n .indent_mods = c(count = -1L)\n )\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n )\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination All Patients\n MedDRA Preferred Term (N=134) (N=134) (N=132) (N=400) \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 100 (74.6%) 98 (73.1%) 103 (78.0%) 301 (75.2%) \nOverall total number of events 502 480 604 1586 \ncl A.1 \n Total number of patients with at least one adverse event 68 (50.7%) 58 (43.3%) 76 (57.6%) 202 (50.5%) \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) 128 (32.0%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) 122 (30.5%) \n Total number of events 115 99 137 351 \ncl B.2 \n Total number of patients with at least one adverse event 62 (46.3%) 56 (41.8%) 74 (56.1%) 192 (48.0%) \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) 123 (30.8%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) 119 (29.8%) \n Total number of events 102 106 127 335 \ncl D.1 \n Total number of patients with at least one adverse event 64 (47.8%) 54 (40.3%) 68 (51.5%) 186 (46.5%) \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) 120 (30.0%) \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) 112 (28.0%) \n Total number of events 106 84 114 304 \ncl D.2 \n Total number of patients with at least one adverse event 37 (27.6%) 46 (34.3%) 50 (37.9%) 133 (33.2%) \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) 133 (33.2%) \n Total number of events 49 57 65 171 \ncl C.2 \n Total number of patients with at least one adverse event 28 (20.9%) 36 (26.9%) 48 (36.4%) 112 (28.0%) \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) 112 (28.0%) \n Total number of events 39 40 57 136 \ncl B.1 \n Total number of patients with at least one adverse event 38 (28.4%) 37 (27.6%) 36 (27.3%) 111 (27.8%) \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) 111 (27.8%) \n Total number of events 44 43 50 137 \ncl C.1 \n Total number of patients with at least one adverse event 36 (26.9%) 34 (25.4%) 36 (27.3%) 106 (26.5%) \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) 106 (26.5%) \n Total number of events 47 51 54 152 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEHLT\",\n child_labels = \"visible\",\n nested = TRUE,\n split_fun = split_fun,\n indent_mod = -1L,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEHLT)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, c(\"AEDECOD\"), indent = 2L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nMedDRA System Organ Class \n High Level Term A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 100 (74.6%) 98 (73.1%) 103 (78.0%) \nOverall total number of events 502 480 604 \ncl A.1 \n Total number of patients with at least one adverse event 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Total number of events 115 99 137 \n hlt A.1.1.1 \n Total number of patients with at least one adverse event 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Total number of events 115 99 137 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n Total number of patients with at least one adverse event 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Total number of events 102 106 127 \n hlt B.2.2.3 \n Total number of patients with at least one adverse event 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Total number of events 50 55 68 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n hlt B.2.1.2 \n Total number of patients with at least one adverse event 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Total number of events 52 51 59 \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n Total number of patients with at least one adverse event 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Total number of events 106 84 114 \n hlt D.1.1.1 \n Total number of patients with at least one adverse event 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Total number of events 52 40 64 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \n hlt D.1.1.4 \n Total number of patients with at least one adverse event 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Total number of events 54 44 50 \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n Total number of patients with at least one adverse event 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Total number of events 49 57 65 \n hlt D.2.1.5 \n Total number of patients with at least one adverse event 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Total number of events 49 57 65 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n Total number of patients with at least one adverse event 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Total number of events 39 40 57 \n hlt C.2.1.2 \n Total number of patients with at least one adverse event 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Total number of events 39 40 57 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n Total number of patients with at least one adverse event 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Total number of events 44 43 50 \n hlt B.1.1.1 \n Total number of patients with at least one adverse event 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Total number of events 44 43 50 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n Total number of patients with at least one adverse event 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Total number of events 47 51 54 \n hlt C.1.1.1 \n Total number of patients with at least one adverse event 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Total number of events 47 51 54 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n ),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(vars = \"AEDECOD\") %>%\n append_varlabels(adae, \"AEDECOD\")\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n sort_at_path(\n path = c(\"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination\nMedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of events 502 480 604 \ndcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ndcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \ndcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \ndcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ndcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \ndcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ndcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \ndcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) \ndcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) \ndcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadae_5 <- adae %>% dplyr::filter(ACTARM != \"C: Combination\")\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae_5, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 100 (74.6%) 98 (73.1%) 0 \nOverall total number of events 502 480 0 \ncl A.1 \n Total number of patients with at least one adverse event 68 (50.7%) 58 (43.3%) 0 \n Total number of events 115 99 0 \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 0 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 0 \ncl B.2 \n Total number of patients with at least one adverse event 62 (46.3%) 56 (41.8%) 0 \n Total number of events 102 106 0 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 0 \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 0 \ncl D.1 \n Total number of patients with at least one adverse event 64 (47.8%) 54 (40.3%) 0 \n Total number of events 106 84 0 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 0 \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 0 \ncl D.2 \n Total number of patients with at least one adverse event 37 (27.6%) 46 (34.3%) 0 \n Total number of events 49 57 0 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 0 \ncl B.1 \n Total number of patients with at least one adverse event 38 (28.4%) 37 (27.6%) 0 \n Total number of events 44 43 0 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 0 \ncl C.1 \n Total number of patients with at least one adverse event 36 (26.9%) 34 (25.4%) 0 \n Total number of events 47 51 0 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 0 \ncl C.2 \n Total number of patients with at least one adverse event 28 (20.9%) 36 (26.9%) 0 \n Total number of events 39 40 0 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n indent_mod = -1L,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = 1L\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\ncriteria_fun <- function(tr) is(tr, \"ContentRow\")\nresult <- trim_rows(result, criteria = criteria_fun)\n\nrow_condition <- has_fraction_in_any_col(\n atleast = 0.05,\n col_names = names(table(adsl$ACTARM))\n)\nresult <- prune_table(result, keep_rows(row_condition))\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————\ncl A.1 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = TRUE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n split_rows_by(\n \"AEHLT\",\n child_labels = \"visible\",\n nested = TRUE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEHLT)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n count_occurrences(vars = \"AEDECOD\") %>%\n append_varlabels(adae, c(\"AEDECOD\"), indent = 2L)\n\nresult <- build_table(lyt, adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\"),\n scorefun = cont_n_allcols,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences,\n decreasing = TRUE\n )\n\ncriteria_fun <- function(tr) is(tr, \"ContentRow\")\nresult <- trim_rows(result, criteria = criteria_fun)\n\nrow_condition <- has_fraction_in_any_col(\n atleast = 0.05,\n col_names = names(table(adsl$ACTARM))\n)\nresult <- prune_table(result, keep_rows(row_condition))\n\nresult\n\nMedDRA System Organ Class \n High Level Term A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————\ncl A.1 \n hlt A.1.1.1 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n hlt B.2.2.3 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n hlt B.2.1.2 \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n hlt D.1.1.1 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \n hlt D.1.1.4 \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n hlt D.2.1.5 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n hlt C.2.1.2 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n hlt B.1.1.1 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n hlt C.1.1.1 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n indent_mod = -1L,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = 1L\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\ncriteria_fun <- function(tr) is(tr, \"ContentRow\")\nresult <- trim_rows(result, criteria = criteria_fun)\n\nrow_condition <- has_fraction_in_any_col(\n atleast = 0.10,\n col_names = names(table(adsl$ACTARM))\n)\nresult <- prune_table(result, keep_rows(row_condition))\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————\ncl A.1 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n indent_mod = -1L,\n split_fun = split_fun,\n split_label = obj_label(adae$AEBODSYS),\n label_pos = \"topleft\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = 1L\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\ncriteria_fun <- function(tr) is(tr, \"ContentRow\")\nresult <- trim_rows(result, criteria = criteria_fun)\n\nrow_condition <- has_count_in_any_col(\n atleast = 3,\n col_names = names(table(adsl$ACTARM))\n)\nresult <- prune_table(result, keep_rows(row_condition))\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————\ncl A.1 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n indent_mod = -1L,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = 1L\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\ncriteria_fun <- function(tr) is(tr, \"ContentRow\")\nresult <- trim_rows(result, criteria = criteria_fun)\n\nrow_condition <- has_fractions_difference(\n atleast = 0.05,\n col_names = levels(adsl$ACTARM)\n)\nresult <- prune_table(result, keep_rows(row_condition))\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————\ncl A.1 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \ncl B.2 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \ncl D.2 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n indent_mod = -1L,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = 1L\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\ncriteria_fun <- function(tr) is(tr, \"ContentRow\")\nresult <- trim_rows(result, criteria = criteria_fun)\n\nrow_condition <- has_fraction_in_cols(\n atleast = 0.05,\n col_names = c(\"B: Placebo\")\n)\nresult <- prune_table(result, keep_rows(row_condition))\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————\ncl A.1 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n dcd B.1.1.1.1 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n dcd C.1.1.1.3 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n indent_mod = -1L,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = 1L\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(lyt, df = adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\ncriteria_fun <- function(tr) is(tr, \"ContentRow\")\nresult <- trim_rows(result, criteria = criteria_fun)\n\nrow_condition1 <- has_fractions_difference(atleast = 0.05, col_names = c(\"A: Drug X\", \"B: Placebo\"))\nrow_condition2 <- has_fractions_difference(atleast = 0.05, col_names = c(\"A: Drug X\", \"C: Combination\"))\nrow_condition <- row_condition1 | row_condition2\nresult <- prune_table(result, keep_rows(row_condition))\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————\ncl A.1 \n dcd A.1.1.1.1 45 (33.6%) 31 (23.1%) 52 (39.4%) \ncl B.2 \n dcd B.2.2.3.1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n dcd D.1.1.1.1 42 (31.3%) 32 (23.9%) 46 (34.8%) \ncl D.2 \n dcd D.2.1.5.3 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n dcd C.2.1.2.1 28 (20.9%) 36 (26.9%) 48 (36.4%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae) %>%\n var_relabel(\n AEBODSYS = \"MedDRA System Organ Class\",\n AEDECOD = \"MedDRA Preferred Term\"\n ) %>%\n filter(ANL01FL == \"Y\")\n\n# Define the split function\nsplit_fun <- drop_split_levels", + "crumbs": [ + "Tables", + "Adverse Events", + "AET02" + ] + }, + { + "objectID": "tables/adverse-events/aet02.html#teal-app", + "href": "tables/adverse-events/aet02.html#teal-app", + "title": "AET02", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n add_total = TRUE,\n event_type = \"adverse event\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n add_total = TRUE,\n event_type = \"adverse event\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "crumbs": [ + "Tables", + "Adverse Events", + "AET02" + ] + }, + { + "objectID": "tables/adverse-events/aet02.html#reproducibility", + "href": "tables/adverse-events/aet02.html#reproducibility", + "title": "AET02", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:52:20 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n data.table 1.16.4 2024-12-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n httr 1.4.7 2023-08-15 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lazyeval 0.2.2 2019-03-15 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n plotly 4.10.4 2024-01-13 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n viridisLite 0.4.2 2023-05-02 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:47:18 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Lab Results", - "LBT02" + "Adverse Events", + "AET02" ] }, { - "objectID": "tables/lab-results/lbt12.html#output", - "href": "tables/lab-results/lbt12.html#output", - "title": "LBT12", + "objectID": "tables/adverse-events/aet05_all.html#output", + "href": "tables/adverse-events/aet05_all.html#output", + "title": "AET05_ALL", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- basic_table() %>%\n split_cols_by(\"TITLE\") %>%\n split_cols_by(\"APERIODC\") %>%\n split_rows_by(\"PARAM\") %>%\n split_rows_by(\"ACTARM\", split_fun = drop_split_levels, child_labels = \"hidden\") %>%\n count_occurrences(\"ARM_AVALC\", .stats = \"fraction\", denom = \"n\", drop = TRUE) %>%\n build_table(anl)\n\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n dplyr::if_else(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- result %>% trim_rows(criteria = criteria_fun)\nresult\n\n First Elevated Result Occurring During \n PERIOD 1 PERIOD 2 \n——————————————————————————————————————————————————————————————————————\nAST >3x ULN \n A: Drug X 11/134 (8.2%) 21/134 (15.7%) \n B: Placebo 17/134 (12.7%) 16/134 (11.9%) \n C: Combination 10/132 (7.6%) 8/132 (6.1%) \nALT >3x ULN \n A: Drug X 14/134 (10.4%) 8/134 (6.0%) \n B: Placebo 24/134 (17.9%) 18/134 (13.4%) \n C: Combination 16/132 (12.1%) 10/132 (7.6%) \nAST >3x ULN or ALT >x3 ULN \n A: Drug X 14/134 (10.4%) 15/134 (11.2%) \n B: Placebo 8/134 (6.0%) 13/134 (9.7%) \n C: Combination 11/132 (8.3%) 12/132 (9.1%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadhy <- random.cdisc.data::cadhy\n\nanl <- adhy\nanl$APERIODC <- as.factor(anl$APERIODC) # to ensure the table is built even if there is no patients after filtering\nanl$ACTARM <- as.factor(anl$ACTARM) # to ensure the table is built even if there is no patients after filtering\n\nanl <- anl %>%\n filter(\n SAFFL == \"Y\",\n PARAMCD %in% c(\"ASTPULN\", \"ALTPULN\", \"ALTASTPU\") & AVISIT == \"POST-BASELINE\"\n ) %>%\n mutate(\n ARM_AVALC = factor(\n case_when(\n AVALC == \"Y\" ~ as.character(ACTARM),\n TRUE ~ \"Criteria not met\"\n ),\n levels = c(levels(anl$ACTARM), \"Criteria not met\")\n ),\n PARAM = factor(\n case_when(\n PARAMCD == \"ASTPULN\" ~ \"AST >3x ULN\",\n PARAMCD == \"ALTPULN\" ~ \"ALT >3x ULN\",\n PARAMCD == \"ALTASTPU\" ~ \"AST >3x ULN or ALT >x3 ULN\"\n ),\n levels = c(\"AST >3x ULN\", \"ALT >3x ULN\", \"AST >3x ULN or ALT >x3 ULN\")\n ),\n TITLE = factor(\"First Elevated Result Occurring During\")\n )\n\nanl <- df_explicit_na(anl)", + "text": "Output\n\n\nStandard Table\nTable Setting Type of Confidence Interval\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n estimate_incidence_rate(\n vars = \"AVAL\",\n n_events = \"n_events\",\n control = control_incidence_rate(num_pt_year = 100)\n )\n\nresult <- build_table(lyt, anl, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————\nTotal patient-years at risk 337.9 331.8 341.6 \nNumber of adverse events observed 343 380 397 \nAE rate per 100 patient-years 101.51 114.51 116.22 \n95% CI (90.77, 112.25) (103.00, 126.02) (104.79, 127.65)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe type of confidence interval can be specified through the conf_type argument.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n estimate_incidence_rate(\n vars = \"AVAL\",\n n_events = \"n_events\",\n control = control_incidence_rate(conf_type = \"exact\", num_pt_year = 100)\n )\n\nresult <- build_table(lyt, anl, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————\nTotal patient-years at risk 337.9 331.8 341.6 \nNumber of adverse events observed 343 380 397 \nAE rate per 100 patient-years 101.51 114.51 116.22 \n95% CI (91.05, 112.84) (103.28, 126.62) (105.07, 128.24)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadaette <- random.cdisc.data::cadaette\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadaette <- df_explicit_na(adaette)\n\n# Create analysis dataset anl from the 2 parameters AEREPTTE & AETOT1\nanl_events <- adaette %>%\n filter(PARAMCD == \"AETOT1\") %>%\n select(USUBJID, ARM, ARMCD, n_events = AVAL) %>%\n mutate(n_events = as.integer(n_events))\n\nanl_tte <- adaette %>%\n filter(PARAMCD == \"AEREPTTE\") %>%\n select(USUBJID, ARM, ARMCD, AVAL)\n\nanl <- full_join(anl_tte, anl_events, by = c(\"USUBJID\", \"ARM\", \"ARMCD\"))", "crumbs": [ "Tables", - "Lab Results", - "LBT12" + "Adverse Events", + "AET05_ALL" ] }, { - "objectID": "tables/lab-results/lbt12.html#reproducibility", - "href": "tables/lab-results/lbt12.html#reproducibility", - "title": "LBT12", + "objectID": "tables/adverse-events/aet05_all.html#teal-app", + "href": "tables/adverse-events/aet05_all.html#teal-app", + "title": "AET05_ALL", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n # Create analysis dataset anl from the 2 parameters AEREPTTE & AETOT1\n anl_events <- ADAETTE %>%\n filter(PARAMCD %in% c(\"AETOT1\", \"AETOT2\", \"AETOT3\")) %>%\n select(USUBJID, STUDYID, PARAMCD, ARM, ARMCD, n_events = AVAL) %>%\n mutate(n_events = as.integer(n_events))\n\n anl_tte <- ADAETTE %>%\n filter(PARAMCD == \"AEREPTTE\") %>%\n select(USUBJID, STUDYID, ARM, ARMCD, AVAL, AVALU)\n\n ADAETTE <- full_join(anl_tte, anl_events, by = c(\"USUBJID\", \"STUDYID\", \"ARM\", \"ARMCD\"))\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_patyear(\n label = \"AE Rate Adjusted for Patient-Years at Risk - All Occurrences Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARMCD\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADAETTE, \"PARAMCD\"),\n selected = \"AETOT1\"\n ),\n events_var = choices_selected(\n choices = variable_choices(ADAETTE, \"n_events\"),\n selected = \"n_events\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n # Create analysis dataset anl from the 2 parameters AEREPTTE & AETOT1\n anl_events <- ADAETTE %>%\n filter(PARAMCD %in% c(\"AETOT1\", \"AETOT2\", \"AETOT3\")) %>%\n select(USUBJID, STUDYID, PARAMCD, ARM, ARMCD, n_events = AVAL) %>%\n mutate(n_events = as.integer(n_events))\n\n anl_tte <- ADAETTE %>%\n filter(PARAMCD == \"AEREPTTE\") %>%\n select(USUBJID, STUDYID, ARM, ARMCD, AVAL, AVALU)\n\n ADAETTE <- full_join(anl_tte, anl_events, by = c(\"USUBJID\", \"STUDYID\", \"ARM\", \"ARMCD\"))\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_patyear(\n label = \"AE Rate Adjusted for Patient-Years at Risk - All Occurrences Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARMCD\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADAETTE, \"PARAMCD\"),\n selected = \"AETOT1\"\n ),\n events_var = choices_selected(\n choices = variable_choices(ADAETTE, \"n_events\"),\n selected = \"n_events\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "crumbs": [ + "Tables", + "Adverse Events", + "AET05_ALL" + ] + }, + { + "objectID": "tables/adverse-events/aet05_all.html#reproducibility", + "href": "tables/adverse-events/aet05_all.html#reproducibility", + "title": "AET05_ALL", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:53:04 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:48:13 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Lab Results", - "LBT12" + "Adverse Events", + "AET05_ALL" ] }, { - "objectID": "tables/lab-results/lbt10.html#output", - "href": "tables/lab-results/lbt10.html#output", - "title": "LBT10", + "objectID": "tables/adverse-events/aet03.html#output", + "href": "tables/adverse-events/aet03.html#output", + "title": "AET03", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Selecting Sections\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodetbl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n split_rows_by(\"PARAMCAT\") %>%\n split_rows_by(\"PARAM\", split_fun = drop_split_levels, child_labels = \"hidden\") %>%\n count_occurrences(\n vars = \"AVALC_FORMAT\",\n .stats = c(\"fraction\"),\n denom = \"n\",\n drop = TRUE\n ) %>%\n build_table(anl, alt_counts_df = adsl)\n\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n ifelse(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- tbl %>% trim_rows(criteria = criteria_fun)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————\nTotal Bilirubin <= 2xULN \n ALT >3xULN at 2 Visits 20/134 (14.9%) 21/134 (15.7%) 20/132 (15.2%)\n AST >3xULN at 2 Visits 30/134 (22.4%) 25/134 (18.7%) 27/132 (20.5%)\nTotal Bilirubin > 2xULN \n ALT >3xULN at 2 Visits 24/134 (17.9%) 32/134 (23.9%) 24/132 (18.2%)\n AST >3xULN at 2 Visits 33/134 (24.6%) 29/134 (21.6%) 25/132 (18.9%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodetbl2 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n split_rows_by(\"PARAMCAT\", split_fun = remove_split_levels(\"Total Bilirubin > 2xULN\")) %>%\n split_rows_by(\"PARAM\", split_fun = drop_split_levels, child_labels = \"hidden\") %>%\n count_occurrences(\n vars = \"AVALC_FORMAT\",\n .stats = c(\"fraction\"),\n denom = \"n\",\n drop = TRUE\n ) %>%\n build_table(anl, alt_counts_df = adsl)\n\ncriteria_fun <- function(tr) {\n row_label <- obj_label(tr)\n ifelse(row_label == \"Criteria not met\", TRUE, FALSE)\n}\n\nresult <- tbl2 %>% trim_rows(criteria = criteria_fun)\nresult\n\n ARM A ARM B ARM C \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————\nTotal Bilirubin <= 2xULN \n ALT >3xULN at 2 Visits 20/134 (14.9%) 21/134 (15.7%) 20/132 (15.2%)\n AST >3xULN at 2 Visits 30/134 (22.4%) 25/134 (18.7%) 27/132 (20.5%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadhy <- random.cdisc.data::cadhy\n\nadhy_liver <- adhy %>%\n filter(PARAMCD %in% c(\n \"BL2AL2CU\", \"BL2AS2CU\", \"BG2AL2CU\", \"BG2AS2CU\", \"B2A2L2CU\", \"B2A2S2CU\", \"B2A5L2CU\", \"B2A5S2CU\"\n )) %>%\n mutate(PARAMCAT = case_when(\n PARAMCD %in% c(\"BL2AL2CU\", \"BL2AS2CU\") ~ \"Total Bilirubin <= 2xULN\",\n PARAMCD %in% c(\"BG2AL2CU\", \"BG2AS2CU\") ~ \"Total Bilirubin > 2xULN\",\n PARAMCD %in% c(\"B2A2L2CU\", \"B2A2S2CU\") ~ \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 2xULN\",\n PARAMCD %in% c(\"B2A5L2CU\", \"B2A5S2CU\") ~ \"Total Bilirubin > 2xULN and Alkaline Phosphatase <= 5xULN\"\n )) %>%\n mutate(AVALC_FORMAT = case_when(\n PARAMCD %in% c(\"BL2AL2CU\", \"BG2AL2CU\", \"B2A2L2CU\", \"B2A5L2CU\") & AVALC == \"Y\" ~ \"ALT >3xULN at 2 Visits\",\n PARAMCD %in% c(\"BL2AS2CU\", \"BG2AS2CU\", \"B2A2S2CU\", \"B2A5S2CU\") & AVALC == \"Y\" ~ \"AST >3xULN at 2 Visits\",\n TRUE ~ \"Criteria not met\"\n ))\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nanl <- df_explicit_na(adhy_liver)", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodegrade_groups <- list(\"- Any Intensity -\" = c(\"MILD\", \"MODERATE\", \"SEVERE\", \"LIFE THREATENING\"))\n\nsplit_fun <- trim_levels_in_group\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_occurrences_by_grade(\n var = \"ASEV\",\n grade_groups = grade_groups\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = TRUE,\n split_fun = split_fun(\"ASEV\"),\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_occurrences_by_grade(\n var = \"ASEV\",\n grade_groups = grade_groups\n ) %>%\n split_rows_by(\n \"AEDECOD\",\n child_labels = \"visible\",\n nested = TRUE,\n indent_mod = -1L,\n split_fun = split_fun(\"ASEV\"),\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEDECOD)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = c(\"- Any Intensity -\")\n ) %>%\n count_occurrences_by_grade(\n var = \"ASEV\",\n .indent_mods = -1L\n ) %>%\n append_varlabels(adae, \"AESEV\", indent = 2L)\n\nresult <- lyt %>%\n build_table(\n adae,\n alt_counts_df = adsl\n ) %>%\n sort_at_path(\n path = \"AEBODSYS\",\n scorefun = cont_n_allcols,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = cont_n_allcols,\n decreasing = TRUE\n )\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Severity/Intensity (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————\n- Any Intensity - 100 (74.6%) 98 (73.1%) 103 (78.0%) \nMILD 5 (3.7%) 7 (5.2%) 4 (3.0%) \nMODERATE 17 (12.7%) 21 (15.7%) 20 (15.2%) \nSEVERE 77 (57.5%) 69 (51.5%) 77 (58.3%) \nLIFE THREATENING 1 (0.7%) 1 (0.7%) 2 (1.5%) \ncl A.1 \n - Any Intensity - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n MILD 27 (20.1%) 19 (14.2%) 34 (25.8%) \n MODERATE 40 (29.9%) 39 (29.1%) 41 (31.1%) \n LIFE THREATENING 1 (0.7%) 0 1 (0.8%) \n dcd A.1.1.1.1 \n - Any Intensity - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n MILD 45 (33.6%) 31 (23.1%) 51 (38.6%) \n LIFE THREATENING 0 0 1 (0.8%) \n dcd A.1.1.1.2 \n - Any Intensity - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n MODERATE 40 (29.9%) 39 (29.1%) 41 (31.1%) \n LIFE THREATENING 1 (0.7%) 0 1 (0.8%) \ncl B.2 \n - Any Intensity - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n MILD 23 (17.2%) 22 (16.4%) 28 (21.2%) \n MODERATE 38 (28.4%) 34 (25.4%) 45 (34.1%) \n LIFE THREATENING 1 (0.7%) 0 1 (0.8%) \n dcd B.2.2.3.1 \n - Any Intensity - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n MILD 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 \n - Any Intensity - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n MODERATE 38 (28.4%) 34 (25.4%) 45 (34.1%) \n LIFE THREATENING 1 (0.7%) 0 1 (0.8%) \ncl D.1 \n - Any Intensity - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n MODERATE 21 (15.7%) 22 (16.4%) 22 (16.7%) \n SEVERE 42 (31.3%) 32 (23.9%) 44 (33.3%) \n LIFE THREATENING 1 (0.7%) 0 2 (1.5%) \n dcd D.1.1.1.1 \n - Any Intensity - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n SEVERE 42 (31.3%) 32 (23.9%) 45 (34.1%) \n LIFE THREATENING 0 0 1 (0.8%) \n dcd D.1.1.4.2 \n - Any Intensity - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n MODERATE 37 (27.6%) 34 (25.4%) 39 (29.5%) \n LIFE THREATENING 1 (0.7%) 0 1 (0.8%) \ncl D.2 \n - Any Intensity - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n MILD 37 (27.6%) 46 (34.3%) 49 (37.1%) \n LIFE THREATENING 0 0 1 (0.8%) \n dcd D.2.1.5.3 \n - Any Intensity - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n MILD 37 (27.6%) 46 (34.3%) 49 (37.1%) \n LIFE THREATENING 0 0 1 (0.8%) \ncl C.2 \n - Any Intensity - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n MODERATE 28 (20.9%) 36 (26.9%) 47 (35.6%) \n LIFE THREATENING 0 0 1 (0.8%) \n dcd C.2.1.2.1 \n - Any Intensity - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n MODERATE 28 (20.9%) 36 (26.9%) 47 (35.6%) \n LIFE THREATENING 0 0 1 (0.8%) \ncl B.1 \n - Any Intensity - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n SEVERE 38 (28.4%) 36 (26.9%) 36 (27.3%) \n LIFE THREATENING 0 1 (0.7%) 0 \n dcd B.1.1.1.1 \n - Any Intensity - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n SEVERE 38 (28.4%) 36 (26.9%) 36 (27.3%) \n LIFE THREATENING 0 1 (0.7%) 0 \ncl C.1 \n - Any Intensity - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n SEVERE 36 (26.9%) 34 (25.4%) 36 (27.3%) \n dcd C.1.1.1.3 \n - Any Intensity - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n SEVERE 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae) %>%\n var_relabel(\n AEBODSYS = \"MedDRA System Organ Class\",\n AEDECOD = \"MedDRA Preferred Term\"\n ) %>%\n filter(ANL01FL == \"Y\")\nadae <- adae %>% mutate(ASEV = as.character(AESEV))\nadae$ASEV[1:15] <- \"LIFE THREATENING\"\nadae <- adae %>% mutate(ASEV = factor(ASEV, levels = c(\"MILD\", \"MODERATE\", \"SEVERE\", \"LIFE THREATENING\")))", "crumbs": [ "Tables", - "Lab Results", - "LBT10" + "Adverse Events", + "AET03" ] }, { - "objectID": "tables/lab-results/lbt10.html#reproducibility", - "href": "tables/lab-results/lbt10.html#reproducibility", - "title": "LBT10", + "objectID": "tables/adverse-events/aet03.html#teal-app", + "href": "tables/adverse-events/aet03.html#teal-app", + "title": "AET03", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_by_grade(\n label = \"Adverse Events by Grade Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n grade = choices_selected(\n choices = variable_choices(ADAE, c(\"AETOXGR\", \"AESEV\")),\n selected = \"AESEV\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_by_grade(\n label = \"Adverse Events by Grade Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n grade = choices_selected(\n choices = variable_choices(ADAE, c(\"AETOXGR\", \"AESEV\")),\n selected = \"AESEV\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "crumbs": [ + "Tables", + "Adverse Events", + "AET03" + ] + }, + { + "objectID": "tables/adverse-events/aet03.html#reproducibility", + "href": "tables/adverse-events/aet03.html#reproducibility", + "title": "AET03", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:53:32 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:48:52 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Lab Results", - "LBT10" + "Adverse Events", + "AET03" ] }, { - "objectID": "tables/lab-results/lbt14.html#output", - "href": "tables/lab-results/lbt14.html#output", - "title": "LBT14", + "objectID": "tables/adverse-events/aet04_pi.html#output", + "href": "tables/adverse-events/aet04_pi.html#output", + "title": "AET04_PI", + "section": "Output", + "text": "Output\n\n\nStandard Table\nTable with Patients Treated with a Particular Treatment by Highest NCI CTCAE Grade (specifying a treatment for selecting preferred terms)\nAdverse Events Reported in \\(\\geq\\) 5% of Patients by Highest NCI CTCAE Grade (changing the threshold)\nAdverse Events Reported in \\(\\geq\\) 5% of Patients and \\(\\geq\\) 2% Difference Between Treatments by Highest NCI CTCAE Grade (using more than one condition)\nAdverse Events Reported in \\(\\geq\\) 10% of Patients for Any Grade or \\(\\geq\\) 5% of Patients for Grade 3-4 by Highest NCI CTCAE Grade (using different condition depending on the grade)\nStandard Table with Modified Grade Grouping\nStandard Table with Overlapping Grade Groupings\nStandard Table without SOCs\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodefull_table <- full_table_aet04_pi(adsl, adae_max) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = score_occurrences_cont_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n )\n\nat_least_10percent_any <- has_fraction_in_any_col(atleast = 0.1, col_indices = c(1, 4, 7))\n\nresult <- full_table %>%\n trim_rows(criteria = criteria_fun) %>%\n prune_table(keep_rows(at_least_10percent_any))\n\nresult\n\n A: Drug X B: Placebo C: Combination \nMedDRA System Organ Class Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%)\n MedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ncl A.1 \ndcd A.1.1.1.1 37 0 0 34 0 0 48 0 0 \ndcd A.1.1.1.2 36 0 0 36 0 0 38 0 0 \ncl B.2 \ndcd B.2.2.3.1 36 0 0 40 0 0 39 0 0 \ndcd B.2.1.2.1 37 37 0 33 33 0 39 39 0 \ncl D.1 \ndcd D.1.1.1.1 37 0 37 31 0 31 39 0 39 \ndcd D.1.1.4.2 36 36 0 31 31 0 38 38 0 \ncl D.2 \ndcd D.2.1.5.3 35 0 0 43 0 0 43 0 0 \ncl B.1 \ndcd B.1.1.1.1 35 0 35 37 0 37 33 0 33 \ncl C.2 \ndcd C.2.1.2.1 26 0 0 36 0 0 42 0 0 \ncl C.1 \ndcd C.1.1.1.3 32 32 0 34 34 0 33 33 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote: User needs to specify the column index for filtering the table. The current example uses the “Any Grade” column for treatment A: Drug X with a filtering threshold at 0.37; AEs reported in greater than 37% of patients in treatment A: Drug X are shown. This can be changed by varying the parameter values in the has_fraction_in_cols function.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodefull_table <- full_table_aet04_pi(adsl, adae_max) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = score_occurrences_cont_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n )\n\nat_least_37percent_any_drugx <- has_fraction_in_cols(atleast = 0.37, col_indices = 1)\n\nresult <- full_table %>%\n trim_rows(criteria = criteria_fun) %>%\n prune_table(keep_rows(at_least_37percent_any_drugx))\n\nresult\n\n A: Drug X B: Placebo C: Combination \nMedDRA System Organ Class Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%)\n MedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ncl A.1 \ndcd A.1.1.1.1 37 0 0 34 0 0 48 0 0 \ncl D.1 \ndcd D.1.1.1.1 37 0 37 31 0 31 39 0 39 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote: User needs to specify the column index for filtering the table. The current example uses column indices 1, 4, and 7 with a filtering threshold at 0.40 to demonstrate the filtering ability; AEs reported in greater than 40% of patients are shown. This can be changed by varying the parameter values in the has_fraction_in_any_col function.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodefull_table <- full_table_aet04_pi(adsl, adae_max) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = score_occurrences_cont_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n )\n\nat_least_40percent_any <- has_fraction_in_any_col(atleast = 0.40, col_indices = c(1, 4, 7))\n\nresult <- full_table %>%\n trim_rows(criteria = criteria_fun) %>%\n prune_table(keep_rows(at_least_40percent_any))\n\nresult\n\n A: Drug X B: Placebo C: Combination \nMedDRA System Organ Class Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%)\n MedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ncl A.1 \ndcd A.1.1.1.1 37 0 0 34 0 0 48 0 0 \ncl B.2 \ndcd B.2.2.3.1 36 0 0 40 0 0 39 0 0 \ncl D.2 \ndcd D.2.1.5.3 35 0 0 43 0 0 43 0 0 \ncl C.2 \ndcd C.2.1.2.1 26 0 0 36 0 0 42 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote: User needs to specify the column index for filtering the table. The current example uses column indices 1, 4, and 7 to filter for AEs reported in \\(\\geq\\) 30% of patients and AEs reported with a \\(\\geq\\) 15% difference between treatments to demonstrate the filtering ability; this can be changed by varying the parameter values in the has_fraction_in_any_col and has_fractions_difference functions.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodefull_table <- full_table_aet04_pi(adsl, adae_max) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = score_occurrences_cont_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n )\n\nat_least_30percent_any <- has_fraction_in_any_col(atleast = 0.3, col_indices = c(1, 4, 7))\n\nat_least_15percent_diff <- has_fractions_difference(atleast = 0.15, col_indices = c(1, 4, 7))\n\nresult <- full_table %>%\n trim_rows(criteria = criteria_fun) %>%\n prune_table(keep_rows(at_least_30percent_any & at_least_15percent_diff))\n\nresult\n\n A: Drug X B: Placebo C: Combination \nMedDRA System Organ Class Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%)\n MedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ncl C.2 \ndcd C.2.1.2.1 26 0 0 36 0 0 42 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote: User needs to specify the column index for filtering the table. The current example filters using column indices 1, 4, and 7 to include AEs reported in \\(\\geq\\) 40% of patients and using column indices 2, 5, and 8 to include grade 3-4 AEs reported in \\(\\geq\\) 20% of patients. These thresholds are chosen to demonstrate the filtering ability; they can be changed by varying parameter values in the has_fraction_in_any_col function.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodefull_table <- full_table_aet04_pi(adsl, adae_max) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = score_occurrences_cont_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n )\n\nat_least_40percent_any <- has_fraction_in_any_col(atleast = 0.4, col_indices = c(1, 4, 7))\n\nat_least_20percent_g34 <- has_fraction_in_any_col(atleast = 0.20, col_indices = c(2, 5, 8))\n\nresult <- full_table %>%\n trim_rows(criteria = criteria_fun) %>%\n prune_table(keep_rows(at_least_40percent_any | at_least_20percent_g34))\n\nresult\n\n A: Drug X B: Placebo C: Combination \nMedDRA System Organ Class Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%)\n MedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ncl A.1 \ndcd A.1.1.1.1 37 0 0 34 0 0 48 0 0 \ncl B.2 \ndcd B.2.2.3.1 36 0 0 40 0 0 39 0 0 \ndcd B.2.1.2.1 37 37 0 33 33 0 39 39 0 \ncl D.1 \ndcd D.1.1.4.2 36 36 0 31 31 0 38 38 0 \ncl D.2 \ndcd D.2.1.5.3 35 0 0 43 0 0 43 0 0 \ncl C.2 \ndcd C.2.1.2.1 26 0 0 36 0 0 42 0 0 \ncl C.1 \ndcd C.1.1.1.3 32 32 0 34 34 0 33 33 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote: User can specify/modify the grouping of grades, as shown in this example. In addition, the user needs to specify the column index for filtering the table. The current example uses the “Any Grade” columns with a filtering threshold at 0.40; this can be changed by varying the parameter values in the has_fraction_in_any_col function.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodegrade_groups <- list(\n \"Any Grade (%)\" = c(\"1\", \"2\", \"3\", \"4\", \"5\"),\n \"Grade 1-2 (%)\" = c(\"1\", \"2\"),\n \"Grade 3-4 (%)\" = c(\"3\", \"4\"),\n \"Grade 5 (%)\" = \"5\"\n)\n\ncol_counts <- rep(table(adsl$ACTARM), each = length(grade_groups))\n\nfull_table <- basic_table() %>%\n split_cols_by(\"ACTARM\") %>%\n split_cols_by_groups(\"MAXAETOXGR\", groups_list = grade_groups) %>%\n split_rows_by(\"AEBODSYS\",\n child_labels = \"visible\", nested = FALSE, indent_mod = -1L,\n split_fun = trim_levels_in_group(\"AEDECOD\")\n ) %>%\n append_topleft(\"MedDRA System Organ Class\") %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n analyze_vars(\n \"AEDECOD\",\n na.rm = FALSE,\n denom = \"N_col\",\n .stats = \"count_fraction\",\n .formats = c(count_fraction = format_fraction_threshold(0.01))\n ) %>%\n append_topleft(\" MedDRA Preferred Term\") %>%\n build_table(adae_max, col_counts = col_counts) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = score_occurrences_cont_cols(col_indices = c(1, 5, 9)),\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 5, 9)),\n decreasing = TRUE\n )\n\nat_least_40percent_any <- has_fraction_in_any_col(atleast = 0.4, col_indices = c(1, 5, 9))\n\nresult <- full_table %>%\n trim_rows(criteria = criteria_fun) %>%\n prune_table(keep_rows(at_least_40percent_any))\n\nresult\n\n A: Drug X B: Placebo C: Combination \nMedDRA System Organ Class Any Grade (%) Grade 1-2 (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 1-2 (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 1-2 (%) Grade 3-4 (%) Grade 5 (%)\n MedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ncl A.1 \ndcd A.1.1.1.1 37 37 0 0 34 34 0 0 48 48 0 0 \ncl B.2 \ndcd B.2.2.3.1 36 36 0 0 40 40 0 0 39 39 0 0 \ncl D.2 \ndcd D.2.1.5.3 35 35 0 0 43 43 0 0 43 43 0 0 \ncl C.2 \ndcd C.2.1.2.1 26 26 0 0 36 36 0 0 42 42 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote: User needs to specify the column index for filtering the table. The current example uses column indices 1, 5, and 9 with a filtering threshold at 0.40 to demonstrate the filtering ability; any grade AEs reported in greater than 40% of patients are shown. This can be changed by varying the parameter values in the has_fraction_in_any_col function.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodegrade_groups <- list(\n \"Any Grade (%)\" = c(\"1\", \"2\", \"3\", \"4\", \"5\"),\n \"Grade 3-4 (%)\" = c(\"3\", \"4\"),\n \"Grade 3-5 (%)\" = c(\"3\", \"4\", \"5\"),\n \"Grade 5 (%)\" = \"5\"\n)\n\ncol_counts <- rep(table(adsl$ACTARM), each = length(grade_groups))\nfull_table <- basic_table() %>%\n split_cols_by(\"ACTARM\") %>%\n split_cols_by_groups(\"MAXAETOXGR\", groups_list = grade_groups) %>%\n split_rows_by(\"AEBODSYS\",\n child_labels = \"visible\", nested = FALSE, indent_mod = -1L,\n split_fun = trim_levels_in_group(\"AEDECOD\")\n ) %>%\n append_topleft(\"MedDRA System Organ Class\") %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n analyze_vars(\n \"AEDECOD\",\n na.rm = FALSE,\n denom = \"N_col\",\n .stats = \"count_fraction\",\n .formats = c(count_fraction = format_fraction_threshold(0.01))\n ) %>%\n append_topleft(\" MedDRA Preferred Term\") %>%\n build_table(adae_max, col_counts = col_counts) %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = score_occurrences_cont_cols(col_indices = c(1, 5, 9)),\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 5, 9)),\n decreasing = TRUE\n )\n\nat_least_40percent_any <- has_fraction_in_any_col(atleast = 0.4, col_indices = c(1, 5, 9))\n\nresult <- full_table %>%\n trim_rows(criteria = criteria_fun) %>%\n prune_table(keep_rows(at_least_40percent_any))\n\nresult\n\n A: Drug X B: Placebo C: Combination \nMedDRA System Organ Class Any Grade (%) Grade 3-4 (%) Grade 3-5 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 3-5 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 3-5 (%) Grade 5 (%)\n MedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ncl A.1 \ndcd A.1.1.1.1 37 0 0 0 34 0 0 0 48 0 0 0 \ncl B.2 \ndcd B.2.2.3.1 36 0 0 0 40 0 0 0 39 0 0 0 \ncl D.2 \ndcd D.2.1.5.3 35 0 0 0 43 0 0 0 43 0 0 0 \ncl C.2 \ndcd C.2.1.2.1 26 0 0 0 36 0 0 0 42 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote: User needs to specify the column index for filtering the table. The current example uses column indices 1, 4, and 7 with a filtering threshold at 0.20 to demonstrate the filtering ability; any grade AEs (Preferred Terms Only) reported in greater than 20% of patients are shown. This can be changed by varying the parameter values in the has_fraction_in_any_col function.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodegrade_groups <- list(\n \"Any Grade (%)\" = c(\"1\", \"2\", \"3\", \"4\", \"5\"),\n \"Grade 3-4 (%)\" = c(\"3\", \"4\"),\n \"Grade 5 (%)\" = \"5\"\n)\n\ncol_counts <- rep(table(adsl$ACTARM), each = length(grade_groups))\n\nfull_table <- basic_table() %>%\n split_cols_by(\"ACTARM\") %>%\n split_cols_by_groups(\"MAXAETOXGR\", groups_list = grade_groups) %>%\n analyze_vars(\n \"AEDECOD\",\n na.rm = FALSE,\n denom = \"N_col\",\n .stats = \"count_fraction\",\n .formats = c(count_fraction = format_fraction_threshold(0.01))\n ) %>%\n append_topleft(\"MedDRA Preferred Term\") %>%\n build_table(adae_max, col_counts = col_counts)\n\nat_least_20percent_any <- has_fraction_in_any_col(atleast = 0.2, col_indices = c(1, 4, 7))\n\nresult <- full_table %>%\n prune_table(keep_rows(at_least_20percent_any)) %>%\n sort_at_path(\n path = c(\"AEDECOD\"),\n scorefun = score_occurrences_cols(col_indices = c(1, 4, 7)),\n decreasing = TRUE\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination \n Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%) Any Grade (%) Grade 3-4 (%) Grade 5 (%)\nMedDRA Preferred Term (N=134) (N=134) (N=134) (N=134) (N=134) (N=134) (N=132) (N=132) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\ndcd D.2.1.5.3 35 0 0 43 0 0 43 0 0 \ndcd A.1.1.1.1 37 0 0 34 0 0 48 0 0 \ndcd B.2.2.3.1 36 0 0 40 0 0 39 0 0 \ndcd A.1.1.1.2 36 0 0 36 0 0 38 0 0 \ndcd B.2.1.2.1 37 37 0 33 33 0 39 39 0 \ndcd D.1.1.1.1 37 0 37 31 0 31 39 0 39 \ndcd D.1.1.4.2 36 36 0 31 31 0 38 38 0 \ndcd B.1.1.1.1 35 0 35 37 0 37 33 0 33 \ndcd C.2.1.2.1 26 0 0 36 0 0 42 0 0 \ndcd C.1.1.1.3 32 32 0 34 34 0 33 33 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\npreprocess_adae <- function(adae) {\n adae %>%\n dplyr::group_by(ACTARM, USUBJID, AEBODSYS, AEDECOD) %>%\n dplyr::summarize(\n MAXAETOXGR = max(as.numeric(AETOXGR)),\n .groups = \"drop\"\n ) %>%\n dplyr::ungroup() %>%\n dplyr::mutate(\n MAXAETOXGR = factor(MAXAETOXGR),\n AEDECOD = droplevels(as.factor(AEDECOD))\n )\n}\n\nfull_table_aet04_pi <- function(adsl, adae_max) {\n grade_groups <- list(\n \"Any Grade (%)\" = c(\"1\", \"2\", \"3\", \"4\", \"5\"),\n \"Grade 3-4 (%)\" = c(\"3\", \"4\"),\n \"Grade 5 (%)\" = \"5\"\n )\n\n col_counts <- rep(table(adsl$ACTARM), each = length(grade_groups))\n basic_table() %>%\n split_cols_by(\"ACTARM\") %>%\n split_cols_by_groups(\"MAXAETOXGR\", groups_list = grade_groups) %>%\n split_rows_by(\"AEBODSYS\",\n child_labels = \"visible\", nested = FALSE, indent_mod = -1L,\n split_fun = trim_levels_in_group(\"AEDECOD\")\n ) %>%\n append_topleft(\"MedDRA System Organ Class\") %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"Total number of patients with at least one adverse event\"\n ) %>%\n analyze_vars(\n \"AEDECOD\",\n na.rm = FALSE,\n denom = \"N_col\",\n .stats = \"count_fraction\",\n .formats = c(count_fraction = format_fraction_threshold(0.01))\n ) %>%\n append_topleft(\" MedDRA Preferred Term\") %>%\n build_table(adae_max, col_counts = col_counts)\n}\n\ncriteria_fun <- function(tr) {\n is(tr, \"ContentRow\")\n}\n\nadsl <- random.cdisc.data::cadsl\nadae_max <- random.cdisc.data::cadae %>%\n preprocess_adae() %>%\n df_explicit_na()", + "crumbs": [ + "Tables", + "Adverse Events", + "AET04_PI" + ] + }, + { + "objectID": "tables/adverse-events/aet04_pi.html#teal-app", + "href": "tables/adverse-events/aet04_pi.html#teal-app", + "title": "AET04_PI", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_by_grade(\n label = \"Adverse Events by Grade Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n col_by_grade = TRUE,\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n grade = choices_selected(\n choices = variable_choices(ADAE, c(\"AETOXGR\", \"AESEV\")),\n selected = \"AETOXGR\"\n ),\n # List of column groups for grades used when `col_by_grade` = TRUE.\n grading_groups = list(\n `Any Grade (%)` = c(\"1\", \"2\", \"3\", \"4\", \"5\"),\n `Grade 3-4 (%)` = c(\"3\", \"4\"),\n `Grade 5 (%)` = \"5\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_by_grade(\n label = \"Adverse Events by Grade Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n col_by_grade = TRUE,\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n grade = choices_selected(\n choices = variable_choices(ADAE, c(\"AETOXGR\", \"AESEV\")),\n selected = \"AETOXGR\"\n ),\n # List of column groups for grades used when `col_by_grade` = TRUE.\n grading_groups = list(\n `Any Grade (%)` = c(\"1\", \"2\", \"3\", \"4\", \"5\"),\n `Grade 3-4 (%)` = c(\"3\", \"4\"),\n `Grade 5 (%)` = \"5\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "crumbs": [ + "Tables", + "Adverse Events", + "AET04_PI" + ] + }, + { + "objectID": "tables/adverse-events/aet04_pi.html#reproducibility", + "href": "tables/adverse-events/aet04_pi.html#reproducibility", + "title": "AET04_PI", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:49:39 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "crumbs": [ + "Tables", + "Adverse Events", + "AET04_PI" + ] + }, + { + "objectID": "tables/adverse-events/aet06.html#output", + "href": "tables/adverse-events/aet06.html#output", + "title": "AET06", + "section": "Output", + "text": "Output\n\n\nAdverse Events by Sex\nAdverse Events by Other Baseline Characteristics (e.g. Biomarker Group)\nAdverse Events by Baseline Characteristic from ADSUB (e.g. BMI Category)\nAdverse Events by Regrouped Baseline Characteristics (e.g. Race)\nAdverse Events by Baseline Characteristics (e.g. Sex) Including High-Level Terms\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_cols_by(\"SEX\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adae,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n # Sorted by decreasing frequency across all groups by System Organ Class and Preferred Term.\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination \nBody System or Organ Class F M F M F M \n Dictionary-Derived Term (N=79) (N=55) (N=82) (N=52) (N=70) (N=62) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 72 (91.1%) 50 (90.9%) 77 (93.9%) 46 (88.5%) 65 (92.9%) 55 (88.7%)\nOverall total number of events 377 232 419 203 378 325 \ncl A.1 \n Total number of patients with at least one adverse event 53 (67.1%) 25 (45.5%) 51 (62.2%) 24 (46.2%) 43 (61.4%) 46 (74.2%)\n Total number of events 85 47 93 37 86 74 \n dcd A.1.1.1.1 34 (43.0%) 16 (29.1%) 31 (37.8%) 14 (26.9%) 33 (47.1%) 30 (48.4%)\n dcd A.1.1.1.2 32 (40.5%) 16 (29.1%) 33 (40.2%) 15 (28.8%) 24 (34.3%) 26 (41.9%)\ncl B.2 \n Total number of patients with at least one adverse event 46 (58.2%) 33 (60.0%) 45 (54.9%) 29 (55.8%) 44 (62.9%) 41 (66.1%)\n Total number of events 81 48 86 52 64 79 \n dcd B.2.2.3.1 30 (38.0%) 18 (32.7%) 32 (39.0%) 22 (42.3%) 26 (37.1%) 25 (40.3%)\n dcd B.2.1.2.1 29 (36.7%) 20 (36.4%) 30 (36.6%) 14 (26.9%) 22 (31.4%) 30 (48.4%)\ncl D.1 \n Total number of patients with at least one adverse event 45 (57.0%) 34 (61.8%) 40 (48.8%) 27 (51.9%) 41 (58.6%) 39 (62.9%)\n Total number of events 72 55 64 42 73 62 \n dcd D.1.1.1.1 25 (31.6%) 25 (45.5%) 29 (35.4%) 13 (25.0%) 27 (38.6%) 24 (38.7%)\n dcd D.1.1.4.2 30 (38.0%) 18 (32.7%) 22 (26.8%) 20 (38.5%) 27 (38.6%) 23 (37.1%)\ncl D.2 \n Total number of patients with at least one adverse event 26 (32.9%) 21 (38.2%) 40 (48.8%) 18 (34.6%) 34 (48.6%) 23 (37.1%)\n Total number of events 35 27 49 23 43 31 \n dcd D.2.1.5.3 26 (32.9%) 21 (38.2%) 40 (48.8%) 18 (34.6%) 34 (48.6%) 23 (37.1%)\ncl B.1 \n Total number of patients with at least one adverse event 28 (35.4%) 19 (34.5%) 33 (40.2%) 16 (30.8%) 24 (34.3%) 19 (30.6%)\n Total number of events 33 23 36 24 35 27 \n dcd B.1.1.1.1 28 (35.4%) 19 (34.5%) 33 (40.2%) 16 (30.8%) 24 (34.3%) 19 (30.6%)\ncl C.2 \n Total number of patients with at least one adverse event 23 (29.1%) 12 (21.8%) 36 (43.9%) 12 (23.1%) 30 (42.9%) 25 (40.3%)\n Total number of events 32 16 39 14 33 32 \n dcd C.2.1.2.1 23 (29.1%) 12 (21.8%) 36 (43.9%) 12 (23.1%) 30 (42.9%) 25 (40.3%)\ncl C.1 \n Total number of patients with at least one adverse event 30 (38.0%) 13 (23.6%) 36 (43.9%) 10 (19.2%) 27 (38.6%) 16 (25.8%)\n Total number of events 39 16 52 11 44 20 \n dcd C.1.1.1.3 30 (38.0%) 13 (23.6%) 36 (43.9%) 10 (19.2%) 27 (38.6%) 16 (25.8%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_cols_by(\"BMRKR2\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adae,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n # Sorted by decreasing frequency across all groups by System Organ Class and Preferred Term.\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination \nBody System or Organ Class LOW MEDIUM HIGH LOW MEDIUM HIGH LOW MEDIUM HIGH \n Dictionary-Derived Term (N=50) (N=37) (N=47) (N=45) (N=56) (N=33) (N=40) (N=42) (N=50) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 46 (92.0%) 34 (91.9%) 42 (89.4%) 40 (88.9%) 53 (94.6%) 30 (90.9%) 36 (90.0%) 39 (92.9%) 45 (90.0%)\nOverall total number of events 248 166 195 196 261 165 220 258 225 \ncl A.1 \n Total number of patients with at least one adverse event 31 (62.0%) 19 (51.4%) 28 (59.6%) 25 (55.6%) 31 (55.4%) 19 (57.6%) 28 (70.0%) 30 (71.4%) 31 (62.0%)\n Total number of events 53 34 45 46 54 30 61 51 48 \n dcd A.1.1.1.1 22 (44.0%) 10 (27.0%) 18 (38.3%) 14 (31.1%) 20 (35.7%) 11 (33.3%) 21 (52.5%) 24 (57.1%) 18 (36.0%)\n dcd A.1.1.1.2 17 (34.0%) 13 (35.1%) 18 (38.3%) 18 (40.0%) 18 (32.1%) 12 (36.4%) 18 (45.0%) 14 (33.3%) 18 (36.0%)\ncl B.2 \n Total number of patients with at least one adverse event 34 (68.0%) 21 (56.8%) 24 (51.1%) 23 (51.1%) 33 (58.9%) 18 (54.5%) 24 (60.0%) 27 (64.3%) 34 (68.0%)\n Total number of events 53 37 39 40 61 37 40 47 56 \n dcd B.2.2.3.1 21 (42.0%) 13 (35.1%) 14 (29.8%) 18 (40.0%) 22 (39.3%) 14 (42.4%) 16 (40.0%) 15 (35.7%) 20 (40.0%)\n dcd B.2.1.2.1 21 (42.0%) 11 (29.7%) 17 (36.2%) 11 (24.4%) 21 (37.5%) 12 (36.4%) 13 (32.5%) 17 (40.5%) 22 (44.0%)\ncl D.1 \n Total number of patients with at least one adverse event 34 (68.0%) 21 (56.8%) 24 (51.1%) 18 (40.0%) 33 (58.9%) 16 (48.5%) 25 (62.5%) 31 (73.8%) 24 (48.0%)\n Total number of events 51 35 41 27 49 30 45 53 37 \n dcd D.1.1.1.1 19 (38.0%) 16 (43.2%) 15 (31.9%) 13 (28.9%) 19 (33.9%) 10 (30.3%) 14 (35.0%) 22 (52.4%) 15 (30.0%)\n dcd D.1.1.4.2 21 (42.0%) 9 (24.3%) 18 (38.3%) 9 (20.0%) 20 (35.7%) 13 (39.4%) 17 (42.5%) 18 (42.9%) 15 (30.0%)\ncl D.2 \n Total number of patients with at least one adverse event 20 (40.0%) 12 (32.4%) 15 (31.9%) 19 (42.2%) 22 (39.3%) 17 (51.5%) 13 (32.5%) 23 (54.8%) 21 (42.0%)\n Total number of events 27 13 22 23 26 23 17 33 24 \n dcd D.2.1.5.3 20 (40.0%) 12 (32.4%) 15 (31.9%) 19 (42.2%) 22 (39.3%) 17 (51.5%) 13 (32.5%) 23 (54.8%) 21 (42.0%)\ncl B.1 \n Total number of patients with at least one adverse event 14 (28.0%) 14 (37.8%) 19 (40.4%) 15 (33.3%) 24 (42.9%) 10 (30.3%) 14 (35.0%) 15 (35.7%) 14 (28.0%)\n Total number of events 16 19 21 18 25 17 19 25 18 \n dcd B.1.1.1.1 14 (28.0%) 14 (37.8%) 19 (40.4%) 15 (33.3%) 24 (42.9%) 10 (30.3%) 14 (35.0%) 15 (35.7%) 14 (28.0%)\ncl C.2 \n Total number of patients with at least one adverse event 18 (36.0%) 8 (21.6%) 9 (19.1%) 15 (33.3%) 22 (39.3%) 11 (33.3%) 18 (45.0%) 17 (40.5%) 20 (40.0%)\n Total number of events 27 9 12 18 23 12 20 20 25 \n dcd C.2.1.2.1 18 (36.0%) 8 (21.6%) 9 (19.1%) 15 (33.3%) 22 (39.3%) 11 (33.3%) 18 (45.0%) 17 (40.5%) 20 (40.0%)\ncl C.1 \n Total number of patients with at least one adverse event 17 (34.0%) 14 (37.8%) 12 (25.5%) 17 (37.8%) 17 (30.4%) 12 (36.4%) 12 (30.0%) 17 (40.5%) 14 (28.0%)\n Total number of events 21 19 15 24 23 16 18 29 17 \n dcd C.1.1.1.3 17 (34.0%) 14 (37.8%) 12 (25.5%) 17 (37.8%) 17 (30.4%) 12 (36.4%) 12 (30.0%) 17 (40.5%) 14 (28.0%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_cols_by(\"AVALCAT1\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adae,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n # Sorted by decreasing frequency across all groups by System Organ Class and Preferred Term.\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination \nBody System or Organ Class <18.5 18.5 - 24.9 25 - 29.9 >30 <18.5 18.5 - 24.9 25 - 29.9 >30 <18.5 18.5 - 24.9 25 - 29.9 >30 \n Dictionary-Derived Term (N=44) (N=17) (N=11) (N=62) (N=37) (N=18) (N=10) (N=69) (N=28) (N=20) (N=18) (N=66) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 41 (93.2%) 14 (82.4%) 11 (100%) 56 (90.3%) 35 (94.6%) 16 (88.9%) 9 (90.0%) 63 (91.3%) 25 (89.3%) 19 (95.0%) 15 (83.3%) 61 (92.4%)\nOverall total number of events 186 80 66 277 174 89 47 312 137 129 100 337 \ncl A.1 \n Total number of patients with at least one adverse event 23 (52.3%) 12 (70.6%) 7 (63.6%) 36 (58.1%) 19 (51.4%) 10 (55.6%) 6 (60.0%) 40 (58.0%) 16 (57.1%) 13 (65.0%) 14 (77.8%) 46 (69.7%)\n Total number of events 38 22 13 59 35 22 6 67 30 23 30 77 \n dcd A.1.1.1.1 14 (31.8%) 7 (41.2%) 3 (27.3%) 26 (41.9%) 12 (32.4%) 6 (33.3%) 4 (40.0%) 23 (33.3%) 12 (42.9%) 7 (35.0%) 13 (72.2%) 31 (47.0%)\n dcd A.1.1.1.2 15 (34.1%) 8 (47.1%) 5 (45.5%) 20 (32.3%) 12 (32.4%) 8 (44.4%) 2 (20.0%) 26 (37.7%) 9 (32.1%) 7 (35.0%) 7 (38.9%) 27 (40.9%)\ncl B.2 \n Total number of patients with at least one adverse event 23 (52.3%) 10 (58.8%) 8 (72.7%) 38 (61.3%) 21 (56.8%) 8 (44.4%) 7 (70.0%) 38 (55.1%) 16 (57.1%) 16 (80.0%) 12 (66.7%) 41 (62.1%)\n Total number of events 37 19 12 61 41 18 12 67 28 28 18 69 \n dcd B.2.2.3.1 13 (29.5%) 7 (41.2%) 6 (54.5%) 22 (35.5%) 14 (37.8%) 7 (38.9%) 6 (60.0%) 27 (39.1%) 7 (25.0%) 13 (65.0%) 5 (27.8%) 26 (39.4%)\n dcd B.2.1.2.1 14 (31.8%) 8 (47.1%) 4 (36.4%) 23 (37.1%) 14 (37.8%) 6 (33.3%) 4 (40.0%) 20 (29.0%) 13 (46.4%) 8 (40.0%) 8 (44.4%) 23 (34.8%)\ncl D.1 \n Total number of patients with at least one adverse event 24 (54.5%) 9 (52.9%) 8 (72.7%) 38 (61.3%) 18 (48.6%) 5 (27.8%) 7 (70.0%) 37 (53.6%) 15 (53.6%) 12 (60.0%) 11 (61.1%) 42 (63.6%)\n Total number of events 38 11 17 61 30 11 14 51 30 23 16 66 \n dcd D.1.1.1.1 13 (29.5%) 7 (41.2%) 7 (63.6%) 23 (37.1%) 13 (35.1%) 3 (16.7%) 4 (40.0%) 22 (31.9%) 12 (42.9%) 6 (30.0%) 8 (44.4%) 25 (37.9%)\n dcd D.1.1.4.2 16 (36.4%) 4 (23.5%) 6 (54.5%) 22 (35.5%) 10 (27.0%) 4 (22.2%) 5 (50.0%) 23 (33.3%) 10 (35.7%) 9 (45.0%) 6 (33.3%) 25 (37.9%)\ncl D.2 \n Total number of patients with at least one adverse event 14 (31.8%) 7 (41.2%) 5 (45.5%) 21 (33.9%) 14 (37.8%) 10 (55.6%) 4 (40.0%) 30 (43.5%) 13 (46.4%) 10 (50.0%) 7 (38.9%) 27 (40.9%)\n Total number of events 20 7 10 25 17 14 5 36 18 15 10 31 \n dcd D.2.1.5.3 14 (31.8%) 7 (41.2%) 5 (45.5%) 21 (33.9%) 14 (37.8%) 10 (55.6%) 4 (40.0%) 30 (43.5%) 13 (46.4%) 10 (50.0%) 7 (38.9%) 27 (40.9%)\ncl B.1 \n Total number of patients with at least one adverse event 17 (38.6%) 5 (29.4%) 7 (63.6%) 18 (29.0%) 14 (37.8%) 8 (44.4%) 4 (40.0%) 23 (33.3%) 7 (25.0%) 10 (50.0%) 7 (38.9%) 19 (28.8%)\n Total number of events 22 5 7 22 16 11 4 29 11 12 8 31 \n dcd B.1.1.1.1 17 (38.6%) 5 (29.4%) 7 (63.6%) 18 (29.0%) 14 (37.8%) 8 (44.4%) 4 (40.0%) 23 (33.3%) 7 (25.0%) 10 (50.0%) 7 (38.9%) 19 (28.8%)\ncl C.2 \n Total number of patients with at least one adverse event 14 (31.8%) 4 (23.5%) 2 (18.2%) 15 (24.2%) 15 (40.5%) 5 (27.8%) 4 (40.0%) 24 (34.8%) 10 (35.7%) 13 (65.0%) 8 (44.4%) 24 (36.4%)\n Total number of events 17 9 3 19 15 6 5 27 12 16 9 28 \n dcd C.2.1.2.1 14 (31.8%) 4 (23.5%) 2 (18.2%) 15 (24.2%) 15 (40.5%) 5 (27.8%) 4 (40.0%) 24 (34.8%) 10 (35.7%) 13 (65.0%) 8 (44.4%) 24 (36.4%)\ncl C.1 \n Total number of patients with at least one adverse event 11 (25.0%) 4 (23.5%) 4 (36.4%) 24 (38.7%) 13 (35.1%) 6 (33.3%) 1 (10.0%) 26 (37.7%) 6 (21.4%) 7 (35.0%) 6 (33.3%) 24 (36.4%)\n Total number of events 14 7 4 30 20 7 1 35 8 12 9 35 \n dcd C.1.1.1.3 11 (25.0%) 4 (23.5%) 4 (36.4%) 24 (38.7%) 13 (35.1%) 6 (33.3%) 1 (10.0%) 26 (37.7%) 6 (21.4%) 7 (35.0%) 6 (33.3%) 24 (36.4%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_cols_by(\"RACE1\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adae,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n prune_table() %>%\n # Sorted by decreasing frequency across all groups by System Organ Class and Preferred Term.\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\n A: Drug X B: Placebo C: Combination \nBody System or Organ Class WHITE NON-WHITE WHITE NON-WHITE WHITE NON-WHITE \n Dictionary-Derived Term (N=27) (N=107) (N=26) (N=108) (N=21) (N=111) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 26 (96.3%) 96 (89.7%) 25 (96.2%) 98 (90.7%) 21 (100%) 99 (89.2%)\nOverall total number of events 109 500 144 478 114 589 \ncl A.1 \n Total number of patients with at least one adverse event 16 (59.3%) 62 (57.9%) 21 (80.8%) 54 (50.0%) 15 (71.4%) 74 (66.7%)\n Total number of events 30 102 37 93 25 135 \n dcd A.1.1.1.1 9 (33.3%) 41 (38.3%) 14 (53.8%) 31 (28.7%) 10 (47.6%) 53 (47.7%)\n dcd A.1.1.1.2 11 (40.7%) 37 (34.6%) 13 (50.0%) 35 (32.4%) 9 (42.9%) 41 (36.9%)\ncl B.2 \n Total number of patients with at least one adverse event 15 (55.6%) 64 (59.8%) 16 (61.5%) 58 (53.7%) 12 (57.1%) 73 (65.8%)\n Total number of events 18 111 28 110 17 126 \n dcd B.2.2.3.1 4 (14.8%) 44 (41.1%) 10 (38.5%) 44 (40.7%) 5 (23.8%) 46 (41.4%)\n dcd B.2.1.2.1 12 (44.4%) 37 (34.6%) 9 (34.6%) 35 (32.4%) 7 (33.3%) 45 (40.5%)\ncl D.1 \n Total number of patients with at least one adverse event 18 (66.7%) 61 (57.0%) 15 (57.7%) 52 (48.1%) 14 (66.7%) 66 (59.5%)\n Total number of events 27 100 23 83 27 108 \n dcd D.1.1.1.1 11 (40.7%) 39 (36.4%) 14 (53.8%) 28 (25.9%) 12 (57.1%) 39 (35.1%)\n dcd D.1.1.4.2 11 (40.7%) 37 (34.6%) 7 (26.9%) 35 (32.4%) 9 (42.9%) 41 (36.9%)\ncl D.2 \n Total number of patients with at least one adverse event 6 (22.2%) 41 (38.3%) 15 (57.7%) 43 (39.8%) 9 (42.9%) 48 (43.2%)\n Total number of events 6 56 18 54 12 62 \n dcd D.2.1.5.3 6 (22.2%) 41 (38.3%) 15 (57.7%) 43 (39.8%) 9 (42.9%) 48 (43.2%)\ncl B.1 \n Total number of patients with at least one adverse event 12 (44.4%) 35 (32.7%) 7 (26.9%) 42 (38.9%) 6 (28.6%) 37 (33.3%)\n Total number of events 15 41 8 52 8 54 \n dcd B.1.1.1.1 12 (44.4%) 35 (32.7%) 7 (26.9%) 42 (38.9%) 6 (28.6%) 37 (33.3%)\ncl C.2 \n Total number of patients with at least one adverse event 5 (18.5%) 30 (28.0%) 11 (42.3%) 37 (34.3%) 11 (52.4%) 44 (39.6%)\n Total number of events 8 40 12 41 12 53 \n dcd C.2.1.2.1 5 (18.5%) 30 (28.0%) 11 (42.3%) 37 (34.3%) 11 (52.4%) 44 (39.6%)\ncl C.1 \n Total number of patients with at least one adverse event 5 (18.5%) 38 (35.5%) 13 (50.0%) 33 (30.6%) 8 (38.1%) 35 (31.5%)\n Total number of events 5 50 18 45 13 51 \n dcd C.1.1.1.3 5 (18.5%) 38 (35.5%) 13 (50.0%) 33 (30.6%) 8 (38.1%) 35 (31.5%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_cols_by(\"SEX\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Overall total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n split_rows_by(\n \"AEHLT\",\n child_labels = \"visible\",\n indent_mod = -1L,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEHLT)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(\"AEDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 2L)\n\nresult <- build_table(\n lyt = lyt,\n df = adae,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n # Sorted by decreasing frequency across all groups by System Organ Class, High-Level Term and Preferred Term.\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nBody System or Organ Class A: Drug X B: Placebo C: Combination \n High Level Term F M F M F M \n Dictionary-Derived Term (N=79) (N=55) (N=82) (N=52) (N=70) (N=62) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 72 (91.1%) 50 (90.9%) 77 (93.9%) 46 (88.5%) 65 (92.9%) 55 (88.7%)\nOverall total number of events 377 232 419 203 378 325 \ncl A.1 \n Total number of patients with at least one adverse event 53 (67.1%) 25 (45.5%) 51 (62.2%) 24 (46.2%) 43 (61.4%) 46 (74.2%)\n Total number of events 85 47 93 37 86 74 \n hlt A.1.1.1 \n Total number of patients with at least one adverse event 53 (67.1%) 25 (45.5%) 51 (62.2%) 24 (46.2%) 43 (61.4%) 46 (74.2%)\n Total number of events 85 47 93 37 86 74 \n dcd A.1.1.1.1 34 (43.0%) 16 (29.1%) 31 (37.8%) 14 (26.9%) 33 (47.1%) 30 (48.4%)\n dcd A.1.1.1.2 32 (40.5%) 16 (29.1%) 33 (40.2%) 15 (28.8%) 24 (34.3%) 26 (41.9%)\ncl B.2 \n Total number of patients with at least one adverse event 46 (58.2%) 33 (60.0%) 45 (54.9%) 29 (55.8%) 44 (62.9%) 41 (66.1%)\n Total number of events 81 48 86 52 64 79 \n hlt B.2.2.3 \n Total number of patients with at least one adverse event 30 (38.0%) 18 (32.7%) 32 (39.0%) 22 (42.3%) 26 (37.1%) 25 (40.3%)\n Total number of events 40 24 43 33 37 40 \n dcd B.2.2.3.1 30 (38.0%) 18 (32.7%) 32 (39.0%) 22 (42.3%) 26 (37.1%) 25 (40.3%)\n hlt B.2.1.2 \n Total number of patients with at least one adverse event 29 (36.7%) 20 (36.4%) 30 (36.6%) 14 (26.9%) 22 (31.4%) 30 (48.4%)\n Total number of events 41 24 43 19 27 39 \n dcd B.2.1.2.1 29 (36.7%) 20 (36.4%) 30 (36.6%) 14 (26.9%) 22 (31.4%) 30 (48.4%)\ncl D.1 \n Total number of patients with at least one adverse event 45 (57.0%) 34 (61.8%) 40 (48.8%) 27 (51.9%) 41 (58.6%) 39 (62.9%)\n Total number of events 72 55 64 42 73 62 \n hlt D.1.1.1 \n Total number of patients with at least one adverse event 25 (31.6%) 25 (45.5%) 29 (35.4%) 13 (25.0%) 27 (38.6%) 24 (38.7%)\n Total number of events 32 29 36 15 39 32 \n dcd D.1.1.1.1 25 (31.6%) 25 (45.5%) 29 (35.4%) 13 (25.0%) 27 (38.6%) 24 (38.7%)\n hlt D.1.1.4 \n Total number of patients with at least one adverse event 30 (38.0%) 18 (32.7%) 22 (26.8%) 20 (38.5%) 27 (38.6%) 23 (37.1%)\n Total number of events 40 26 28 27 34 30 \n dcd D.1.1.4.2 30 (38.0%) 18 (32.7%) 22 (26.8%) 20 (38.5%) 27 (38.6%) 23 (37.1%)\ncl D.2 \n Total number of patients with at least one adverse event 26 (32.9%) 21 (38.2%) 40 (48.8%) 18 (34.6%) 34 (48.6%) 23 (37.1%)\n Total number of events 35 27 49 23 43 31 \n hlt D.2.1.5 \n Total number of patients with at least one adverse event 26 (32.9%) 21 (38.2%) 40 (48.8%) 18 (34.6%) 34 (48.6%) 23 (37.1%)\n Total number of events 35 27 49 23 43 31 \n dcd D.2.1.5.3 26 (32.9%) 21 (38.2%) 40 (48.8%) 18 (34.6%) 34 (48.6%) 23 (37.1%)\ncl B.1 \n Total number of patients with at least one adverse event 28 (35.4%) 19 (34.5%) 33 (40.2%) 16 (30.8%) 24 (34.3%) 19 (30.6%)\n Total number of events 33 23 36 24 35 27 \n hlt B.1.1.1 \n Total number of patients with at least one adverse event 28 (35.4%) 19 (34.5%) 33 (40.2%) 16 (30.8%) 24 (34.3%) 19 (30.6%)\n Total number of events 33 23 36 24 35 27 \n dcd B.1.1.1.1 28 (35.4%) 19 (34.5%) 33 (40.2%) 16 (30.8%) 24 (34.3%) 19 (30.6%)\ncl C.2 \n Total number of patients with at least one adverse event 23 (29.1%) 12 (21.8%) 36 (43.9%) 12 (23.1%) 30 (42.9%) 25 (40.3%)\n Total number of events 32 16 39 14 33 32 \n hlt C.2.1.2 \n Total number of patients with at least one adverse event 23 (29.1%) 12 (21.8%) 36 (43.9%) 12 (23.1%) 30 (42.9%) 25 (40.3%)\n Total number of events 32 16 39 14 33 32 \n dcd C.2.1.2.1 23 (29.1%) 12 (21.8%) 36 (43.9%) 12 (23.1%) 30 (42.9%) 25 (40.3%)\ncl C.1 \n Total number of patients with at least one adverse event 30 (38.0%) 13 (23.6%) 36 (43.9%) 10 (19.2%) 27 (38.6%) 16 (25.8%)\n Total number of events 39 16 52 11 44 20 \n hlt C.1.1.1 \n Total number of patients with at least one adverse event 30 (38.0%) 13 (23.6%) 36 (43.9%) 10 (19.2%) 27 (38.6%) 16 (25.8%)\n Total number of events 39 16 52 11 44 20 \n dcd C.1.1.1.3 30 (38.0%) 13 (23.6%) 36 (43.9%) 10 (19.2%) 27 (38.6%) 16 (25.8%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\nadsub <- random.cdisc.data::cadsub\n\nadsub_bmi <- adsub %>%\n filter(PARAMCD == \"BBMISI\") %>%\n select(STUDYID, USUBJID, AVALCAT1) %>%\n mutate(\n AVALCAT1 = factor(AVALCAT1, levels = c(\"<18.5\", \"18.5 - 24.9\", \"25 - 29.9\", \">30\"))\n )\n\nadsl <- adsl %>%\n mutate(\n RACE1 = case_when(\n RACE == \"WHITE\" ~ \"WHITE\",\n TRUE ~ \"NON-WHITE\"\n ),\n RACE1 = factor(\n RACE1,\n levels = c(\"WHITE\", \"NON-WHITE\")\n )\n ) %>%\n left_join(\n y = adsub_bmi,\n by = c(\"STUDYID\", \"USUBJID\")\n )\n\nadae_labels <- var_labels(adae)\n\nadae <- adae %>%\n mutate(\n RACE1 = case_when(\n RACE == \"WHITE\" ~ \"WHITE\",\n TRUE ~ \"NON-WHITE\"\n ),\n RACE1 = factor(\n RACE1,\n levels = c(\"WHITE\", \"NON-WHITE\")\n )\n ) %>%\n left_join(\n y = adsub_bmi,\n by = c(\"STUDYID\", \"USUBJID\")\n )\n\nvar_labels(adae) <- c(adae_labels, \"RACE1\" = \"RACE WHITE/NON-WHITE\", \"AVALCAT1\" = \"Baseline BMI Category\")\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\nadsub_bmi <- df_explicit_na(adsub_bmi)", + "crumbs": [ + "Tables", + "Adverse Events", + "AET06" + ] + }, + { + "objectID": "tables/adverse-events/aet06.html#teal-app", + "href": "tables/adverse-events/aet06.html#teal-app", + "title": "AET06", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\", \"SEX\"), c(\"ARM\", \"SEX\")),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n add_total = TRUE,\n event_type = \"adverse event\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\", \"SEX\"), c(\"ARM\", \"SEX\")),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n add_total = TRUE,\n event_type = \"adverse event\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "crumbs": [ + "Tables", + "Adverse Events", + "AET06" + ] + }, + { + "objectID": "tables/adverse-events/aet06.html#reproducibility", + "href": "tables/adverse-events/aet06.html#reproducibility", + "title": "AET06", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:50:26 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "crumbs": [ + "Tables", + "Adverse Events", + "AET06" + ] + }, + { + "objectID": "tables/adverse-events/aet10.html#output", + "href": "tables/adverse-events/aet10.html#output", + "title": "AET10", "section": "Output", - "text": "Output\n\n\nStandard Table (High)\nStandard Table (Low)\nTable Without Patients with Missing Baseline (High)\nTable with Missing Baseline Considered as Grade 0 (Low)\nTable with Fill-In of Grades\nData Setup\n\n\n\nNote that the worst laboratory flag (below WGRHIFL) must be selected appropriately in the pre-processing step. New grouping variables ATOXGR_GP (post-baseline) and BTOXGR_GP (baseline) are created to display the correct output.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRHIFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- h_adsl_adlb_merge_using_worst_flag(adsl_f, adlb_f, worst_flag = c(\"WGRHIFL\" = \"Y\"))\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = factor(case_when(\n ATOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n ATOXGR == 1 ~ \"1\",\n ATOXGR == 2 ~ \"2\",\n ATOXGR == 3 ~ \"3\",\n ATOXGR == 4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n ) %>%\n mutate(\n BTOXGR_GP = factor(case_when(\n BTOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n BTOXGR == 1 ~ \"1\",\n BTOXGR == 2 ~ \"2\",\n BTOXGR == 3 ~ \"3\",\n BTOXGR == 4 ~ \"4\",\n BTOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = drop_split_levels,\n label_pos = \"topleft\",\n split_label = \"Parameter\"\n ) %>%\n split_rows_by(\n \"BTOXGR_GP\",\n label_pos = \"topleft\",\n split_label = \" Baseline NCI-CTCAE Grade\",\n indent_mod = 2L\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\"), unique_count_suffix = FALSE) %>%\n count_occurrences_by_grade(\"ATOXGR_GP\", denom = \"n\", drop = FALSE, .indent_mods = 3L) %>%\n append_topleft(\" Post-baseline NCI-CTCAE Grade\") %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f) %>%\n prune_table()\n\nresult\n\nParameter \n Baseline NCI-CTCAE Grade A: Drug X B: Placebo C: Combination\n Post-baseline NCI-CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————\nAlanine Aminotransferase Measurement \n Not High 134 134 132 \n Not High 134 (100%) 134 (100%) 132 (100%) \nC-Reactive Protein Measurement \n Not High 114 112 115 \n Not High 45 (39.5%) 55 (49.1%) 57 (49.6%) \n 1 18 (15.8%) 18 (16.1%) 19 (16.5%) \n 2 19 (16.7%) 10 (8.9%) 11 (9.6%) \n 3 22 (19.3%) 13 (11.6%) 20 (17.4%) \n 4 10 (8.8%) 16 (14.3%) 8 (7.0%) \n 1 8 10 7 \n Not High 5 (62.5%) 2 (20.0%) 2 (28.6%) \n 1 0 1 (10.0%) 0 \n 2 1 (12.5%) 3 (30.0%) 3 (42.9%) \n 3 1 (12.5%) 1 (10.0%) 0 \n 4 1 (12.5%) 3 (30.0%) 2 (28.6%) \n 2 2 6 7 \n Not High 1 (50.0%) 4 (66.7%) 4 (57.1%) \n 1 0 1 (16.7%) 2 (28.6%) \n 2 1 (50.0%) 1 (16.7%) 0 \n 4 0 0 1 (14.3%) \n 3 7 4 3 \n Not High 3 (42.9%) 0 2 (66.7%) \n 1 2 (28.6%) 1 (25.0%) 1 (33.3%) \n 2 0 1 (25.0%) 0 \n 3 1 (14.3%) 1 (25.0%) 0 \n 4 1 (14.3%) 1 (25.0%) 0 \n 4 3 2 0 \n Not High 1 (33.3%) 0 0 \n 1 0 1 (50.0%) 0 \n 3 1 (33.3%) 1 (50.0%) 0 \n 4 1 (33.3%) 0 0 \nImmunoglobulin A Measurement \n Not High 119 116 113 \n Not High 55 (46.2%) 54 (46.6%) 51 (45.1%) \n 1 18 (15.1%) 11 (9.5%) 15 (13.3%) \n 2 14 (11.8%) 22 (19.0%) 19 (16.8%) \n 3 20 (16.8%) 19 (16.4%) 20 (17.7%) \n 4 12 (10.1%) 10 (8.6%) 8 (7.1%) \n 1 5 4 2 \n Not High 4 (80.0%) 1 (25.0%) 2 (100%) \n 2 1 (20.0%) 1 (25.0%) 0 \n 3 0 2 (50.0%) 0 \n 2 4 4 5 \n Not High 2 (50.0%) 3 (75.0%) 3 (60.0%) \n 1 1 (25.0%) 0 2 (40.0%) \n 3 1 (25.0%) 0 0 \n 4 0 1 (25.0%) 0 \n 3 4 5 11 \n Not High 3 (75.0%) 1 (20.0%) 6 (54.5%) \n 1 0 1 (20.0%) 1 (9.1%) \n 2 1 (25.0%) 0 0 \n 3 0 2 (40.0%) 3 (27.3%) \n 4 0 1 (20.0%) 1 (9.1%) \n 4 2 5 1 \n Not High 0 3 (60.0%) 1 (100%) \n 2 1 (50.0%) 1 (20.0%) 0 \n 4 1 (50.0%) 1 (20.0%) 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote that the worst laboratory flag (below WGRLOFL) must be selected appropriately in the pre-processing step. New grouping variables ATOXGR_GP (post-baseline) and BTOXGR_GP (baseline) are created to display the correct output.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRLOFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- h_adsl_adlb_merge_using_worst_flag(adsl_f, adlb_f, worst_flag = c(\"WGRLOFL\" = \"Y\"))\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = factor(case_when(\n ATOXGR %in% c(0, 1, 2, 3, 4) ~ \"Not Low\",\n ATOXGR == -1 ~ \"1\",\n ATOXGR == -2 ~ \"2\",\n ATOXGR == -3 ~ \"3\",\n ATOXGR == -4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n ) %>%\n mutate(\n BTOXGR_GP = factor(case_when(\n BTOXGR %in% c(0, 1, 2, 3, 4) ~ \"Not Low\",\n BTOXGR == -1 ~ \"1\",\n BTOXGR == -2 ~ \"2\",\n BTOXGR == -3 ~ \"3\",\n BTOXGR == -4 ~ \"4\",\n BTOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = drop_split_levels,\n label_pos = \"topleft\",\n split_label = \"Parameter\"\n ) %>%\n split_rows_by(\n \"BTOXGR_GP\",\n label_pos = \"topleft\",\n split_label = \" Baseline NCI-CTCAE Grade\",\n indent_mod = 2L\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\"), unique_count_suffix = FALSE) %>%\n count_occurrences_by_grade(\"ATOXGR_GP\", denom = \"n\", drop = FALSE, .indent_mods = 3L) %>%\n append_topleft(\" Post-baseline NCI-CTCAE Grade\") %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f) %>%\n prune_table()\n\nresult\n\nParameter \n Baseline NCI-CTCAE Grade A: Drug X B: Placebo C: Combination\n Post-baseline NCI-CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————\nAlanine Aminotransferase Measurement \n Not Low 113 117 123 \n Not Low 56 (49.6%) 55 (47.0%) 62 (50.4%) \n 1 11 (9.7%) 9 (7.7%) 15 (12.2%) \n 2 15 (13.3%) 23 (19.7%) 16 (13.0%) \n 3 15 (13.3%) 21 (17.9%) 13 (10.6%) \n 4 16 (14.2%) 9 (7.7%) 17 (13.8%) \n 1 6 6 4 \n Not Low 3 (50.0%) 5 (83.3%) 3 (75.0%) \n 1 3 (50.0%) 0 0 \n 4 0 1 (16.7%) 1 (25.0%) \n 2 8 5 1 \n Not Low 5 (62.5%) 3 (60.0%) 0 \n 1 0 1 (20.0%) 0 \n 2 2 (25.0%) 0 0 \n 3 0 1 (20.0%) 1 (100%) \n 4 1 (12.5%) 0 0 \n 3 3 3 2 \n Not Low 0 1 (33.3%) 0 \n 1 1 (33.3%) 0 0 \n 2 1 (33.3%) 0 1 (50.0%) \n 3 1 (33.3%) 2 (66.7%) 1 (50.0%) \n 4 4 3 2 \n Not Low 4 (100%) 1 (33.3%) 1 (50.0%) \n 1 0 1 (33.3%) 0 \n 2 0 1 (33.3%) 0 \n 3 0 0 1 (50.0%) \nC-Reactive Protein Measurement \n Not Low 119 113 112 \n Not Low 41 (34.5%) 42 (37.2%) 50 (44.6%) \n 1 20 (16.8%) 18 (15.9%) 11 (9.8%) \n 2 24 (20.2%) 20 (17.7%) 14 (12.5%) \n 3 25 (21.0%) 18 (15.9%) 21 (18.8%) \n 4 9 (7.6%) 15 (13.3%) 16 (14.3%) \n 1 3 5 9 \n Not Low 2 (66.7%) 2 (40.0%) 2 (22.2%) \n 2 0 1 (20.0%) 3 (33.3%) \n 3 1 (33.3%) 1 (20.0%) 0 \n 4 0 1 (20.0%) 4 (44.4%) \n 2 5 9 2 \n Not Low 3 (60.0%) 4 (44.4%) 1 (50.0%) \n 1 1 (20.0%) 4 (44.4%) 0 \n 3 0 1 (11.1%) 1 (50.0%) \n 4 1 (20.0%) 0 0 \n 3 4 5 7 \n Not Low 1 (25.0%) 4 (80.0%) 2 (28.6%) \n 1 0 0 1 (14.3%) \n 2 0 0 1 (14.3%) \n 3 3 (75.0%) 1 (20.0%) 2 (28.6%) \n 4 0 0 1 (14.3%) \n 4 3 2 2 \n Not Low 3 (100%) 1 (50.0%) 0 \n 2 0 1 (50.0%) 0 \n 3 0 0 1 (50.0%) \n 4 0 0 1 (50.0%) \nImmunoglobulin A Measurement \n Not Low 134 134 132 \n Not Low 134 (100%) 134 (100%) 132 (100%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote that missing baseline values are filtered out in the pre-processing step.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRHIFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- h_adsl_adlb_merge_using_worst_flag(adsl_f, adlb_f, worst_flag = c(\"WGRHIFL\" = \"Y\"))\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n filter(BTOXGR != \"<Missing>\") %>%\n mutate(\n ATOXGR_GP = factor(case_when(\n ATOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n ATOXGR == 1 ~ \"1\",\n ATOXGR == 2 ~ \"2\",\n ATOXGR == 3 ~ \"3\",\n ATOXGR == 4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n ) %>%\n mutate(\n BTOXGR_GP = factor(case_when(\n BTOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n BTOXGR == 1 ~ \"1\",\n BTOXGR == 2 ~ \"2\",\n BTOXGR == 3 ~ \"3\",\n BTOXGR == 4 ~ \"4\"\n ), levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\"))\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = drop_split_levels,\n label_pos = \"topleft\",\n split_label = \"Parameter\"\n ) %>%\n split_rows_by(\n \"BTOXGR_GP\",\n label_pos = \"topleft\",\n split_label = \" Baseline NCI-CTCAE Grade\",\n indent_mod = 2L\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\"), unique_count_suffix = FALSE) %>%\n count_occurrences_by_grade(\"ATOXGR_GP\", denom = \"n\", drop = FALSE, .indent_mods = 3L) %>%\n append_topleft(\" Post-baseline NCI-CTCAE Grade\") %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f) %>%\n prune_table()\n\nresult\n\nParameter \n Baseline NCI-CTCAE Grade A: Drug X B: Placebo C: Combination\n Post-baseline NCI-CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————\nAlanine Aminotransferase Measurement \n Not High 134 134 132 \n Not High 134 (100%) 134 (100%) 132 (100%) \nC-Reactive Protein Measurement \n Not High 114 112 115 \n Not High 45 (39.5%) 55 (49.1%) 57 (49.6%) \n 1 18 (15.8%) 18 (16.1%) 19 (16.5%) \n 2 19 (16.7%) 10 (8.9%) 11 (9.6%) \n 3 22 (19.3%) 13 (11.6%) 20 (17.4%) \n 4 10 (8.8%) 16 (14.3%) 8 (7.0%) \n 1 8 10 7 \n Not High 5 (62.5%) 2 (20.0%) 2 (28.6%) \n 1 0 1 (10.0%) 0 \n 2 1 (12.5%) 3 (30.0%) 3 (42.9%) \n 3 1 (12.5%) 1 (10.0%) 0 \n 4 1 (12.5%) 3 (30.0%) 2 (28.6%) \n 2 2 6 7 \n Not High 1 (50.0%) 4 (66.7%) 4 (57.1%) \n 1 0 1 (16.7%) 2 (28.6%) \n 2 1 (50.0%) 1 (16.7%) 0 \n 4 0 0 1 (14.3%) \n 3 7 4 3 \n Not High 3 (42.9%) 0 2 (66.7%) \n 1 2 (28.6%) 1 (25.0%) 1 (33.3%) \n 2 0 1 (25.0%) 0 \n 3 1 (14.3%) 1 (25.0%) 0 \n 4 1 (14.3%) 1 (25.0%) 0 \n 4 3 2 0 \n Not High 1 (33.3%) 0 0 \n 1 0 1 (50.0%) 0 \n 3 1 (33.3%) 1 (50.0%) 0 \n 4 1 (33.3%) 0 0 \nImmunoglobulin A Measurement \n Not High 119 116 113 \n Not High 55 (46.2%) 54 (46.6%) 51 (45.1%) \n 1 18 (15.1%) 11 (9.5%) 15 (13.3%) \n 2 14 (11.8%) 22 (19.0%) 19 (16.8%) \n 3 20 (16.8%) 19 (16.4%) 20 (17.7%) \n 4 12 (10.1%) 10 (8.6%) 8 (7.1%) \n 1 5 4 2 \n Not High 4 (80.0%) 1 (25.0%) 2 (100%) \n 2 1 (20.0%) 1 (25.0%) 0 \n 3 0 2 (50.0%) 0 \n 2 4 4 5 \n Not High 2 (50.0%) 3 (75.0%) 3 (60.0%) \n 1 1 (25.0%) 0 2 (40.0%) \n 3 1 (25.0%) 0 0 \n 4 0 1 (25.0%) 0 \n 3 4 5 11 \n Not High 3 (75.0%) 1 (20.0%) 6 (54.5%) \n 1 0 1 (20.0%) 1 (9.1%) \n 2 1 (25.0%) 0 0 \n 3 0 2 (40.0%) 3 (27.3%) \n 4 0 1 (20.0%) 1 (9.1%) \n 4 2 5 1 \n Not High 0 3 (60.0%) 1 (100%) \n 2 1 (50.0%) 1 (20.0%) 0 \n 4 1 (50.0%) 1 (20.0%) 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNote that when BTOXGR is missing, the grouping variable BTOXGR_GP now is \"Not Low\" instead of \"Missing\" compared to Standard Table (Low).\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRLOFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- h_adsl_adlb_merge_using_worst_flag(adsl_f, adlb_f, worst_flag = c(\"WGRLOFL\" = \"Y\"))\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = factor(case_when(\n ATOXGR %in% c(0, 1, 2, 3, 4) ~ \"Not Low\",\n ATOXGR == -1 ~ \"1\",\n ATOXGR == -2 ~ \"2\",\n ATOXGR == -3 ~ \"3\",\n ATOXGR == -4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\"))\n ) %>%\n mutate(\n BTOXGR_GP = factor(case_when(\n BTOXGR %in% c(0, 1, 2, 3, 4, \"<Missing>\") ~ \"Not Low\",\n BTOXGR == -1 ~ \"1\",\n BTOXGR == -2 ~ \"2\",\n BTOXGR == -3 ~ \"3\",\n BTOXGR == -4 ~ \"4\"\n ), levels = c(\"Not Low\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = drop_split_levels,\n label_pos = \"topleft\",\n split_label = \"Parameter\"\n ) %>%\n split_rows_by(\n \"BTOXGR_GP\",\n label_pos = \"topleft\",\n split_label = \" Baseline NCI-CTCAE Grade\",\n indent_mod = 2L\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\"), unique_count_suffix = FALSE) %>%\n count_occurrences_by_grade(\"ATOXGR_GP\", denom = \"n\", drop = FALSE, .indent_mods = 3L) %>%\n append_topleft(\" Post-baseline NCI-CTCAE Grade\") %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f) %>%\n prune_table()\n\nresult\n\nParameter \n Baseline NCI-CTCAE Grade A: Drug X B: Placebo C: Combination\n Post-baseline NCI-CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————\nAlanine Aminotransferase Measurement \n Not Low 113 117 123 \n Not Low 56 (49.6%) 55 (47.0%) 62 (50.4%) \n 1 11 (9.7%) 9 (7.7%) 15 (12.2%) \n 2 15 (13.3%) 23 (19.7%) 16 (13.0%) \n 3 15 (13.3%) 21 (17.9%) 13 (10.6%) \n 4 16 (14.2%) 9 (7.7%) 17 (13.8%) \n 1 6 6 4 \n Not Low 3 (50.0%) 5 (83.3%) 3 (75.0%) \n 1 3 (50.0%) 0 0 \n 4 0 1 (16.7%) 1 (25.0%) \n 2 8 5 1 \n Not Low 5 (62.5%) 3 (60.0%) 0 \n 1 0 1 (20.0%) 0 \n 2 2 (25.0%) 0 0 \n 3 0 1 (20.0%) 1 (100%) \n 4 1 (12.5%) 0 0 \n 3 3 3 2 \n Not Low 0 1 (33.3%) 0 \n 1 1 (33.3%) 0 0 \n 2 1 (33.3%) 0 1 (50.0%) \n 3 1 (33.3%) 2 (66.7%) 1 (50.0%) \n 4 4 3 2 \n Not Low 4 (100%) 1 (33.3%) 1 (50.0%) \n 1 0 1 (33.3%) 0 \n 2 0 1 (33.3%) 0 \n 3 0 0 1 (50.0%) \nC-Reactive Protein Measurement \n Not Low 119 113 112 \n Not Low 41 (34.5%) 42 (37.2%) 50 (44.6%) \n 1 20 (16.8%) 18 (15.9%) 11 (9.8%) \n 2 24 (20.2%) 20 (17.7%) 14 (12.5%) \n 3 25 (21.0%) 18 (15.9%) 21 (18.8%) \n 4 9 (7.6%) 15 (13.3%) 16 (14.3%) \n 1 3 5 9 \n Not Low 2 (66.7%) 2 (40.0%) 2 (22.2%) \n 2 0 1 (20.0%) 3 (33.3%) \n 3 1 (33.3%) 1 (20.0%) 0 \n 4 0 1 (20.0%) 4 (44.4%) \n 2 5 9 2 \n Not Low 3 (60.0%) 4 (44.4%) 1 (50.0%) \n 1 1 (20.0%) 4 (44.4%) 0 \n 3 0 1 (11.1%) 1 (50.0%) \n 4 1 (20.0%) 0 0 \n 3 4 5 7 \n Not Low 1 (25.0%) 4 (80.0%) 2 (28.6%) \n 1 0 0 1 (14.3%) \n 2 0 0 1 (14.3%) \n 3 3 (75.0%) 1 (20.0%) 2 (28.6%) \n 4 0 0 1 (14.3%) \n 4 3 2 2 \n Not Low 3 (100%) 1 (50.0%) 0 \n 2 0 1 (50.0%) 0 \n 3 0 0 1 (50.0%) \n 4 0 0 1 (50.0%) \nImmunoglobulin A Measurement \n Not Low 134 134 132 \n Not Low 134 (100%) 134 (100%) 132 (100%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPre-processing is the same as Standard Table (High), but in order to keep all levels, prune_table() is not applied.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadlb_f <- adlb %>% filter(WGRHIFL == \"Y\")\n\n# Please note the step below can be skipped if you are using DTYPE PHANTOM\nadlb_out <- h_adsl_adlb_merge_using_worst_flag(adsl_f, adlb_f, worst_flag = c(\"WGRHIFL\" = \"Y\"))\n\n# Create new grouping variables ATOXGR_GP, BTOXGR_GP\nadlb_out <- adlb_out %>%\n mutate(\n ATOXGR_GP = factor(case_when(\n ATOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n ATOXGR == 1 ~ \"1\",\n ATOXGR == 2 ~ \"2\",\n ATOXGR == 3 ~ \"3\",\n ATOXGR == 4 ~ \"4\",\n ATOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n ) %>%\n mutate(\n BTOXGR_GP = factor(case_when(\n BTOXGR %in% c(0, -1, -2, -3, -4) ~ \"Not High\",\n BTOXGR == 1 ~ \"1\",\n BTOXGR == 2 ~ \"2\",\n BTOXGR == 3 ~ \"3\",\n BTOXGR == 4 ~ \"4\",\n BTOXGR == \"<Missing>\" ~ \"Missing\"\n ), levels = c(\"Not High\", \"1\", \"2\", \"3\", \"4\", \"Missing\"))\n )\n\nresult <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = drop_split_levels,\n label_pos = \"topleft\",\n split_label = \"Parameter\"\n ) %>%\n split_rows_by(\n \"BTOXGR_GP\",\n label_pos = \"topleft\",\n split_label = \" Baseline NCI-CTCAE Grade\",\n indent_mod = 2L\n ) %>%\n summarize_num_patients(var = \"USUBJID\", .stats = c(\"unique_count\"), unique_count_suffix = FALSE) %>%\n count_occurrences_by_grade(\"ATOXGR_GP\", denom = \"n\", drop = FALSE, .indent_mods = 3L) %>%\n append_topleft(\" Post-baseline NCI-CTCAE Grade\") %>%\n build_table(df = adlb_out, alt_counts_df = adsl_f)\n\nresult\n\nParameter \n Baseline NCI-CTCAE Grade A: Drug X B: Placebo C: Combination\n Post-baseline NCI-CTCAE Grade (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————\nAlanine Aminotransferase Measurement \n Not High 134 134 132 \n Not High 134 (100%) 134 (100%) 132 (100%) \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 1 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 2 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 3 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n 4 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n Missing 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \nC-Reactive Protein Measurement \n Not High 114 112 115 \n Not High 45 (39.5%) 55 (49.1%) 57 (49.6%) \n 1 18 (15.8%) 18 (16.1%) 19 (16.5%) \n 2 19 (16.7%) 10 (8.9%) 11 (9.6%) \n 3 22 (19.3%) 13 (11.6%) 20 (17.4%) \n 4 10 (8.8%) 16 (14.3%) 8 (7.0%) \n Missing 0 0 0 \n 1 8 10 7 \n Not High 5 (62.5%) 2 (20.0%) 2 (28.6%) \n 1 0 1 (10.0%) 0 \n 2 1 (12.5%) 3 (30.0%) 3 (42.9%) \n 3 1 (12.5%) 1 (10.0%) 0 \n 4 1 (12.5%) 3 (30.0%) 2 (28.6%) \n Missing 0 0 0 \n 2 2 6 7 \n Not High 1 (50.0%) 4 (66.7%) 4 (57.1%) \n 1 0 1 (16.7%) 2 (28.6%) \n 2 1 (50.0%) 1 (16.7%) 0 \n 3 0 0 0 \n 4 0 0 1 (14.3%) \n Missing 0 0 0 \n 3 7 4 3 \n Not High 3 (42.9%) 0 2 (66.7%) \n 1 2 (28.6%) 1 (25.0%) 1 (33.3%) \n 2 0 1 (25.0%) 0 \n 3 1 (14.3%) 1 (25.0%) 0 \n 4 1 (14.3%) 1 (25.0%) 0 \n Missing 0 0 0 \n 4 3 2 0 \n Not High 1 (33.3%) 0 0 \n 1 0 1 (50.0%) 0 \n 2 0 0 0 \n 3 1 (33.3%) 1 (50.0%) 0 \n 4 1 (33.3%) 0 0 \n Missing 0 0 0 \n Missing 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \nImmunoglobulin A Measurement \n Not High 119 116 113 \n Not High 55 (46.2%) 54 (46.6%) 51 (45.1%) \n 1 18 (15.1%) 11 (9.5%) 15 (13.3%) \n 2 14 (11.8%) 22 (19.0%) 19 (16.8%) \n 3 20 (16.8%) 19 (16.4%) 20 (17.7%) \n 4 12 (10.1%) 10 (8.6%) 8 (7.1%) \n Missing 0 0 0 \n 1 5 4 2 \n Not High 4 (80.0%) 1 (25.0%) 2 (100%) \n 1 0 0 0 \n 2 1 (20.0%) 1 (25.0%) 0 \n 3 0 2 (50.0%) 0 \n 4 0 0 0 \n Missing 0 0 0 \n 2 4 4 5 \n Not High 2 (50.0%) 3 (75.0%) 3 (60.0%) \n 1 1 (25.0%) 0 2 (40.0%) \n 2 0 0 0 \n 3 1 (25.0%) 0 0 \n 4 0 1 (25.0%) 0 \n Missing 0 0 0 \n 3 4 5 11 \n Not High 3 (75.0%) 1 (20.0%) 6 (54.5%) \n 1 0 1 (20.0%) 1 (9.1%) \n 2 1 (25.0%) 0 0 \n 3 0 2 (40.0%) 3 (27.3%) \n 4 0 1 (20.0%) 1 (9.1%) \n Missing 0 0 0 \n 4 2 5 1 \n Not High 0 3 (60.0%) 1 (100%) \n 1 0 0 0 \n 2 1 (50.0%) 1 (20.0%) 0 \n 3 0 0 0 \n 4 1 (50.0%) 1 (20.0%) 0 \n Missing 0 0 0 \n Missing 0 0 0 \n Not High 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Missing 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPlease note that for each variant, the adlb dataset needs to be filtered on correct flags like WGRLOFL, WGRHIFL, et al., otherwise the layout function will not return the correct counts. There is an option to create a record for a lab test where no record is found at that visit. If you specified add_derived_type = \"PHANTOM\" & dtype_phantom_cond, you don’t have to use the h_adsl_adlb_merge_using_worst_flag function to preprocess your adlb dataset. Otherwise please follow the pre-processing steps below before applying the layout functions.\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadlb <- random.cdisc.data::cadlb\n\nadsl <- df_explicit_na(adsl)\nadlb <- df_explicit_na(adlb)\n\n# Please note that in real clinical data, population flag like SAFFL, and parameter category like PARCAT2 needs to be\n# selected properly.\nadsl_f <- adsl %>% filter(SAFFL == \"Y\")\nadlb <- adlb %>% filter(SAFFL == \"Y\")", + "text": "Output\n\n\nStandard Table\nMost Common (\\(\\geq\\) 35%) Adverse Events (setting threshold)\nData Setup\n\n\n\nThe “All Patients” column is not required in this table but for illustrative purposes we include it to show correct sorting.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n var = \"ARM\",\n split_fun = add_overall_level(\"All Patients\", first = FALSE)\n ) %>%\n count_occurrences(vars = \"AEDECOD\")\n\ntbl1 <- build_table(\n lyt = lyt,\n df = adae,\n alt_counts_df = adsl\n)\n\ntbl2 <- prune_table(\n tt = tbl1,\n prune_func = keep_rows(\n has_fraction_in_any_col(\n atleast = 0.05, # specify threshold\n col_names = levels(adsl$ARM)\n )\n )\n)\n\nresult <- sort_at_path(\n tbl2,\n path = c(\"AEDECOD\"),\n scorefun = score_occurrences\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————\ndcd D.2.1.5.3 47 (35.1%) 58 (43.3%) 57 (43.2%) 162 (40.5%) \ndcd A.1.1.1.1 50 (37.3%) 45 (33.6%) 63 (47.7%) 158 (39.5%) \ndcd B.2.2.3.1 48 (35.8%) 54 (40.3%) 51 (38.6%) 153 (38.2%) \ndcd A.1.1.1.2 48 (35.8%) 48 (35.8%) 50 (37.9%) 146 (36.5%) \ndcd B.2.1.2.1 49 (36.6%) 44 (32.8%) 52 (39.4%) 145 (36.2%) \ndcd D.1.1.1.1 50 (37.3%) 42 (31.3%) 51 (38.6%) 143 (35.8%) \ndcd D.1.1.4.2 48 (35.8%) 42 (31.3%) 50 (37.9%) 140 (35.0%) \ndcd B.1.1.1.1 47 (35.1%) 49 (36.6%) 43 (32.6%) 139 (34.8%) \ndcd C.2.1.2.1 35 (26.1%) 48 (35.8%) 55 (41.7%) 138 (34.5%) \ndcd C.1.1.1.3 43 (32.1%) 46 (34.3%) 43 (32.6%) 132 (33.0%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n var = \"ARM\",\n split_fun = add_overall_level(\"All Patients\", first = FALSE)\n ) %>%\n count_occurrences(vars = \"AEDECOD\")\n\ntbl1 <- build_table(\n lyt = lyt,\n df = adae,\n alt_counts_df = adsl\n)\n\ntbl2 <- prune_table(\n tt = tbl1,\n prune_func = keep_rows(\n has_fraction_in_any_col(\n atleast = 0.35, # specify threshold\n col_names = levels(adsl$ARM)\n )\n )\n)\n\nresult <- sort_at_path(\n tbl2,\n path = c(\"AEDECOD\"),\n scorefun = score_occurrences\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————\ndcd D.2.1.5.3 47 (35.1%) 58 (43.3%) 57 (43.2%) 162 (40.5%) \ndcd A.1.1.1.1 50 (37.3%) 45 (33.6%) 63 (47.7%) 158 (39.5%) \ndcd B.2.2.3.1 48 (35.8%) 54 (40.3%) 51 (38.6%) 153 (38.2%) \ndcd A.1.1.1.2 48 (35.8%) 48 (35.8%) 50 (37.9%) 146 (36.5%) \ndcd B.2.1.2.1 49 (36.6%) 44 (32.8%) 52 (39.4%) 145 (36.2%) \ndcd D.1.1.1.1 50 (37.3%) 42 (31.3%) 51 (38.6%) 143 (35.8%) \ndcd D.1.1.4.2 48 (35.8%) 42 (31.3%) 50 (37.9%) 140 (35.0%) \ndcd B.1.1.1.1 47 (35.1%) 49 (36.6%) 43 (32.6%) 139 (34.8%) \ndcd C.2.1.2.1 35 (26.1%) 48 (35.8%) 55 (41.7%) 138 (34.5%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)", "crumbs": [ "Tables", - "Lab Results", - "LBT14" + "Adverse Events", + "AET10" ] }, { - "objectID": "tables/lab-results/lbt14.html#teal-app", - "href": "tables/lab-results/lbt14.html#teal-app", - "title": "LBT14", + "objectID": "tables/adverse-events/aet10.html#teal-app", + "href": "tables/adverse-events/aet10.html#teal-app", + "title": "AET10", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_shift_by_grade(\n label = \"Grade Laboratory Abnormality Table\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"ALT\"\n ),\n worst_flag_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"WGRLOVFL\", \"WGRLOFL\", \"WGRHIVFL\", \"WGRHIFL\")),\n selected = c(\"WGRHIFL\")\n ),\n worst_flag_indicator = choices_selected(\n value_choices(ADLB, \"WGRLOVFL\"),\n selected = \"Y\", fixed = TRUE\n ),\n anl_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"ATOXGR\")),\n selected = c(\"ATOXGR\"),\n fixed = TRUE\n ),\n base_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"BTOXGR\")),\n selected = c(\"BTOXGR\"),\n fixed = TRUE\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_shift_by_grade(\n label = \"Grade Laboratory Abnormality Table\",\n dataname = \"ADLB\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADLB, \"PARAMCD\", \"PARAM\"),\n selected = \"ALT\"\n ),\n worst_flag_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"WGRLOVFL\", \"WGRLOFL\", \"WGRHIVFL\", \"WGRHIFL\")),\n selected = c(\"WGRHIFL\")\n ),\n worst_flag_indicator = choices_selected(\n value_choices(ADLB, \"WGRLOVFL\"),\n selected = \"Y\", fixed = TRUE\n ),\n anl_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"ATOXGR\")),\n selected = c(\"ATOXGR\"),\n fixed = TRUE\n ),\n base_toxgrade_var = choices_selected(\n choices = variable_choices(ADLB, subset = c(\"BTOXGR\")),\n selected = c(\"BTOXGR\"),\n fixed = TRUE\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\nThe desired frequency is specified in prune_freq. For illustration, frequency is set to \\(\\geq\\) 35%.\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = NULL\n ),\n add_total = TRUE,\n event_type = \"adverse event\",\n prune_freq = 35,\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = NULL\n ),\n add_total = TRUE,\n event_type = \"adverse event\",\n prune_freq = 35,\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Lab Results", - "LBT14" + "Adverse Events", + "AET10" ] }, { - "objectID": "tables/lab-results/lbt14.html#reproducibility", - "href": "tables/lab-results/lbt14.html#reproducibility", - "title": "LBT14", + "objectID": "tables/adverse-events/aet10.html#reproducibility", + "href": "tables/adverse-events/aet10.html#reproducibility", + "title": "AET10", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:54:03 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:51:07 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Lab Results", - "LBT14" + "Adverse Events", + "AET10" ] }, { - "objectID": "tables/medical-history/mht01.html#output", - "href": "tables/medical-history/mht01.html#output", - "title": "MHT01", + "objectID": "tables/adverse-events/aet06_smq.html#output", + "href": "tables/adverse-events/aet06_smq.html#output", + "title": "AET06_SMQ", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable of History Prior to Study\nTable with Total Number of Conditions Suppressed\nTable with Total Number of Conditions Per Body System After The Summary of Patients\nTable Showing Additional “All Patients” Column\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\"Total number of patients with at least one condition\", \"Total number of conditions\")\n ) %>%\n split_rows_by(\n var = \"MHBODSYS\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(admh_f$MHBODSYS)\n ) %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\"Total number of patients with at least one condition\", \"Total number of conditions\"),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(vars = \"MHDECOD\") %>%\n append_varlabels(admh_f, \"MHDECOD\", indent = 1L)\n\nresult <- build_table(lyt, admh_f, alt_counts_df = adsl_f) %>%\n prune_table()\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one condition 122 (91.0%) 123 (91.8%) 120 (90.9%) \nTotal number of conditions 609 622 703 \ncl A \n Total number of patients with at least one condition 78 (58.2%) 75 (56.0%) 89 (67.4%) \n Total number of conditions 132 130 160 \n trm A_1/2 50 (37.3%) 45 (33.6%) 63 (47.7%) \n trm A_2/2 48 (35.8%) 48 (35.8%) 50 (37.9%) \ncl B \n Total number of patients with at least one condition 96 (71.6%) 89 (66.4%) 97 (73.5%) \n Total number of conditions 185 198 205 \n trm B_1/3 47 (35.1%) 49 (36.6%) 43 (32.6%) \n trm B_2/3 49 (36.6%) 44 (32.8%) 52 (39.4%) \n trm B_3/3 48 (35.8%) 54 (40.3%) 51 (38.6%) \ncl C \n Total number of patients with at least one condition 67 (50.0%) 75 (56.0%) 79 (59.8%) \n Total number of conditions 103 116 129 \n trm C_1/2 43 (32.1%) 46 (34.3%) 43 (32.6%) \n trm C_2/2 35 (26.1%) 48 (35.8%) 55 (41.7%) \ncl D \n Total number of patients with at least one condition 96 (71.6%) 90 (67.2%) 98 (74.2%) \n Total number of conditions 189 178 209 \n trm D_1/3 50 (37.3%) 42 (31.3%) 51 (38.6%) \n trm D_2/3 48 (35.8%) 42 (31.3%) 50 (37.9%) \n trm D_3/3 47 (35.1%) 58 (43.3%) 57 (43.2%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadmh_f_prior <- admh_f %>%\n filter(ASTDY <= 0)\n\nresult <- build_table(lyt, admh_f_prior, alt_counts_df = adsl_f) %>%\n prune_table()\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one condition 0 0 1 (0.8%) \nTotal number of conditions 0 0 1 \ncl D \n Total number of patients with at least one condition 0 0 1 (0.8%) \n Total number of conditions 0 0 1 \n trm D_2/3 0 0 1 (0.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(\"Total number of patients with at least one condition\")\n ) %>%\n split_rows_by(\n var = \"MHBODSYS\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(admh_f$MHBODSYS)\n ) %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(\"Total number of patients with at least one condition\"),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(vars = \"MHDECOD\") %>%\n append_varlabels(admh_f, \"MHDECOD\", indent = 1L)\n\nresult <- build_table(lyt, admh_f, alt_counts_df = adsl) %>%\n prune_table()\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination\n MedDRA Preferred Term (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one condition 122 (91.0%) 123 (91.8%) 120 (90.9%) \ncl A \n Total number of patients with at least one condition 78 (58.2%) 75 (56.0%) 89 (67.4%) \n trm A_1/2 50 (37.3%) 45 (33.6%) 63 (47.7%) \n trm A_2/2 48 (35.8%) 48 (35.8%) 50 (37.9%) \ncl B \n Total number of patients with at least one condition 96 (71.6%) 89 (66.4%) 97 (73.5%) \n trm B_1/3 47 (35.1%) 49 (36.6%) 43 (32.6%) \n trm B_2/3 49 (36.6%) 44 (32.8%) 52 (39.4%) \n trm B_3/3 48 (35.8%) 54 (40.3%) 51 (38.6%) \ncl C \n Total number of patients with at least one condition 67 (50.0%) 75 (56.0%) 79 (59.8%) \n trm C_1/2 43 (32.1%) 46 (34.3%) 43 (32.6%) \n trm C_2/2 35 (26.1%) 48 (35.8%) 55 (41.7%) \ncl D \n Total number of patients with at least one condition 96 (71.6%) 90 (67.2%) 98 (74.2%) \n trm D_1/3 50 (37.3%) 42 (31.3%) 51 (38.6%) \n trm D_2/3 48 (35.8%) 42 (31.3%) 50 (37.9%) \n trm D_3/3 47 (35.1%) 58 (43.3%) 57 (43.2%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNot currently supported by rtables. Users, please notify us if this variation is important to you.\n\n\nConditions are further sorted by decreasing high level terms and low level terms.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n add_overall_col(\"All Patients\") %>%\n analyze_num_patients(\n \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(unique = \"Total number of patients with at least one event\", nonunique = \"Total number of conditions\")\n ) %>%\n split_rows_by(\n var = \"MHBODSYS\",\n split_fun = split_fun,\n child_labels = \"visible\",\n label_pos = \"topleft\",\n split_label = obj_label(admh_f$MHBODSYS)\n ) %>%\n summarize_num_patients(\n \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(unique = \"Total number of patients with at least one event\", nonunique = \"Total number of conditions\")\n ) %>%\n count_occurrences(vars = \"MHDECOD\", .indent_mods = -1L) %>%\n append_varlabels(admh_f, \"MHDECOD\", indent = 1L)\n\nscorefun_hlt <- cont_n_allcols\nscorefun_llt <- score_occurrences_cols(col_indices = nlevels(adsl_f$ACTARM) + 1)\n\nresult <- build_table(lyt, admh_f, alt_counts_df = adsl_f) %>%\n prune_table() %>%\n sort_at_path(path = c(\"MHBODSYS\"), scorefun = scorefun_hlt) %>%\n sort_at_path(path = c(\"MHBODSYS\", \"*\", \"MHDECOD\"), scorefun = scorefun_llt)\n\nresult\n\nMedDRA System Organ Class A: Drug X B: Placebo C: Combination All Patients\n MedDRA Preferred Term (N=134) (N=134) (N=132) (N=400) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one event 122 (91.0%) 123 (91.8%) 120 (90.9%) 365 (91.2%) \nTotal number of conditions 609 622 703 1934 \ncl D \n Total number of patients with at least one event 96 (71.6%) 90 (67.2%) 98 (74.2%) 284 (71.0%) \n Total number of conditions 189 178 209 576 \n trm D_3/3 47 (35.1%) 58 (43.3%) 57 (43.2%) 162 (40.5%) \n trm D_1/3 50 (37.3%) 42 (31.3%) 51 (38.6%) 143 (35.8%) \n trm D_2/3 48 (35.8%) 42 (31.3%) 50 (37.9%) 140 (35.0%) \ncl B \n Total number of patients with at least one event 96 (71.6%) 89 (66.4%) 97 (73.5%) 282 (70.5%) \n Total number of conditions 185 198 205 588 \n trm B_3/3 48 (35.8%) 54 (40.3%) 51 (38.6%) 153 (38.2%) \n trm B_2/3 49 (36.6%) 44 (32.8%) 52 (39.4%) 145 (36.2%) \n trm B_1/3 47 (35.1%) 49 (36.6%) 43 (32.6%) 139 (34.8%) \ncl A \n Total number of patients with at least one event 78 (58.2%) 75 (56.0%) 89 (67.4%) 242 (60.5%) \n Total number of conditions 132 130 160 422 \n trm A_1/2 50 (37.3%) 45 (33.6%) 63 (47.7%) 158 (39.5%) \n trm A_2/2 48 (35.8%) 48 (35.8%) 50 (37.9%) 146 (36.5%) \ncl C \n Total number of patients with at least one event 67 (50.0%) 75 (56.0%) 79 (59.8%) 221 (55.2%) \n Total number of conditions 103 116 129 348 \n trm C_2/2 35 (26.1%) 48 (35.8%) 55 (41.7%) 138 (34.5%) \n trm C_1/2 43 (32.1%) 46 (34.3%) 43 (32.6%) 132 (33.0%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadmh <- random.cdisc.data::cadmh\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadmh <- df_explicit_na(admh)\n\nadsl_f <- adsl %>%\n filter(SAFFL == \"Y\") %>%\n select(USUBJID, ACTARM)\n\nadmh_f <- admh %>%\n filter(SAFFL == \"Y\" & MHBODSYS != \"\" & MHDECOD != \"\") %>%\n var_relabel(\n MHBODSYS = \"MedDRA System Organ Class\",\n MHDECOD = \"MedDRA Preferred Term\"\n )", + "text": "Output\n\n\nAdverse Events by Sex, by SMQ and Preferred Term\nAdverse Events by Sex, by SMQ and Preferred Term (with Customized Queries)\nAdverse Events by Other Baseline Characteristics (e.g. Age Group)\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecriteria_fun <- function(tr) !is(tr, \"ContentRow\") && all_zero_or_na(tr)\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n split_cols_by(\"SEX\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(unique = \"Total number of patients with at least one adverse event\")\n ) %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = trim_levels_in_group(\"AEDECOD\", drop_outlevs = FALSE),\n label_pos = \"topleft\",\n split_label = \"Standardized MedDRA Query\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", drop = FALSE) %>%\n append_varlabels(adae_smq_1, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adae_smq_1,\n alt_counts_df = adsl\n) %>%\n sort_at_path(path = c(\"SMQ\"), scorefun = cont_n_allcols) %>%\n sort_at_path(path = c(\"SMQ\", \"*\", \"AEDECOD\"), scorefun = score_occurrences, na.pos = \"last\") %>%\n trim_rows(criteria = criteria_fun)\n\nresult\n\n ARM A ARM B ARM C \nStandardized MedDRA Query F M F M F M \n Dictionary-Derived Term (N=79) (N=55) (N=82) (N=52) (N=70) (N=62) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 47 (59.5%) 25 (45.5%) 51 (62.2%) 28 (53.8%) 42 (60.0%) 33 (53.2%)\nC.1.1.1.3/B.2.2.3.1 AESI(BROAD) \n Total number of patients with at least one adverse event 47 (59.5%) 25 (45.5%) 51 (62.2%) 28 (53.8%) 42 (60.0%) 33 (53.2%)\n Total number of events 79 40 95 44 81 60 \n dcd B.2.2.3.1 30 (38.0%) 18 (32.7%) 32 (39.0%) 22 (42.3%) 26 (37.1%) 25 (40.3%)\n dcd C.1.1.1.3 30 (38.0%) 13 (23.6%) 36 (43.9%) 10 (19.2%) 27 (38.6%) 16 (25.8%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecriteria_fun <- function(tr) {\n !is(tr, \"ContentRow\") && all_zero_or_na(tr) && !grepl(\"Total number of\", obj_label(tr))\n}\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n split_cols_by(\"SEX\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(unique = \"Total number of patients with at least one adverse event\")\n ) %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = trim_levels_in_group(\"AEDECOD\", drop_outlevs = FALSE),\n label_pos = \"topleft\",\n split_label = \"Standardized MedDRA Query\"\n ) %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n ),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(vars = \"AEDECOD\", drop = FALSE) %>%\n append_varlabels(adae_smq_all, \"AEDECOD\", indent = 1L)\n\nscore_ae_pts <- function(tt) {\n count_vals <- cell_values(tree_children(tt)[[\"USUBJID\"]])[[1]]\n sum(matrix(unlist(count_vals), nrow = length(count_vals), byrow = TRUE)[, 1])\n}\n\nresult <- build_table(\n lyt = lyt,\n df = adae_smq_all,\n alt_counts_df = adsl\n) %>%\n sort_at_path(path = c(\"SMQ\"), scorefun = score_ae_pts) %>%\n sort_at_path(path = c(\"SMQ\", \"*\", \"AEDECOD\"), scorefun = score_occurrences, na.pos = \"last\") %>%\n trim_rows(criteria = criteria_fun)\n\nresult\n\n ARM A ARM B ARM C \nStandardized MedDRA Query F M F M F M \n Dictionary-Derived Term (N=79) (N=55) (N=82) (N=52) (N=70) (N=62) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 59 (74.7%) 36 (65.5%) 68 (82.9%) 35 (67.3%) 61 (87.1%) 47 (75.8%)\nD.2.1.5.3/A.1.1.1.1 AESI \n Total number of patients with at least one adverse event 45 (57.0%) 29 (52.7%) 54 (65.9%) 26 (50.0%) 50 (71.4%) 37 (59.7%)\n Total number of events 78 48 91 43 88 74 \n dcd D.2.1.5.3 26 (32.9%) 21 (38.2%) 40 (48.8%) 18 (34.6%) 34 (48.6%) 23 (37.1%)\n dcd A.1.1.1.1 34 (43.0%) 16 (29.1%) 31 (37.8%) 14 (26.9%) 33 (47.1%) 30 (48.4%)\nC.1.1.1.3/B.2.2.3.1 AESI(BROAD) \n Total number of patients with at least one adverse event 47 (59.5%) 25 (45.5%) 51 (62.2%) 28 (53.8%) 42 (60.0%) 33 (53.2%)\n Total number of events 79 40 95 44 81 60 \n dcd B.2.2.3.1 30 (38.0%) 18 (32.7%) 32 (39.0%) 22 (42.3%) 26 (37.1%) 25 (40.3%)\n dcd C.1.1.1.3 30 (38.0%) 13 (23.6%) 36 (43.9%) 10 (19.2%) 27 (38.6%) 16 (25.8%)\nnon observed SMQ02NAM level(BROAD) \n Total number of patients with at least one adverse event 0 0 0 0 0 0 \n Total number of events 0 0 0 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecriteria_fun <- function(tr) !is(tr, \"ContentRow\") && all_zero_or_na(tr)\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n split_cols_by(\"AGE65\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(unique = \"Total number of patients with at least one adverse event\")\n ) %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = trim_levels_in_group(\"AEDECOD\", drop_outlevs = FALSE),\n label_pos = \"topleft\",\n split_label = \"Standardized MedDRA Query\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", drop = FALSE) %>%\n append_varlabels(adae_smq_1, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adae_smq_1,\n alt_counts_df = adsl\n) %>%\n sort_at_path(path = c(\"SMQ\"), scorefun = cont_n_allcols) %>%\n sort_at_path(path = c(\"SMQ\", \"*\", \"AEDECOD\"), scorefun = score_occurrences, na.pos = \"last\") %>%\n trim_rows(criteria = criteria_fun)\n\nresult\n\n ARM A ARM B ARM C \nStandardized MedDRA Query < 65 >= 65 < 65 >= 65 < 65 >= 65\n Dictionary-Derived Term (N=134) (N=0) (N=134) (N=0) (N=131) (N=1)\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 72 (53.7%) 0 79 (59.0%) 0 75 (57.3%) 0 \nC.1.1.1.3/B.2.2.3.1 AESI(BROAD) \n Total number of patients with at least one adverse event 72 (53.7%) 0 79 (59.0%) 0 75 (57.3%) 0 \n Total number of events 119 0 139 0 141 0 \n dcd B.2.2.3.1 48 (35.8%) 0 54 (40.3%) 0 51 (38.9%) 0 \n dcd C.1.1.1.3 43 (32.1%) 0 46 (34.3%) 0 43 (32.8%) 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(stringr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\nadsl_labels <- var_labels(adsl)\nadae_labels <- var_labels(adae)\n\nadsl <- adsl %>%\n mutate(\n AGE65 = case_when(\n AGE >= 65 ~ \">= 65\",\n TRUE ~ \"< 65\"\n ),\n AGE65 = factor(\n AGE65,\n levels = c(\"< 65\", \">= 65\")\n )\n )\n\nadae <- adae %>%\n mutate(\n AGE65 = case_when(\n AGE >= 65 ~ \">= 65\",\n TRUE ~ \"< 65\"\n ),\n AGE65 = factor(\n AGE65,\n levels = c(\"< 65\", \">= 65\")\n )\n )\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing\n# levels. For details, refer to Teal and Study Data article.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\n# Simulate a random AAG dataset.\naag <- data.frame(\n NAMVAR = c(\"SMQ01NAM\", \"SMQ01NAM\", \"SMQ02NAM\", \"CQ01NAM\", \"CQ01NAM\"),\n SRCVAR = rep(\"AEDECOD\", 5),\n GRPTYPE = c(\"SMQ\", \"SMQ\", \"SMQ\", \"CUSTOM\", \"CUSTOM\"),\n REFID = c(1, 1, 2, 3, 3),\n REFNAME = c(rep(\"C.1.1.1.3/B.2.2.3.1 AESI\", 2), \"non observed SMQ02NAM level\", rep(\"D.2.1.5.3/A.1.1.1.1 AESI\", 2)),\n SCOPE = c(\"BROAD\", \"BROAD\", \"BROAD\", \"\", \"\"),\n REFTERM = c(\"C.1.1.1.3\", \"B.2.2.3.1\", \"Z.9.9.9.9\", \"D.2.1.5.3\", \"A.1.1.1.1\"),\n stringsAsFactors = FALSE\n)\n\n# Create summary AAG dataset (used for labelling).\n# Note it's important to incorporate SCOPE into the basket names for SMQs so as to\n# match the flags present in ADAE.\naag_summary <- aag %>%\n select(NAMVAR, REFNAME, SCOPE) %>%\n unique() %>%\n mutate(\n REFNAME_SCOPE = ifelse(SCOPE == \"\", REFNAME, paste0(REFNAME, \"(\", SCOPE, \")\"))\n ) %>%\n rename(basket = NAMVAR, basket_name = REFNAME_SCOPE) %>%\n select(basket, basket_name)\n\n# Make a summary of the full ADAE based on AAG by using h_stack_by_baskets helper function\nadae_smq_all <- h_stack_by_baskets(\n df = adae,\n aag_summary = aag_summary,\n keys = c(\"STUDYID\", \"USUBJID\", \"ACTARMCD\", \"AEDECOD\", \"SEX\", \"AGE65\")\n)\n# Post-process adae_smq_all to keep only certain baskets of interest for variant 1\n# Not need to drop baskets for variant 2 as all baskets will be considered.\nbaskets_to_drop_variant <- aag_summary$basket_name[!aag_summary$basket %in% c(\"SMQ01NAM\")]\n\n# Adjust the analysis dataset based on basket subset for variant 1.\nadae_smq_1 <- adae_smq_all %>%\n filter(!adae_smq_all$SMQ %in% baskets_to_drop_variant) %>%\n mutate(\n SMQ = tern::fct_discard(SMQ, discard = baskets_to_drop_variant)\n )", "crumbs": [ "Tables", - "Medical History", - "MHT01" + "Adverse Events", + "AET06_SMQ" ] }, { - "objectID": "tables/medical-history/mht01.html#teal-app", - "href": "tables/medical-history/mht01.html#teal-app", - "title": "MHT01", + "objectID": "tables/adverse-events/aet06_smq.html#teal-app", + "href": "tables/adverse-events/aet06_smq.html#teal-app", + "title": "AET06_SMQ", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl %>%\n filter(SAFFL == \"Y\")\n ADMH <- random.cdisc.data::cadmh %>%\n filter(SAFFL == \"Y\" & MHBODSYS != \"\" & MHDECOD != \"\")\n})\ndatanames <- c(\"ADSL\", \"ADMH\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADMH <- data[[\"ADMH\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Medical History Table\",\n dataname = \"ADMH\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADMH, c(\"MHTERM\", \"MHDECOD\")),\n selected = c(\"MHDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADMH, c(\"MHBODSYS\", \"MHSOC\")),\n selected = \"MHBODSYS\"\n ),\n add_total = TRUE,\n event_type = \"condition\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl %>%\n filter(SAFFL == \"Y\")\n ADMH <- random.cdisc.data::cadmh %>%\n filter(SAFFL == \"Y\" & MHBODSYS != \"\" & MHDECOD != \"\")\n})\ndatanames <- c(\"ADSL\", \"ADMH\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADMH <- data[[\"ADMH\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Medical History Table\",\n dataname = \"ADMH\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADMH, c(\"MHTERM\", \"MHDECOD\")),\n selected = c(\"MHDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADMH, c(\"MHBODSYS\", \"MHSOC\")),\n selected = \"MHBODSYS\"\n ),\n add_total = TRUE,\n event_type = \"condition\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl %>%\n mutate(\n AGE65 = case_when(\n AGE >= 65 ~ \">= 65\",\n TRUE ~ \"< 65\"\n ),\n AGE65 = factor(\n AGE65,\n levels = c(\"< 65\", \">= 65\")\n )\n )\n ADAE <- random.cdisc.data::cadae %>%\n mutate(\n AGE65 = case_when(\n AGE >= 65 ~ \">= 65\",\n TRUE ~ \"< 65\"\n ),\n AGE65 = factor(\n AGE65,\n levels = c(\"< 65\", \">= 65\")\n )\n )\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\n\nnames_baskets <- grep(\"^(SMQ|CQ).*NAM$\", names(ADAE), value = TRUE)\nnames_scopes <- grep(\"^SMQ.*SC$\", names(ADAE), value = TRUE)\n\ncs_baskets <- choices_selected(\n choices = variable_choices(ADAE, subset = names_baskets),\n selected = names_baskets\n)\ncs_scopes <- choices_selected(\n choices = variable_choices(ADAE, subset = names_scopes),\n selected = names_scopes,\n fixed = TRUE\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_smq(\n label = \"Adverse events by `SMQ` Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"SEX\", \"AGE65\")),\n selected = c(\"ARM\", \"SEX\")\n ),\n add_total = FALSE,\n baskets = cs_baskets,\n scopes = cs_scopes,\n llt = choices_selected(\n choices = variable_choices(ADAE, subset = c(\"AEDECOD\")),\n selected = \"AEDECOD\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl %>%\n mutate(\n AGE65 = case_when(\n AGE >= 65 ~ \">= 65\",\n TRUE ~ \"< 65\"\n ),\n AGE65 = factor(\n AGE65,\n levels = c(\"< 65\", \">= 65\")\n )\n )\n ADAE <- random.cdisc.data::cadae %>%\n mutate(\n AGE65 = case_when(\n AGE >= 65 ~ \">= 65\",\n TRUE ~ \"< 65\"\n ),\n AGE65 = factor(\n AGE65,\n levels = c(\"< 65\", \">= 65\")\n )\n )\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\n\nnames_baskets <- grep(\"^(SMQ|CQ).*NAM$\", names(ADAE), value = TRUE)\nnames_scopes <- grep(\"^SMQ.*SC$\", names(ADAE), value = TRUE)\n\ncs_baskets <- choices_selected(\n choices = variable_choices(ADAE, subset = names_baskets),\n selected = names_baskets\n)\ncs_scopes <- choices_selected(\n choices = variable_choices(ADAE, subset = names_scopes),\n selected = names_scopes,\n fixed = TRUE\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_smq(\n label = \"Adverse events by `SMQ` Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"SEX\", \"AGE65\")),\n selected = c(\"ARM\", \"SEX\")\n ),\n add_total = FALSE,\n baskets = cs_baskets,\n scopes = cs_scopes,\n llt = choices_selected(\n choices = variable_choices(ADAE, subset = c(\"AEDECOD\")),\n selected = \"AEDECOD\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Medical History", - "MHT01" + "Adverse Events", + "AET06_SMQ" ] }, { - "objectID": "tables/medical-history/mht01.html#reproducibility", - "href": "tables/medical-history/mht01.html#reproducibility", - "title": "MHT01", + "objectID": "tables/adverse-events/aet06_smq.html#reproducibility", + "href": "tables/adverse-events/aet06_smq.html#reproducibility", + "title": "AET06_SMQ", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:54:33 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:51:50 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr * 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Medical History", - "MHT01" + "Adverse Events", + "AET06_SMQ" ] }, { - "objectID": "tables/concomitant-medications/cmt01.html#output", - "href": "tables/concomitant-medications/cmt01.html#output", - "title": "CMT01", + "objectID": "tables/adverse-events/aet09.html#output", + "href": "tables/adverse-events/aet09.html#output", + "title": "AET09", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Showing Medications Prior to the Start of the Study\nTable with Subtotal Per Medication Class Suppressed\nTable Sorted by Total Column Showing Additional “All Patients” Column\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one treatment\",\n nonunique = \"Total number of treatments\"\n )\n ) %>%\n split_rows_by(\"CMCLAS\",\n split_fun = split_fun,\n child_labels = \"visible\",\n nested = FALSE,\n indent_mod = 1L,\n label_pos = \"topleft\",\n split_label = obj_label(adcm_con$CMCLAS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one treatment\",\n nonunique = \"Total number of treatments\"\n )\n ) %>%\n count_occurrences(vars = \"CMDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adcm_con, \"CMDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adcm_con,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"CMCLAS\", \"*\", \"CMDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nMedication Class A: Drug X B: Placebo C: Combination\n Standardized Medication Name (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one treatment 117 (87.3%) 116 (86.6%) 116 (87.9%) \nTotal number of treatments 415 414 460 \n medcl A \n Total number of patients with at least one treatment 75 (56.0%) 79 (59.0%) 81 (61.4%) \n Total number of treatments 134 137 143 \n medname A_2/3 53 (39.6%) 50 (37.3%) 56 (42.4%) \n medname A_3/3 45 (33.6%) 54 (40.3%) 48 (36.4%) \n medcl B \n Total number of patients with at least one treatment 83 (61.9%) 74 (55.2%) 88 (66.7%) \n Total number of treatments 141 137 162 \n medname B_1/4 52 (38.8%) 57 (42.5%) 59 (44.7%) \n medname B_4/4 50 (37.3%) 45 (33.6%) 55 (41.7%) \n medcl C \n Total number of patients with at least one treatment 82 (61.2%) 84 (62.7%) 89 (67.4%) \n Total number of treatments 140 140 155 \n medname C_2/2 52 (38.8%) 58 (43.3%) 60 (45.5%) \n medname C_1/2 51 (38.1%) 50 (37.3%) 56 (42.4%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one treatment\",\n nonunique = \"Total number of treatments\"\n )\n ) %>%\n split_rows_by(\"CMCLAS\",\n split_fun = split_fun,\n child_labels = \"visible\",\n nested = FALSE,\n label_pos = \"topleft\",\n split_label = obj_label(adcm_con$CMCLAS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one treatment\",\n nonunique = \"Total number of treatments\"\n )\n ) %>%\n count_occurrences(vars = \"CMDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adcm_prior, \"CMDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adcm_prior,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"CMCLAS\", \"*\", \"CMDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nMedication Class A: Drug X B: Placebo C: Combination\n Standardized Medication Name (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one treatment 89 (66.4%) 95 (70.9%) 106 (80.3%) \nTotal number of treatments 194 208 243 \nmedcl A \n Total number of patients with at least one treatment 54 (40.3%) 49 (36.6%) 69 (52.3%) \n Total number of treatments 71 70 99 \n medname A_1/3 54 (40.3%) 49 (36.6%) 69 (52.3%) \nmedcl B \n Total number of patients with at least one treatment 76 (56.7%) 80 (59.7%) 81 (61.4%) \n Total number of treatments 123 138 144 \n medname B_2/4 52 (38.8%) 55 (41.0%) 56 (42.4%) \n medname B_3/4 47 (35.1%) 47 (35.1%) 52 (39.4%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one treatment\",\n nonunique = \"Total number of treatments\"\n )\n ) %>%\n split_rows_by(\"CMCLAS\",\n split_fun = split_fun, child_labels = \"visible\",\n nested = FALSE,\n label_pos = \"topleft\",\n split_label = obj_label(adcm_con$CMCLAS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .labels = c(unique = \"Total number of patients with at least one treatment\"),\n .stats = \"unique\"\n ) %>%\n count_occurrences(vars = \"CMDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adcm_con, \"CMDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adcm_con,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"CMCLAS\", \"*\", \"CMDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nMedication Class A: Drug X B: Placebo C: Combination\n Standardized Medication Name (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one treatment 117 (87.3%) 116 (86.6%) 116 (87.9%) \nTotal number of treatments 415 414 460 \nmedcl A \n Total number of patients with at least one treatment 75 (56.0%) 79 (59.0%) 81 (61.4%) \n medname A_2/3 53 (39.6%) 50 (37.3%) 56 (42.4%) \n medname A_3/3 45 (33.6%) 54 (40.3%) 48 (36.4%) \nmedcl B \n Total number of patients with at least one treatment 83 (61.9%) 74 (55.2%) 88 (66.7%) \n medname B_1/4 52 (38.8%) 57 (42.5%) 59 (44.7%) \n medname B_4/4 50 (37.3%) 45 (33.6%) 55 (41.7%) \nmedcl C \n Total number of patients with at least one treatment 82 (61.2%) 84 (62.7%) 89 (67.4%) \n medname C_2/2 52 (38.8%) 58 (43.3%) 60 (45.5%) \n medname C_1/2 51 (38.1%) 50 (37.3%) 56 (42.4%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n add_overall_col(\"All Patients\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n \"Total number of patients with at least one treatment (%)\",\n \"Total number of treatments\"\n )\n ) %>%\n split_rows_by(\n \"CMCLAS\",\n split_fun = split_fun,\n child_labels = \"visible\",\n nested = FALSE,\n label_pos = \"topleft\",\n split_label = obj_label(adcm_con$CMCLAS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n \"Total number of patients with at least one treatment (%)\",\n \"Total number of treatments\"\n )\n ) %>%\n count_occurrences(vars = \"CMDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adcm_con, \"CMDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adcm_con,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"CMCLAS\", \"*\", \"CMDECOD\"),\n scorefun = score_occurrences,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"CMCLAS\"),\n scorefun = cont_n_allcols,\n decreasing = TRUE\n )\n\nresult\n\nMedication Class A: Drug X B: Placebo C: Combination All Patients\n Standardized Medication Name (N=134) (N=134) (N=132) (N=400) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one treatment (%) 117 (87.3%) 116 (86.6%) 116 (87.9%) 349 (87.2%) \nTotal number of treatments 415 414 460 1289 \nmedcl C \n Total number of patients with at least one treatment (%) 82 (61.2%) 84 (62.7%) 89 (67.4%) 255 (63.7%) \n Total number of treatments 140 140 155 435 \n medname C_2/2 52 (38.8%) 58 (43.3%) 60 (45.5%) 170 (42.5%) \n medname C_1/2 51 (38.1%) 50 (37.3%) 56 (42.4%) 157 (39.2%) \nmedcl B \n Total number of patients with at least one treatment (%) 83 (61.9%) 74 (55.2%) 88 (66.7%) 245 (61.3%) \n Total number of treatments 141 137 162 440 \n medname B_1/4 52 (38.8%) 57 (42.5%) 59 (44.7%) 168 (42.0%) \n medname B_4/4 50 (37.3%) 45 (33.6%) 55 (41.7%) 150 (37.5%) \nmedcl A \n Total number of patients with at least one treatment (%) 75 (56.0%) 79 (59.0%) 81 (61.4%) 235 (58.8%) \n Total number of treatments 134 137 143 414 \n medname A_2/3 53 (39.6%) 50 (37.3%) 56 (42.4%) 159 (39.8%) \n medname A_3/3 45 (33.6%) 54 (40.3%) 48 (36.4%) 147 (36.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\n# The following tables require ADCM data structure that follows the legacy concomitant medication coding.\n# WHO coding is not used.\nadsl <- random.cdisc.data::cadsl\nadcm <- random.cdisc.data::cadcm\n\n# Below step is to set up example data based on legacy standard.\nadcm <- adcm %>%\n select(-starts_with(\"ATC\")) %>%\n unique()\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadcm <- df_explicit_na(adcm)\n\nadcm_con <- adcm %>%\n filter(ATIREL == \"CONCOMITANT\")\n\nadcm_prior <- adcm %>%\n filter(ATIREL == \"PRIOR\")", + "text": "Output\n\n\nStandard Table\nTable Including High-Level Terms\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n add_overall_col(label = \"All Patients\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event related to study drug\",\n nonunique = \"Overall total number of events related to study drug\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae_f$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event related to study drug\",\n nonunique = \"Total number of events related to study drug\"\n )\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = -1L\n ) %>%\n append_varlabels(adae_f, \"AEDECOD\", indent = 1L)\n\ntbl1 <- build_table(\n lyt = lyt,\n df = adae_f,\n alt_counts_df = adsl\n) %>%\n prune_table()\n\nresult <- tbl1 %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nBody System or Organ Class A: Drug X B: Placebo C: Combination All Patients\n Dictionary-Derived Term (N=134) (N=134) (N=132) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event related to study drug 105 (78.4%) 108 (80.6%) 109 (82.6%) 322 (80.5%) \nOverall total number of events related to study drug 282 299 336 917 \ncl D.2 \n Total number of patients with at least one adverse event related to study drug 47 (35.1%) 58 (43.3%) 57 (43.2%) 162 (40.5%) \n Total number of events related to study drug 62 72 74 208 \n dcd D.2.1.5.3 47 (35.1%) 58 (43.3%) 57 (43.2%) 162 (40.5%) \ncl D.1 \n Total number of patients with at least one adverse event related to study drug 50 (37.3%) 42 (31.3%) 51 (38.6%) 143 (35.8%) \n Total number of events related to study drug 61 51 71 183 \n dcd D.1.1.1.1 50 (37.3%) 42 (31.3%) 51 (38.6%) 143 (35.8%) \ncl B.1 \n Total number of patients with at least one adverse event related to study drug 47 (35.1%) 49 (36.6%) 43 (32.6%) 139 (34.8%) \n Total number of events related to study drug 56 60 62 178 \n dcd B.1.1.1.1 47 (35.1%) 49 (36.6%) 43 (32.6%) 139 (34.8%) \ncl C.2 \n Total number of patients with at least one adverse event related to study drug 35 (26.1%) 48 (35.8%) 55 (41.7%) 138 (34.5%) \n Total number of events related to study drug 48 53 65 166 \n dcd C.2.1.2.1 35 (26.1%) 48 (35.8%) 55 (41.7%) 138 (34.5%) \ncl C.1 \n Total number of patients with at least one adverse event related to study drug 43 (32.1%) 46 (34.3%) 43 (32.6%) 132 (33.0%) \n Total number of events related to study drug 55 63 64 182 \n dcd C.1.1.1.3 43 (32.1%) 46 (34.3%) 43 (32.6%) 132 (33.0%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event related to study drug\",\n nonunique = \"Overall total number of events related to study drug\"\n )\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = split_fun,\n indent_mod = 1L,\n label_pos = \"topleft\",\n split_label = obj_label(adae_f$AEBODSYS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event related to study drug\",\n nonunique = \"Total number of events related to study drug\"\n )\n ) %>%\n split_rows_by(\n \"AEHLT\",\n child_labels = \"visible\",\n nested = TRUE,\n indent_mod = -1L,\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adae_f$AEHLT)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event related to study drug\",\n nonunique = \"Total number of events related to study drug\"\n )\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = -1L\n ) %>%\n append_varlabels(adae_f, c(\"AEDECOD\"), indent = 2L)\n\ntbl2 <- build_table(\n lyt = lyt,\n df = adae_f,\n alt_counts_df = adsl\n) %>%\n prune_table()\n\nresult <- tbl2 %>%\n sort_at_path(\n path = c(\"AEBODSYS\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\"),\n scorefun = cont_n_allcols\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEHLT\", \"*\", \"AEDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nBody System or Organ Class \n High Level Term A: Drug X B: Placebo C: Combination\n Dictionary-Derived Term (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event related to study drug 105 (78.4%) 108 (80.6%) 109 (82.6%) \nOverall total number of events related to study drug 282 299 336 \n cl D.2 \n Total number of patients with at least one adverse event related to study drug 47 (35.1%) 58 (43.3%) 57 (43.2%) \n Total number of events related to study drug 62 72 74 \n hlt D.2.1.5 \n Total number of patients with at least one adverse event related to study drug 47 (35.1%) 58 (43.3%) 57 (43.2%) \n Total number of events related to study drug 62 72 74 \n dcd D.2.1.5.3 47 (35.1%) 58 (43.3%) 57 (43.2%) \n cl D.1 \n Total number of patients with at least one adverse event related to study drug 50 (37.3%) 42 (31.3%) 51 (38.6%) \n Total number of events related to study drug 61 51 71 \n hlt D.1.1.1 \n Total number of patients with at least one adverse event related to study drug 50 (37.3%) 42 (31.3%) 51 (38.6%) \n Total number of events related to study drug 61 51 71 \n dcd D.1.1.1.1 50 (37.3%) 42 (31.3%) 51 (38.6%) \n cl B.1 \n Total number of patients with at least one adverse event related to study drug 47 (35.1%) 49 (36.6%) 43 (32.6%) \n Total number of events related to study drug 56 60 62 \n hlt B.1.1.1 \n Total number of patients with at least one adverse event related to study drug 47 (35.1%) 49 (36.6%) 43 (32.6%) \n Total number of events related to study drug 56 60 62 \n dcd B.1.1.1.1 47 (35.1%) 49 (36.6%) 43 (32.6%) \n cl C.2 \n Total number of patients with at least one adverse event related to study drug 35 (26.1%) 48 (35.8%) 55 (41.7%) \n Total number of events related to study drug 48 53 65 \n hlt C.2.1.2 \n Total number of patients with at least one adverse event related to study drug 35 (26.1%) 48 (35.8%) 55 (41.7%) \n Total number of events related to study drug 48 53 65 \n dcd C.2.1.2.1 35 (26.1%) 48 (35.8%) 55 (41.7%) \n cl C.1 \n Total number of patients with at least one adverse event related to study drug 43 (32.1%) 46 (34.3%) 43 (32.6%) \n Total number of events related to study drug 55 63 64 \n hlt C.1.1.1 \n Total number of patients with at least one adverse event related to study drug 43 (32.1%) 46 (34.3%) 43 (32.6%) \n Total number of events related to study drug 55 63 64 \n dcd C.1.1.1.3 43 (32.1%) 46 (34.3%) 43 (32.6%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\nadae_labels <- var_labels(adae)\n\nadae_f <- adae %>%\n filter(AEREL == \"Y\")\n\nvar_labels(adae_f) <- adae_labels", "crumbs": [ "Tables", - "Concomitant Medications", - "CMT01" + "Adverse Events", + "AET09" ] }, { - "objectID": "tables/concomitant-medications/cmt01.html#teal-app", - "href": "tables/concomitant-medications/cmt01.html#teal-app", - "title": "CMT01", + "objectID": "tables/adverse-events/aet09.html#teal-app", + "href": "tables/adverse-events/aet09.html#teal-app", + "title": "AET09", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\nHere, adcm is processed to keep only one path per treatment.\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADCM <- random.cdisc.data::cadcm\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADCM <- df_explicit_na(ADCM)\n\n ADCM <- ADCM %>%\n group_by(STUDYID, USUBJID, CMDECOD) %>%\n slice(1) %>%\n ungroup()\n})\ndatanames <- c(\"ADSL\", \"ADCM\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADCM <- data[[\"ADCM\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Concomitant Medication Table\",\n dataname = \"ADCM\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADCM, \"CMDECOD\"),\n selected = \"CMDECOD\"\n ),\n hlt = choices_selected(\n choices = variable_choices(ADCM, \"CMCLAS\"),\n selected = c(\"CMCLAS\")\n ),\n add_total = TRUE,\n event_type = \"treatment\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADCM <- random.cdisc.data::cadcm\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADCM <- df_explicit_na(ADCM)\n\n ADCM <- ADCM %>%\n group_by(STUDYID, USUBJID, CMDECOD) %>%\n slice(1) %>%\n ungroup()\n})\ndatanames <- c(\"ADSL\", \"ADCM\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADCM <- data[[\"ADCM\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Concomitant Medication Table\",\n dataname = \"ADCM\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADCM, \"CMDECOD\"),\n selected = \"CMDECOD\"\n ),\n hlt = choices_selected(\n choices = variable_choices(ADCM, \"CMCLAS\"),\n selected = c(\"CMCLAS\")\n ),\n add_total = TRUE,\n event_type = \"treatment\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Events Related to Study Drug\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AEHLT\")),\n selected = c(\"AEBODSYS\")\n ),\n add_total = FALSE,\n event_type = \"adverse event related to study drug\", # define event type here\n )\n ),\n filter = teal_slices(teal_slice(\"ADAE\", \"AEREL\", selected = \"Y\")) # related AEs only\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Events Related to Study Drug\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AEHLT\")),\n selected = c(\"AEBODSYS\")\n ),\n add_total = FALSE,\n event_type = \"adverse event related to study drug\", # define event type here\n )\n ),\n filter = teal_slices(teal_slice(\"ADAE\", \"AEREL\", selected = \"Y\")) # related AEs only\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Concomitant Medications", - "CMT01" + "Adverse Events", + "AET09" ] }, { - "objectID": "tables/concomitant-medications/cmt01.html#reproducibility", - "href": "tables/concomitant-medications/cmt01.html#reproducibility", - "title": "CMT01", + "objectID": "tables/adverse-events/aet09.html#reproducibility", + "href": "tables/adverse-events/aet09.html#reproducibility", + "title": "AET09", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:55:31 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:52:31 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Concomitant Medications", - "CMT01" + "Adverse Events", + "AET09" ] }, { @@ -3324,7 +3377,7 @@ "href": "tables/concomitant-medications/cmt01b.html#reproducibility", "title": "CMT01B", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:56:20 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:53:16 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", "Concomitant Medications", @@ -3332,1049 +3385,996 @@ ] }, { - "objectID": "tables/adverse-events/aet02_smq.html#output", - "href": "tables/adverse-events/aet02_smq.html#output", - "title": "AET02_SMQ", - "section": "Output", - "text": "Output\n\n\nStandard Table\nTable with Customized Queries\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecriteria_fun <- function(tr) !is(tr, \"ContentRow\") && all_zero_or_na(tr)\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\"\n )\n ) %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = trim_levels_in_group(\"AEDECOD\", drop_outlevs = FALSE),\n label_pos = \"topleft\",\n split_label = \"Standardized MedDRA Query\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n .indent_mods = -1L,\n drop = FALSE\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt,\n df = adae_smq_1,\n alt_counts_df = adsl\n) %>%\n sort_at_path(path = c(\"SMQ\"), scorefun = cont_n_allcols) %>%\n sort_at_path(path = c(\"SMQ\", \"*\", \"AEDECOD\"), scorefun = score_occurrences, na.pos = \"last\") %>%\n trim_rows(criteria = criteria_fun)\n\nresult\n\nStandardized MedDRA Query ARM A ARM B ARM C \n Dictionary-Derived Term (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 72 (53.7%) 79 (59.0%) 75 (56.8%)\nC.1.1.1.3/B.2.2.3.1 AESI(BROAD) \n Total number of patients with at least one adverse event 72 (53.7%) 79 (59.0%) 75 (56.8%)\n Total number of events 119 139 141 \n dcd B.2.2.3.1 48 (35.8%) 54 (40.3%) 51 (38.6%)\n dcd C.1.1.1.3 43 (32.1%) 46 (34.3%) 43 (32.6%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecriteria_fun <- function(tr) {\n !is(tr, \"ContentRow\") && all_zero_or_na(tr) && !grepl(\"Total number of\", obj_label(tr))\n}\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\"\n )\n ) %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = trim_levels_in_group(\"AEDECOD\", drop_outlevs = FALSE),\n label_pos = \"topleft\",\n split_label = \"Standardized MedDRA Query\"\n ) %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n ),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(\n vars = \"AEDECOD\",\n drop = FALSE\n ) %>%\n append_varlabels(adae, \"AEDECOD\", indent = 1L)\n\nscore_ae_pts <- function(tt) {\n count_vals <- cell_values(tree_children(tt)[[\"USUBJID\"]])[[1]]\n sum(matrix(unlist(count_vals), nrow = length(count_vals), byrow = TRUE)[, 1])\n}\n\nresult <- build_table(\n lyt,\n df = adae_smq_all,\n alt_counts_df = adsl\n) %>%\n sort_at_path(path = c(\"SMQ\"), scorefun = score_ae_pts) %>%\n sort_at_path(path = c(\"SMQ\", \"*\", \"AEDECOD\"), scorefun = score_occurrences, na.pos = \"last\") %>%\n trim_rows(criteria = criteria_fun)\n\nresult\n\nStandardized MedDRA Query ARM A ARM B ARM C \n Dictionary-Derived Term (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 95 (70.9%) 103 (76.9%) 108 (81.8%)\nD.2.1.5.3/A.1.1.1.1 AESI \n Total number of patients with at least one adverse event 74 (55.2%) 80 (59.7%) 87 (65.9%) \n Total number of events 126 134 162 \n dcd D.2.1.5.3 47 (35.1%) 58 (43.3%) 57 (43.2%) \n dcd A.1.1.1.1 50 (37.3%) 45 (33.6%) 63 (47.7%) \nC.1.1.1.3/B.2.2.3.1 AESI(BROAD) \n Total number of patients with at least one adverse event 72 (53.7%) 79 (59.0%) 75 (56.8%) \n Total number of events 119 139 141 \n dcd B.2.2.3.1 48 (35.8%) 54 (40.3%) 51 (38.6%) \n dcd C.1.1.1.3 43 (32.1%) 46 (34.3%) 43 (32.6%) \nnon observed SMQ02NAM level(BROAD) \n Total number of patients with at least one adverse event 0 0 0 \n Total number of events 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(stringr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\n# Simulate a random AAG dataset.\naag <- data.frame(\n NAMVAR = c(\"SMQ01NAM\", \"SMQ01NAM\", \"SMQ02NAM\", \"CQ01NAM\", \"CQ01NAM\"),\n SRCVAR = rep(\"AEDECOD\", 5),\n GRPTYPE = c(\"SMQ\", \"SMQ\", \"SMQ\", \"CUSTOM\", \"CUSTOM\"),\n REFID = c(1, 1, 2, 3, 3),\n REFNAME = c(rep(\"C.1.1.1.3/B.2.2.3.1 AESI\", 2), \"non observed SMQ02NAM level\", rep(\"D.2.1.5.3/A.1.1.1.1 AESI\", 2)),\n SCOPE = c(\"BROAD\", \"BROAD\", \"BROAD\", \"\", \"\"),\n REFTERM = c(\"C.1.1.1.3\", \"B.2.2.3.1\", \"Z.9.9.9.9\", \"D.2.1.5.3\", \"A.1.1.1.1\"),\n stringsAsFactors = FALSE\n)\n\n# Create summary AAG dataset (used for labelling).\n# Note it's important to incorporate SCOPE into the basket names for SMQs so as to\n# match the flags present in ADAE.\naag_summary <- aag %>%\n select(NAMVAR, REFNAME, SCOPE) %>%\n unique() %>%\n mutate(\n REFNAME_SCOPE = ifelse(SCOPE == \"\", REFNAME, paste0(REFNAME, \"(\", SCOPE, \")\"))\n ) %>%\n rename(basket = NAMVAR, basket_name = REFNAME_SCOPE) %>%\n select(basket, basket_name)\n\n# Make a summary of the full ADAE based on AAG by using h_stack_by_baskets helper function\nadae_smq_all <- h_stack_by_baskets(\n df = adae,\n aag_summary = aag_summary,\n keys = c(\"STUDYID\", \"USUBJID\", \"ACTARMCD\", \"AEDECOD\")\n)\n\n# Post-process adae_smq_all to keep only certain baskets of interest for variant 1\n# Not need to drop baskets for variant 2 as all baskets will be considered.\nbaskets_to_drop_variant <- aag_summary$basket_name[!aag_summary$basket %in% c(\"SMQ01NAM\")]\n\n# Adjust the analysis dataset based on basket subset for variant 1.\nadae_smq_1 <- adae_smq_all %>%\n filter(!adae_smq_all$SMQ %in% baskets_to_drop_variant) %>%\n mutate(\n SMQ = tern::fct_discard(SMQ, discard = baskets_to_drop_variant)\n )", - "crumbs": [ - "Tables", - "Adverse Events", - "AET02_SMQ" - ] - }, - { - "objectID": "tables/adverse-events/aet02_smq.html#teal-app", - "href": "tables/adverse-events/aet02_smq.html#teal-app", - "title": "AET02_SMQ", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\nnames_baskets <- grep(\"^(SMQ|CQ).*NAM$\", names(ADAE), value = TRUE)\nnames_scopes <- grep(\"^SMQ.*SC$\", names(ADAE), value = TRUE)\n\ncs_baskets <- choices_selected(\n choices = variable_choices(ADAE, subset = names_baskets),\n selected = names_baskets\n)\ncs_scopes <- choices_selected(\n choices = variable_choices(ADAE, subset = names_scopes),\n selected = names_scopes,\n fixed = TRUE\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_smq(\n label = \"Adverse events by `SMQ` Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"SEX\")),\n selected = \"ARM\"\n ),\n add_total = FALSE,\n baskets = cs_baskets,\n scopes = cs_scopes,\n llt = choices_selected(\n choices = variable_choices(ADAE, subset = c(\"AEDECOD\")),\n selected = \"AEDECOD\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\nnames_baskets <- grep(\"^(SMQ|CQ).*NAM$\", names(ADAE), value = TRUE)\nnames_scopes <- grep(\"^SMQ.*SC$\", names(ADAE), value = TRUE)\n\ncs_baskets <- choices_selected(\n choices = variable_choices(ADAE, subset = names_baskets),\n selected = names_baskets\n)\ncs_scopes <- choices_selected(\n choices = variable_choices(ADAE, subset = names_scopes),\n selected = names_scopes,\n fixed = TRUE\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_smq(\n label = \"Adverse events by `SMQ` Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"SEX\")),\n selected = \"ARM\"\n ),\n add_total = FALSE,\n baskets = cs_baskets,\n scopes = cs_scopes,\n llt = choices_selected(\n choices = variable_choices(ADAE, subset = c(\"AEDECOD\")),\n selected = \"AEDECOD\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", - "crumbs": [ - "Tables", - "Adverse Events", - "AET02_SMQ" - ] - }, - { - "objectID": "tables/adverse-events/aet02_smq.html#reproducibility", - "href": "tables/adverse-events/aet02_smq.html#reproducibility", - "title": "AET02_SMQ", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:57:02 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr * 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", - "crumbs": [ - "Tables", - "Adverse Events", - "AET02_SMQ" - ] - }, - { - "objectID": "tables/adverse-events/aet05.html#output", - "href": "tables/adverse-events/aet05.html#output", - "title": "AET05", + "objectID": "tables/concomitant-medications/cmt01.html#output", + "href": "tables/concomitant-medications/cmt01.html#output", + "title": "CMT01", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Setting Type of Confidence Interval\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n estimate_incidence_rate(\n vars = \"AVAL\",\n n_events = \"n_events\",\n control = control_incidence_rate(num_pt_year = 100)\n )\n\nresult <- build_table(lyt, anl, alt_counts_df = adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\nTotal patient-years at risk 162.4 103.9 172.6 \nNumber of adverse events observed 78 104 67 \nAE rate per 100 patient-years 48.03 100.14 38.82 \n95% CI (37.37, 58.69) (80.89, 119.38) (29.53, 48.12)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe type of confidence interval can be specified through the conf_type argument.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n estimate_incidence_rate(\n vars = \"AVAL\",\n n_events = \"n_events\",\n control = control_incidence_rate(\n conf_level = 0.95,\n conf_type = \"exact\",\n num_pt_year = 100\n )\n )\n\nresult <- build_table(lyt, anl, alt_counts_df = adsl)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\nTotal patient-years at risk 162.4 103.9 172.6 \nNumber of adverse events observed 78 104 67 \nAE rate per 100 patient-years 48.03 100.14 38.82 \n95% CI (37.97, 59.94) (81.82, 121.34) (30.09, 49.30)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadaette <- random.cdisc.data::cadaette\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadaette <- df_explicit_na(adaette)\n\nanl <- adaette %>%\n dplyr::filter(PARAM == \"Time to first occurrence of any adverse event\") %>%\n dplyr::mutate(is_event = CNSR == 0) %>%\n dplyr::mutate(n_events = as.integer(is_event))", + "text": "Output\n\n\nStandard Table\nTable Showing Medications Prior to the Start of the Study\nTable with Subtotal Per Medication Class Suppressed\nTable Sorted by Total Column Showing Additional “All Patients” Column\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one treatment\",\n nonunique = \"Total number of treatments\"\n )\n ) %>%\n split_rows_by(\"CMCLAS\",\n split_fun = split_fun,\n child_labels = \"visible\",\n nested = FALSE,\n indent_mod = 1L,\n label_pos = \"topleft\",\n split_label = obj_label(adcm_con$CMCLAS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one treatment\",\n nonunique = \"Total number of treatments\"\n )\n ) %>%\n count_occurrences(vars = \"CMDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adcm_con, \"CMDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adcm_con,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"CMCLAS\", \"*\", \"CMDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nMedication Class A: Drug X B: Placebo C: Combination\n Standardized Medication Name (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one treatment 117 (87.3%) 116 (86.6%) 116 (87.9%) \nTotal number of treatments 415 414 460 \n medcl A \n Total number of patients with at least one treatment 75 (56.0%) 79 (59.0%) 81 (61.4%) \n Total number of treatments 134 137 143 \n medname A_2/3 53 (39.6%) 50 (37.3%) 56 (42.4%) \n medname A_3/3 45 (33.6%) 54 (40.3%) 48 (36.4%) \n medcl B \n Total number of patients with at least one treatment 83 (61.9%) 74 (55.2%) 88 (66.7%) \n Total number of treatments 141 137 162 \n medname B_1/4 52 (38.8%) 57 (42.5%) 59 (44.7%) \n medname B_4/4 50 (37.3%) 45 (33.6%) 55 (41.7%) \n medcl C \n Total number of patients with at least one treatment 82 (61.2%) 84 (62.7%) 89 (67.4%) \n Total number of treatments 140 140 155 \n medname C_2/2 52 (38.8%) 58 (43.3%) 60 (45.5%) \n medname C_1/2 51 (38.1%) 50 (37.3%) 56 (42.4%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one treatment\",\n nonunique = \"Total number of treatments\"\n )\n ) %>%\n split_rows_by(\"CMCLAS\",\n split_fun = split_fun,\n child_labels = \"visible\",\n nested = FALSE,\n label_pos = \"topleft\",\n split_label = obj_label(adcm_con$CMCLAS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one treatment\",\n nonunique = \"Total number of treatments\"\n )\n ) %>%\n count_occurrences(vars = \"CMDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adcm_prior, \"CMDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adcm_prior,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"CMCLAS\", \"*\", \"CMDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nMedication Class A: Drug X B: Placebo C: Combination\n Standardized Medication Name (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one treatment 89 (66.4%) 95 (70.9%) 106 (80.3%) \nTotal number of treatments 194 208 243 \nmedcl A \n Total number of patients with at least one treatment 54 (40.3%) 49 (36.6%) 69 (52.3%) \n Total number of treatments 71 70 99 \n medname A_1/3 54 (40.3%) 49 (36.6%) 69 (52.3%) \nmedcl B \n Total number of patients with at least one treatment 76 (56.7%) 80 (59.7%) 81 (61.4%) \n Total number of treatments 123 138 144 \n medname B_2/4 52 (38.8%) 55 (41.0%) 56 (42.4%) \n medname B_3/4 47 (35.1%) 47 (35.1%) 52 (39.4%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one treatment\",\n nonunique = \"Total number of treatments\"\n )\n ) %>%\n split_rows_by(\"CMCLAS\",\n split_fun = split_fun, child_labels = \"visible\",\n nested = FALSE,\n label_pos = \"topleft\",\n split_label = obj_label(adcm_con$CMCLAS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .labels = c(unique = \"Total number of patients with at least one treatment\"),\n .stats = \"unique\"\n ) %>%\n count_occurrences(vars = \"CMDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adcm_con, \"CMDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adcm_con,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"CMCLAS\", \"*\", \"CMDECOD\"),\n scorefun = score_occurrences\n )\n\nresult\n\nMedication Class A: Drug X B: Placebo C: Combination\n Standardized Medication Name (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one treatment 117 (87.3%) 116 (86.6%) 116 (87.9%) \nTotal number of treatments 415 414 460 \nmedcl A \n Total number of patients with at least one treatment 75 (56.0%) 79 (59.0%) 81 (61.4%) \n medname A_2/3 53 (39.6%) 50 (37.3%) 56 (42.4%) \n medname A_3/3 45 (33.6%) 54 (40.3%) 48 (36.4%) \nmedcl B \n Total number of patients with at least one treatment 83 (61.9%) 74 (55.2%) 88 (66.7%) \n medname B_1/4 52 (38.8%) 57 (42.5%) 59 (44.7%) \n medname B_4/4 50 (37.3%) 45 (33.6%) 55 (41.7%) \nmedcl C \n Total number of patients with at least one treatment 82 (61.2%) 84 (62.7%) 89 (67.4%) \n medname C_2/2 52 (38.8%) 58 (43.3%) 60 (45.5%) \n medname C_1/2 51 (38.1%) 50 (37.3%) 56 (42.4%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\") %>%\n add_overall_col(\"All Patients\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n \"Total number of patients with at least one treatment (%)\",\n \"Total number of treatments\"\n )\n ) %>%\n split_rows_by(\n \"CMCLAS\",\n split_fun = split_fun,\n child_labels = \"visible\",\n nested = FALSE,\n label_pos = \"topleft\",\n split_label = obj_label(adcm_con$CMCLAS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n \"Total number of patients with at least one treatment (%)\",\n \"Total number of treatments\"\n )\n ) %>%\n count_occurrences(vars = \"CMDECOD\", .indent_mods = -1L) %>%\n append_varlabels(adcm_con, \"CMDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adcm_con,\n alt_counts_df = adsl\n) %>%\n prune_table() %>%\n sort_at_path(\n path = c(\"CMCLAS\", \"*\", \"CMDECOD\"),\n scorefun = score_occurrences,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"CMCLAS\"),\n scorefun = cont_n_allcols,\n decreasing = TRUE\n )\n\nresult\n\nMedication Class A: Drug X B: Placebo C: Combination All Patients\n Standardized Medication Name (N=134) (N=134) (N=132) (N=400) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one treatment (%) 117 (87.3%) 116 (86.6%) 116 (87.9%) 349 (87.2%) \nTotal number of treatments 415 414 460 1289 \nmedcl C \n Total number of patients with at least one treatment (%) 82 (61.2%) 84 (62.7%) 89 (67.4%) 255 (63.7%) \n Total number of treatments 140 140 155 435 \n medname C_2/2 52 (38.8%) 58 (43.3%) 60 (45.5%) 170 (42.5%) \n medname C_1/2 51 (38.1%) 50 (37.3%) 56 (42.4%) 157 (39.2%) \nmedcl B \n Total number of patients with at least one treatment (%) 83 (61.9%) 74 (55.2%) 88 (66.7%) 245 (61.3%) \n Total number of treatments 141 137 162 440 \n medname B_1/4 52 (38.8%) 57 (42.5%) 59 (44.7%) 168 (42.0%) \n medname B_4/4 50 (37.3%) 45 (33.6%) 55 (41.7%) 150 (37.5%) \nmedcl A \n Total number of patients with at least one treatment (%) 75 (56.0%) 79 (59.0%) 81 (61.4%) 235 (58.8%) \n Total number of treatments 134 137 143 414 \n medname A_2/3 53 (39.6%) 50 (37.3%) 56 (42.4%) 159 (39.8%) \n medname A_3/3 45 (33.6%) 54 (40.3%) 48 (36.4%) 147 (36.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\n# The following tables require ADCM data structure that follows the legacy concomitant medication coding.\n# WHO coding is not used.\nadsl <- random.cdisc.data::cadsl\nadcm <- random.cdisc.data::cadcm\n\n# Below step is to set up example data based on legacy standard.\nadcm <- adcm %>%\n select(-starts_with(\"ATC\")) %>%\n unique()\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadcm <- df_explicit_na(adcm)\n\nadcm_con <- adcm %>%\n filter(ATIREL == \"CONCOMITANT\")\n\nadcm_prior <- adcm %>%\n filter(ATIREL == \"PRIOR\")", "crumbs": [ "Tables", - "Adverse Events", - "AET05" + "Concomitant Medications", + "CMT01" ] }, { - "objectID": "tables/adverse-events/aet05.html#teal-app", - "href": "tables/adverse-events/aet05.html#teal-app", - "title": "AET05", + "objectID": "tables/concomitant-medications/cmt01.html#teal-app", + "href": "tables/concomitant-medications/cmt01.html#teal-app", + "title": "CMT01", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n ADAETTE <- ADAETTE %>%\n filter(PARAMCD %in% c(\"AETTE1\", \"AETTE2\", \"AETTE3\")) %>%\n mutate(is_event = CNSR == 0) %>%\n mutate(n_events = as.integer(is_event))\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_patyear(\n label = \"AE rate adjusted for patient-years at risk Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARMCD\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADAETTE, \"PARAMCD\", \"PARAM\"),\n selected = \"AETTE1\"\n ),\n events_var = choices_selected(\n choices = variable_choices(ADAETTE, \"n_events\"),\n selected = \"n_events\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n ADAETTE <- ADAETTE %>%\n filter(PARAMCD %in% c(\"AETTE1\", \"AETTE2\", \"AETTE3\")) %>%\n mutate(is_event = CNSR == 0) %>%\n mutate(n_events = as.integer(is_event))\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_patyear(\n label = \"AE rate adjusted for patient-years at risk Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARMCD\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADAETTE, \"PARAMCD\", \"PARAM\"),\n selected = \"AETTE1\"\n ),\n events_var = choices_selected(\n choices = variable_choices(ADAETTE, \"n_events\"),\n selected = \"n_events\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\nHere, adcm is processed to keep only one path per treatment.\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADCM <- random.cdisc.data::cadcm\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADCM <- df_explicit_na(ADCM)\n\n ADCM <- ADCM %>%\n group_by(STUDYID, USUBJID, CMDECOD) %>%\n slice(1) %>%\n ungroup()\n})\ndatanames <- c(\"ADSL\", \"ADCM\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADCM <- data[[\"ADCM\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Concomitant Medication Table\",\n dataname = \"ADCM\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADCM, \"CMDECOD\"),\n selected = \"CMDECOD\"\n ),\n hlt = choices_selected(\n choices = variable_choices(ADCM, \"CMCLAS\"),\n selected = c(\"CMCLAS\")\n ),\n add_total = TRUE,\n event_type = \"treatment\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADCM <- random.cdisc.data::cadcm\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADCM <- df_explicit_na(ADCM)\n\n ADCM <- ADCM %>%\n group_by(STUDYID, USUBJID, CMDECOD) %>%\n slice(1) %>%\n ungroup()\n})\ndatanames <- c(\"ADSL\", \"ADCM\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADCM <- data[[\"ADCM\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Concomitant Medication Table\",\n dataname = \"ADCM\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADCM, \"CMDECOD\"),\n selected = \"CMDECOD\"\n ),\n hlt = choices_selected(\n choices = variable_choices(ADCM, \"CMCLAS\"),\n selected = c(\"CMCLAS\")\n ),\n add_total = TRUE,\n event_type = \"treatment\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Adverse Events", - "AET05" + "Concomitant Medications", + "CMT01" ] }, { - "objectID": "tables/adverse-events/aet05.html#reproducibility", - "href": "tables/adverse-events/aet05.html#reproducibility", - "title": "AET05", + "objectID": "tables/concomitant-medications/cmt01.html#reproducibility", + "href": "tables/concomitant-medications/cmt01.html#reproducibility", + "title": "CMT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:57:50 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:53:57 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET05" + "Concomitant Medications", + "CMT01" ] }, { - "objectID": "tables/adverse-events/aet05_all.html#output", - "href": "tables/adverse-events/aet05_all.html#output", - "title": "AET05_ALL", + "objectID": "tables/ECG/egt03.html#output", + "href": "tables/ECG/egt03.html#output", + "title": "EGT03", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable Setting Type of Confidence Interval\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n estimate_incidence_rate(\n vars = \"AVAL\",\n n_events = \"n_events\",\n control = control_incidence_rate(num_pt_year = 100)\n )\n\nresult <- build_table(lyt, anl, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————\nTotal patient-years at risk 337.9 331.8 341.6 \nNumber of adverse events observed 343 380 397 \nAE rate per 100 patient-years 101.51 114.51 116.22 \n95% CI (90.77, 112.25) (103.00, 126.02) (104.79, 127.65)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe type of confidence interval can be specified through the conf_type argument.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n estimate_incidence_rate(\n vars = \"AVAL\",\n n_events = \"n_events\",\n control = control_incidence_rate(conf_type = \"exact\", num_pt_year = 100)\n )\n\nresult <- build_table(lyt, anl, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————\nTotal patient-years at risk 337.9 331.8 341.6 \nNumber of adverse events observed 343 380 397 \nAE rate per 100 patient-years 101.51 114.51 116.22 \n95% CI (91.05, 112.84) (103.28, 126.62) (105.07, 128.24)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadaette <- random.cdisc.data::cadaette\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadaette <- df_explicit_na(adaette)\n\n# Create analysis dataset anl from the 2 parameters AEREPTTE & AETOT1\nanl_events <- adaette %>%\n filter(PARAMCD == \"AETOT1\") %>%\n select(USUBJID, ARM, ARMCD, n_events = AVAL) %>%\n mutate(n_events = as.integer(n_events))\n\nanl_tte <- adaette %>%\n filter(PARAMCD == \"AEREPTTE\") %>%\n select(USUBJID, ARM, ARMCD, AVAL)\n\nanl <- full_join(anl_tte, anl_events, by = c(\"USUBJID\", \"ARM\", \"ARMCD\"))", + "text": "Output\n\n\nTable of Baseline Versus Minimum Post-Baseline\nTable of Baseline Versus Maximum Post-Baseline\nData Setup\n\n\n\nFor the EGT03 template, data imputation should be avoided, and missing data explicit and accounted for, so the contingency table sum adds up to the group N. For illustration purposes, missing data are added to the example dataset.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeset.seed(123, kind = \"Mersenne-Twister\")\n\nadeg_f_pbmin$BNRIND <- factor(\n adeg_f_pbmin$BNRIND,\n levels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\"),\n labels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\")\n)\nadeg_f_pbmin$ANRIND <- factor(\n adeg_f_pbmin$ANRIND,\n levels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\"),\n labels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\")\n)\n\nadeg_f_pbmin$BNRIND[sample(seq_len(nrow(adeg_f_pbmin)), size = 5)] <- \"Missing\"\nadeg_f_pbmin$ANRIND[sample(seq_len(nrow(adeg_f_pbmin)), size = 5)] <- \"Missing\"\n\nattr(adeg_f_pbmin$ANRIND, \"label\") <- \"Analysis Reference Range Indicator\"\nattr(adeg_f_pbmin$BNRIND, \"label\") <- \"Baseline Reference Range Indicator\"\n\n# Temporary solution for overarching column\nadeg_f_pbmin <- adeg_f_pbmin %>% mutate(min_label = \"Minimum Post-Baseline Assessment\")\n\n# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table() %>%\n split_cols_by(\"min_label\") %>%\n split_cols_by(\"ANRIND\") %>%\n split_rows_by(\"ARMCD\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adeg_f_pbmin$ARMCD)) %>%\n add_rowcounts() %>%\n analyze_vars(\"BNRIND\", denom = \"N_row\", .stats = \"count_fraction\") %>%\n append_varlabels(adeg_f_pbmin, c(\"BNRIND\"), indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adeg_f_pbmin\n)\n\nresult\n\nPlanned Arm Code Minimum Post-Baseline Assessment \n Baseline Reference Range Indicator LOW NORMAL HIGH Missing \n————————————————————————————————————————————————————————————————————————————————\nARM A (N=134) \n LOW 1 (0.7%) 5 (3.7%) 0 0 \n NORMAL 36 (26.9%) 83 (61.9%) 0 1 (0.7%)\n HIGH 2 (1.5%) 4 (3%) 0 0 \n Missing 1 (0.7%) 0 0 1 (0.7%)\nARM B (N=134) \n LOW 1 (0.7%) 9 (6.7%) 0 0 \n NORMAL 40 (29.9%) 75 (56%) 0 2 (1.5%)\n HIGH 1 (0.7%) 4 (3%) 0 0 \n Missing 1 (0.7%) 1 (0.7%) 0 0 \nARM C (N=132) \n LOW 4 (3%) 11 (8.3%) 0 0 \n NORMAL 31 (23.5%) 75 (56.8%) 0 0 \n HIGH 1 (0.8%) 8 (6.1%) 0 1 (0.8%)\n Missing 1 (0.8%) 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nFor the EGT03 template, data imputation should be avoided, and missing data explicit and accounted for, so the contingency table sum adds up to the group N. For illustration purpose, missing data are added to the example dataset.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeset.seed(123, kind = \"Mersenne-Twister\")\n\nadeg_f_pbmax$BNRIND <- factor(\n adeg_f_pbmax$BNRIND,\n levels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\"),\n labels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\")\n)\nadeg_f_pbmax$ANRIND <- factor(\n adeg_f_pbmax$ANRIND,\n levels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\"),\n labels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\")\n)\n\nadeg_f_pbmax$BNRIND[sample(seq_len(nrow(adeg_f_pbmax)), size = 5)] <- \"Missing\"\nadeg_f_pbmax$ANRIND[sample(seq_len(nrow(adeg_f_pbmax)), size = 5)] <- \"Missing\"\n\nattr(adeg_f_pbmax$ANRIND, \"label\") <- \"Analysis Reference Range Indicator\"\nattr(adeg_f_pbmax$BNRIND, \"label\") <- \"Baseline Reference Range Indicator\"\n\n# Temporary solution for overarching column\nadeg_f_pbmax <- adeg_f_pbmax %>% mutate(max_label = \"Maximum Post-Baseline Assessment\")\n\n# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table() %>%\n split_cols_by(\"max_label\") %>%\n split_cols_by(\"ANRIND\") %>%\n split_rows_by(\"ARMCD\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adeg_f_pbmax$ARMCD)) %>%\n add_rowcounts() %>%\n analyze_vars(\"BNRIND\", denom = \"N_row\", .stats = \"count_fraction\") %>%\n append_varlabels(adeg_f_pbmax, c(\"BNRIND\"), indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adeg_f_pbmax\n)\n\nresult\n\nPlanned Arm Code Maximum Post-Baseline Assessment \n Baseline Reference Range Indicator LOW NORMAL HIGH Missing \n————————————————————————————————————————————————————————————————————————————————\nARM A (N=134) \n LOW 0 2 (1.5%) 4 (3%) 0 \n NORMAL 0 88 (65.7%) 31 (23.1%) 1 (0.7%)\n HIGH 0 5 (3.7%) 1 (0.7%) 0 \n Missing 0 0 1 (0.7%) 1 (0.7%)\nARM B (N=134) \n LOW 0 8 (6%) 2 (1.5%) 0 \n NORMAL 0 76 (56.7%) 39 (29.1%) 2 (1.5%)\n HIGH 0 3 (2.2%) 2 (1.5%) 0 \n Missing 0 1 (0.7%) 1 (0.7%) 0 \nARM C (N=132) \n LOW 0 12 (9.1%) 3 (2.3%) 0 \n NORMAL 0 79 (59.8%) 27 (20.5%) 0 \n HIGH 0 5 (3.8%) 4 (3%) 1 (0.8%)\n Missing 0 0 1 (0.8%) 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadeg <- random.cdisc.data::cadeg\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadeg <- df_explicit_na(adeg)\n\nadeg_labels <- var_labels(adeg)\n\nadeg_f_pbmin <- subset(\n adeg,\n PARAMCD == \"HR\" & # Heart Rate\n SAFFL == \"Y\" & # \"Safety Population Flag\"\n ONTRTFL == \"Y\" & # \"On Treatment Record Flag\"\n AVISIT == \"POST-BASELINE MINIMUM\" # \"Analysis Visit\"\n)\n\nadeg_f_pbmax <- subset(\n adeg,\n PARAMCD == \"HR\" & # Heart Rate\n SAFFL == \"Y\" & # \"Safety Population Flag\"\n ONTRTFL == \"Y\" & # \"On Treatment Record Flag\"\n AVISIT == \"POST-BASELINE MAXIMUM\" # \"Analysis Visit\"\n)\n\nvar_labels(adeg_f_pbmin) <- adeg_labels\nvar_labels(adeg_f_pbmax) <- adeg_labels", "crumbs": [ "Tables", - "Adverse Events", - "AET05_ALL" + "ECG", + "EGT03" ] }, { - "objectID": "tables/adverse-events/aet05_all.html#teal-app", - "href": "tables/adverse-events/aet05_all.html#teal-app", - "title": "AET05_ALL", + "objectID": "tables/ECG/egt03.html#teal-app", + "href": "tables/ECG/egt03.html#teal-app", + "title": "EGT03", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n # Create analysis dataset anl from the 2 parameters AEREPTTE & AETOT1\n anl_events <- ADAETTE %>%\n filter(PARAMCD %in% c(\"AETOT1\", \"AETOT2\", \"AETOT3\")) %>%\n select(USUBJID, STUDYID, PARAMCD, ARM, ARMCD, n_events = AVAL) %>%\n mutate(n_events = as.integer(n_events))\n\n anl_tte <- ADAETTE %>%\n filter(PARAMCD == \"AEREPTTE\") %>%\n select(USUBJID, STUDYID, ARM, ARMCD, AVAL, AVALU)\n\n ADAETTE <- full_join(anl_tte, anl_events, by = c(\"USUBJID\", \"STUDYID\", \"ARM\", \"ARMCD\"))\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_patyear(\n label = \"AE Rate Adjusted for Patient-Years at Risk - All Occurrences Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARMCD\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADAETTE, \"PARAMCD\"),\n selected = \"AETOT1\"\n ),\n events_var = choices_selected(\n choices = variable_choices(ADAETTE, \"n_events\"),\n selected = \"n_events\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAETTE <- random.cdisc.data::cadaette\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAETTE <- df_explicit_na(ADAETTE)\n\n # Create analysis dataset anl from the 2 parameters AEREPTTE & AETOT1\n anl_events <- ADAETTE %>%\n filter(PARAMCD %in% c(\"AETOT1\", \"AETOT2\", \"AETOT3\")) %>%\n select(USUBJID, STUDYID, PARAMCD, ARM, ARMCD, n_events = AVAL) %>%\n mutate(n_events = as.integer(n_events))\n\n anl_tte <- ADAETTE %>%\n filter(PARAMCD == \"AEREPTTE\") %>%\n select(USUBJID, STUDYID, ARM, ARMCD, AVAL, AVALU)\n\n ADAETTE <- full_join(anl_tte, anl_events, by = c(\"USUBJID\", \"STUDYID\", \"ARM\", \"ARMCD\"))\n})\ndatanames <- c(\"ADSL\", \"ADAETTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAETTE <- data[[\"ADAETTE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_patyear(\n label = \"AE Rate Adjusted for Patient-Years at Risk - All Occurrences Table\",\n dataname = \"ADAETTE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARMCD\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADAETTE, \"PARAMCD\"),\n selected = \"AETOT1\"\n ),\n events_var = choices_selected(\n choices = variable_choices(ADAETTE, \"n_events\"),\n selected = \"n_events\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_shift_by_arm(\n label = \"Shift by Arm Table\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n value_choices(ADEG, \"PARAMCD\"),\n selected = \"HR\"\n ),\n visit_var = choices_selected(\n value_choices(ADEG, \"AVISIT\"),\n selected = \"POST-BASELINE MINIMUM\"\n ),\n aval_var = choices_selected(\n variable_choices(ADEG, subset = \"ANRIND\"),\n selected = \"ANRIND\", fixed = TRUE\n ),\n baseline_var = choices_selected(\n variable_choices(ADEG, subset = \"BNRIND\"),\n selected = \"BNRIND\", fixed = TRUE\n ),\n treatment_flag_var = choices_selected(\n variable_choices(ADEG, subset = \"ONTRTFL\"),\n selected = \"ONTRTFL\", fixed = TRUE\n ),\n treatment_flag = choices_selected(\n value_choices(ADEG, \"ONTRTFL\"),\n selected = \"Y\", fixed = TRUE\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_shift_by_arm(\n label = \"Shift by Arm Table\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n value_choices(ADEG, \"PARAMCD\"),\n selected = \"HR\"\n ),\n visit_var = choices_selected(\n value_choices(ADEG, \"AVISIT\"),\n selected = \"POST-BASELINE MINIMUM\"\n ),\n aval_var = choices_selected(\n variable_choices(ADEG, subset = \"ANRIND\"),\n selected = \"ANRIND\", fixed = TRUE\n ),\n baseline_var = choices_selected(\n variable_choices(ADEG, subset = \"BNRIND\"),\n selected = \"BNRIND\", fixed = TRUE\n ),\n treatment_flag_var = choices_selected(\n variable_choices(ADEG, subset = \"ONTRTFL\"),\n selected = \"ONTRTFL\", fixed = TRUE\n ),\n treatment_flag = choices_selected(\n value_choices(ADEG, \"ONTRTFL\"),\n selected = \"Y\", fixed = TRUE\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Adverse Events", - "AET05_ALL" + "ECG", + "EGT03" ] }, { - "objectID": "tables/adverse-events/aet05_all.html#reproducibility", - "href": "tables/adverse-events/aet05_all.html#reproducibility", - "title": "AET05_ALL", + "objectID": "tables/ECG/egt03.html#reproducibility", + "href": "tables/ECG/egt03.html#reproducibility", + "title": "EGT03", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:58:32 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:54:26 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET05_ALL" + "ECG", + "EGT03" ] }, { - "objectID": "tables/adverse-events/aet04.html#output", - "href": "tables/adverse-events/aet04.html#output", - "title": "AET04", + "objectID": "tables/ECG/egt02.html#output", + "href": "tables/ECG/egt02.html#output", + "title": "EGT02", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable with Fill-In of Treatment Groups\nTable with Fill-In of Grades\nTable with Collapsing of Grades\nTable Using Worst Grade Flags from ADAE\nTable with an Incidence Rate \\(\\geq\\) 40%, Totals Restricted\nTable with an Incidence Rate \\(\\geq\\) X%, Totals Unrestricted\nTable with an Incidence Rate \\(\\geq\\) 58 Patients\nTable with a Difference in Incidence Rate \\(\\geq\\) 10%\nTable with an Incidence Rate \\(\\geq\\) 5%, SOCs < 5% Removed\nTable with an Incidence Rate \\(\\geq\\) 40%, All SOCs w/o Preferred Terms Removed\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n var = \"TOTAL_VAR\",\n label_pos = \"hidden\",\n child_labels = \"visible\",\n indent_mod = -1L\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 7L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 6L\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = drop_split_levels,\n split_label = var_labels(adae)[[\"AEBODSYS\"]],\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n \"AEDECOD\",\n child_labels = \"visible\",\n split_fun = add_overall_level(\"- Overall -\", trim = TRUE),\n split_label = var_labels(adae)[[\"AEDECOD\"]],\n label_pos = \"topleft\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 6L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 5L\n ) %>%\n append_topleft(\" Grade\")\n\nresult <- lyt %>%\n build_table(adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = \"AEBODSYS\",\n scorefun = score_all_sum,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_all_sum,\n decreasing = TRUE\n )\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 98 (73.1%) 103 (78.0%) \n Grade 1-2 10 (7.5%) 15 (11.2%) 10 (7.6%) \n 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3-4 26 (19.4%) 31 (23.1%) 29 (22.0%) \n 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 64 (47.8%) 52 (38.8%) 64 (48.5%) \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Grade 1-2 68 (50.7%) 58 (43.3%) 76 (57.6%) \n 1 27 (20.1%) 19 (14.2%) 34 (25.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n Grade 1-2 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 1-2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Grade 1-2 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 1 23 (17.2%) 22 (16.4%) 28 (21.2%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Grade 1-2 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Grade 3-4 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 3 22 (16.4%) 22 (16.4%) 22 (16.7%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Grade 3-4 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 3 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadae2 <- adae %>% filter(ACTARM == \"A: Drug X\")\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n var = \"TOTAL_VAR\",\n label_pos = \"hidden\",\n child_labels = \"visible\",\n indent_mod = -1L\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 7L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 6L\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = drop_split_levels,\n split_label = var_labels(adae)[[\"AEBODSYS\"]],\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n \"AEDECOD\",\n child_labels = \"visible\",\n split_fun = add_overall_level(\"- Overall -\", trim = TRUE),\n split_label = var_labels(adae)[[\"AEDECOD\"]],\n label_pos = \"topleft\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 6L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 5L\n ) %>%\n append_topleft(\" Grade\")\n\nresult <- lyt %>%\n build_table(adae2, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = \"AEBODSYS\",\n scorefun = score_all_sum,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_all_sum,\n decreasing = TRUE\n )\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 0 0 \n Grade 1-2 10 (7.5%) 0 0 \n 1 5 (3.7%) 0 0 \n 2 5 (3.7%) 0 0 \n Grade 3-4 26 (19.4%) 0 0 \n 3 13 (9.7%) 0 0 \n 4 13 (9.7%) 0 0 \n Grade 5 64 (47.8%) 0 0 \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 0 0 \n Grade 1-2 68 (50.7%) 0 0 \n 1 27 (20.1%) 0 0 \n 2 41 (30.6%) 0 0 \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 0 0 \n Grade 1-2 45 (33.6%) 0 0 \n 1 45 (33.6%) 0 0 \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 0 0 \n Grade 1-2 41 (30.6%) 0 0 \n 2 41 (30.6%) 0 0 \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 0 0 \n Grade 3-4 22 (16.4%) 0 0 \n 3 22 (16.4%) 0 0 \n Grade 5 42 (31.3%) 0 0 \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 0 0 \n Grade 5 42 (31.3%) 0 0 \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 0 0 \n Grade 3-4 38 (28.4%) 0 0 \n 3 38 (28.4%) 0 0 \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 0 0 \n Grade 1-2 23 (17.2%) 0 0 \n 1 23 (17.2%) 0 0 \n Grade 3-4 39 (29.1%) 0 0 \n 3 39 (29.1%) 0 0 \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 0 0 \n Grade 3-4 39 (29.1%) 0 0 \n 3 39 (29.1%) 0 0 \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 0 0 \n Grade 1-2 38 (28.4%) 0 0 \n 1 38 (28.4%) 0 0 \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 0 0 \n Grade 5 38 (28.4%) 0 0 \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 0 0 \n Grade 5 38 (28.4%) 0 0 \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 0 0 \n Grade 1-2 37 (27.6%) 0 0 \n 1 37 (27.6%) 0 0 \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 0 0 \n Grade 1-2 37 (27.6%) 0 0 \n 1 37 (27.6%) 0 0 \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 0 0 \n Grade 3-4 36 (26.9%) 0 0 \n 4 36 (26.9%) 0 0 \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 0 0 \n Grade 3-4 36 (26.9%) 0 0 \n 4 36 (26.9%) 0 0 \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 0 0 \n Grade 1-2 28 (20.9%) 0 0 \n 2 28 (20.9%) 0 0 \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 0 0 \n Grade 1-2 28 (20.9%) 0 0 \n 2 28 (20.9%) 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n var = \"TOTAL_VAR\",\n label_pos = \"hidden\",\n child_labels = \"visible\",\n indent_mod = -1L\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 7L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 6L\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = drop_split_levels,\n split_label = var_labels(adae)[[\"AEBODSYS\"]],\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n \"AEDECOD\",\n child_labels = \"visible\",\n split_fun = add_overall_level(\"- Overall -\", trim = TRUE),\n split_label = var_labels(adae)[[\"AEDECOD\"]],\n label_pos = \"topleft\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 6L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 5L\n ) %>%\n append_topleft(\" Grade\")\n\nresult <- lyt %>%\n build_table(adae, alt_counts_df = adsl) %>%\n sort_at_path(\n path = \"AEBODSYS\",\n scorefun = score_all_sum,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_all_sum,\n decreasing = TRUE\n )\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 98 (73.1%) 103 (78.0%) \n Grade 1-2 10 (7.5%) 15 (11.2%) 10 (7.6%) \n 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3-4 26 (19.4%) 31 (23.1%) 29 (22.0%) \n 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 64 (47.8%) 52 (38.8%) 64 (48.5%) \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Grade 1-2 68 (50.7%) 58 (43.3%) 76 (57.6%) \n 1 27 (20.1%) 19 (14.2%) 34 (25.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n Grade 1-2 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 2 0 0 0 \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 1-2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n 1 0 0 0 \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Grade 1-2 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 1 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 2 0 0 0 \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 4 0 0 0 \n Grade 5 0 0 0 \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Grade 1-2 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 2 0 0 0 \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 4 0 0 0 \n Grade 5 0 0 0 \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 3 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 4 0 0 0 \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 3 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 4 0 0 0 \n Grade 5 0 0 0 \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 2 0 0 0 \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 2 0 0 0 \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 1 0 0 0 \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 1 0 0 0 \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 0 0 0 \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 0 0 0 \n 3 0 0 0 \n 4 0 0 0 \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 3 0 0 0 \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 5 0 0 0 \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 1-2 0 0 0 \n 1 0 0 0 \n 2 0 0 0 \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 3 0 0 0 \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 5 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodegrade_groups_1 <- list(\n \"Grade 1-2\" = c(\"1\", \"2\"),\n \"Grade 3-5\" = c(\"3\", \"4\", \"5\")\n)\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n var = \"TOTAL_VAR\",\n label_pos = \"hidden\",\n child_labels = \"visible\",\n indent_mod = -1L\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 7L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups_1,\n .indent_mods = 6L\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = drop_split_levels,\n split_label = var_labels(adae)[[\"AEBODSYS\"]],\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n \"AEDECOD\",\n child_labels = \"visible\",\n split_fun = add_overall_level(\"- Overall -\", trim = TRUE),\n split_label = var_labels(adae)[[\"AEDECOD\"]],\n label_pos = \"topleft\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 6L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups_1,\n .indent_mods = 5L\n ) %>%\n append_topleft(\" Grade\")\n\nresult <- lyt %>%\n build_table(adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = \"AEBODSYS\",\n scorefun = score_all_sum,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_all_sum,\n decreasing = TRUE\n )\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 98 (73.1%) 103 (78.0%) \n Grade 1-2 10 (7.5%) 15 (11.2%) 10 (7.6%) \n 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3-5 90 (67.2%) 83 (61.9%) 93 (70.5%) \n 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n 5 64 (47.8%) 52 (38.8%) 64 (48.5%) \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Grade 1-2 68 (50.7%) 58 (43.3%) 76 (57.6%) \n 1 27 (20.1%) 19 (14.2%) 34 (25.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n Grade 1-2 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 1-2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Grade 1-2 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 1 23 (17.2%) 22 (16.4%) 28 (21.2%) \n Grade 3-5 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Grade 1-2 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Grade 3-5 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Grade 3-5 64 (47.8%) 54 (40.3%) 68 (51.5%) \n 3 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Grade 3-5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Grade 3-5 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 3 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 3-5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 3-5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-5 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-5 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCode# No Worst Grade Flags found in the ADAE data set.\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Simple wrapper to return subset ADAE to a threshold of xx%.\nget_adae_trimmed <- function(adsl, adae, cutoff_rate) {\n n_per_arm <- adsl %>%\n dplyr::count(ACTARM)\n\n anl_terms <- adae %>%\n dplyr::group_by(ACTARM, AEBODSYS, AEDECOD) %>%\n dplyr::count(\n unique_terms = n_distinct(USUBJID)\n ) %>%\n dplyr::select(-n) %>%\n dplyr::ungroup()\n\n anl_terms <- dplyr::left_join(\n anl_terms,\n n_per_arm,\n by = \"ACTARM\"\n ) %>%\n dplyr::mutate(\n ae_rate = unique_terms / n\n ) %>%\n dplyr::filter(ae_rate >= cutoff_rate) %>%\n dplyr::select(AEDECOD) %>%\n unique()\n\n anl <- dplyr::left_join(\n anl_terms,\n adae,\n by = \"AEDECOD\"\n )\n anl\n}\n\nadae6 <- get_adae_trimmed(adsl, adae, cutoff_rate = 0.4)\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n var = \"TOTAL_VAR\",\n label_pos = \"hidden\",\n child_labels = \"visible\",\n indent_mod = -1L\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 7L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 6L\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = drop_split_levels,\n split_label = var_labels(adae)[[\"AEBODSYS\"]],\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n \"AEDECOD\",\n child_labels = \"visible\",\n split_fun = add_overall_level(\"- Overall -\", trim = TRUE),\n split_label = var_labels(adae)[[\"AEDECOD\"]],\n label_pos = \"topleft\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 6L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 5L\n ) %>%\n append_topleft(\" Grade\")\n\nresult <- lyt %>%\n build_table(adae6, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = \"AEBODSYS\",\n scorefun = score_all_sum,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_all_sum,\n decreasing = TRUE\n )\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 98 (73.1%) 103 (78.0%) \n Grade 1-2 10 (7.5%) 15 (11.2%) 10 (7.6%) \n 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3-4 26 (19.4%) 31 (23.1%) 29 (22.0%) \n 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 64 (47.8%) 52 (38.8%) 64 (48.5%) \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Grade 1-2 68 (50.7%) 58 (43.3%) 76 (57.6%) \n 1 27 (20.1%) 19 (14.2%) 34 (25.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n Grade 1-2 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 1-2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Grade 1-2 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 1 23 (17.2%) 22 (16.4%) 28 (21.2%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Grade 1-2 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Grade 3-4 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 3 22 (16.4%) 22 (16.4%) 22 (16.7%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Grade 3-4 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 3 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nVariant 7 was not created. With this variant, the SOC level is not trimmed (even if there are no terms left).\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecutoff <- 58L\nrow_condition <- has_count_in_any_col(atleast = cutoff, col_names = levels(adsl$ACTARM))\n\nresult <- prune_table(raw_table, keep_content_rows(my_row_condition(row_condition)))\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 98 (73.1%) 103 (78.0%) \n Grade 1-2 10 (7.5%) 15 (11.2%) 10 (7.6%) \n 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3-4 26 (19.4%) 31 (23.1%) 29 (22.0%) \n 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 64 (47.8%) 52 (38.8%) 64 (48.5%) \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Grade 1-2 68 (50.7%) 58 (43.3%) 76 (57.6%) \n 1 27 (20.1%) 19 (14.2%) 34 (25.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n Grade 1-2 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 1-2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Grade 1-2 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 1 23 (17.2%) 22 (16.4%) 28 (21.2%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Grade 1-2 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Grade 3-4 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 3 22 (16.4%) 22 (16.4%) 22 (16.7%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Grade 3-4 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 3 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecutoff <- 0.1\nrow_condition <- has_fractions_difference(atleast = cutoff, col_names = levels(adsl$ACTARM))\n\nresult <- prune_table(raw_table, keep_content_rows(my_row_condition(row_condition)))\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 98 (73.1%) 103 (78.0%) \n Grade 1-2 10 (7.5%) 15 (11.2%) 10 (7.6%) \n 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3-4 26 (19.4%) 31 (23.1%) 29 (22.0%) \n 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 64 (47.8%) 52 (38.8%) 64 (48.5%) \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Grade 1-2 68 (50.7%) 58 (43.3%) 76 (57.6%) \n 1 27 (20.1%) 19 (14.2%) 34 (25.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n Grade 1-2 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 1-2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Grade 1-2 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 1 23 (17.2%) 22 (16.4%) 28 (21.2%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Grade 1-2 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Grade 3-4 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 3 22 (16.4%) 22 (16.4%) 22 (16.7%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Grade 3-4 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 3 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nVariant 10 was not done With this variant, SOC levels above the threshold are still in the table even if there are no terms left.\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecutoff <- 0.4\nrow_condition <- has_fraction_in_any_col(atleast = cutoff, col_names = levels(adsl$ACTARM))\n\nresult <- prune_table(raw_table, keep_content_rows(my_row_condition(row_condition)))\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Grade (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\n- Any adverse events - \n - Any Grade - 100 (74.6%) 98 (73.1%) 103 (78.0%) \n Grade 1-2 10 (7.5%) 15 (11.2%) 10 (7.6%) \n 1 5 (3.7%) 7 (5.2%) 4 (3.0%) \n 2 5 (3.7%) 8 (6.0%) 6 (4.5%) \n Grade 3-4 26 (19.4%) 31 (23.1%) 29 (22.0%) \n 3 13 (9.7%) 13 (9.7%) 14 (10.6%) \n 4 13 (9.7%) 18 (13.4%) 15 (11.4%) \n Grade 5 64 (47.8%) 52 (38.8%) 64 (48.5%) \ncl A.1 \n - Overall - \n - Any Grade - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n Grade 1-2 68 (50.7%) 58 (43.3%) 76 (57.6%) \n 1 27 (20.1%) 19 (14.2%) 34 (25.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n dcd A.1.1.1.1 \n - Any Grade - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n Grade 1-2 45 (33.6%) 31 (23.1%) 52 (39.4%) \n 1 45 (33.6%) 31 (23.1%) 52 (39.4%) \n dcd A.1.1.1.2 \n - Any Grade - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n Grade 1-2 41 (30.6%) 39 (29.1%) 42 (31.8%) \n 2 41 (30.6%) 39 (29.1%) 42 (31.8%) \ncl B.2 \n - Overall - \n - Any Grade - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n Grade 1-2 23 (17.2%) 22 (16.4%) 28 (21.2%) \n 1 23 (17.2%) 22 (16.4%) 28 (21.2%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \n dcd B.2.2.3.1 \n - Any Grade - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n Grade 1-2 38 (28.4%) 40 (29.9%) 45 (34.1%) \n 1 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 \n - Any Grade - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n Grade 3-4 39 (29.1%) 34 (25.4%) 46 (34.8%) \n 3 39 (29.1%) 34 (25.4%) 46 (34.8%) \ncl D.1 \n - Overall - \n - Any Grade - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n Grade 3-4 22 (16.4%) 22 (16.4%) 22 (16.7%) \n 3 22 (16.4%) 22 (16.4%) 22 (16.7%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.1.1 \n - Any Grade - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n Grade 5 42 (31.3%) 32 (23.9%) 46 (34.8%) \n dcd D.1.1.4.2 \n - Any Grade - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n Grade 3-4 38 (28.4%) 34 (25.4%) 40 (30.3%) \n 3 38 (28.4%) 34 (25.4%) 40 (30.3%) \ncl D.2 \n - Overall - \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \n dcd D.2.1.5.3 \n - Any Grade - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n Grade 1-2 37 (27.6%) 46 (34.3%) 50 (37.9%) \n 1 37 (27.6%) 46 (34.3%) 50 (37.9%) \ncl C.2 \n - Overall - \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n dcd C.2.1.2.1 \n - Any Grade - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n Grade 1-2 28 (20.9%) 36 (26.9%) 48 (36.4%) \n 2 28 (20.9%) 36 (26.9%) 48 (36.4%) \ncl B.1 \n - Overall - \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \n dcd B.1.1.1.1 \n - Any Grade - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n Grade 5 38 (28.4%) 37 (27.6%) 36 (27.3%) \ncl C.1 \n - Overall - \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n dcd C.1.1.1.3 \n - Any Grade - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n Grade 3-4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n 4 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl) %>% filter(TRT01A != \"<Missing>\")\nadae <- df_explicit_na(adae) %>%\n var_relabel(\n AEBODSYS = \"MedDRA System Organ Class\",\n AEDECOD = \"MedDRA Preferred Term\"\n ) %>%\n filter(\n ANL01FL == \"Y\",\n AETOXGR != \"<Missing>\"\n )\n\n# Pre-Processing\ngrade_groups <- list(\n \"Grade 1-2\" = c(\"1\", \"2\"),\n \"Grade 3-4\" = c(\"3\", \"4\"),\n \"Grade 5\" = \"5\"\n)\nadae$TOTAL_VAR <- \"- Any adverse events - \"\n\n# Helper function to avoid filtering also the first part of the table, where general information is given.\nmy_row_condition <- function(row_fnc_condition) {\n function(table_row) {\n if (indent_mod(table_row) == 0) {\n return(TRUE)\n } else {\n row_fnc_condition(table_row)\n }\n }\n}\n\n# Helper function to calculate sum from first nested row\nscore_all_sum <- function(tt) {\n cleaf <- collect_leaves(tt)[[1]]\n if (NROW(cleaf) == 0) {\n stop(\"score_all_sum score function used at subtable [\", obj_name(tt), \"] that has no content.\")\n }\n sum(sapply(row_values(cleaf), function(cv) cv[1]))\n}\n\n# Raw table used by variant 8/10\nraw_table <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n split_rows_by(\n var = \"TOTAL_VAR\",\n label_pos = \"hidden\",\n child_labels = \"visible\",\n indent_mod = -1L\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 7L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 6L\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = drop_split_levels,\n split_label = var_labels(adae)[[\"AEBODSYS\"]],\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n \"AEDECOD\",\n child_labels = \"visible\",\n split_fun = add_overall_level(\"- Overall -\", trim = TRUE),\n split_label = var_labels(adae)[[\"AEDECOD\"]],\n label_pos = \"topleft\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = \"- Any Grade -\",\n .indent_mods = 6L\n ) %>%\n count_occurrences_by_grade(\n var = \"AETOXGR\",\n grade_groups = grade_groups,\n .indent_mods = 5L\n ) %>%\n append_topleft(\" Grade\") %>%\n build_table(adae, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(\n path = \"AEBODSYS\",\n scorefun = score_all_sum,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = score_all_sum,\n decreasing = TRUE\n )", + "text": "Output\n\n\nECG Abnormalities Regardless of Abnormality at Baseline\nECG Abnormalities Among Subjects Without Abnormality at Baseline\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adeg_f$PARAM)\n ) %>%\n count_abnormal(\"ANRIND\", abnormal = list(Low = \"LOW\", High = \"HIGH\"), exclude_base_abn = FALSE) %>%\n append_varlabels(adeg_f, \"ANRIND\", indent = 1L)\n\nresult <- build_table(lyt = lyt, df = adeg_f, alt_counts_df = adsl)\nresult\n\nAssessment A: Drug X B: Placebo C: Combination\n Abnormality (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————\nHeart Rate \n Low 40/134 (29.9%) 43/134 (32.1%) 37/132 (28%) \n High 39/134 (29.1%) 45/134 (33.6%) 36/132 (27.3%)\nQT Duration \n Low 33/134 (24.6%) 44/134 (32.8%) 47/132 (35.6%)\n High 30/134 (22.4%) 42/134 (31.3%) 34/132 (25.8%)\nRR Duration \n Low 45/134 (33.6%) 26/134 (19.4%) 38/132 (28.8%)\n High 29/134 (21.6%) 49/134 (36.6%) 27/132 (20.5%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ACTARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adeg_f$PARAM)\n ) %>%\n count_abnormal(\"ANRIND\", abnormal = list(Low = \"LOW\", High = \"HIGH\"), exclude_base_abn = TRUE) %>%\n append_varlabels(adeg_f, \"ANRIND\", indent = 1L)\n\nresult <- build_table(lyt = lyt, df = adeg_f, alt_counts_df = adsl)\nresult\n\nAssessment A: Drug X B: Placebo C: Combination\n Abnormality (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————\nHeart Rate \n Low 39/128 (30.5%) 42/124 (33.9%) 33/117 (28.2%)\n High 37/127 (29.1%) 43/129 (33.3%) 31/122 (25.4%)\nQT Duration \n Low 29/113 (25.7%) 42/126 (33.3%) 43/124 (34.7%)\n High 30/125 (24%) 40/130 (30.8%) 30/119 (25.2%)\nRR Duration \n Low 45/129 (34.9%) 26/123 (21.1%) 37/126 (29.4%)\n High 27/127 (21.3%) 43/122 (35.2%) 25/125 (20%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadeg <- random.cdisc.data::cadeg\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadeg <- df_explicit_na(adeg)\n\n# Note: We keep only post-baseline for analysis.\nadeg_f <- adeg %>%\n filter(ONTRTFL == \"Y\") %>%\n filter(PARAM %in% c(\"Heart Rate\", \"QT Duration\", \"RR Duration\")) %>%\n filter(ANRIND != \"<Missing>\") %>%\n var_relabel(\n PARAM = \"Assessment\",\n ANRIND = \"Abnormality\"\n )", "crumbs": [ "Tables", - "Adverse Events", - "AET04" + "ECG", + "EGT02" ] }, { - "objectID": "tables/adverse-events/aet04.html#teal-app", - "href": "tables/adverse-events/aet04.html#teal-app", - "title": "AET04", + "objectID": "tables/ECG/egt02.html#teal-app", + "href": "tables/ECG/egt02.html#teal-app", + "title": "EGT02", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_by_grade(\n label = \"Adverse Events by Grade Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n grade = choices_selected(\n choices = variable_choices(ADAE, c(\"AETOXGR\", \"AESEV\")),\n selected = \"AETOXGR\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_by_grade(\n label = \"Adverse Events by Grade Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n grade = choices_selected(\n choices = variable_choices(ADAE, c(\"AETOXGR\", \"AESEV\")),\n selected = \"AETOXGR\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality(\n label = \"Abnormality Table\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEG, subset = c(\"EGCAT\", \"PARAM\", \"AVISIT\")),\n selected = c(\"PARAM\"),\n keep_order = TRUE\n ),\n grade = choices_selected(\n choices = variable_choices(ADEG, subset = \"ANRIND\"),\n selected = \"ANRIND\",\n fixed = TRUE\n ),\n abnormal = list(Low = \"LOW\", High = \"HIGH\"),\n exclude_base_abn = FALSE\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_abnormality(\n label = \"Abnormality Table\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEG, subset = c(\"EGCAT\", \"PARAM\", \"AVISIT\")),\n selected = c(\"PARAM\"),\n keep_order = TRUE\n ),\n grade = choices_selected(\n choices = variable_choices(ADEG, subset = \"ANRIND\"),\n selected = \"ANRIND\",\n fixed = TRUE\n ),\n abnormal = list(Low = \"LOW\", High = \"HIGH\"),\n exclude_base_abn = FALSE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Adverse Events", - "AET04" + "ECG", + "EGT02" ] }, { - "objectID": "tables/adverse-events/aet04.html#reproducibility", - "href": "tables/adverse-events/aet04.html#reproducibility", - "title": "AET04", + "objectID": "tables/ECG/egt02.html#reproducibility", + "href": "tables/ECG/egt02.html#reproducibility", + "title": "EGT02", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 17:59:29 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", - "crumbs": [ - "Tables", - "Adverse Events", - "AET04" - ] - }, - { - "objectID": "tables/adverse-events/aet06_smq.html#output", - "href": "tables/adverse-events/aet06_smq.html#output", - "title": "AET06_SMQ", - "section": "Output", - "text": "Output\n\n\nAdverse Events by Sex, by SMQ and Preferred Term\nAdverse Events by Sex, by SMQ and Preferred Term (with Customized Queries)\nAdverse Events by Other Baseline Characteristics (e.g. Age Group)\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecriteria_fun <- function(tr) !is(tr, \"ContentRow\") && all_zero_or_na(tr)\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n split_cols_by(\"SEX\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(unique = \"Total number of patients with at least one adverse event\")\n ) %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = trim_levels_in_group(\"AEDECOD\", drop_outlevs = FALSE),\n label_pos = \"topleft\",\n split_label = \"Standardized MedDRA Query\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", drop = FALSE) %>%\n append_varlabels(adae_smq_1, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adae_smq_1,\n alt_counts_df = adsl\n) %>%\n sort_at_path(path = c(\"SMQ\"), scorefun = cont_n_allcols) %>%\n sort_at_path(path = c(\"SMQ\", \"*\", \"AEDECOD\"), scorefun = score_occurrences, na.pos = \"last\") %>%\n trim_rows(criteria = criteria_fun)\n\nresult\n\n ARM A ARM B ARM C \nStandardized MedDRA Query F M F M F M \n Dictionary-Derived Term (N=79) (N=55) (N=82) (N=52) (N=70) (N=62) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 47 (59.5%) 25 (45.5%) 51 (62.2%) 28 (53.8%) 42 (60.0%) 33 (53.2%)\nC.1.1.1.3/B.2.2.3.1 AESI(BROAD) \n Total number of patients with at least one adverse event 47 (59.5%) 25 (45.5%) 51 (62.2%) 28 (53.8%) 42 (60.0%) 33 (53.2%)\n Total number of events 79 40 95 44 81 60 \n dcd B.2.2.3.1 30 (38.0%) 18 (32.7%) 32 (39.0%) 22 (42.3%) 26 (37.1%) 25 (40.3%)\n dcd C.1.1.1.3 30 (38.0%) 13 (23.6%) 36 (43.9%) 10 (19.2%) 27 (38.6%) 16 (25.8%)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecriteria_fun <- function(tr) {\n !is(tr, \"ContentRow\") && all_zero_or_na(tr) && !grepl(\"Total number of\", obj_label(tr))\n}\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n split_cols_by(\"SEX\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(unique = \"Total number of patients with at least one adverse event\")\n ) %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = trim_levels_in_group(\"AEDECOD\", drop_outlevs = FALSE),\n label_pos = \"topleft\",\n split_label = \"Standardized MedDRA Query\"\n ) %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n ),\n show_labels = \"hidden\"\n ) %>%\n count_occurrences(vars = \"AEDECOD\", drop = FALSE) %>%\n append_varlabels(adae_smq_all, \"AEDECOD\", indent = 1L)\n\nscore_ae_pts <- function(tt) {\n count_vals <- cell_values(tree_children(tt)[[\"USUBJID\"]])[[1]]\n sum(matrix(unlist(count_vals), nrow = length(count_vals), byrow = TRUE)[, 1])\n}\n\nresult <- build_table(\n lyt = lyt,\n df = adae_smq_all,\n alt_counts_df = adsl\n) %>%\n sort_at_path(path = c(\"SMQ\"), scorefun = score_ae_pts) %>%\n sort_at_path(path = c(\"SMQ\", \"*\", \"AEDECOD\"), scorefun = score_occurrences, na.pos = \"last\") %>%\n trim_rows(criteria = criteria_fun)\n\nresult\n\n ARM A ARM B ARM C \nStandardized MedDRA Query F M F M F M \n Dictionary-Derived Term (N=79) (N=55) (N=82) (N=52) (N=70) (N=62) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 59 (74.7%) 36 (65.5%) 68 (82.9%) 35 (67.3%) 61 (87.1%) 47 (75.8%)\nD.2.1.5.3/A.1.1.1.1 AESI \n Total number of patients with at least one adverse event 45 (57.0%) 29 (52.7%) 54 (65.9%) 26 (50.0%) 50 (71.4%) 37 (59.7%)\n Total number of events 78 48 91 43 88 74 \n dcd D.2.1.5.3 26 (32.9%) 21 (38.2%) 40 (48.8%) 18 (34.6%) 34 (48.6%) 23 (37.1%)\n dcd A.1.1.1.1 34 (43.0%) 16 (29.1%) 31 (37.8%) 14 (26.9%) 33 (47.1%) 30 (48.4%)\nC.1.1.1.3/B.2.2.3.1 AESI(BROAD) \n Total number of patients with at least one adverse event 47 (59.5%) 25 (45.5%) 51 (62.2%) 28 (53.8%) 42 (60.0%) 33 (53.2%)\n Total number of events 79 40 95 44 81 60 \n dcd B.2.2.3.1 30 (38.0%) 18 (32.7%) 32 (39.0%) 22 (42.3%) 26 (37.1%) 25 (40.3%)\n dcd C.1.1.1.3 30 (38.0%) 13 (23.6%) 36 (43.9%) 10 (19.2%) 27 (38.6%) 16 (25.8%)\nnon observed SMQ02NAM level(BROAD) \n Total number of patients with at least one adverse event 0 0 0 0 0 0 \n Total number of events 0 0 0 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecriteria_fun <- function(tr) !is(tr, \"ContentRow\") && all_zero_or_na(tr)\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARMCD\") %>%\n split_cols_by(\"AGE65\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = c(unique = \"Total number of patients with at least one adverse event\")\n ) %>%\n split_rows_by(\n \"SMQ\",\n child_labels = \"visible\",\n nested = FALSE,\n split_fun = trim_levels_in_group(\"AEDECOD\", drop_outlevs = FALSE),\n label_pos = \"topleft\",\n split_label = \"Standardized MedDRA Query\"\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one adverse event\",\n nonunique = \"Total number of events\"\n )\n ) %>%\n count_occurrences(vars = \"AEDECOD\", drop = FALSE) %>%\n append_varlabels(adae_smq_1, \"AEDECOD\", indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adae_smq_1,\n alt_counts_df = adsl\n) %>%\n sort_at_path(path = c(\"SMQ\"), scorefun = cont_n_allcols) %>%\n sort_at_path(path = c(\"SMQ\", \"*\", \"AEDECOD\"), scorefun = score_occurrences, na.pos = \"last\") %>%\n trim_rows(criteria = criteria_fun)\n\nresult\n\n ARM A ARM B ARM C \nStandardized MedDRA Query < 65 >= 65 < 65 >= 65 < 65 >= 65\n Dictionary-Derived Term (N=134) (N=0) (N=134) (N=0) (N=131) (N=1)\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one adverse event 72 (53.7%) 0 79 (59.0%) 0 75 (57.3%) 0 \nC.1.1.1.3/B.2.2.3.1 AESI(BROAD) \n Total number of patients with at least one adverse event 72 (53.7%) 0 79 (59.0%) 0 75 (57.3%) 0 \n Total number of events 119 0 139 0 141 0 \n dcd B.2.2.3.1 48 (35.8%) 0 54 (40.3%) 0 51 (38.9%) 0 \n dcd C.1.1.1.3 43 (32.1%) 0 46 (34.3%) 0 43 (32.8%) 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(stringr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\nadsl_labels <- var_labels(adsl)\nadae_labels <- var_labels(adae)\n\nadsl <- adsl %>%\n mutate(\n AGE65 = case_when(\n AGE >= 65 ~ \">= 65\",\n TRUE ~ \"< 65\"\n ),\n AGE65 = factor(\n AGE65,\n levels = c(\"< 65\", \">= 65\")\n )\n )\n\nadae <- adae %>%\n mutate(\n AGE65 = case_when(\n AGE >= 65 ~ \">= 65\",\n TRUE ~ \"< 65\"\n ),\n AGE65 = factor(\n AGE65,\n levels = c(\"< 65\", \">= 65\")\n )\n )\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing\n# levels. For details, refer to Teal and Study Data article.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\n# Simulate a random AAG dataset.\naag <- data.frame(\n NAMVAR = c(\"SMQ01NAM\", \"SMQ01NAM\", \"SMQ02NAM\", \"CQ01NAM\", \"CQ01NAM\"),\n SRCVAR = rep(\"AEDECOD\", 5),\n GRPTYPE = c(\"SMQ\", \"SMQ\", \"SMQ\", \"CUSTOM\", \"CUSTOM\"),\n REFID = c(1, 1, 2, 3, 3),\n REFNAME = c(rep(\"C.1.1.1.3/B.2.2.3.1 AESI\", 2), \"non observed SMQ02NAM level\", rep(\"D.2.1.5.3/A.1.1.1.1 AESI\", 2)),\n SCOPE = c(\"BROAD\", \"BROAD\", \"BROAD\", \"\", \"\"),\n REFTERM = c(\"C.1.1.1.3\", \"B.2.2.3.1\", \"Z.9.9.9.9\", \"D.2.1.5.3\", \"A.1.1.1.1\"),\n stringsAsFactors = FALSE\n)\n\n# Create summary AAG dataset (used for labelling).\n# Note it's important to incorporate SCOPE into the basket names for SMQs so as to\n# match the flags present in ADAE.\naag_summary <- aag %>%\n select(NAMVAR, REFNAME, SCOPE) %>%\n unique() %>%\n mutate(\n REFNAME_SCOPE = ifelse(SCOPE == \"\", REFNAME, paste0(REFNAME, \"(\", SCOPE, \")\"))\n ) %>%\n rename(basket = NAMVAR, basket_name = REFNAME_SCOPE) %>%\n select(basket, basket_name)\n\n# Make a summary of the full ADAE based on AAG by using h_stack_by_baskets helper function\nadae_smq_all <- h_stack_by_baskets(\n df = adae,\n aag_summary = aag_summary,\n keys = c(\"STUDYID\", \"USUBJID\", \"ACTARMCD\", \"AEDECOD\", \"SEX\", \"AGE65\")\n)\n# Post-process adae_smq_all to keep only certain baskets of interest for variant 1\n# Not need to drop baskets for variant 2 as all baskets will be considered.\nbaskets_to_drop_variant <- aag_summary$basket_name[!aag_summary$basket %in% c(\"SMQ01NAM\")]\n\n# Adjust the analysis dataset based on basket subset for variant 1.\nadae_smq_1 <- adae_smq_all %>%\n filter(!adae_smq_all$SMQ %in% baskets_to_drop_variant) %>%\n mutate(\n SMQ = tern::fct_discard(SMQ, discard = baskets_to_drop_variant)\n )", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:55:07 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET06_SMQ" + "ECG", + "EGT02" ] }, { - "objectID": "tables/adverse-events/aet06_smq.html#teal-app", - "href": "tables/adverse-events/aet06_smq.html#teal-app", - "title": "AET06_SMQ", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl %>%\n mutate(\n AGE65 = case_when(\n AGE >= 65 ~ \">= 65\",\n TRUE ~ \"< 65\"\n ),\n AGE65 = factor(\n AGE65,\n levels = c(\"< 65\", \">= 65\")\n )\n )\n ADAE <- random.cdisc.data::cadae %>%\n mutate(\n AGE65 = case_when(\n AGE >= 65 ~ \">= 65\",\n TRUE ~ \"< 65\"\n ),\n AGE65 = factor(\n AGE65,\n levels = c(\"< 65\", \">= 65\")\n )\n )\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\n\nnames_baskets <- grep(\"^(SMQ|CQ).*NAM$\", names(ADAE), value = TRUE)\nnames_scopes <- grep(\"^SMQ.*SC$\", names(ADAE), value = TRUE)\n\ncs_baskets <- choices_selected(\n choices = variable_choices(ADAE, subset = names_baskets),\n selected = names_baskets\n)\ncs_scopes <- choices_selected(\n choices = variable_choices(ADAE, subset = names_scopes),\n selected = names_scopes,\n fixed = TRUE\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_smq(\n label = \"Adverse events by `SMQ` Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"SEX\", \"AGE65\")),\n selected = c(\"ARM\", \"SEX\")\n ),\n add_total = FALSE,\n baskets = cs_baskets,\n scopes = cs_scopes,\n llt = choices_selected(\n choices = variable_choices(ADAE, subset = c(\"AEDECOD\")),\n selected = \"AEDECOD\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl %>%\n mutate(\n AGE65 = case_when(\n AGE >= 65 ~ \">= 65\",\n TRUE ~ \"< 65\"\n ),\n AGE65 = factor(\n AGE65,\n levels = c(\"< 65\", \">= 65\")\n )\n )\n ADAE <- random.cdisc.data::cadae %>%\n mutate(\n AGE65 = case_when(\n AGE >= 65 ~ \">= 65\",\n TRUE ~ \"< 65\"\n ),\n AGE65 = factor(\n AGE65,\n levels = c(\"< 65\", \">= 65\")\n )\n )\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\n\nnames_baskets <- grep(\"^(SMQ|CQ).*NAM$\", names(ADAE), value = TRUE)\nnames_scopes <- grep(\"^SMQ.*SC$\", names(ADAE), value = TRUE)\n\ncs_baskets <- choices_selected(\n choices = variable_choices(ADAE, subset = names_baskets),\n selected = names_baskets\n)\ncs_scopes <- choices_selected(\n choices = variable_choices(ADAE, subset = names_scopes),\n selected = names_scopes,\n fixed = TRUE\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_smq(\n label = \"Adverse events by `SMQ` Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, subset = c(\"ARM\", \"SEX\", \"AGE65\")),\n selected = c(\"ARM\", \"SEX\")\n ),\n add_total = FALSE,\n baskets = cs_baskets,\n scopes = cs_scopes,\n llt = choices_selected(\n choices = variable_choices(ADAE, subset = c(\"AEDECOD\")),\n selected = \"AEDECOD\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "tables/pharmacokinetic/pkpt11.html#output", + "href": "tables/pharmacokinetic/pkpt11.html#output", + "title": "PKPT11", + "section": "Output", + "text": "Output\n\n\nStandard Table – Plasma\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# create layout\nlyt <- basic_table() %>%\n split_rows_by(\n var = \"PKPARAM\",\n label_pos = \"topleft\",\n split_fun = keep_split_levels(c(\"AUCinf obs (day*ug/mL)\", \"Cmax (ug/mL)\")),\n split_label = \"PK Parameter\"\n ) %>%\n split_rows_by(\n var = \"COMP\",\n split_fun = remove_split_levels(paste0(comp_dose, \"/\", comp_dose)),\n indent_mod = 11L,\n child_labels = \"hidden\"\n ) %>%\n split_cols_by_multivar(\n vars = rep(\"AVAL\", 4),\n varlabels = c(\n \"n\",\n \"Geometric Mean Ratio\",\n \"90% CI Lower Bound\",\n \"90% CI Upper Bound\"\n )\n ) %>%\n analyze_colvars(\n afun = afun_pk_gmr(),\n extra_args = list(\n compare_dose = comp_dose,\n denom = TRUE,\n arm_var = arm_var\n )\n ) %>%\n append_varlabels(adpp0, \"COMP\", 12L)\n\nresult <- build_table(lyt, df = adpp0)\n\nmain_title(result) <- paste0(\n \"Estimated Ratios of Geometric Means and 90% Confidence Intervals for AUC and CMAX Following \",\n unique(adpp0$REGIMEN), \"\\nof \", comp_dose, \" in Comparison with \",\n paste(other_doses, collapse = \" & \"), \", PK Population\"\n)\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp0$PPCAT))\n\nresult\n\nEstimated Ratios of Geometric Means and 90% Confidence Intervals for AUC and CMAX Following BID\nof A: Drug X in Comparison with C: Combination, PK Population\nAnalyte: Plasma Drug X\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nPK Parameter \n Comparison n Geometric Mean Ratio 90% CI Lower Bound 90% CI Upper Bound\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAUCinf obs (day*ug/mL) \n C: Combination/A: Drug X 266 0.962 0.925 1.00 \nCmax (ug/mL) \n C: Combination/A: Drug X 266 0.997 0.958 1.04 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadpp <- random.cdisc.data::cadpp\n\n# Comparator Dose - A: Drug X\narm_var <- \"TRT01A\"\ncomp_dose <- \"A: Drug X\"\nother_doses <- as.character(unique(adpp[[arm_var]])[unique(adpp[[arm_var]]) != comp_dose])\n\nadpp <- adpp %>%\n filter(AVISIT == \"CYCLE 1 DAY 1\") %>%\n mutate(\n COMP = paste0(TRT01A, \"/\", comp_dose),\n COMP_AVAL = ifelse(TRT01A == comp_dose, paste0(AVAL, comp_dose), AVAL)\n )\n\nfor (dose in other_doses) {\n temp_df <- adpp[adpp[[arm_var]] == comp_dose, ]\n temp_df$COMP <- paste0(dose, \"/\", comp_dose)\n adpp <- rbind(adpp, temp_df)\n}\n\n# Plasma Drug X\nadpp0 <- adpp %>%\n filter(PPCAT == \"Plasma Drug X\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n var_relabel(COMP = \"Comparison\")\n\n# statistics function\ns_gmr <- function(df,\n compare_dose = comp_dose, # comparator, defaults to comp_dose defined above (string)\n denom = TRUE, # whether to use comparator as denominator, defaults to TRUE (logical)\n arm_var = arm_var) { # arm variable, defaults to arm_var defined above (string)\n which_num <- !grepl(compare_dose, df[[arm_var]])\n\n x_num <- as.numeric(df[which_num, ][[\"AVAL\"]])\n x_num <- x_num[!is.na(x_num)]\n x_num_no_negative_vals <- x_num\n x_num_no_negative_vals[x_num_no_negative_vals <= 0] <- NA\n\n x_denom <- as.numeric(gsub(compare_dose, \"\", df[!which_num, ][[\"AVAL\"]]))\n x_denom <- x_denom[!is.na(x_denom)]\n x_denom_no_negative_vals <- x_denom\n x_denom_no_negative_vals[x_denom_no_negative_vals <= 0] <- NA\n\n x_num_log <- log(x_num_no_negative_vals)\n x_denom_log <- log(x_denom_no_negative_vals)\n\n if (denom) {\n geom_mean_ratio <- exp(mean(x_num_log, na.rm = FALSE)) / exp(mean(x_denom_log, na.rm = FALSE))\n geom_mean_ci <- t.test(x_num_log, x_denom_log, conf.level = 0.90)$conf.int\n } else {\n geom_mean_ratio <- exp(mean(x_denom_log, na.rm = FALSE)) / exp(mean(x_num_log, na.rm = FALSE))\n geom_mean_ci <- t.test(x_denom_log, x_num_log, conf.level = 0.90)$conf.int\n }\n\n list(\n n = nrow(df),\n geom_mean_ratio = geom_mean_ratio,\n gmr_ci_lwr = exp(geom_mean_ci[1]),\n gmr_ci_upr = exp(geom_mean_ci[2])\n )\n}\n\nafun_pk_gmr <- function(\n .formats = list(\n n = \"xx.\",\n geom_mean_ratio = format_sigfig(3),\n gmr_ci_lwr = format_sigfig(3),\n gmr_ci_upr = format_sigfig(3)\n ),\n compare_dose = comp_dose,\n denom = TRUE) {\n checkmate::assert_list(.formats)\n checkmate::assert_subset(names(.formats), c(\"n\", \"geom_mean_ratio\", \"gmr_ci_lwr\", \"gmr_ci_upr\"))\n\n afun_lst <- Map(\n function(stat, fmt, compare_dose, denom, arm_var) {\n function(df, .spl_context) {\n x_stat <- s_gmr(df, compare_dose = compare_dose, denom = denom, arm_var = arm_var)[[stat]]\n rcell(x_stat, format = fmt, label = tail(.spl_context$value, 1))\n }\n },\n stat = names(.formats),\n fmt = .formats,\n compare_dose = compare_dose,\n denom = denom,\n arm_var = arm_var\n )\n\n afun_lst\n}", "crumbs": [ "Tables", - "Adverse Events", - "AET06_SMQ" + "Pharmacokinetic", + "PKPT11" ] }, { - "objectID": "tables/adverse-events/aet06_smq.html#reproducibility", - "href": "tables/adverse-events/aet06_smq.html#reproducibility", - "title": "AET06_SMQ", + "objectID": "tables/pharmacokinetic/pkpt11.html#reproducibility", + "href": "tables/pharmacokinetic/pkpt11.html#reproducibility", + "title": "PKPT11", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:00:21 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr * 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:55:39 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET06_SMQ" + "Pharmacokinetic", + "PKPT11" ] }, { - "objectID": "tables/adverse-events/aet01.html#output", - "href": "tables/adverse-events/aet01.html#output", - "title": "AET01", + "objectID": "tables/pharmacokinetic/pkpt04.html#output", + "href": "tables/pharmacokinetic/pkpt04.html#output", + "title": "PKPT04", "section": "Output", - "text": "Output\n\n\nStandard Table\nTable with Medical Concepts Section\nTable with Modified Rows\nTable with Rows Counting Events & Additional Sections\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeaesi_vars <- c(\"FATAL\", \"SER\", \"SERWD\", \"SERDSM\", \"RELSER\", \"WD\", \"DSM\", \"REL\", \"RELWD\", \"RELDSM\", \"SEV\")\n\n# Layout for variables from adsl dataset.\nlyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DTHFL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of deaths\")\n ) %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DCSREAS\" = \"ADVERSE EVENT\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients withdrawn from study due to an AE\"),\n table_names = \"tot_wd\"\n )\n\nresult_adsl <- build_table(lyt_adsl, df = adsl, alt_counts_df = adsl)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one AE\",\n nonunique = \"Total number of AEs\"\n ),\n .formats = list(unique = format_count_fraction_fixed_dp, nonunique = \"xx\"),\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_vars,\n denom = \"N_col\",\n var_labels = \"Total number of patients with at least one\",\n show_labels = \"visible\"\n )\n\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adae[1:2, ],\n result_adsl,\n result_adae[3:nrow(result_adae), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one AE 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of AEs 502 480 604 \nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) \nTotal number of patients withdrawn from study due to an AE 3 (2.2%) 6 (4.5%) 5 (3.8%) \nTotal number of patients with at least one \n AE with fatal outcome 5 (3.7%) 5 (3.7%) 6 (4.5%) \n Serious AE 85 (63.4%) 80 (59.7%) 87 (65.9%) \n Serious AE leading to withdrawal from treatment 6 (4.5%) 12 (9.0%) 9 (6.8%) \n Serious AE leading to dose modification/interruption 36 (26.9%) 40 (29.9%) 47 (35.6%) \n Related Serious AE 64 (47.8%) 52 (38.8%) 64 (48.5%) \n AE leading to withdrawal from treatment 20 (14.9%) 24 (17.9%) 26 (19.7%) \n AE leading to dose modification/interruption 63 (47.0%) 70 (52.2%) 77 (58.3%) \n Related AE 86 (64.2%) 85 (63.4%) 92 (69.7%) \n Related AE leading to withdrawal from treatment 10 (7.5%) 9 (6.7%) 12 (9.1%) \n Related AE leading to dose modification/interruption 44 (32.8%) 44 (32.8%) 51 (38.6%) \n Severe AE (at greatest intensity) 77 (57.5%) 70 (52.2%) 79 (59.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeaesi_vars <- c(\"FATAL\", \"SER\", \"SERWD\", \"SERDSM\", \"RELSER\", \"WD\", \"DSM\", \"REL\", \"RELWD\", \"RELDSM\", \"CTC35\")\nbasket_vars <- c(\"SMQ01\", \"SMQ02\", \"CQ01\")\n\n# Layout for variables from adsl dataset.\nlyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DTHFL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of deaths\")\n ) %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DCSREAS\" = \"ADVERSE EVENT\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients withdrawn from study due to an AE\"),\n table_names = \"tot_wd\"\n )\n\nresult_adsl <- build_table(lyt_adsl, df = adsl, alt_counts_df = adsl)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one AE\",\n nonunique = \"Total number of AEs\"\n ),\n .formats = list(unique = format_count_fraction_fixed_dp, nonunique = \"xx\"),\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_vars,\n denom = \"N_col\",\n var_labels = \"Total number of patients with at least one\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = basket_vars,\n table_names = \"table_aesi\",\n denom = \"N_col\",\n var_labels = \"Total number of patients with at least one\",\n show_labels = \"visible\"\n )\n\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adae[1:2, ],\n result_adsl,\n result_adae[3:nrow(result_adae), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one AE 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of AEs 502 480 604 \nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) \nTotal number of patients withdrawn from study due to an AE 3 (2.2%) 6 (4.5%) 5 (3.8%) \nTotal number of patients with at least one \n AE with fatal outcome 5 (3.7%) 5 (3.7%) 6 (4.5%) \n Serious AE 85 (63.4%) 80 (59.7%) 87 (65.9%) \n Serious AE leading to withdrawal from treatment 6 (4.5%) 12 (9.0%) 9 (6.8%) \n Serious AE leading to dose modification/interruption 36 (26.9%) 40 (29.9%) 47 (35.6%) \n Related Serious AE 64 (47.8%) 52 (38.8%) 64 (48.5%) \n AE leading to withdrawal from treatment 20 (14.9%) 24 (17.9%) 26 (19.7%) \n AE leading to dose modification/interruption 63 (47.0%) 70 (52.2%) 77 (58.3%) \n Related AE 86 (64.2%) 85 (63.4%) 92 (69.7%) \n Related AE leading to withdrawal from treatment 10 (7.5%) 9 (6.7%) 12 (9.1%) \n Related AE leading to dose modification/interruption 44 (32.8%) 44 (32.8%) 51 (38.6%) \n Grade 3-5 AE 90 (67.2%) 83 (61.9%) 93 (70.5%) \nTotal number of patients with at least one \n C.1.1.1.3/B.2.2.3.1 AESI (BROAD) 58 (43.3%) 60 (44.8%) 66 (50.0%) \n SMQ 02 Reference Name 0 0 0 \n D.2.1.5.3/A.1.1.1.1 AESI 62 (46.3%) 61 (45.5%) 76 (57.6%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeaesi_vars <- c(\"FATAL\", \"SER\", \"WD\", \"REL\", \"CTC35\", \"CTC45\")\n# Layout for variables from adsl dataset.\nlyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DTHFL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of deaths\")\n ) %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DCSREAS\" = \"ADVERSE EVENT\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients withdrawn from study due to an AE\"),\n table_names = \"tot_wd\"\n ) %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DCSREAS\" = \"WITHDRAWAL BY SUBJECT\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients withdrawn informed consent\"),\n table_names = \"tot_dscsreas_wd\"\n )\nresult_adsl <- build_table(lyt_adsl, df = adsl, alt_counts_df = adsl)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one AE\",\n nonunique = \"Total number of AEs\"\n ),\n .formats = list(unique = format_count_fraction_fixed_dp, nonunique = \"xx\"),\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = aesi_vars,\n denom = \"N_col\",\n var_labels = \"Total number of patients with at least one\",\n show_labels = \"visible\"\n )\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adae[1:2, ],\n result_adsl,\n result_adae[3:nrow(result_adae), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one AE 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of AEs 502 480 604 \nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) \nTotal number of patients withdrawn from study due to an AE 3 (2.2%) 6 (4.5%) 5 (3.8%) \nTotal number of patients withdrawn informed consent 1 (0.7%) 1 (0.7%) 1 (0.8%) \nTotal number of patients with at least one \n AE with fatal outcome 5 (3.7%) 5 (3.7%) 6 (4.5%) \n Serious AE 85 (63.4%) 80 (59.7%) 87 (65.9%) \n AE leading to withdrawal from treatment 20 (14.9%) 24 (17.9%) 26 (19.7%) \n Related AE 86 (64.2%) 85 (63.4%) 92 (69.7%) \n Grade 3-5 AE 90 (67.2%) 83 (61.9%) 93 (70.5%) \n Grade 4/5 AE 77 (57.5%) 70 (52.2%) 79 (59.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodecount_subj_vars <- c(\"FATAL\", \"SER\", \"WD\", \"DSM\", \"REL\", \"CTC35\")\ncount_term_vars <- c(\"SER\", \"DSM\", \"REL\", \"CTC35\", \"CTC45\")\ncount_ae_vars <- c(\"SER\", \"DSM\", \"REL\", \"CTC35\", \"CTC45\")\n\n# Layout for variables from adsl dataset.\nlyt_adsl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DTHFL\" = \"Y\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of deaths\")\n ) %>%\n count_patients_with_event(\n \"USUBJID\",\n filters = c(\"DCSREAS\" = \"ADVERSE EVENT\"),\n denom = \"N_col\",\n .labels = c(count_fraction = \"Total number of patients withdrawn from study due to an AE\"),\n table_names = \"tot_wd\"\n )\n\nresult_adsl <- build_table(lyt_adsl, df = adsl, alt_counts_df = adsl)\n\n# Layout for variables from adae dataset.\nlyt_adae <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one AE\",\n nonunique = \"Total number of AEs\"\n ),\n .formats = list(unique = format_count_fraction_fixed_dp, nonunique = \"xx\"),\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = count_subj_vars,\n denom = \"N_col\",\n var_labels = \"Total number of patients with at least one\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"AEDECOD\",\n flag_variables = count_term_vars,\n .stats = \"count\",\n .formats = c(count = \"xx\"),\n table_names = \"table_term\",\n var_labels = \"Total number of unique preferred terms which are\",\n show_labels = \"visible\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID_AESEQ\",\n flag_variables = count_ae_vars,\n .stats = \"count\",\n .formats = c(count = \"xx\"),\n table_names = \"table_ae\",\n var_labels = \"Total number of adverse events which are\",\n show_labels = \"visible\"\n )\n\nresult_adae <- build_table(lyt_adae, df = adae, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adsl) <- col_info(result_adae)\nresult <- rbind(\n result_adae[1:2, ],\n result_adsl,\n result_adae[3:nrow(result_adae), ]\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one AE 100 (74.6%) 98 (73.1%) 103 (78.0%) \nTotal number of AEs 502 480 604 \nTotal number of deaths 25 (18.7%) 23 (17.2%) 22 (16.7%) \nTotal number of patients withdrawn from study due to an AE 3 (2.2%) 6 (4.5%) 5 (3.8%) \nTotal number of patients with at least one \n AE with fatal outcome 5 (3.7%) 5 (3.7%) 6 (4.5%) \n Serious AE 85 (63.4%) 80 (59.7%) 87 (65.9%) \n AE leading to withdrawal from treatment 20 (14.9%) 24 (17.9%) 26 (19.7%) \n AE leading to dose modification/interruption 63 (47.0%) 70 (52.2%) 77 (58.3%) \n Related AE 86 (64.2%) 85 (63.4%) 92 (69.7%) \n Grade 3-5 AE 90 (67.2%) 83 (61.9%) 93 (70.5%) \nTotal number of unique preferred terms which are \n Serious AE 4 4 4 \n AE leading to dose modification/interruption 10 10 10 \n Related AE 5 5 5 \n Grade 3-5 AE 5 5 5 \n Grade 4/5 AE 3 3 3 \nTotal number of adverse events which are \n Serious AE 204 194 245 \n AE leading to dose modification/interruption 123 135 158 \n Related AE 231 231 290 \n Grade 3-5 AE 249 229 277 \n Grade 4/5 AE 143 134 168 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nTo illustrate, additional variables such as flags (TRUE/FALSE) for select AEs of interest and select AE baskets are added to the adae dataset.\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(\n adae,\n omit_columns = c(\"SMQ01NAM\", \"SMQ01SC\", \"SMQ02NAM\", \"SMQ02SC\", \"CQ01NAM\", \"STUDYID\", \"USUBJID\")\n)\n\nset.seed(99)\n\nadae <- adae %>%\n mutate(\n AEDECOD = with_label(as.character(AEDECOD), \"Dictionary-Derived Term\"),\n AESDTH = with_label(\n sample(c(\"N\", \"Y\"), size = nrow(adae), replace = TRUE, prob = c(0.99, 0.01)),\n \"Results in Death\"\n ),\n AEACN = with_label(\n sample(\n c(\"DOSE NOT CHANGED\", \"DOSE INCREASED\", \"DRUG INTERRUPTED\", \"DRUG WITHDRAWN\"),\n size = nrow(adae),\n replace = TRUE, prob = c(0.68, 0.02, 0.25, 0.05)\n ),\n \"Action Taken with Study Treatment\"\n ),\n FATAL = with_label(AESDTH == \"Y\", \"AE with fatal outcome\"),\n SEV = with_label(AESEV == \"SEVERE\", \"Severe AE (at greatest intensity)\"),\n SER = with_label(AESER == \"Y\", \"Serious AE\"),\n SERWD = with_label(AESER == \"Y\" & AEACN == \"DRUG WITHDRAWN\", \"Serious AE leading to withdrawal from treatment\"),\n SERDSM = with_label(\n AESER == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Serious AE leading to dose modification/interruption\"\n ),\n RELSER = with_label(AESER == \"Y\" & AEREL == \"Y\", \"Related Serious AE\"),\n WD = with_label(AEACN == \"DRUG WITHDRAWN\", \"AE leading to withdrawal from treatment\"),\n DSM = with_label(\n AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"), \"AE leading to dose modification/interruption\"\n ),\n REL = with_label(AEREL == \"Y\", \"Related AE\"),\n RELWD = with_label(AEREL == \"Y\" & AEACN == \"DRUG WITHDRAWN\", \"Related AE leading to withdrawal from treatment\"),\n RELDSM = with_label(\n AEREL == \"Y\" & AEACN %in% c(\"DRUG INTERRUPTED\", \"DOSE INCREASED\", \"DOSE REDUCED\"),\n \"Related AE leading to dose modification/interruption\"\n ),\n CTC35 = with_label(AETOXGR %in% c(\"3\", \"4\", \"5\"), \"Grade 3-5 AE\"),\n CTC45 = with_label(AETOXGR %in% c(\"4\", \"5\"), \"Grade 4/5 AE\"),\n SMQ01 = with_label(SMQ01NAM != \"\", aesi_label(adae$SMQ01NAM, adae$SMQ01SC)),\n SMQ02 = with_label(SMQ02NAM != \"\", aesi_label(adae$SMQ02NAM, adae$SMQ02SC)),\n CQ01 = with_label(CQ01NAM != \"\", aesi_label(adae$CQ01NAM)),\n USUBJID_AESEQ = paste(USUBJID, AESEQ, sep = \"@@\") # Create unique ID per AE in dataset.\n ) %>%\n filter(ANL01FL == \"Y\")", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\nCode# lyt creation\nlyt <- basic_table() %>%\n split_cols_by(\n var = \"ARMCD\",\n split_fun = trim_levels_in_group(\"ARMCD\"),\n split_label = \"Treatment Arm\"\n ) %>%\n split_rows_by(\n var = \"PKPARAM\",\n label_pos = \"topleft\",\n split_label = \"PK Parameter\"\n ) %>%\n tern::analyze_vars(\n vars = \"AVAL\",\n .stats = c(\"n\", \"mean_sd\", \"cv\", \"geom_mean\", \"geom_cv\", \"median\", \"range\"),\n .formats = c(\n n = \"xx.\",\n mean_sd = format_sigfig(3, \"xx (xx)\"),\n cv = \"xx.x\",\n geom_mean = format_sigfig(3),\n geom_cv = \"xx.x\",\n median = format_sigfig(3),\n range = format_sigfig(3, \"xx - xx\")\n )\n )\n\n\nPlasma Drug X\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp0 <- adpp %>%\n filter(PPCAT == \"Plasma Drug X\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp0)\nmain_title(result) <- paste(\"Summary of\", unique(adpp0$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp0$PPCAT), \"\\nVisit:\", unique(adpp0$AVISIT))\nresult\n\nSummary of Urine PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1\n\n———————————————————————————————————————————————————————————————\nPK Parameter ARM A ARM C \n———————————————————————————————————————————————————————————————\nAe (mg) \n n 268 264 \n Mean (SD) 1.55 (0.338) 1.54 (0.298) \n CV (%) 21.8 19.4 \n Geometric Mean 1.51 1.51 \n CV % Geometric Mean 23.0 20.3 \n Median 1.55 1.55 \n Min - Max 0.702 - 2.46 0.850 - 2.21 \nFe (%) \n n 268 264 \n Mean (SD) 15.7 (3.35) 16.1 (3.10) \n CV (%) 21.3 19.3 \n Geometric Mean 15.3 15.8 \n CV % Geometric Mean 22.2 20.2 \n Median 15.8 16.0 \n Min - Max 8.15 - 24.5 8.50 - 24.4 \nCLR (L/hr) \n n 134 132 \n Mean (SD) 0.0492 (0.00961) 0.0502 (0.0105) \n CV (%) 19.5 20.9 \n Geometric Mean 0.0482 0.0491 \n CV % Geometric Mean 21.0 21.9 \n Median 0.0491 0.0498 \n Min - Max 0.0249 - 0.0751 0.0251 - 0.0856 \nRENALCLD (L/hr/mg) \n n 134 132 \n Mean (SD) 0.00487 (0.000965) 0.00511 (0.000934)\n CV (%) 19.8 18.3 \n Geometric Mean 0.00477 0.00502 \n CV % Geometric Mean 21.2 19.7 \n Median 0.00497 0.00515 \n Min - Max 0.00238 - 0.00726 0.00236 - 0.00741 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nPlasma Drug Y\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp1 <- adpp %>%\n filter(PPCAT == \"Plasma Drug Y\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp1)\nmain_title(result) <- paste(\"Summary of\", unique(adpp1$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp1$PPCAT), \"\\nVisit:\", unique(adpp1$AVISIT))\nresult\n\nSummary of Urine PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug Y \nVisit: CYCLE 1 DAY 1\n\n—————————————————————————————————————————\nPK Parameter ARM C \n—————————————————————————————————————————\nAe (mg) \n n 264 \n Mean (SD) 1.60 (0.315) \n CV (%) 19.7 \n Geometric Mean 1.56 \n CV % Geometric Mean 21.4 \n Median 1.60 \n Min - Max 0.857 - 2.26 \nFe (%) \n n 264 \n Mean (SD) 15.8 (3.08) \n CV (%) 19.4 \n Geometric Mean 15.5 \n CV % Geometric Mean 20.2 \n Median 15.7 \n Min - Max 8.31 - 23.8 \nCLR (L/hr) \n n 132 \n Mean (SD) 0.0497 (0.0101) \n CV (%) 20.3 \n Geometric Mean 0.0486 \n CV % Geometric Mean 22.0 \n Median 0.0491 \n Min - Max 0.0184 - 0.0776 \nRENALCLD (L/hr/mg) \n n 132 \n Mean (SD) 0.00509 (0.00103)\n CV (%) 20.3 \n Geometric Mean 0.00499 \n CV % Geometric Mean 21.4 \n Median 0.00502 \n Min - Max 0.00236 - 0.00794\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadpp <- random.cdisc.data::cadpp\nadpp <- adpp %>% filter(PPSPEC == \"Urine\", AVISIT == \"CYCLE 1 DAY 1\")", "crumbs": [ "Tables", - "Adverse Events", - "AET01" + "Pharmacokinetic", + "PKPT04" ] }, { - "objectID": "tables/adverse-events/aet01.html#teal-app", - "href": "tables/adverse-events/aet01.html#teal-app", - "title": "AET01", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n add_event_flags <- function(dat) {\n dat %>%\n mutate(\n TMPFL_SER = AESER == \"Y\",\n TMPFL_REL = AEREL == \"Y\",\n TMPFL_GR5 = AETOXGR == \"5\",\n TMP_SMQ01 = !is.na(SMQ01NAM),\n TMP_SMQ02 = !is.na(SMQ02NAM),\n TMP_CQ01 = !is.na(CQ01NAM)\n ) %>%\n col_relabel(\n TMPFL_SER = \"Serious AE\",\n TMPFL_REL = \"Related AE\",\n TMPFL_GR5 = \"Grade 5 AE\",\n TMP_SMQ01 = aesi_label(dat[[\"SMQ01NAM\"]], dat[[\"SMQ01SC\"]]),\n TMP_SMQ02 = aesi_label(dat[[\"SMQ02NAM\"]], dat[[\"SMQ02SC\"]]),\n TMP_CQ01 = aesi_label(dat[[\"CQ01NAM\"]])\n )\n }\n\n # Generating user-defined event flags.\n ADAE <- ADAE %>% add_event_flags()\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\nae_anl_vars <- names(ADAE)[startsWith(names(ADAE), \"TMPFL_\")]\naesi_vars <- names(ADAE)[startsWith(names(ADAE), \"TMP_\")]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_summary(\n label = \"Adverse Events Summary\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(\"ADSL\", c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n flag_var_anl = choices_selected(\n choices = variable_choices(\"ADAE\", ae_anl_vars),\n selected = ae_anl_vars[1],\n keep_order = TRUE,\n fixed = FALSE\n ),\n flag_var_aesi = choices_selected(\n choices = variable_choices(\"ADAE\", aesi_vars),\n selected = aesi_vars[1],\n keep_order = TRUE,\n fixed = FALSE\n ),\n add_total = TRUE\n )\n )\n)\n\nWarning in rlang::hash(list(data = data, modules = modules)):\n'package:teal.modules.clinical' may not be available when loading\n\nCodeshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n add_event_flags <- function(dat) {\n dat %>%\n mutate(\n TMPFL_SER = AESER == \"Y\",\n TMPFL_REL = AEREL == \"Y\",\n TMPFL_GR5 = AETOXGR == \"5\",\n TMP_SMQ01 = !is.na(SMQ01NAM),\n TMP_SMQ02 = !is.na(SMQ02NAM),\n TMP_CQ01 = !is.na(CQ01NAM)\n ) %>%\n col_relabel(\n TMPFL_SER = \"Serious AE\",\n TMPFL_REL = \"Related AE\",\n TMPFL_GR5 = \"Grade 5 AE\",\n TMP_SMQ01 = aesi_label(dat[[\"SMQ01NAM\"]], dat[[\"SMQ01SC\"]]),\n TMP_SMQ02 = aesi_label(dat[[\"SMQ02NAM\"]], dat[[\"SMQ02SC\"]]),\n TMP_CQ01 = aesi_label(dat[[\"CQ01NAM\"]])\n )\n }\n\n # Generating user-defined event flags.\n ADAE <- ADAE %>% add_event_flags()\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADAE <- data[[\"ADAE\"]]\nae_anl_vars <- names(ADAE)[startsWith(names(ADAE), \"TMPFL_\")]\naesi_vars <- names(ADAE)[startsWith(names(ADAE), \"TMP_\")]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_summary(\n label = \"Adverse Events Summary\",\n dataname = \"ADAE\",\n arm_var = choices_selected(\n choices = variable_choices(\"ADSL\", c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n flag_var_anl = choices_selected(\n choices = variable_choices(\"ADAE\", ae_anl_vars),\n selected = ae_anl_vars[1],\n keep_order = TRUE,\n fixed = FALSE\n ),\n flag_var_aesi = choices_selected(\n choices = variable_choices(\"ADAE\", aesi_vars),\n selected = aesi_vars[1],\n keep_order = TRUE,\n fixed = FALSE\n ),\n add_total = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "tables/pharmacokinetic/pkpt04.html#reproducibility", + "href": "tables/pharmacokinetic/pkpt04.html#reproducibility", + "title": "PKPT04", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:55:58 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET01" + "Pharmacokinetic", + "PKPT04" ] }, { - "objectID": "tables/adverse-events/aet01.html#reproducibility", - "href": "tables/adverse-events/aet01.html#reproducibility", - "title": "AET01", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:01:05 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/pharmacokinetic/pkpt05.html#output", + "href": "tables/pharmacokinetic/pkpt05.html#output", + "title": "PKPT05", + "section": "Output", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\nCode# lyt creation\nlyt <- basic_table() %>%\n split_rows_by(\n var = \"ARMCD\",\n split_fun = trim_levels_in_group(\"ARMCD\"),\n label_pos = \"topleft\",\n split_label = \"Treatment Arm\"\n ) %>%\n split_rows_by(\n var = \"PKPARAM\",\n label_pos = \"topleft\",\n split_label = \"PK Parameter\",\n child_labels = \"hidden\"\n ) %>%\n analyze_vars_in_cols(\n vars = \"AVAL\",\n .stats = c(\n \"n\", \"mean\", \"sd\", \"cv\",\n \"geom_mean\", \"geom_cv\", \"median\",\n \"min\", \"max\"\n ),\n .labels = c(\n n = \"n\",\n mean = \"Mean\",\n sd = \"SD\",\n cv = \"CV (%)\",\n geom_mean = \"Geometric Mean\",\n geom_cv = \"CV % Geometric Mean\",\n median = \"Median\",\n min = \"Minimum\",\n max = \"Maximum\"\n ),\n .formats = c(\n n = \"xx.\",\n mean = format_sigfig(3),\n sd = format_sigfig(3),\n cv = \"xx.x\",\n median = format_sigfig(3),\n geom_mean = format_sigfig(3),\n geom_cv = \"xx.x\",\n min = format_sigfig(3),\n max = format_sigfig(3)\n )\n )\n\n\nPlasma Drug X\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp0 <- adpp %>%\n filter(PPCAT == \"Plasma Drug X\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp0)\nmain_title(result) <- paste(\"Summary of\", unique(adpp0$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp0$PPCAT), \"\\nVisit:\", unique(adpp0$AVISIT))\nresult\n\nSummary of Urine PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1\n\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM A \n Ae (mg) 268 1.55 0.338 21.8 1.51 23.0 1.55 0.702 2.46 \n Fe (%) 268 15.7 3.35 21.3 15.3 22.2 15.8 8.15 24.5 \n CLR (L/hr) 134 0.0492 0.00961 19.5 0.0482 21.0 0.0491 0.0249 0.0751 \n RENALCLD (L/hr/mg) 134 0.00487 0.000965 19.8 0.00477 21.2 0.00497 0.00238 0.00726\nARM C \n Ae (mg) 264 1.54 0.298 19.4 1.51 20.3 1.55 0.850 2.21 \n Fe (%) 264 16.1 3.10 19.3 15.8 20.2 16.0 8.50 24.4 \n CLR (L/hr) 132 0.0502 0.0105 20.9 0.0491 21.9 0.0498 0.0251 0.0856 \n RENALCLD (L/hr/mg) 132 0.00511 0.000934 18.3 0.00502 19.7 0.00515 0.00236 0.00741\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nPlasma Drug Y\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp1 <- adpp %>%\n filter(PPCAT == \"Plasma Drug Y\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp1)\nmain_title(result) <- paste(\"Summary of\", unique(adpp1$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp1$PPCAT), \"\\nVisit:\", unique(adpp1$AVISIT))\nresult\n\nSummary of Urine PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug Y \nVisit: CYCLE 1 DAY 1\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM C \n Ae (mg) 264 1.60 0.315 19.7 1.56 21.4 1.60 0.857 2.26 \n Fe (%) 264 15.8 3.08 19.4 15.5 20.2 15.7 8.31 23.8 \n CLR (L/hr) 132 0.0497 0.0101 20.3 0.0486 22.0 0.0491 0.0184 0.0776 \n RENALCLD (L/hr/mg) 132 0.00509 0.00103 20.3 0.00499 21.4 0.00502 0.00236 0.00794\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadpp <- random.cdisc.data::cadpp\nadpp <- adpp %>% filter(PPSPEC == \"Urine\", AVISIT == \"CYCLE 1 DAY 1\")", "crumbs": [ "Tables", - "Adverse Events", - "AET01" + "Pharmacokinetic", + "PKPT05" ] }, { - "objectID": "tables/adverse-events/aet03.html#output", - "href": "tables/adverse-events/aet03.html#output", - "title": "AET03", - "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodegrade_groups <- list(\"- Any Intensity -\" = c(\"MILD\", \"MODERATE\", \"SEVERE\", \"LIFE THREATENING\"))\n\nsplit_fun <- trim_levels_in_group\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n count_occurrences_by_grade(\n var = \"ASEV\",\n grade_groups = grade_groups\n ) %>%\n split_rows_by(\n \"AEBODSYS\",\n child_labels = \"visible\",\n nested = TRUE,\n split_fun = split_fun(\"ASEV\"),\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEBODSYS)\n ) %>%\n summarize_occurrences_by_grade(\n var = \"ASEV\",\n grade_groups = grade_groups\n ) %>%\n split_rows_by(\n \"AEDECOD\",\n child_labels = \"visible\",\n nested = TRUE,\n indent_mod = -1L,\n split_fun = split_fun(\"ASEV\"),\n label_pos = \"topleft\",\n split_label = obj_label(adae$AEDECOD)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = \"unique\",\n .labels = c(\"- Any Intensity -\")\n ) %>%\n count_occurrences_by_grade(\n var = \"ASEV\",\n .indent_mods = -1L\n ) %>%\n append_varlabels(adae, \"AESEV\", indent = 2L)\n\nresult <- lyt %>%\n build_table(\n adae,\n alt_counts_df = adsl\n ) %>%\n sort_at_path(\n path = \"AEBODSYS\",\n scorefun = cont_n_allcols,\n decreasing = TRUE\n ) %>%\n sort_at_path(\n path = c(\"AEBODSYS\", \"*\", \"AEDECOD\"),\n scorefun = cont_n_allcols,\n decreasing = TRUE\n )\n\nresult\n\nMedDRA System Organ Class \n MedDRA Preferred Term A: Drug X B: Placebo C: Combination\n Severity/Intensity (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————\n- Any Intensity - 100 (74.6%) 98 (73.1%) 103 (78.0%) \nMILD 5 (3.7%) 7 (5.2%) 4 (3.0%) \nMODERATE 17 (12.7%) 21 (15.7%) 20 (15.2%) \nSEVERE 77 (57.5%) 69 (51.5%) 77 (58.3%) \nLIFE THREATENING 1 (0.7%) 1 (0.7%) 2 (1.5%) \ncl A.1 \n - Any Intensity - 68 (50.7%) 58 (43.3%) 76 (57.6%) \n MILD 27 (20.1%) 19 (14.2%) 34 (25.8%) \n MODERATE 40 (29.9%) 39 (29.1%) 41 (31.1%) \n LIFE THREATENING 1 (0.7%) 0 1 (0.8%) \n dcd A.1.1.1.1 \n - Any Intensity - 45 (33.6%) 31 (23.1%) 52 (39.4%) \n MILD 45 (33.6%) 31 (23.1%) 51 (38.6%) \n LIFE THREATENING 0 0 1 (0.8%) \n dcd A.1.1.1.2 \n - Any Intensity - 41 (30.6%) 39 (29.1%) 42 (31.8%) \n MODERATE 40 (29.9%) 39 (29.1%) 41 (31.1%) \n LIFE THREATENING 1 (0.7%) 0 1 (0.8%) \ncl B.2 \n - Any Intensity - 62 (46.3%) 56 (41.8%) 74 (56.1%) \n MILD 23 (17.2%) 22 (16.4%) 28 (21.2%) \n MODERATE 38 (28.4%) 34 (25.4%) 45 (34.1%) \n LIFE THREATENING 1 (0.7%) 0 1 (0.8%) \n dcd B.2.2.3.1 \n - Any Intensity - 38 (28.4%) 40 (29.9%) 45 (34.1%) \n MILD 38 (28.4%) 40 (29.9%) 45 (34.1%) \n dcd B.2.1.2.1 \n - Any Intensity - 39 (29.1%) 34 (25.4%) 46 (34.8%) \n MODERATE 38 (28.4%) 34 (25.4%) 45 (34.1%) \n LIFE THREATENING 1 (0.7%) 0 1 (0.8%) \ncl D.1 \n - Any Intensity - 64 (47.8%) 54 (40.3%) 68 (51.5%) \n MODERATE 21 (15.7%) 22 (16.4%) 22 (16.7%) \n SEVERE 42 (31.3%) 32 (23.9%) 44 (33.3%) \n LIFE THREATENING 1 (0.7%) 0 2 (1.5%) \n dcd D.1.1.1.1 \n - Any Intensity - 42 (31.3%) 32 (23.9%) 46 (34.8%) \n SEVERE 42 (31.3%) 32 (23.9%) 45 (34.1%) \n LIFE THREATENING 0 0 1 (0.8%) \n dcd D.1.1.4.2 \n - Any Intensity - 38 (28.4%) 34 (25.4%) 40 (30.3%) \n MODERATE 37 (27.6%) 34 (25.4%) 39 (29.5%) \n LIFE THREATENING 1 (0.7%) 0 1 (0.8%) \ncl D.2 \n - Any Intensity - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n MILD 37 (27.6%) 46 (34.3%) 49 (37.1%) \n LIFE THREATENING 0 0 1 (0.8%) \n dcd D.2.1.5.3 \n - Any Intensity - 37 (27.6%) 46 (34.3%) 50 (37.9%) \n MILD 37 (27.6%) 46 (34.3%) 49 (37.1%) \n LIFE THREATENING 0 0 1 (0.8%) \ncl C.2 \n - Any Intensity - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n MODERATE 28 (20.9%) 36 (26.9%) 47 (35.6%) \n LIFE THREATENING 0 0 1 (0.8%) \n dcd C.2.1.2.1 \n - Any Intensity - 28 (20.9%) 36 (26.9%) 48 (36.4%) \n MODERATE 28 (20.9%) 36 (26.9%) 47 (35.6%) \n LIFE THREATENING 0 0 1 (0.8%) \ncl B.1 \n - Any Intensity - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n SEVERE 38 (28.4%) 36 (26.9%) 36 (27.3%) \n LIFE THREATENING 0 1 (0.7%) 0 \n dcd B.1.1.1.1 \n - Any Intensity - 38 (28.4%) 37 (27.6%) 36 (27.3%) \n SEVERE 38 (28.4%) 36 (26.9%) 36 (27.3%) \n LIFE THREATENING 0 1 (0.7%) 0 \ncl C.1 \n - Any Intensity - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n SEVERE 36 (26.9%) 34 (25.4%) 36 (27.3%) \n dcd C.1.1.1.3 \n - Any Intensity - 36 (26.9%) 34 (25.4%) 36 (27.3%) \n SEVERE 36 (26.9%) 34 (25.4%) 36 (27.3%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae) %>%\n var_relabel(\n AEBODSYS = \"MedDRA System Organ Class\",\n AEDECOD = \"MedDRA Preferred Term\"\n ) %>%\n filter(ANL01FL == \"Y\")\nadae <- adae %>% mutate(ASEV = as.character(AESEV))\nadae$ASEV[1:15] <- \"LIFE THREATENING\"\nadae <- adae %>% mutate(ASEV = factor(ASEV, levels = c(\"MILD\", \"MODERATE\", \"SEVERE\", \"LIFE THREATENING\")))", + "objectID": "tables/pharmacokinetic/pkpt05.html#reproducibility", + "href": "tables/pharmacokinetic/pkpt05.html#reproducibility", + "title": "PKPT05", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:56:12 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET03" + "Pharmacokinetic", + "PKPT05" ] }, { - "objectID": "tables/adverse-events/aet03.html#teal-app", - "href": "tables/adverse-events/aet03.html#teal-app", - "title": "AET03", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_by_grade(\n label = \"Adverse Events by Grade Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n grade = choices_selected(\n choices = variable_choices(ADAE, c(\"AETOXGR\", \"AESEV\")),\n selected = \"AESEV\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events_by_grade(\n label = \"Adverse Events by Grade Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = \"AEBODSYS\"\n ),\n grade = choices_selected(\n choices = variable_choices(ADAE, c(\"AETOXGR\", \"AESEV\")),\n selected = \"AESEV\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "tables/pharmacokinetic/pkpt07.html#output", + "href": "tables/pharmacokinetic/pkpt07.html#output", + "title": "PKPT07", + "section": "Output", + "text": "Output\n\n\nStandard Table – Urine\nData Setup\n\n\n\n\nCode# lyt creation\nlyt <- basic_table() %>%\n split_rows_by(\n var = \"ARMCD\",\n split_fun = trim_levels_in_group(\"ARMCD\"),\n label_pos = \"topleft\",\n split_label = \"Treatment Arm\"\n ) %>%\n split_rows_by(\n var = \"PKPARAM\",\n label_pos = \"topleft\",\n split_label = \"PK Parameter\",\n child_labels = \"hidden\"\n ) %>%\n analyze_vars_in_cols(\n vars = \"AVAL\",\n .stats = c(\n \"n\", \"mean\", \"sd\", \"cv\",\n \"geom_mean\", \"geom_cv\", \"median\",\n \"min\", \"max\"\n ),\n .labels = c(\n n = \"n\",\n mean = \"Mean\",\n sd = \"SD\",\n cv = \"CV (%)\",\n geom_mean = \"Geometric Mean\",\n geom_cv = \"CV % Geometric Mean\",\n median = \"Median\",\n min = \"Minimum\",\n max = \"Maximum\"\n ),\n .formats = c(\n n = \"xx.\",\n mean = format_sigfig(3),\n sd = format_sigfig(3),\n cv = \"xx.x\",\n median = format_sigfig(3),\n geom_mean = format_sigfig(3),\n geom_cv = \"xx.x\",\n min = format_sigfig(3),\n max = format_sigfig(3)\n )\n )\n\n\nPlasma Drug X\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp0 <- adpp %>%\n filter(PPCAT == \"Plasma Drug X\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp0)\nmain_title(result) <- paste(\"Summary of\", unique(adpp0$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp0$PPCAT), \"\\nVisit:\", unique(adpp0$AVISIT))\nresult\n\nSummary of Urine PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1\n\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM A \n RENALCLD (L/hr/mg) 134 0.00487 0.000965 19.8 0.00477 21.2 0.00497 0.00238 0.00726\nARM C \n RENALCLD (L/hr/mg) 132 0.00511 0.000934 18.3 0.00502 19.7 0.00515 0.00236 0.00741\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nPlasma Drug Y\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp1 <- adpp %>%\n filter(PPCAT == \"Plasma Drug Y\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp1)\nmain_title(result) <- paste(\"Summary of\", unique(adpp1$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp1$PPCAT), \"\\nVisit:\", unique(adpp1$AVISIT))\nresult\n\nSummary of Urine PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug Y \nVisit: CYCLE 1 DAY 1\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM C \n RENALCLD (L/hr/mg) 132 0.00509 0.00103 20.3 0.00499 21.4 0.00502 0.00236 0.00794\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(stringr)\n\nadpp <- random.cdisc.data::cadpp\nadpp <- adpp %>%\n filter(AVISIT == \"CYCLE 1 DAY 1\", str_detect(tolower(PARAM), regex(\"norm by dose\", ignore_case = TRUE)))", "crumbs": [ "Tables", - "Adverse Events", - "AET03" + "Pharmacokinetic", + "PKPT07" ] }, { - "objectID": "tables/adverse-events/aet03.html#reproducibility", - "href": "tables/adverse-events/aet03.html#reproducibility", - "title": "AET03", + "objectID": "tables/pharmacokinetic/pkpt07.html#reproducibility", + "href": "tables/pharmacokinetic/pkpt07.html#reproducibility", + "title": "PKPT07", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:01:57 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:56:27 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr * 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET03" + "Pharmacokinetic", + "PKPT07" ] }, { - "objectID": "tables/adverse-events/aet10.html#output", - "href": "tables/adverse-events/aet10.html#output", - "title": "AET10", + "objectID": "tables/pharmacokinetic/pkpt08.html#output", + "href": "tables/pharmacokinetic/pkpt08.html#output", + "title": "PKPT08", "section": "Output", - "text": "Output\n\n\nStandard Table\nMost Common (\\(\\geq\\) 35%) Adverse Events (setting threshold)\nData Setup\n\n\n\nThe “All Patients” column is not required in this table but for illustrative purposes we include it to show correct sorting.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n var = \"ARM\",\n split_fun = add_overall_level(\"All Patients\", first = FALSE)\n ) %>%\n count_occurrences(vars = \"AEDECOD\")\n\ntbl1 <- build_table(\n lyt = lyt,\n df = adae,\n alt_counts_df = adsl\n)\n\ntbl2 <- prune_table(\n tt = tbl1,\n prune_func = keep_rows(\n has_fraction_in_any_col(\n atleast = 0.05, # specify threshold\n col_names = levels(adsl$ARM)\n )\n )\n)\n\nresult <- sort_at_path(\n tbl2,\n path = c(\"AEDECOD\"),\n scorefun = score_occurrences\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————\ndcd D.2.1.5.3 47 (35.1%) 58 (43.3%) 57 (43.2%) 162 (40.5%) \ndcd A.1.1.1.1 50 (37.3%) 45 (33.6%) 63 (47.7%) 158 (39.5%) \ndcd B.2.2.3.1 48 (35.8%) 54 (40.3%) 51 (38.6%) 153 (38.2%) \ndcd A.1.1.1.2 48 (35.8%) 48 (35.8%) 50 (37.9%) 146 (36.5%) \ndcd B.2.1.2.1 49 (36.6%) 44 (32.8%) 52 (39.4%) 145 (36.2%) \ndcd D.1.1.1.1 50 (37.3%) 42 (31.3%) 51 (38.6%) 143 (35.8%) \ndcd D.1.1.4.2 48 (35.8%) 42 (31.3%) 50 (37.9%) 140 (35.0%) \ndcd B.1.1.1.1 47 (35.1%) 49 (36.6%) 43 (32.6%) 139 (34.8%) \ndcd C.2.1.2.1 35 (26.1%) 48 (35.8%) 55 (41.7%) 138 (34.5%) \ndcd C.1.1.1.3 43 (32.1%) 46 (34.3%) 43 (32.6%) 132 (33.0%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n var = \"ARM\",\n split_fun = add_overall_level(\"All Patients\", first = FALSE)\n ) %>%\n count_occurrences(vars = \"AEDECOD\")\n\ntbl1 <- build_table(\n lyt = lyt,\n df = adae,\n alt_counts_df = adsl\n)\n\ntbl2 <- prune_table(\n tt = tbl1,\n prune_func = keep_rows(\n has_fraction_in_any_col(\n atleast = 0.35, # specify threshold\n col_names = levels(adsl$ARM)\n )\n )\n)\n\nresult <- sort_at_path(\n tbl2,\n path = c(\"AEDECOD\"),\n scorefun = score_occurrences\n)\n\nresult\n\n A: Drug X B: Placebo C: Combination All Patients\n (N=134) (N=134) (N=132) (N=400) \n———————————————————————————————————————————————————————————————————————\ndcd D.2.1.5.3 47 (35.1%) 58 (43.3%) 57 (43.2%) 162 (40.5%) \ndcd A.1.1.1.1 50 (37.3%) 45 (33.6%) 63 (47.7%) 158 (39.5%) \ndcd B.2.2.3.1 48 (35.8%) 54 (40.3%) 51 (38.6%) 153 (38.2%) \ndcd A.1.1.1.2 48 (35.8%) 48 (35.8%) 50 (37.9%) 146 (36.5%) \ndcd B.2.1.2.1 49 (36.6%) 44 (32.8%) 52 (39.4%) 145 (36.2%) \ndcd D.1.1.1.1 50 (37.3%) 42 (31.3%) 51 (38.6%) 143 (35.8%) \ndcd D.1.1.4.2 48 (35.8%) 42 (31.3%) 50 (37.9%) 140 (35.0%) \ndcd B.1.1.1.1 47 (35.1%) 49 (36.6%) 43 (32.6%) 139 (34.8%) \ndcd C.2.1.2.1 35 (26.1%) 48 (35.8%) 55 (41.7%) 138 (34.5%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)", + "text": "Output\n\n\nStandard Table – Plasma\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# create layout\nlyt <- basic_table() %>%\n add_overall_col(\"Accumulation Interval (hours)\") %>%\n split_cols_by(var = \"PPINT\") %>%\n split_cols_by(var = \"PKPARAM\") %>%\n split_rows_by(\n var = \"ARMCD\",\n split_fun = trim_levels_in_group(\"ACTARM\"),\n label_pos = \"topleft\",\n split_label = \"Treatment Arm\"\n ) %>%\n analyze_vars(\n vars = \"AVAL\",\n .stats = c(\n \"n\", \"mean\", \"sd\", \"cv\",\n \"median\", \"min\", \"max\"\n ),\n .labels = c(\n n = \"n\",\n mean = \"Mean\",\n sd = \"SD\",\n cv = \"CV (%)\",\n median = \"Median\",\n min = \"Minimum\",\n max = \"Maximum\"\n ),\n .formats = c(\n n = \"xx.\",\n mean = format_sigfig(3),\n sd = format_sigfig(3),\n cv = \"xx.x\",\n median = format_sigfig(3),\n min = format_sigfig(3),\n max = format_sigfig(3)\n )\n )\n\nadpp0 <- adpp %>%\n filter(\n AVISIT == \"CYCLE 1 DAY 1\",\n PPCAT == \"Plasma Drug X\"\n ) %>%\n h_pkparam_sort() %>%\n mutate(\n PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))\n )\n\nresult <- build_table(lyt, df = adpp0)\nmain_title(result) <- paste(\n \"Summary of Cumulative Amount and Percentage of\", unique(adpp0$PPSPEC), \"Recovered from\\n\",\n unique(adpp0$PPCAT), \"following\", unique(adpp0$REGIMEN), \"Administration for\",\n unique(adpp0$PPINT)[length(unique(adpp0$PPINT))], \"hours, PK Population\"\n)\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp0$PPCAT), \"\\nVisit:\", unique(adpp0$AVISIT))\n\ncat(rtables::toString(result, indent_size = 10))\n\nSummary of Cumulative Amount and Percentage of Urine Recovered from\n Plasma Drug X following BID Administration for 0-24 hours, PK Population\nAnalyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1\n\n——————————————————————————————————————————————————————————\n Accumulation Interval (hours) \n 0-12 0-24 \nTreatment Arm Ae (mg) Fe (%) Ae (mg) Fe (%)\n——————————————————————————————————————————————————————————\nARM A \n n 134 134 134 134 \n Mean 1.55 15.7 1.55 15.7 \n SD 0.339 3.35 0.339 3.35 \n CV (%) 21.9 21.4 21.9 21.4 \n Median 1.55 15.8 1.55 15.8 \n Minimum 0.702 8.15 0.702 8.15 \n Maximum 2.46 24.5 2.46 24.5 \nARM C \n n 132 132 132 132 \n Mean 1.54 16.1 1.54 16.1 \n SD 0.298 3.11 0.298 3.11 \n CV (%) 19.4 19.3 19.4 19.3 \n Median 1.55 16.0 1.55 16.0 \n Minimum 0.850 8.50 0.850 8.50 \n Maximum 2.21 24.4 2.21 24.4 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadpp <- random.cdisc.data::cadpp\n\nadpp <- adpp %>%\n filter(PPSTINT != \"NA\" & PPENINT != \"NA\") %>%\n mutate(PPINT = factor(paste0(gsub(\"[PH]\", \"\", PPSTINT), \"-\", gsub(\"[PH]\", \"\", PPENINT))))", "crumbs": [ "Tables", - "Adverse Events", - "AET10" + "Pharmacokinetic", + "PKPT08" ] }, { - "objectID": "tables/adverse-events/aet10.html#teal-app", - "href": "tables/adverse-events/aet10.html#teal-app", - "title": "AET10", - "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\nThe desired frequency is specified in prune_freq. For illustration, frequency is set to \\(\\geq\\) 35%.\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = NULL\n ),\n add_total = TRUE,\n event_type = \"adverse event\",\n prune_freq = 35,\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADAE <- random.cdisc.data::cadae\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADAE <- df_explicit_na(ADAE)\n})\ndatanames <- c(\"ADSL\", \"ADAE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADAE <- data[[\"ADAE\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Adverse Event Table\",\n dataname = \"ADAE\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADAE, c(\"AETERM\", \"AEDECOD\")),\n selected = c(\"AEDECOD\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADAE, c(\"AEBODSYS\", \"AESOC\")),\n selected = NULL\n ),\n add_total = TRUE,\n event_type = \"adverse event\",\n prune_freq = 35,\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "objectID": "tables/pharmacokinetic/pkpt08.html#reproducibility", + "href": "tables/pharmacokinetic/pkpt08.html#reproducibility", + "title": "PKPT08", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:56:40 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Adverse Events", - "AET10" + "Pharmacokinetic", + "PKPT08" ] }, { - "objectID": "tables/adverse-events/aet10.html#reproducibility", - "href": "tables/adverse-events/aet10.html#reproducibility", - "title": "AET10", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:02:38 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/risk-management-plan/rmpt03.html#output", + "href": "tables/risk-management-plan/rmpt03.html#output", + "title": "RMPT03", + "section": "Output", + "text": "Output\n\n\nStandard Table\nTable Excluding Empty Age Groups\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(\n title = \"Extent of Exposure by Age Group and Gender: Safety-Evaluable Patients\",\n main_footer = \"* Patient Time is the sum of exposure across all patients in days.\"\n) %>%\n split_cols_by(\"SEX\", split_fun = add_overall_level(\"Total\", first = FALSE)) %>%\n summarize_patients_exposure_in_cols(\n var = \"AVAL\", col_split = TRUE,\n .labels = c(n_patients = \"Number of Patients\", sum_exposure = \"Patient Time*\"),\n custom_label = \"Total Number of Patients and Patient Time\"\n ) %>%\n analyze_patients_exposure_in_cols(\n var = \"AGEGR1\",\n col_split = FALSE\n ) %>%\n append_topleft(c(\"\", \"Age group (years)\"))\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_f)\nresult\n\nExtent of Exposure by Age Group and Gender: Safety-Evaluable Patients\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Female Male Total \nAge group (years) Number of Patients Patient Time* Number of Patients Patient Time* Number of Patients Patient Time*\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal Number of Patients and Patient Time 134 (58.0%) 12591 83 (49.1%) 8050 217 (54.2%) 20641 \n <65 134 (58.0%) 12591 82 (48.5%) 7970 216 (54.0%) 20561 \n >=65 0 (0.0%) 0 1 (0.6%) 80 1 (0.2%) 80 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n* Patient Time is the sum of exposure across all patients in days.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(\n title = \"Duration of Exposure: Safety-Evaluable Patients\",\n main_footer = \"* Patient Time is the sum of exposure across all patients in days.\"\n) %>%\n split_cols_by(\"SEX\", split_fun = add_overall_level(\"Total\", first = FALSE)) %>%\n summarize_patients_exposure_in_cols(\n var = \"AVAL\", col_split = TRUE,\n .labels = c(n_patients = \"Number of Patients\", sum_exposure = \"Patient Time*\"),\n custom_label = \"Total Number of Patients and Patient Time\"\n ) %>%\n analyze_patients_exposure_in_cols(\n var = \"AGEGR2\",\n col_split = FALSE\n ) %>%\n append_topleft(c(\"\", \"Age group (years)\"))\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_f) %>%\n prune_table()\nresult\n\nDuration of Exposure: Safety-Evaluable Patients\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Female Male Total \nAge group (years) Number of Patients Patient Time* Number of Patients Patient Time* Number of Patients Patient Time*\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal Number of Patients and Patient Time 134 (58.0%) 12591 83 (49.1%) 8050 217 (54.2%) 20641 \n 18 - 40 118 (51.1%) 11203 60 (35.5%) 5787 178 (44.5%) 16990 \n 41 - 64 16 (6.9%) 1388 22 (13.0%) 2183 38 (9.5%) 3571 \n >=65 0 (0.0%) 0 1 (0.6%) 80 1 (0.2%) 80 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n* Patient Time is the sum of exposure across all patients in days.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadex <- random.cdisc.data::cadex\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadex <- df_explicit_na(adex)\n\n# Simulate ADEX records with PARAMCD == \"TDURD\" as they are not in sample random.cdisc.data dataset.\nset.seed(1, kind = \"Mersenne-Twister\")\nadex2 <- adex %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE)\n ) %>%\n bind_rows(adex)\n\n# Now pre-processing steps are carried out.\nanl <- adex2 %>%\n filter(\n PARAMCD == \"TDURD\",\n PARCAT2 == \"Drug A\",\n SAFFL == \"Y\"\n ) %>%\n mutate(\n AGEGR1 = factor(ifelse(AGE < 65, \"<65\", \">=65\")),\n AGEGR2 = factor(case_when(\n AGE < 18 ~ \"< 18\",\n AGE >= 18 & AGE <= 40 ~ \"18 - 40\",\n AGE > 40 & AGE <= 64 ~ \"41 - 64\",\n TRUE ~ \">=65\"\n ), levels = c(\"< 18\", \"18 - 40\", \"41 - 64\", \">=65\")),\n SEX = factor(case_when(\n SEX == \"F\" ~ \"Female\",\n SEX == \"M\" ~ \"Male\"\n ))\n )\n\nadsl_f <- adsl %>%\n filter(adsl$SAFFL == \"Y\") %>%\n mutate(SEX = factor(case_when(\n SEX == \"F\" ~ \"Female\",\n SEX == \"M\" ~ \"Male\"\n )))", "crumbs": [ "Tables", - "Adverse Events", - "AET10" + "Risk Management Plan", + "RMPT03" ] }, { - "objectID": "tables/disposition/pdt02.html#output", - "href": "tables/disposition/pdt02.html#output", - "title": "PDT02", - "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one major protocol deviation related to epidemic/pandemic\",\n nonunique = \"Total number of major protocol deviations related to epidemic/pandemic\"\n )\n ) %>%\n split_rows_by(\n \"DVREAS\",\n split_fun = drop_split_levels,\n nested = FALSE,\n label_pos = \"topleft\",\n split_label = obj_label(addv_pan$DVREAS)\n ) %>%\n summarize_num_patients(\n var = \"USUBJID\",\n .stats = c(\"unique\"),\n .labels = \"Site action due to epidemic/pandemic\"\n ) %>%\n count_occurrences(vars = \"DVTERM\") %>%\n append_varlabels(addv_pan, \"DVTERM\", indent = 1L)\n\nresult <- build_table(lyt, addv_pan, alt_counts_df = adsl)\nresult\n\nPrimary Reason A: Drug X B: Placebo C: Combination\n Description (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one major protocol deviation related to epidemic/pandemic 8 (6.0%) 4 (3.0%) 4 (3.0%) \nTotal number of major protocol deviations related to epidemic/pandemic 8 5 4 \nSite action due to epidemic/pandemic 8 (6.0%) 4 (3.0%) 4 (3.0%) \n Dose missed or significantly out of window 2 (1.5%) 0 1 (0.8%) \n Failure to sign updated ICF within two visits 2 (1.5%) 1 (0.7%) 1 (0.8%) \n Missed 2 or more efficacy assessments 1 (0.7%) 2 (1.5%) 0 \n Significant deviation from planned dose 3 (2.2%) 1 (0.7%) 2 (1.5%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\naddv <- random.cdisc.data::caddv\n\nadsl <- df_explicit_na(adsl)\naddv <- df_explicit_na(addv)\n\naddv_pan <- addv %>%\n filter(AEPRELFL == \"Y\" & DVCAT == \"MAJOR\") %>%\n var_relabel(\n DVREAS = \"Primary Reason\",\n DVTERM = \"Description\"\n )", + "objectID": "tables/risk-management-plan/rmpt03.html#teal-app", + "href": "tables/risk-management-plan/rmpt03.html#teal-app", + "title": "RMPT03", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n\n labels <- col_labels(ADEX)\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\",\n SEX = factor(case_when(\n SEX == \"F\" ~ \"Female\",\n SEX == \"M\" ~ \"Male\"\n ))\n ) %>%\n bind_rows(ADEX)\n\n col_labels(ADEX) <- labels\n\n ADEX <- ADEX %>%\n mutate(\n AGEGR1 = factor(ifelse(AGE < 65, \"<65\", \">=65\")) %>% with_label(\"Age group (years)\"),\n AGEGR2 = factor(case_when(\n AGE < 18 ~ \"< 18\",\n AGE >= 18 & AGE <= 40 ~ \"18 - 40\",\n AGE > 40 & AGE <= 64 ~ \"41 - 64\",\n TRUE ~ \">=65\"\n ), levels = c(\"< 18\", \"18 - 40\", \"41 - 64\", \">=65\")) %>% with_label(\"Age group (years)\")\n )\n\n ADSL <- ADSL %>%\n mutate(SEX = factor(case_when(\n SEX == \"F\" ~ \"Female\",\n SEX == \"M\" ~ \"Male\"\n )) %>% with_label(\"Sex\"))\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"AGEGR1\", \"AGEGR2\")),\n selected = \"AGEGR1\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n\n labels <- col_labels(ADEX)\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\",\n SEX = factor(case_when(\n SEX == \"F\" ~ \"Female\",\n SEX == \"M\" ~ \"Male\"\n ))\n ) %>%\n bind_rows(ADEX)\n\n col_labels(ADEX) <- labels\n\n ADEX <- ADEX %>%\n mutate(\n AGEGR1 = factor(ifelse(AGE < 65, \"<65\", \">=65\")) %>% with_label(\"Age group (years)\"),\n AGEGR2 = factor(case_when(\n AGE < 18 ~ \"< 18\",\n AGE >= 18 & AGE <= 40 ~ \"18 - 40\",\n AGE > 40 & AGE <= 64 ~ \"41 - 64\",\n TRUE ~ \">=65\"\n ), levels = c(\"< 18\", \"18 - 40\", \"41 - 64\", \">=65\")) %>% with_label(\"Age group (years)\")\n )\n\n ADSL <- ADSL %>%\n mutate(SEX = factor(case_when(\n SEX == \"F\" ~ \"Female\",\n SEX == \"M\" ~ \"Male\"\n )) %>% with_label(\"Sex\"))\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"AGEGR1\", \"AGEGR2\")),\n selected = \"AGEGR1\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Disposition", - "PDT02" + "Risk Management Plan", + "RMPT03" ] }, { - "objectID": "tables/disposition/pdt02.html#reproducibility", - "href": "tables/disposition/pdt02.html#reproducibility", - "title": "PDT02", + "objectID": "tables/risk-management-plan/rmpt03.html#reproducibility", + "href": "tables/risk-management-plan/rmpt03.html#reproducibility", + "title": "RMPT03", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:03:12 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:57:16 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Disposition", - "PDT02" + "Risk Management Plan", + "RMPT03" ] }, { - "objectID": "tables/disposition/pdt01.html#output", - "href": "tables/disposition/pdt01.html#output", - "title": "PDT01", + "objectID": "tables/risk-management-plan/rmpt04.html#output", + "href": "tables/risk-management-plan/rmpt04.html#output", + "title": "RMPT04", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ACTARM\") %>%\n analyze_num_patients(\n vars = \"USUBJID\",\n .stats = c(\"unique\", \"nonunique\"),\n .labels = c(\n unique = \"Total number of patients with at least one major protocol deviation\",\n nonunique = \"Total number of major protocol deviations\"\n )\n ) %>%\n split_rows_by(\n \"DVDECOD\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(addv$DVDECOD)\n ) %>%\n count_occurrences(vars = \"DVTERM\") %>%\n append_varlabels(addv, \"DVTERM\", indent = 1L)\n\nresult <- build_table(lyt = lyt, df = addv, alt_counts_df = adsl) %>%\n prune_table() %>%\n sort_at_path(path = c(\"DVDECOD\", \"*\", \"DVTERM\"), scorefun = score_occurrences)\n\nresult\n\nCategory A: Drug X B: Placebo C: Combination\n Description (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one major protocol deviation 28 (20.9%) 22 (16.4%) 18 (13.6%) \nTotal number of major protocol deviations 49 35 35 \nEXCLUSION CRITERIA \n Active or untreated or other excluded cns metastases 2 (1.5%) 4 (3.0%) 1 (0.8%) \n Pregnancy criteria 3 (2.2%) 3 (2.2%) 1 (0.8%) \n History of other malignancies within the last 5 years 3 (2.2%) 1 (0.7%) 1 (0.8%) \n Uncontrolled concurrent condition 2 (1.5%) 0 3 (2.3%) \n Other exclusion criteria 1 (0.7%) 0 2 (1.5%) \n Received prior prohibited therapy or medication 2 (1.5%) 1 (0.7%) 0 \nINCLUSION CRITERIA \n No signed ICF at study entry 5 (3.7%) 0 6 (4.5%) \n Ineligible cancer type or current cancer stage 3 (2.2%) 2 (1.5%) 4 (3.0%) \n Inclusion lab values outside allowed limits 4 (3.0%) 1 (0.7%) 0 \n Does not meet prior therapy requirements 2 (1.5%) 1 (0.7%) 1 (0.8%) \n Inclusion-related test not done/out of window 1 (0.7%) 1 (0.7%) 0 \nMEDICATION \n Discontinued study drug for unspecified reason 3 (2.2%) 2 (1.5%) 1 (0.8%) \n Significant deviation from planned dose 3 (2.2%) 1 (0.7%) 2 (1.5%) \n Received incorrect study medication 0 3 (2.2%) 1 (0.8%) \n Received prohibited concomitant medication 1 (0.7%) 2 (1.5%) 1 (0.8%) \n Dose missed or significantly out of window 2 (1.5%) 0 1 (0.8%) \nPROCEDURAL \n Eligibility-related test not done/out of window 2 (1.5%) 4 (3.0%) 3 (2.3%) \n Omission of screening tumor assessment 4 (3.0%) 1 (0.7%) 3 (2.3%) \n Missed assessment affecting safety/study outcomes 2 (1.5%) 3 (2.2%) 1 (0.8%) \n Failure to sign updated ICF within two visits 2 (1.5%) 1 (0.7%) 1 (0.8%) \n Missed 2 or more efficacy assessments 1 (0.7%) 2 (1.5%) 0 \n Omission of complete lab panel required by protocol 0 0 1 (0.8%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\naddv <- random.cdisc.data::caddv\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\naddv <- df_explicit_na(addv)\n\naddv <- addv %>%\n var_relabel(\n DVDECOD = \"Category\",\n DVTERM = \"Description\"\n )", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(\n title = \"Extent of Exposure by Ethnic Origin: Safety-Evaluable Patients\",\n main_footer = \"* Patient Time is the sum of exposure across all patients in days.\",\n show_colcounts = TRUE\n) %>%\n analyze_patients_exposure_in_cols(\n var = \"ETHNIC\",\n col_split = TRUE,\n add_total_level = TRUE,\n custom_label = \"Total\"\n ) %>%\n append_topleft(c(\"\", \"Ethnicity\"))\n\nresult <- build_table(lyt, df = anl, alt_counts_df = adsl_f)\nresult\n\nExtent of Exposure by Ethnic Origin: Safety-Evaluable Patients\n\n——————————————————————————————————————————————————\n Patients Person time\nEthnicity (N=400) (N=400) \n——————————————————————————————————————————————————\nHISPANIC OR LATINO 28 (7.0%) 2423 \nNOT HISPANIC OR LATINO 165 (41.2%) 15570 \nNOT REPORTED 18 (4.5%) 2085 \nUNKNOWN 6 (1.5%) 563 \nTotal 217 (54.2%) 20641 \n——————————————————————————————————————————————————\n\n* Patient Time is the sum of exposure across all patients in days.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadex <- random.cdisc.data::cadex\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadex <- df_explicit_na(adex)\n\n# Simulate ADEX records with PARAMCD == \"TDURD\" as they are not in sample random.cdisc.data dataset.\nset.seed(1, kind = \"Mersenne-Twister\")\nadex2 <- adex %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE)\n ) %>%\n bind_rows(adex)\n\n\n# Now pre-processing steps are carried out.\nanl <- adex2 %>%\n filter(\n PARAMCD == \"TDURD\",\n PARCAT2 == \"Drug A\",\n SAFFL == \"Y\"\n )\n\nadsl_f <- adsl %>% filter(adsl$SAFFL == \"Y\")", "crumbs": [ "Tables", - "Disposition", - "PDT01" + "Risk Management Plan", + "RMPT04" ] }, { - "objectID": "tables/disposition/pdt01.html#teal-app", - "href": "tables/disposition/pdt01.html#teal-app", - "title": "PDT01", + "objectID": "tables/risk-management-plan/rmpt04.html#teal-app", + "href": "tables/risk-management-plan/rmpt04.html#teal-app", + "title": "RMPT04", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADDV <- random.cdisc.data::caddv\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADDV <- df_explicit_na(ADDV)\n})\ndatanames <- c(\"ADSL\", \"ADDV\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADDV <- data[[\"ADDV\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Major Protocol Deviations Table\",\n dataname = \"ADDV\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADDV, c(\"DVTERM\")),\n selected = c(\"DVTERM\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADDV, c(\"DVDECOD\")),\n selected = \"DVDECOD\"\n ),\n add_total = TRUE,\n event_type = \"major protocol deviation\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADDV <- random.cdisc.data::caddv\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADDV <- df_explicit_na(ADDV)\n})\ndatanames <- c(\"ADSL\", \"ADDV\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADDV <- data[[\"ADDV\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_events(\n label = \"Major Protocol Deviations Table\",\n dataname = \"ADDV\",\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARM\"),\n llt = choices_selected(\n choices = variable_choices(ADDV, c(\"DVTERM\")),\n selected = c(\"DVTERM\")\n ),\n hlt = choices_selected(\n choices = variable_choices(ADDV, c(\"DVDECOD\")),\n selected = \"DVDECOD\"\n ),\n add_total = TRUE,\n event_type = \"major protocol deviation\"\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n\n labels <- col_labels(ADEX)\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\"\n ) %>%\n bind_rows(ADEX)\n\n col_labels(ADEX) <- labels\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ETHNIC\", \"SEX\")),\n selected = \"ETHNIC\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEX <- random.cdisc.data::cadex\n\n labels <- col_labels(ADEX)\n set.seed(1, kind = \"Mersenne-Twister\")\n\n labels <- col_labels(ADEX)\n ADEX <- ADEX %>%\n distinct(USUBJID, .keep_all = TRUE) %>%\n mutate(\n PARAMCD = \"TDURD\",\n PARAM = \"Overall duration (days)\",\n AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),\n AVALU = \"Days\"\n ) %>%\n bind_rows(ADEX)\n\n col_labels(ADEX) <- labels\n})\ndatanames <- c(\"ADSL\", \"ADEX\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADEX <- data[[\"ADEX\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_exposure(\n label = \"Duration of Exposure Table\",\n dataname = \"ADEX\",\n paramcd = choices_selected(\n choices = value_choices(ADEX, \"PARAMCD\", \"PARAM\"),\n selected = \"TDURD\"\n ),\n col_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ARM\")),\n selected = \"ARM\"\n ),\n row_by_var = choices_selected(\n choices = variable_choices(ADEX, subset = c(\"ETHNIC\", \"SEX\")),\n selected = \"ETHNIC\"\n ),\n parcat = choices_selected(\n choices = value_choices(ADEX, \"PARCAT2\"),\n selected = \"Drug A\"\n ),\n add_total = FALSE\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Disposition", - "PDT01" + "Risk Management Plan", + "RMPT04" ] }, { - "objectID": "tables/disposition/pdt01.html#reproducibility", - "href": "tables/disposition/pdt01.html#reproducibility", - "title": "PDT01", + "objectID": "tables/risk-management-plan/rmpt04.html#reproducibility", + "href": "tables/risk-management-plan/rmpt04.html#reproducibility", + "title": "RMPT04", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:03:49 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", - "crumbs": [ - "Tables", - "Disposition", - "PDT01" - ] - }, - { - "objectID": "tables/pharmacokinetic/pkpt05.html#output", - "href": "tables/pharmacokinetic/pkpt05.html#output", - "title": "PKPT05", - "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\nCode# lyt creation\nlyt <- basic_table() %>%\n split_rows_by(\n var = \"ARMCD\",\n split_fun = trim_levels_in_group(\"ARMCD\"),\n label_pos = \"topleft\",\n split_label = \"Treatment Arm\"\n ) %>%\n split_rows_by(\n var = \"PKPARAM\",\n label_pos = \"topleft\",\n split_label = \"PK Parameter\",\n child_labels = \"hidden\"\n ) %>%\n analyze_vars_in_cols(\n vars = \"AVAL\",\n .stats = c(\n \"n\", \"mean\", \"sd\", \"cv\",\n \"geom_mean\", \"geom_cv\", \"median\",\n \"min\", \"max\"\n ),\n .labels = c(\n n = \"n\",\n mean = \"Mean\",\n sd = \"SD\",\n cv = \"CV (%)\",\n geom_mean = \"Geometric Mean\",\n geom_cv = \"CV % Geometric Mean\",\n median = \"Median\",\n min = \"Minimum\",\n max = \"Maximum\"\n ),\n .formats = c(\n n = \"xx.\",\n mean = format_sigfig(3),\n sd = format_sigfig(3),\n cv = \"xx.x\",\n median = format_sigfig(3),\n geom_mean = format_sigfig(3),\n geom_cv = \"xx.x\",\n min = format_sigfig(3),\n max = format_sigfig(3)\n )\n )\n\n\nPlasma Drug X\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp0 <- adpp %>%\n filter(PPCAT == \"Plasma Drug X\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp0)\nmain_title(result) <- paste(\"Summary of\", unique(adpp0$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp0$PPCAT), \"\\nVisit:\", unique(adpp0$AVISIT))\nresult\n\nSummary of Urine PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1\n\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM A \n Ae (mg) 268 1.55 0.338 21.8 1.51 23.0 1.55 0.702 2.46 \n Fe (%) 268 15.7 3.35 21.3 15.3 22.2 15.8 8.15 24.5 \n CLR (L/hr) 134 0.0492 0.00961 19.5 0.0482 21.0 0.0491 0.0249 0.0751 \n RENALCLD (L/hr/mg) 134 0.00487 0.000965 19.8 0.00477 21.2 0.00497 0.00238 0.00726\nARM C \n Ae (mg) 264 1.54 0.298 19.4 1.51 20.3 1.55 0.850 2.21 \n Fe (%) 264 16.1 3.10 19.3 15.8 20.2 16.0 8.50 24.4 \n CLR (L/hr) 132 0.0502 0.0105 20.9 0.0491 21.9 0.0498 0.0251 0.0856 \n RENALCLD (L/hr/mg) 132 0.00511 0.000934 18.3 0.00502 19.7 0.00515 0.00236 0.00741\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nPlasma Drug Y\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp1 <- adpp %>%\n filter(PPCAT == \"Plasma Drug Y\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp1)\nmain_title(result) <- paste(\"Summary of\", unique(adpp1$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp1$PPCAT), \"\\nVisit:\", unique(adpp1$AVISIT))\nresult\n\nSummary of Urine PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug Y \nVisit: CYCLE 1 DAY 1\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM C \n Ae (mg) 264 1.60 0.315 19.7 1.56 21.4 1.60 0.857 2.26 \n Fe (%) 264 15.8 3.08 19.4 15.5 20.2 15.7 8.31 23.8 \n CLR (L/hr) 132 0.0497 0.0101 20.3 0.0486 22.0 0.0491 0.0184 0.0776 \n RENALCLD (L/hr/mg) 132 0.00509 0.00103 20.3 0.00499 21.4 0.00502 0.00236 0.00794\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadpp <- random.cdisc.data::cadpp\nadpp <- adpp %>% filter(PPSPEC == \"Urine\", AVISIT == \"CYCLE 1 DAY 1\")", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:57:55 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT05" + "Risk Management Plan", + "RMPT04" ] }, { - "objectID": "tables/pharmacokinetic/pkpt05.html#reproducibility", - "href": "tables/pharmacokinetic/pkpt05.html#reproducibility", - "title": "PKPT05", + "objectID": "tables/disclosures/disclosurest01.html#reproducibility", + "href": "tables/disclosures/disclosurest01.html#reproducibility", + "title": "DISCLOSUREST01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:04:07 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:58:15 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT05" + "Disclosures", + "DISCLOSUREST01" ] }, { - "objectID": "tables/pharmacokinetic/pkpt06.html#output", - "href": "tables/pharmacokinetic/pkpt06.html#output", - "title": "PKPT06", + "objectID": "tables/disclosures/eudrat01.html#output", + "href": "tables/disclosures/eudrat01.html#output", + "title": "EUDRAT01", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\nCode# lyt creation\nlyt <- basic_table() %>%\n split_cols_by(\n var = \"ARMCD\",\n split_fun = trim_levels_in_group(\"ARMCD\"),\n split_label = \"Treatment Arm\"\n ) %>%\n split_rows_by(\n var = \"PKPARAM\",\n label_pos = \"topleft\",\n split_label = \"PK Parameter\"\n ) %>%\n tern::analyze_vars(\n vars = \"AVAL\",\n .stats = c(\"n\", \"mean_sd\", \"cv\", \"geom_mean\", \"geom_cv\", \"median\", \"range\"),\n .formats = c(\n n = \"xx.\",\n mean_sd = format_sigfig(3, \"xx (xx)\"),\n cv = \"xx.x\",\n geom_mean = format_sigfig(3),\n geom_cv = \"xx.x\",\n median = format_sigfig(3),\n range = format_sigfig(3, \"xx - xx\")\n )\n )\n\n\nPlasma Drug X\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp0 <- adpp %>%\n filter(PPCAT == \"Plasma Drug X\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp0)\nmain_title(result) <- paste(\"Summary of Dose-Normalized PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp0$PPCAT), \"\\nVisit:\", unique(adpp0$AVISIT))\nresult\n\nSummary of Dose-Normalized PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1\n\n———————————————————————————————————————————————————————————————\nPK Parameter ARM A ARM C \n———————————————————————————————————————————————————————————————\nRENALCLD (L/hr/mg) \n n 134 132 \n Mean (SD) 0.00487 (0.000965) 0.00511 (0.000934)\n CV (%) 19.8 18.3 \n Geometric Mean 0.00477 0.00502 \n CV % Geometric Mean 21.2 19.7 \n Median 0.00497 0.00515 \n Min - Max 0.00238 - 0.00726 0.00236 - 0.00741 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nPlasma Drug Y\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp1 <- adpp %>%\n filter(PPCAT == \"Plasma Drug Y\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp1)\nmain_title(result) <- paste(\"Summary of Dose-Normalized PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp1$PPCAT), \"\\nVisit:\", unique(adpp1$AVISIT))\nresult\n\nSummary of Dose-Normalized PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug Y \nVisit: CYCLE 1 DAY 1\n\n—————————————————————————————————————————\nPK Parameter ARM C \n—————————————————————————————————————————\nRENALCLD (L/hr/mg) \n n 132 \n Mean (SD) 0.00509 (0.00103)\n CV (%) 20.3 \n Geometric Mean 0.00499 \n CV % Geometric Mean 21.4 \n Median 0.00502 \n Min - Max 0.00236 - 0.00794\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(stringr)\n\nadpp <- random.cdisc.data::cadpp\nadpp <- adpp %>%\n filter(AVISIT == \"CYCLE 1 DAY 1\", str_detect(tolower(PARAM), regex(\"norm by dose\", ignore_case = TRUE)))", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table() %>%\n split_cols_by(\"ARM\") %>%\n summarize_patients_events_in_cols(\n custom_label = \"Total number of patients with at least one non-serious adverse event occuring at a relative frequency of >=5% and number of events\" \n ) %>%\n split_rows_by(\"AEBODSYS\",\n nested = FALSE,\n split_fun = split_fun,\n indent_mod = -1L,\n label_pos = \"topleft\",\n split_label = obj_label(adae_trim$AEBODSYS)\n ) %>%\n split_rows_by(\"AEDECOD\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adae_trim$AEDECOD)) %>%\n summarize_patients_events_in_cols(\n col_split = FALSE\n )\n\nresult <- build_table(lyt, adae_trim)\nresult\n\nBody System or Organ Class A: Drug X B: Placebo C: Combination \n Dictionary-Derived Term Patients (All) Events (All) Patients (All) Events (All) Patients (All) Events (All)\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTotal number of patients with at least one non-serious adverse event occuring at a relative frequency of >=5% and number of events 106 360 112 367 112 421 \ncl A.1 \n dcd A.1.1.1.1 50 64 45 62 63 88 \ncl B.2 \n dcd B.2.1.2.1 49 65 44 62 52 66 \ncl C.1 \n dcd C.1.1.1.3 43 55 46 63 43 64 \ncl C.2 \n dcd C.2.1.2.1 35 48 48 53 55 65 \ncl D.1 \n dcd D.1.1.4.2 48 66 42 55 50 64 \ncl D.2 \n dcd D.2.1.5.3 47 62 58 72 57 74 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nDefine a trimming function get_adae_trimmed to filter for AEs of greater than 5% incidence rate.\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadae <- random.cdisc.data::cadae\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadae <- df_explicit_na(adae)\n\nadae_nonser <- adae %>% filter(AESER != \"Y\", SAFFL == \"Y\")\n\nget_adae_trimmed <- function(adsl, adae, cutoff_rate) {\n n_per_arm <- adsl %>%\n dplyr::count(ARM)\n\n anl_terms <- adae %>%\n dplyr::group_by(ARM, AEBODSYS, AEDECOD) %>%\n dplyr::count(\n unique_terms = n_distinct(USUBJID)\n ) %>%\n dplyr::select(-n) %>%\n dplyr::ungroup()\n\n anl_terms <- dplyr::left_join(\n anl_terms,\n n_per_arm,\n by = \"ARM\"\n ) %>%\n dplyr::mutate(\n ae_rate = unique_terms / n\n ) %>%\n dplyr::filter(ae_rate >= cutoff_rate) %>%\n dplyr::select(AEDECOD) %>%\n unique()\n\n anl <- dplyr::left_join(\n anl_terms,\n adae,\n by = \"AEDECOD\"\n )\n anl\n}\n\nadae_trim <- get_adae_trimmed(adsl, adae_nonser, cutoff_rate = 0.05)", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT06" + "Disclosures", + "EUDRAT01" ] }, { - "objectID": "tables/pharmacokinetic/pkpt06.html#reproducibility", - "href": "tables/pharmacokinetic/pkpt06.html#reproducibility", - "title": "PKPT06", + "objectID": "tables/disclosures/eudrat01.html#reproducibility", + "href": "tables/disclosures/eudrat01.html#reproducibility", + "title": "EUDRAT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:04:21 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr * 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:58:29 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT06" + "Disclosures", + "EUDRAT01" ] }, { - "objectID": "tables/pharmacokinetic/pkpt04.html#output", - "href": "tables/pharmacokinetic/pkpt04.html#output", - "title": "PKPT04", + "objectID": "tables/efficacy/aovt01.html#output", + "href": "tables/efficacy/aovt01.html#output", + "title": "AOVT01", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\nCode# lyt creation\nlyt <- basic_table() %>%\n split_cols_by(\n var = \"ARMCD\",\n split_fun = trim_levels_in_group(\"ARMCD\"),\n split_label = \"Treatment Arm\"\n ) %>%\n split_rows_by(\n var = \"PKPARAM\",\n label_pos = \"topleft\",\n split_label = \"PK Parameter\"\n ) %>%\n tern::analyze_vars(\n vars = \"AVAL\",\n .stats = c(\"n\", \"mean_sd\", \"cv\", \"geom_mean\", \"geom_cv\", \"median\", \"range\"),\n .formats = c(\n n = \"xx.\",\n mean_sd = format_sigfig(3, \"xx (xx)\"),\n cv = \"xx.x\",\n geom_mean = format_sigfig(3),\n geom_cv = \"xx.x\",\n median = format_sigfig(3),\n range = format_sigfig(3, \"xx - xx\")\n )\n )\n\n\nPlasma Drug X\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp0 <- adpp %>%\n filter(PPCAT == \"Plasma Drug X\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp0)\nmain_title(result) <- paste(\"Summary of\", unique(adpp0$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp0$PPCAT), \"\\nVisit:\", unique(adpp0$AVISIT))\nresult\n\nSummary of Urine PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1\n\n———————————————————————————————————————————————————————————————\nPK Parameter ARM A ARM C \n———————————————————————————————————————————————————————————————\nAe (mg) \n n 268 264 \n Mean (SD) 1.55 (0.338) 1.54 (0.298) \n CV (%) 21.8 19.4 \n Geometric Mean 1.51 1.51 \n CV % Geometric Mean 23.0 20.3 \n Median 1.55 1.55 \n Min - Max 0.702 - 2.46 0.850 - 2.21 \nFe (%) \n n 268 264 \n Mean (SD) 15.7 (3.35) 16.1 (3.10) \n CV (%) 21.3 19.3 \n Geometric Mean 15.3 15.8 \n CV % Geometric Mean 22.2 20.2 \n Median 15.8 16.0 \n Min - Max 8.15 - 24.5 8.50 - 24.4 \nCLR (L/hr) \n n 134 132 \n Mean (SD) 0.0492 (0.00961) 0.0502 (0.0105) \n CV (%) 19.5 20.9 \n Geometric Mean 0.0482 0.0491 \n CV % Geometric Mean 21.0 21.9 \n Median 0.0491 0.0498 \n Min - Max 0.0249 - 0.0751 0.0251 - 0.0856 \nRENALCLD (L/hr/mg) \n n 134 132 \n Mean (SD) 0.00487 (0.000965) 0.00511 (0.000934)\n CV (%) 19.8 18.3 \n Geometric Mean 0.00477 0.00502 \n CV % Geometric Mean 21.2 19.7 \n Median 0.00497 0.00515 \n Min - Max 0.00238 - 0.00726 0.00236 - 0.00741 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nPlasma Drug Y\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpp1 <- adpp %>%\n filter(PPCAT == \"Plasma Drug Y\") %>%\n h_pkparam_sort() %>%\n mutate(PKPARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PKPARAM = reorder(PKPARAM, TLG_ORDER))\n\nresult <- build_table(lyt, df = adpp1)\nmain_title(result) <- paste(\"Summary of\", unique(adpp1$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp1$PPCAT), \"\\nVisit:\", unique(adpp1$AVISIT))\nresult\n\nSummary of Urine PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug Y \nVisit: CYCLE 1 DAY 1\n\n—————————————————————————————————————————\nPK Parameter ARM C \n—————————————————————————————————————————\nAe (mg) \n n 264 \n Mean (SD) 1.60 (0.315) \n CV (%) 19.7 \n Geometric Mean 1.56 \n CV % Geometric Mean 21.4 \n Median 1.60 \n Min - Max 0.857 - 2.26 \nFe (%) \n n 264 \n Mean (SD) 15.8 (3.08) \n CV (%) 19.4 \n Geometric Mean 15.5 \n CV % Geometric Mean 20.2 \n Median 15.7 \n Min - Max 8.31 - 23.8 \nCLR (L/hr) \n n 132 \n Mean (SD) 0.0497 (0.0101) \n CV (%) 20.3 \n Geometric Mean 0.0486 \n CV % Geometric Mean 22.0 \n Median 0.0491 \n Min - Max 0.0184 - 0.0776 \nRENALCLD (L/hr/mg) \n n 132 \n Mean (SD) 0.00509 (0.00103)\n CV (%) 20.3 \n Geometric Mean 0.00499 \n CV % Geometric Mean 21.4 \n Median 0.00502 \n Min - Max 0.00236 - 0.00794\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadpp <- random.cdisc.data::cadpp\nadpp <- adpp %>% filter(PPSPEC == \"Urine\", AVISIT == \"CYCLE 1 DAY 1\")", + "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Define the split function\nsplit_fun <- drop_split_levels\n\nl <- basic_table() %>%\n split_cols_by(\"ARMCD\", ref_group = \"ARM A\") %>%\n split_rows_by(\"PARAMCD\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(adqs_multi$PARAMCD)\n ) %>%\n summarize_ancova(\n vars = \"CHG\",\n variables = list(\n arm = \"ARMCD\",\n covariates = c(\"BASE\", \"STRATA1\")\n ),\n conf_level = 0.95,\n var_labels = \"Adjusted mean\"\n )\n\nresult <- build_table(\n lyt = l,\n df = adqs_multi,\n alt_counts_df = adsl\n)\n\nresult\n\nParameter Code ARM A ARM B ARM C \n————————————————————————————————————————————————————————————————————————\nBFIALL \n Adjusted mean \n n 134 134 132 \n Adjusted Mean 4.47 6.33 4.02 \n Difference in Adjusted Means 1.85 -0.46 \n 95% CI (-0.14, 3.85) (-2.45, 1.54)\n p-value 0.0679 0.6539 \nFATIGI \n Adjusted mean \n n 134 134 132 \n Adjusted Mean 5.42 4.83 4.56 \n Difference in Adjusted Means -0.59 -0.86 \n 95% CI (-2.58, 1.41) (-2.87, 1.15)\n p-value 0.5644 0.4026 \nFKSI-FWB \n Adjusted mean \n n 134 134 132 \n Adjusted Mean 4.29 3.51 3.06 \n Difference in Adjusted Means -0.79 -1.24 \n 95% CI (-2.71, 1.14) (-3.17, 0.69)\n p-value 0.4221 0.2088 \nFKSI-TSE \n Adjusted mean \n n 134 134 132 \n Adjusted Mean 4.70 3.84 4.45 \n Difference in Adjusted Means -0.86 -0.25 \n 95% CI (-2.80, 1.09) (-2.20, 1.70)\n p-value 0.3858 0.8007 \nFKSIALL \n Adjusted mean \n n 134 134 132 \n Adjusted Mean 5.03 5.82 6.44 \n Difference in Adjusted Means 0.79 1.42 \n 95% CI (-1.17, 2.76) (-0.56, 3.39)\n p-value 0.4288 0.1591 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadqs <- random.cdisc.data::cadqs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadqs <- df_explicit_na(adqs)\n\nadqs_multi <- filter(adqs, AVISIT == \"WEEK 1 DAY 8\")", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT04" + "Efficacy", + "AOVT01" ] }, { - "objectID": "tables/pharmacokinetic/pkpt04.html#reproducibility", - "href": "tables/pharmacokinetic/pkpt04.html#reproducibility", - "title": "PKPT04", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:04:35 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/efficacy/aovt01.html#teal-app", + "href": "tables/efficacy/aovt01.html#teal-app", + "title": "AOVT01", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADQS <- df_explicit_na(ADQS)\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADQS <- data[[\"ADQS\"]]\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_ancova(\n label = \"ANCOVA table\",\n dataname = \"ADQS\",\n avisit = choices_selected(\n choices = value_choices(ADQS, \"AVISIT\"),\n selected = \"WEEK 1 DAY 8\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ACTARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n aval_var = choices_selected(\n choices = variable_choices(ADQS, c(\"CHG\", \"AVAL\")),\n selected = \"CHG\"\n ),\n cov_var = choices_selected(\n choices = variable_choices(ADQS, c(\"BASE\", \"STRATA1\", \"SEX\")),\n selected = \"STRATA1\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = c(\"FKSI-FWB\", \"BFIALL\")\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADQS <- df_explicit_na(ADQS)\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADQS <- data[[\"ADQS\"]]\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_ancova(\n label = \"ANCOVA table\",\n dataname = \"ADQS\",\n avisit = choices_selected(\n choices = value_choices(ADQS, \"AVISIT\"),\n selected = \"WEEK 1 DAY 8\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ACTARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n aval_var = choices_selected(\n choices = variable_choices(ADQS, c(\"CHG\", \"AVAL\")),\n selected = \"CHG\"\n ),\n cov_var = choices_selected(\n choices = variable_choices(ADQS, c(\"BASE\", \"STRATA1\", \"SEX\")),\n selected = \"STRATA1\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = c(\"FKSI-FWB\", \"BFIALL\")\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT04" + "Efficacy", + "AOVT01" ] }, { - "objectID": "tables/pharmacokinetic/pkpt03.html#output", - "href": "tables/pharmacokinetic/pkpt03.html#output", - "title": "PKPT03", - "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\nCode# lyt creation\nlyt <- basic_table() %>%\n split_rows_by(\n var = \"AVISIT\",\n split_fun = drop_split_levels,\n split_label = \"Visit\",\n page_by = TRUE\n ) %>%\n split_rows_by(\n var = \"ARMCD\",\n split_fun = trim_levels_in_group(\"PARAM\"),\n label_pos = \"topleft\",\n split_label = \"Treatment Arm\"\n ) %>%\n add_rowcounts(alt_counts = TRUE) %>%\n split_rows_by(\n var = \"PARAM\",\n label_pos = \"topleft\",\n split_label = \"PK Parameter\",\n child_labels = \"hidden\"\n ) %>%\n analyze_vars_in_cols(\n vars = \"AVAL\",\n .stats = c(\n \"n\", \"mean\", \"sd\", \"cv\",\n \"geom_mean\", \"geom_cv\", \"median\",\n \"min\", \"max\"\n ),\n .labels = c(\n n = \"n\",\n mean = \"Mean\",\n sd = \"SD\",\n cv = \"CV (%)\",\n geom_mean = \"Geometric Mean\",\n geom_cv = \"CV % Geometric Mean\",\n median = \"Median\",\n min = \"Minimum\",\n max = \"Maximum\"\n ),\n .formats = c(\n n = \"xx.\",\n mean = format_sigfig(3),\n sd = format_sigfig(3),\n cv = \"xx.x\",\n median = format_sigfig(3),\n geom_mean = format_sigfig(3),\n geom_cv = \"xx.x\",\n min = format_sigfig(3),\n max = format_sigfig(3)\n ),\n na_str = \"NE\"\n )\n\n\nPlasma Drug X\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- build_table(lyt, df = adpp_x, alt_counts_df = adsl_x_splitvars)\nmain_title(result) <- paste(\"Summary of\", unique(adpp_x$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp_x$PPCAT))\nresult <- paginate_table(result, landscape = TRUE)\nresult\n\n$`CYCLE 1 DAY 1`\n\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X\nVisit: CYCLE 1 DAY 1\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM A (N=134) \n Cmax (ug/mL) 0 NE NE NE NE NE NE NE NE \n AUCinf obs (day*ug/mL) 134 203 37.7 18.6 199 18.7 197 125 311 \n CL obs (ml/day/kg) 134 5.04 1.04 20.6 4.93 22.4 5.08 2.25 7.39 \nARM C (N=132) \n Cmax (ug/mL) 132 30.0 5.46 18.2 29.5 18.9 29.8 15.9 47.6 \n AUCinf obs (day*ug/mL) 132 195 37.8 19.4 192 20.1 196 103 315 \n CL obs (ml/day/kg) 132 5.01 0.985 19.7 4.91 21.1 4.97 2.10 7.49 \n\n$`CYCLE 1 DAY 2`\n\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X\nVisit: CYCLE 1 DAY 2\n\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM A (N=134) \n Cmax (ug/mL) 134 29.4 6.22 21.2 28.6 24.4 29.8 10.1 43.5 \n AUCinf obs (day*ug/mL) 134 202 41.2 20.4 197 21.4 200 105 294 \n CL obs (ml/day/kg) 134 5.04 1.04 20.7 4.92 22.6 5.01 2.39 7.18 \nARM C (N=132) \n Cmax (ug/mL) 132 30.4 6.03 19.9 29.7 21.7 30.5 12.4 45.5 \n AUCinf obs (day*ug/mL) 132 191 43.0 22.5 186 24.7 189 74.8 296 \n CL obs (ml/day/kg) 132 5.07 1.07 21.1 4.96 22.4 5.01 2.48 7.50 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nPlasma Drug X: Remove Rows with 0s\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- build_table(lyt, df = adpp_x, alt_counts_df = adsl_x_splitvars) %>%\n prune_table()\n\nmain_title(result) <- paste(\"Summary of\", unique(adpp_x$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp_x$PPCAT))\nresult <- paginate_table(result, landscape = TRUE)\nresult\n\n$`CYCLE 1 DAY 1`\n\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X\nVisit: CYCLE 1 DAY 1\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM A (N=134) \n AUCinf obs (day*ug/mL) 134 203 37.7 18.6 199 18.7 197 125 311 \n CL obs (ml/day/kg) 134 5.04 1.04 20.6 4.93 22.4 5.08 2.25 7.39 \nARM C (N=132) \n Cmax (ug/mL) 132 30.0 5.46 18.2 29.5 18.9 29.8 15.9 47.6 \n AUCinf obs (day*ug/mL) 132 195 37.8 19.4 192 20.1 196 103 315 \n CL obs (ml/day/kg) 132 5.01 0.985 19.7 4.91 21.1 4.97 2.10 7.49 \n\n$`CYCLE 1 DAY 2`\n\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug X\nVisit: CYCLE 1 DAY 2\n\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM A (N=134) \n Cmax (ug/mL) 134 29.4 6.22 21.2 28.6 24.4 29.8 10.1 43.5 \n AUCinf obs (day*ug/mL) 134 202 41.2 20.4 197 21.4 200 105 294 \n CL obs (ml/day/kg) 134 5.04 1.04 20.7 4.92 22.6 5.01 2.39 7.18 \nARM C (N=132) \n Cmax (ug/mL) 132 30.4 6.03 19.9 29.7 21.7 30.5 12.4 45.5 \n AUCinf obs (day*ug/mL) 132 191 43.0 22.5 186 24.7 189 74.8 296 \n CL obs (ml/day/kg) 132 5.07 1.07 21.1 4.96 22.4 5.01 2.48 7.50 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nPlasma Drug Y\n\n\n Preview\n Try this using WebR\n\n\n\n\nCoderesult <- build_table(lyt, df = adpp_y, alt_counts_df = adsl_y_splitvars)\nmain_title(result) <- paste(\"Summary of\", unique(adpp_y$PPSPEC), \"PK Parameter by Treatment Arm, PK Population\")\nsubtitles(result) <- paste(\"Analyte:\", unique(adpp_y$PPCAT))\nresult <- paginate_table(result, landscape = TRUE)\nresult\n\n$`CYCLE 1 DAY 1`\n\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug Y\nVisit: CYCLE 1 DAY 1\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM C (N=132) \n Cmax (ug/mL) 132 29.9 5.55 18.6 29.4 20.1 29.7 14.1 43.4 \n AUCinf obs (day*ug/mL) 132 199 37.9 19.1 195 18.9 195 126 318 \n CL obs (ml/day/kg) 132 4.96 0.895 18.1 4.87 18.7 4.94 2.99 7.21 \n\n$`CYCLE 1 DAY 2`\n\n\nSummary of Plasma PK Parameter by Treatment Arm, PK Population\nAnalyte: Plasma Drug Y\nVisit: CYCLE 1 DAY 2\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nTreatment Arm \n PK Parameter n Mean SD CV (%) Geometric Mean CV % Geometric Mean Median Minimum Maximum\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nARM C (N=132) \n Cmax (ug/mL) 132 30.7 6.12 19.9 30.1 21.9 31.4 12.9 48.3 \n AUCinf obs (day*ug/mL) 132 199 40.0 20.1 194 22.2 197 79.2 295 \n CL obs (ml/day/kg) 132 4.99 0.984 19.7 4.89 20.9 4.96 2.58 8.39 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\n# Preprocess analysis data ----\nadpp <- random.cdisc.data::cadpp\nadpp <- adpp %>%\n filter(PPSPEC == \"Plasma\") %>%\n filter(AVISIT %in% c(\"CYCLE 1 DAY 1\", \"CYCLE 1 DAY 2\")) %>%\n h_pkparam_sort() %>%\n mutate(PARAM = factor(paste0(TLG_DISPLAY, \" (\", AVALU, \")\"))) %>%\n mutate(PARAM = reorder(PARAM, TLG_ORDER))\n\n# Preprocess subject-level data ----\nadsl <- random.cdisc.data::cadsl\n\n# Workaround needed to include (N=xx) population counts\n# Repeat ADSL by the number of levels in AVISIT\n# Include AVISIT and dummy PARAM as it's needed for trim_levels_in_group\nadsl_tmp <- adsl %>%\n select(STUDYID, USUBJID, ARMCD) %>%\n unique() %>%\n mutate(PARAM = factor(NA_character_, levels = levels(adpp$PARAM)))\n\n# Data for Plasma Drug X example ----\nadpp_x <- adpp %>%\n filter(PPCAT == \"Plasma Drug X\") %>%\n # Please do not replicate mutate statement below!\n # It is used to make the random data in this example more realistic\n # as not all parameters are always available across all visits.\n mutate(\n AVAL = if_else(\n ARMCD == \"ARM A\" & AVISIT == \"CYCLE 1 DAY 1\" & PARAM == \"Cmax (ug/mL)\",\n NA_real_, AVAL\n )\n )\n\nadpp_x_tmp <- adpp_x %>%\n select(STUDYID, USUBJID, ARMCD, AVISIT) %>%\n unique()\n\nadsl_x_splitvars <- adsl_tmp %>%\n left_join(adpp_x_tmp, by = c(\"STUDYID\", \"USUBJID\", \"ARMCD\")) %>%\n filter(!is.na(AVISIT))\n\n# Data for Plasma Drug Y example ----\nadpp_y <- adpp %>%\n filter(PPCAT == \"Plasma Drug Y\")\n\nadpp_y_tmp <- adpp_y %>%\n select(STUDYID, USUBJID, ARMCD, AVISIT) %>%\n unique()\n\nadsl_y_splitvars <- adsl_tmp %>%\n left_join(adpp_y_tmp, by = c(\"STUDYID\", \"USUBJID\", \"ARMCD\")) %>%\n filter(!is.na(AVISIT))", + "objectID": "tables/efficacy/aovt01.html#reproducibility", + "href": "tables/efficacy/aovt01.html#reproducibility", + "title": "AOVT01", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:58:54 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT03" + "Efficacy", + "AOVT01" ] }, { - "objectID": "tables/pharmacokinetic/pkpt03.html#reproducibility", - "href": "tables/pharmacokinetic/pkpt03.html#reproducibility", - "title": "PKPT03", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:04:57 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/efficacy/lgrt02.html#output", + "href": "tables/efficacy/lgrt02.html#output", + "title": "LGRT02", + "section": "Output", + "text": "Output\n\n\nMulti-Variable Logistic Regression\nMulti-Variable Logistic Regression with Interaction Term\nMulti-Variable Logistic Regression Specifying Covariates\nMulti-Variable Logistic Regression Setting an Event, Alpha Level, and Level for Interaction\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodemodel <- fit_logistic(\n adrs,\n variables = list(response = \"Response\", arm = \"ARMCD\", covariates = c(\"SEX\", \"AGE\"))\n)\nconf_level <- 0.95\ndf <- broom::tidy(model, conf_level = conf_level)\n\n# empty string flag\ndf <- df_explicit_na(df, na_level = \"_NA_\")\n\nresult <- basic_table() %>%\n summarize_logistic(\n conf_level = conf_level,\n drop_and_remove_str = \"_NA_\"\n ) %>%\n append_topleft(\"Logistic regression\") %>%\n build_table(df = df)\nresult\n\nLogistic regression Degrees of Freedom Parameter Estimate Standard Error Odds Ratio Wald 95% CI p-value\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nPlanned Arm Code 2 0.0408 \n Reference ARM A, n = 134 \n ARM B, n = 134 1 -2.094 1.080 0.12 (0.01, 1.02) 0.0524 \n ARM C, n = 132 1 -0.074 1.423 0.93 (0.06, 15.09) 0.9584 \nSex \n Reference M, n = 169 \n F, n = 231 1 0.331 0.695 1.39 (0.36, 5.44) 0.6339 \nAge \n Age 1 0.070 0.054 1.07 (0.97, 1.19) 0.1945 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodemodel <- fit_logistic(\n adrs,\n variables = list(\n response = \"Response\",\n arm = \"ARMCD\",\n covariates = c(\"SEX\", \"AGE\"),\n interaction = \"SEX\"\n )\n)\nconf_level <- 0.95\ndf <- broom::tidy(model, conf_level = conf_level)\n\n# empty string flag\ndf <- df_explicit_na(df, na_level = \"_NA_\")\n\nresult <- basic_table() %>%\n summarize_logistic(\n conf_level = conf_level,\n drop_and_remove_str = \"_NA_\"\n ) %>%\n append_topleft(\"Logistic regression with interaction\") %>%\n build_table(df = df)\nresult\n\nLogistic regression with interaction Degrees of Freedom Parameter Estimate Standard Error Odds Ratio Wald 95% CI p-value\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAge \n Age 1 0.067 0.054 1.07 (0.96, 1.19) 0.2084 \nPlanned Arm Code 2 0.4882 \n Reference ARM A, n = 134 \n ARM B, n = 134 1 -17.850 2362.767 0.9940 \n Sex \n F 0.23 (0.02, 2.11) \n M 0.00 (0.00, >999.99) \n ARM C, n = 132 1 -16.442 2362.767 0.9944 \n Sex \n F >999.99 (0.00, >999.99) \n M 0.00 (0.00, >999.99) \nSex \n Reference M, n = 169 \n F, n = 231 1 -16.044 2362.767 0.9946 \n Planned Arm Code \n ARM A 0.00 (0.00, >999.99) \n ARM B 1.39 (0.29, 6.59) \n ARM C >999.99 (0.00, >999.99) \nInteraction of Planned Arm Code * Sex 2 0.9999 \n Reference ARM A or M, n = 248 \n ARM B * F, n = 82 1 16.373 2362.767 0.9945 \n ARM C * F, n = 70 1 32.492 3156.732 0.9918 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodemodel <- fit_logistic(\n adrs,\n variables = list(\n response = \"Response\",\n arm = \"ARMCD\",\n covariates = c(\"SEX\", \"AGE\", \"RACE\")\n )\n)\nconf_level <- 0.95\ndf <- broom::tidy(model, conf_level = conf_level)\n\n# empty string flag\ndf <- df_explicit_na(df, na_level = \"_NA_\")\n\nresult <- basic_table() %>%\n summarize_logistic(\n conf_level = conf_level,\n drop_and_remove_str = \"_NA_\"\n ) %>%\n append_topleft(\"y ~ ARM + SEX + AGE + RACE\") %>%\n build_table(df = df)\nresult\n\ny ~ ARM + SEX + AGE + RACE Degrees of Freedom Parameter Estimate Standard Error Odds Ratio Wald 95% CI p-value\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nPlanned Arm Code 2 0.0346 \n Reference ARM A, n = 134 \n ARM B, n = 134 1 -2.162 1.084 0.12 (0.01, 0.96) 0.0461 \n ARM C, n = 132 1 -0.090 1.426 0.91 (0.06, 14.97) 0.9499 \nSex \n Reference M, n = 169 \n F, n = 231 1 0.364 0.701 1.44 (0.36, 5.69) 0.6032 \nAge \n Age 1 0.071 0.053 1.07 (0.97, 1.19) 0.1866 \nRace 5 0.9685 \n Reference AMERICAN INDIAN OR ALASKA NATIVE, n = 25 \n ASIAN, n = 208 1 -16.246 2017.122 0.00 (0.00, >999.99) 0.9936 \n BLACK OR AFRICAN AMERICAN, n = 91 1 -15.205 2017.122 0.00 (0.00, >999.99) 0.9940 \n WHITE, n = 74 1 -15.955 2017.122 0.00 (0.00, >999.99) 0.9937 \n MULTIPLE, n = 1 1 -0.363 10941.553 0.70 (0.00, >999.99) 1.0000 \n NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER, n = 1 1 1.036 10941.553 2.82 (0.00, >999.99) 0.9999 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodemodel <- fit_logistic(\n adrs,\n variables = list(\n response = \"Response\",\n arm = \"ARMCD\",\n covariates = c(\"SEX\", \"AGE\"),\n interaction = \"AGE\"\n ),\n response_definition = \"1 - response\"\n)\nconf_level <- 0.9\ndf <- broom::tidy(model, conf_level = conf_level, at = c(30, 50))\n\n# empty string flag\ndf <- df_explicit_na(df, na_level = \"_NA_\")\n\nresult <- basic_table() %>%\n summarize_logistic(\n conf_level = conf_level,\n drop_and_remove_str = \"_NA_\"\n ) %>%\n append_topleft(\"Estimations at age 30 and 50\") %>%\n build_table(df = df)\nresult\n\nEstimations at age 30 and 50 Degrees of Freedom Parameter Estimate Standard Error Odds Ratio Wald 90% CI p-value\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nSex \n Reference M, n = 169 \n F, n = 231 1 -0.381 0.710 0.68 (0.21, 2.20) 0.5915 \nPlanned Arm Code 2 0.2768 \n Reference ARM A, n = 134 \n ARM B, n = 134 1 -20.020 13.714 0.1443 \n Age \n 30 234.91 (0.30, >999.99) \n 50 >999.99 (0.04, >999.99) \n ARM C, n = 132 1 -15.622 14.810 0.2915 \n Age \n 30 31.95 (0.03, >999.99) \n 50 >999.99 (<0.01, >999.99) \nAge \n Age 1 -0.877 0.581 0.1309 \n Planned Arm Code \n ARM A 0.42 (0.16, 1.08) \n ARM B 0.97 (0.89, 1.06) \n ARM C 0.79 (0.55, 1.11) \nInteraction of Planned Arm Code * Age 2 0.2213 \n Reference ARM A, n = 134 \n ARM B, n = 134 1 0.849 0.583 0.1449 \n ARM C, n = 132 1 0.636 0.618 0.3034 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadrs <- random.cdisc.data::cadrs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadrs <- df_explicit_na(adrs)\n\nadsl <- adsl %>%\n dplyr::filter(SEX %in% c(\"F\", \"M\"))\n\nadrs <- adrs %>%\n dplyr::filter(PARAMCD == \"BESRSPI\") %>%\n dplyr::mutate(\n Response = case_when(AVALC %in% c(\"PR\", \"CR\") ~ 1, TRUE ~ 0),\n SEX = factor(SEX, c(\"M\", \"F\")),\n RACE = factor(\n RACE,\n levels = c(\n \"AMERICAN INDIAN OR ALASKA NATIVE\", \"ASIAN\", \"BLACK OR AFRICAN AMERICAN\",\n \"WHITE\", \"MULTIPLE\", \"NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER\"\n )\n )\n ) %>%\n var_relabel(Response = \"Response\", SEX = \"Sex\", RACE = \"Race\")", "crumbs": [ "Tables", - "Pharmacokinetic", - "PKPT03" + "Efficacy", + "LGRT02" ] }, { - "objectID": "tables/ADA/adat02.html#output", - "href": "tables/ADA/adat02.html#output", - "title": "ADAT02", - "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Layout for post-baseline evaluable patient variables from adab dataset.\nlyt_adab <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = drop_split_levels\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"ADPBLPFL\",\n .stats = \"count\",\n table_names = \"post_baseline\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"TI_ADA\"\n )\n\n# Layout for treatment-induced patient variables from adab dataset.\nlyt_adab_ti <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = keep_split_levels(levels(adab_ti$ACTARM)[-2]) # temp fix\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(\"Transient ADA\", \"Persistent ADA\"),\n var_labels = \"Treatment-induced ADA patients with\",\n show_labels = \"visible\"\n ) %>%\n analyze_vars(\n \"Time to onset of ADA\",\n .stats = \"median\",\n nested = FALSE,\n .labels = c(median = \"Median time to onset of ADA (weeks)\")\n ) %>%\n analyze_vars(\n \"Antibody titer units\",\n .stats = \"range\",\n nested = FALSE,\n .labels = c(range = \"ADA titer range (min - max)\")\n )\n\nresult_adab <- build_table(lyt_adab, df = adab, alt_counts_df = adsl)\nresult_adab_ti <- build_table(lyt_adab_ti, df = adab_ti, alt_counts_df = adsl)\n\n# Combine tables.\ncol_info(result_adab) <- col_info(result_adab_ti)\nresult <- rbind(\n result_adab,\n result_adab_ti\n)\n\nmain_title(result) <- paste(\n \"Summary of Patients with Treatment-Induced ADA, PK Population\"\n)\nsubtitles(result) <- paste(\"Protocol:\", unique(adab$PARCAT1)[1])\nmain_footer(result) <- paste(\n \"ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic\n Antibodies)\n Treatment-induced ADA = negative or missing baseline.\n ADA result(s) and at least one positive post-baseline ADA result.\n Transient ADA = ADA positive result detected (a) at only one post-baseline\n sampling timepoint (excluding last timepoint) OR (b) at 2 or more timepoints\n during treatment where the first and last ADA positive samples are separated\n by a period of < 16 weeks, irrespective of any negative samples in between.\n Persistent ADA = ADA positive result detected (a) at the last post-baseline\n sampling timepoint, OR (b) at 2 or more time points during treatment where\n the first and last ADA positive samples are separated by a period ≥ 16\n weeks, irrespective of any negative samples in between.\"\n)\nresult\n\nSummary of Patients with Treatment-Induced ADA, PK Population\nProtocol: A: Drug X Antibody\n\n—————————————————————————————————————————————————————————————————\n A: Drug X C: Combination\n (N=134) (N=132) \n—————————————————————————————————————————————————————————————————\nPost-baseline evaluable patients 134 132 \nTreatment-induced ADA patients 38 (28.4%) 26 (19.7%) \nTreatment-induced ADA patients with \n Transient ADA 0 0 \n Persistent ADA 0 0 \nMedian time to onset of ADA (weeks) 0.1 0.1 \nADA titer range (min - max) NA NA \n—————————————————————————————————————————————————————————————————\n\nADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic\n Antibodies)\n Treatment-induced ADA = negative or missing baseline.\n ADA result(s) and at least one positive post-baseline ADA result.\n Transient ADA = ADA positive result detected (a) at only one post-baseline\n sampling timepoint (excluding last timepoint) OR (b) at 2 or more timepoints\n during treatment where the first and last ADA positive samples are separated\n by a period of < 16 weeks, irrespective of any negative samples in between.\n Persistent ADA = ADA positive result detected (a) at the last post-baseline\n sampling timepoint, OR (b) at 2 or more time points during treatment where\n the first and last ADA positive samples are separated by a period ≥ 16\n weeks, irrespective of any negative samples in between.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadab <- random.cdisc.data::cadab\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadab <- df_explicit_na(adab) %>%\n mutate(ADPBLPFL = \"Y\") %>% # temp fix\n filter(\n ADPBLPFL == \"Y\",\n !PARAM %in% c(\n \"NAB interpreted per sample result\",\n \"NAB Status of a patient\",\n \"Treatment enhanced ADA\"\n )\n ) %>%\n select(-PARAMCD, -AVALC, -AVALU, -ARRLT, -NRRLT) %>%\n unique() %>%\n tidyr::pivot_wider(\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n mutate(\n across(\n any_of(c(\n \"Treatment induced ADA\",\n \"Transient ADA\",\n \"Persistent ADA\"\n )),\n as.logical\n )\n ) %>%\n mutate(\n ADPBLPFL = ADPBLPFL == \"Y\",\n TI_ADA = if (exists(\"Treatment induced ADA\", where = .)) `Treatment induced ADA` else FALSE\n ) %>%\n var_relabel(\n ADPBLPFL = \"Post-baseline evaluable patients\",\n TI_ADA = \"Treatment-induced ADA patients\"\n )\n\nadab_ti <- adab %>%\n filter(TI_ADA)", + "objectID": "tables/efficacy/lgrt02.html#teal-app", + "href": "tables/efficacy/lgrt02.html#teal-app", + "title": "LGRT02", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs %>%\n filter(PARAMCD %in% c(\"BESRSPI\", \"INVET\"))\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_logistic(\n label = \"Logistic Regression\",\n dataname = \"ADRS\",\n arm_var = choices_selected(\n choices = variable_choices(ADRS, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n choices = value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n selected = \"BESRSPI\"\n ),\n cov_var = choices_selected(\n choices = c(\"SEX\", \"AGE\", \"BMRKR1\", \"BMRKR2\"),\n selected = \"SEX\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs %>%\n filter(PARAMCD %in% c(\"BESRSPI\", \"INVET\"))\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_logistic(\n label = \"Logistic Regression\",\n dataname = \"ADRS\",\n arm_var = choices_selected(\n choices = variable_choices(ADRS, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n choices = value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n selected = \"BESRSPI\"\n ),\n cov_var = choices_selected(\n choices = c(\"SEX\", \"AGE\", \"BMRKR1\", \"BMRKR2\"),\n selected = \"SEX\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "ADA", - "ADAT02" + "Efficacy", + "LGRT02" ] }, { - "objectID": "tables/ADA/adat02.html#reproducibility", - "href": "tables/ADA/adat02.html#reproducibility", - "title": "ADAT02", + "objectID": "tables/efficacy/lgrt02.html#reproducibility", + "href": "tables/efficacy/lgrt02.html#reproducibility", + "title": "LGRT02", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:05:11 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 17:59:36 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n abind 1.4-8 2024-09-12 [1] RSPM\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n car 3.1-3 2024-09-27 [1] RSPM\n carData 3.0-5 2022-01-06 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n Formula 1.2-5 2023-02-24 [1] RSPM\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "ADA", - "ADAT02" + "Efficacy", + "LGRT02" ] }, { - "objectID": "tables/ADA/adat04b.html#output", - "href": "tables/ADA/adat04b.html#output", - "title": "ADAT04B", + "objectID": "tables/efficacy/ttet01.html#output", + "href": "tables/efficacy/ttet01.html#output", + "title": "TTET01", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Layout for Baseline Prevalence of NAbs\nlyt_bl <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = custom_column_split_fun\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(\"ADABLPFL\", \"PADABLPFL\"),\n .stats = \"count\",\n var_labels = \"Baseline Prevalence of NAbs\",\n show_labels = \"visible\",\n table_names = \"t1\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"PNABBLFL\",\n table_names = \"t2\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"NNABBLFL\",\n .stats = \"count\",\n table_names = \"t3\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n )\n\n# Layout for incidence of NAbs\nlyt_pb <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n \"ACTARM\",\n split_fun = custom_column_split_fun\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = c(\"ADPBLPFL\", \"ADAPFL\"),\n .stats = \"count\",\n var_labels = \"Incidence of NAbs\",\n show_labels = \"visible\",\n table_names = \"tb1\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"NABPFL\",\n table_names = \"tb2\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n ) %>%\n count_patients_with_flags(\n \"USUBJID\",\n flag_variables = \"NABNFL\",\n .stats = \"count\",\n table_names = \"tb3\",\n .indent_mods = 1L,\n show_labels = \"hidden\"\n )\n\nresult_1 <- build_table(lyt_bl, df = adab_b, alt_counts_df = adsl)\nresult_2 <- build_table(lyt_pb, df = adab_pb, alt_counts_df = adsl)\n\n# Combine tables.\nresult <- rbind(result_1, result_2)\n\nmain_title(result) <- paste(\n \"Baseline Prevalence and Incidence of Neutralizing Antibodies (NAbs)\"\n)\nsubtitles(result) <- paste(\"Protocol:\", unique(adab$PARCAT1)[1])\n\nmain_footer(result) <- \"NAb = Neutralizing Antibodies ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies) Baseline evaluable patient for ADA = a patient with an ADA assay result from a baseline sample(s) Baseline evaluable patient for NAb = a patient with a NAb assay result from a baseline sample(s) Post-baseline evaluable patient for ADA = a patient with an ADA assay result from at least one post-baseline sample Post-baseline evaluable patient for NAb = a patient with a NAb assay result from at least one post-baseline sample Number of patients positive for ADA = the number of post-baseline evaluable patients for ADA determined to have Treatment Emergent ADA during the study period.\nNumber of patients positive for NAb = the number (and percentage) of post-baseline evaluable patients for ADA determined to have at least one positive post-baseline NAb result during the study period. Number of patients negative for NAb = number of post-baseline evaluable patients with all negative post-baseline NAb results.\"\n\nresult\n\nBaseline Prevalence and Incidence of Neutralizing Antibodies (NAbs)\nProtocol: A: Drug X Antibody\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X C: Combination All Drug X B: Placebo All Patients\n (N=134) (N=132) (N=266) (N=134) (N=400) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nBaseline Prevalence of NAbs \n Baseline evaluable patients for ADA 134 132 266 0 266 \n Patients with a positive ADA sample at baseline 63 64 127 0 127 \n Patients with a positive NAb sample at baseline 0 0 0 0 0 \n Patients with no positive NAb sample at baseline 0 0 0 0 0 \nIncidence of NAbs \n Post-baseline evaluable patients for ADA 134 132 266 0 266 \n Patients positive for ADA 66 59 125 0 125 \n Patients positive for NAb 0 0 0 0 0 \n Patients negative for NAb 134 132 266 0 266 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nNAb = Neutralizing Antibodies ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies) Baseline evaluable patient for ADA = a patient with an ADA assay result from a baseline sample(s) Baseline evaluable patient for NAb = a patient with a NAb assay result from a baseline sample(s) Post-baseline evaluable patient for ADA = a patient with an ADA assay result from at least one post-baseline sample Post-baseline evaluable patient for NAb = a patient with a NAb assay result from at least one post-baseline sample Number of patients positive for ADA = the number of post-baseline evaluable patients for ADA determined to have Treatment Emergent ADA during the study period.\nNumber of patients positive for NAb = the number (and percentage) of post-baseline evaluable patients for ADA determined to have at least one positive post-baseline NAb result during the study period. Number of patients negative for NAb = number of post-baseline evaluable patients with all negative post-baseline NAb results.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(tibble)\n\nadsl <- random.cdisc.data::cadsl\nadab <- random.cdisc.data::cadab\n\n# Order needed for the columns is c(1, 3, 4, 2, 5)\nreorder_facets <- function(splret, spl, fulldf, ...) {\n ord <- c(1, 3, 4, 2, 5)\n make_split_result(\n splret$values[ord],\n splret$datasplit[ord],\n splret$labels[ord]\n )\n}\n\n# Create a custom split function for adding the new columns (facets) and sorting them\ncustom_column_split_fun <- make_split_fun(\n post = list(\n add_combo_facet(\"all_X\",\n label = \"All Drug X\",\n levels = c(\"A: Drug X\", \"C: Combination\")\n ),\n add_combo_facet(\"all_pt\",\n label = \"All Patients\",\n levels = c(\"A: Drug X\", \"B: Placebo\", \"C: Combination\")\n ),\n reorder_facets\n )\n)\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\n\n# Baseline Pts\nadab_b <- df_explicit_na(adab) %>%\n filter(\n ABLFL == \"Y\",\n ADABLPFL == \"Y\",\n PARAM %in% c(\n \"ADA interpreted per sample result\",\n \"NAB interpreted per sample result\"\n )\n ) %>%\n select(-PARAMCD, -AVALC, -AVALU) %>%\n tidyr::pivot_wider(\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n mutate(\n across(\n any_of(c(\n \"ADA interpreted per sample result\",\n \"NAB interpreted per sample result\"\n )),\n as.logical\n )\n ) %>%\n mutate(\n ADABLPFL = ADABLPFL == \"Y\",\n PADABLPFL = if (exists(\"ADA interpreted per sample result\", where = .)) {\n `ADA interpreted per sample result` == \"TRUE\"\n } else {\n FALSE\n },\n PNABBLFL = if (exists(\"NAB interpreted per sample result\", where = .)) {\n `NAB interpreted per sample result` == \"TRUE\"\n } else {\n FALSE\n },\n NNABBLFL = if (exists(\"NAB interpreted per sample result\", where = .)) {\n `NAB interpreted per sample result` == \"FALSE\"\n } else {\n FALSE\n }\n ) %>%\n var_relabel(\n ADABLPFL = \"Baseline evaluable patients for ADA\",\n PADABLPFL = \"Patients with a positive ADA sample at baseline\",\n PNABBLFL = \"Patients with a positive NAb sample at baseline\",\n NNABBLFL = \"Patients with no positive NAb sample at baseline\"\n )\n\n# Post-Baseline Evaluable Pts\nadab_pb_ada <- df_explicit_na(adab) %>%\n filter(ADPBLPFL == \"Y\") %>%\n select(STUDYID, USUBJID, ARM, ACTARM, ADPBLPFL) %>%\n mutate(ADPBLPFL = ADPBLPFL == \"Y\") %>%\n distinct()\n\n# Post-Baseline ADA Positive Pts\nadab_pb_adap <- df_explicit_na(adab) %>%\n filter(\n ABLFL != \"Y\",\n PARAM == \"ADA interpreted per sample result\",\n AVALC == \"POSITIVE\"\n ) %>%\n mutate(ADAPFL = AVALC == \"POSITIVE\") %>%\n select(STUDYID, USUBJID, ARM, ACTARM, ADAPFL) %>%\n distinct()\n\n# Post-Baseline NAb Positive Pts\nadab_pb_nabp <- df_explicit_na(adab) %>%\n filter(\n ABLFL != \"Y\",\n PARAM == \"NAb interpreted per sample result\",\n AVALC == \"POSITIVE\"\n ) %>%\n mutate(NABPFL = AVALC == \"POSITIVE\") %>%\n select(STUDYID, USUBJID, ARM, ACTARM, NABPFL) %>%\n distinct()\n\n# Post-Baseline NAb Negative Pts\nadab_pb_nabn <- df_explicit_na(adab) %>%\n filter(\n ABLFL != \"Y\",\n PARAM == \"NAb interpreted per sample result\",\n AVALC == \"NEGATIVE\"\n ) %>%\n rename(NABNFL = AVALC) %>%\n select(STUDYID, USUBJID, ARM, ACTARM, NABNFL) %>%\n distinct()\n\nmergecol <- c(\"STUDYID\", \"USUBJID\", \"ARM\", \"ACTARM\")\n\nadab_pb <- left_join(adab_pb_ada, adab_pb_adap, by = mergecol) %>%\n left_join(adab_pb_nabp, by = mergecol) %>%\n mutate(\n NABNFL = ifelse(is.na(NABPFL), \"TRUE\", \"FALSE\"),\n NABNFL = NABNFL == \"TRUE\"\n ) %>%\n var_relabel(\n ADPBLPFL = \"Post-baseline evaluable patients for ADA\",\n ADAPFL = \"Patients positive for ADA\",\n NABPFL = \"Patients positive for NAb\",\n NABNFL = \"Patients negative for NAb\"\n )", + "text": "Output\n\n\nStandard Table\nTable Selecting Sections to Display\nTable Modifying Analysis Details like Conf. Type, Ties, Alpha Level\nTable with Stratified Analysis\nTable Modifying Time Point for the “XX Months” Analysis\nTable Requesting > 1 p-value\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\n var = \"ARM\", ref_group = \"A: Drug X\"\n ) %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients with event (%)\")\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Patients with event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 1L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients without event (%)\"),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Time to Event (Months)\",\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = c(\"Unstratified Analysis\"),\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"coxph_unstratified\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months\",\n time_point = c(6, 12),\n is_event = \"is_event\",\n method = \"both\",\n control = control_surv_timepoint()\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table()\n\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\nPatients with event (%) 58 (43.3%) 58 (43.3%) 69 (52.3%) \n Earliest contributing event \n Death 58 58 69 \nPatients without event (%) 76 (56.7%) 76 (56.7%) 63 (47.7%) \nTime to Event (Months) \n Median NA NA 9.4 \n 95% CI (9.3, NA) (9.4, NA) (7.6, NA) \n 25% and 75%-ile 5.6, NA 5.6, NA 5.0, NA \n Range 0.5 to 16.4 {1} 0.9 to 16.3 {1} 0.5 to 16.3 {1}\nUnstratified Analysis \n p-value (log-rank) 0.9998 0.1541 \n Hazard Ratio 1.00 1.29 \n 95% CI (0.69, 1.44) (0.91, 1.83) \n6 Months \n Patients remaining at risk 97 97 90 \n Event Free Rate (%) 72.39 72.39 68.18 \n 95% CI (64.82, 79.96) (64.82, 79.96) (60.24, 76.13) \n Difference in Event Free Rate 0.00 -4.21 \n 95% CI (-10.71, 10.71) (-15.18, 6.77) \n p-value (Z-test) 1.0000 0.4525 \n12 Months \n Patients remaining at risk 49 48 37 \n Event Free Rate (%) 56.72 56.72 47.73 \n 95% CI (48.33, 65.11) (48.33, 65.11) (39.21, 56.25) \n Difference in Event Free Rate 0.00 -8.99 \n 95% CI (-11.86, 11.86) (-20.95, 2.97) \n p-value (Z-test) 1.0000 0.1406 \n—————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observation: range maximum\n—————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\", ref_group = \"A: Drug X\") %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients with event (%)\")\n ) %>%\n analyze_vars(\n \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients without event (%)\"),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Time to Event (Months)\",\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = c(\"Unstratified Analysis\"),\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"coxph_unstratified\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months\",\n is_event = \"is_event\",\n method = \"surv\",\n time_point = c(6, 12)\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————————————————\nPatients with event (%) 58 (43.3%) 58 (43.3%) 69 (52.3%) \nPatients without event (%) 76 (56.7%) 76 (56.7%) 63 (47.7%) \nTime to Event (Months) \n Median NA NA 9.4 \n 95% CI (9.3, NA) (9.4, NA) (7.6, NA) \n 25% and 75%-ile 5.6, NA 5.6, NA 5.0, NA \n Range 0.5 to 16.4 {1} 0.9 to 16.3 {1} 0.5 to 16.3 {1}\nUnstratified Analysis \n p-value (log-rank) 0.9998 0.1541 \n Hazard Ratio 1.00 1.29 \n 95% CI (0.69, 1.44) (0.91, 1.83) \n6 Months \n Patients remaining at risk 97 97 90 \n Event Free Rate (%) 72.39 72.39 68.18 \n 95% CI (64.82, 79.96) (64.82, 79.96) (60.24, 76.13) \n12 Months \n Patients remaining at risk 49 48 37 \n Event Free Rate (%) 56.72 56.72 47.73 \n 95% CI (48.33, 65.11) (48.33, 65.11) (39.21, 56.25) \n——————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observation: range maximum\n——————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\", ref_group = \"A: Drug X\") %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients with event (%)\")\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Patients with event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 1L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients without event (%)\"),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Time to Event (Months)\",\n is_event = \"is_event\",\n control = control_surv_time(conf_level = 0.9, conf_type = \"log-log\"),\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = c(\"Unstratified Analysis\"),\n control = control_coxph(\n pval_method = \"log-rank\",\n conf_level = 0.95,\n ties = \"efron\"\n ),\n table_names = \"coxph_unstratified\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months\",\n is_event = \"is_event\",\n time_point = 12,\n control = control_surv_timepoint(conf_level = 0.9, conf_type = \"log-log\"),\n table_names_suffix = \"_log_log\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n show_labels = \"hidden\",\n is_event = \"is_event\",\n time_point = 12,\n method = \"surv_diff\",\n control = control_surv_timepoint(conf_level = 0.975),\n table_names_suffix = \"_975_pct\"\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table()\n\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————\nPatients with event (%) 58 (43.3%) 58 (43.3%) 69 (52.3%) \n Earliest contributing event \n Death 58 58 69 \nPatients without event (%) 76 (56.7%) 76 (56.7%) 63 (47.7%) \nTime to Event (Months) \n Median NA NA 9.4 \n 90% CI (9.6, NA) (9.6, NA) (7.7, NA) \n 25% and 75%-ile 5.6, NA 5.6, NA 5.0, NA \n Range 0.5 to 16.4 {1} 0.9 to 16.3 {1} 0.5 to 16.3 {1}\nUnstratified Analysis \n p-value (log-rank) 0.9998 0.1541 \n Hazard Ratio 1.00 1.29 \n 95% CI (0.69, 1.44) (0.91, 1.83) \n12 Months \n Patients remaining at risk 49 48 37 \n Event Free Rate (%) 56.72 56.72 47.73 \n 90% CI (49.37, 63.41) (49.37, 63.41) (40.42, 54.66) \nDifference in Event Free Rate 0.00 -8.99 \n 97.5% CI (-13.57, 13.57) (-22.66, 4.69) \n p-value (Z-test) 1.0000 0.1406 \n———————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observation: range maximum\n———————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\", ref_group = \"A: Drug X\") %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients with event (%)\")\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Patients with event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 1L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients without event (%)\"),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Time to Event (Months)\",\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = \"Unstratified Analysis\",\n table_names = \"coxph_unstratified\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = \"Stratified Analysis\",\n strata = \"SEX\",\n table_names = \"coxph_stratified\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months\",\n is_event = \"is_event\",\n method = \"both\",\n time_point = 12\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table()\n\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\nPatients with event (%) 58 (43.3%) 58 (43.3%) 69 (52.3%) \n Earliest contributing event \n Death 58 58 69 \nPatients without event (%) 76 (56.7%) 76 (56.7%) 63 (47.7%) \nTime to Event (Months) \n Median NA NA 9.4 \n 95% CI (9.3, NA) (9.4, NA) (7.6, NA) \n 25% and 75%-ile 5.6, NA 5.6, NA 5.0, NA \n Range 0.5 to 16.4 {1} 0.9 to 16.3 {1} 0.5 to 16.3 {1}\nUnstratified Analysis \n p-value (log-rank) 0.9998 0.1541 \n Hazard Ratio 1.00 1.29 \n 95% CI (0.69, 1.44) (0.91, 1.83) \nStratified Analysis \n p-value (log-rank) 0.9978 0.1733 \n Hazard Ratio 1.00 1.27 \n 95% CI (0.69, 1.44) (0.90, 1.81) \n12 Months \n Patients remaining at risk 49 48 37 \n Event Free Rate (%) 56.72 56.72 47.73 \n 95% CI (48.33, 65.11) (48.33, 65.11) (39.21, 56.25) \n Difference in Event Free Rate 0.00 -8.99 \n 95% CI (-11.86, 11.86) (-20.95, 2.97) \n p-value (Z-test) 1.0000 0.1406 \n—————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observation: range maximum\n—————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\", ref_group = \"A: Drug X\") %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients with event (%)\")\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Patients with event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 1L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients without event (%)\"),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Time to Event (Months)\",\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = c(\"Unstratified Analysis\"),\n control = control_coxph(pval_method = \"log-rank\"),\n table_names = \"coxph_unstratified\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months\",\n is_event = \"is_event\",\n time_point = 6,\n method = \"both\"\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table()\n\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\nPatients with event (%) 58 (43.3%) 58 (43.3%) 69 (52.3%) \n Earliest contributing event \n Death 58 58 69 \nPatients without event (%) 76 (56.7%) 76 (56.7%) 63 (47.7%) \nTime to Event (Months) \n Median NA NA 9.4 \n 95% CI (9.3, NA) (9.4, NA) (7.6, NA) \n 25% and 75%-ile 5.6, NA 5.6, NA 5.0, NA \n Range 0.5 to 16.4 {1} 0.9 to 16.3 {1} 0.5 to 16.3 {1}\nUnstratified Analysis \n p-value (log-rank) 0.9998 0.1541 \n Hazard Ratio 1.00 1.29 \n 95% CI (0.69, 1.44) (0.91, 1.83) \n6 Months \n Patients remaining at risk 97 97 90 \n Event Free Rate (%) 72.39 72.39 68.18 \n 95% CI (64.82, 79.96) (64.82, 79.96) (60.24, 76.13) \n Difference in Event Free Rate 0.00 -4.21 \n 95% CI (-10.71, 10.71) (-15.18, 6.77) \n p-value (Z-test) 1.0000 0.4525 \n—————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observation: range maximum\n—————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\", ref_group = \"A: Drug X\") %>%\n analyze_vars(\n vars = \"is_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients with event (%)\")\n ) %>%\n split_rows_by(\n \"EVNT1\",\n split_label = \"Earliest contributing event\",\n split_fun = keep_split_levels(\"Patients with event (%)\"),\n label_pos = \"visible\",\n child_labels = \"hidden\",\n indent_mod = 1L,\n ) %>%\n analyze(\"EVNTDESC\") %>%\n analyze_vars(\n vars = \"is_not_event\",\n .stats = \"count_fraction\",\n .labels = c(count_fraction = \"Patients without event (%)\"),\n nested = FALSE,\n show_labels = \"hidden\"\n ) %>%\n surv_time(\n vars = \"AVAL\",\n var_labels = \"Time to Event (Months)\",\n is_event = \"is_event\",\n table_names = \"time_to_event\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n var_labels = c(\"Unstratified Analysis\"),\n control = control_coxph(pval_method = \"log-rank\"),\n .stats = \"pvalue\",\n table_names = \"coxph_unstratified\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n show_labels = \"hidden\",\n control = control_coxph(pval_method = \"wald\"),\n .stats = \"pvalue\",\n .indent_mods = c(pvalue = 1L),\n table_names = \"coxph_wald_pvalue\"\n ) %>%\n coxph_pairwise(\n vars = \"AVAL\",\n is_event = \"is_event\",\n show_labels = \"hidden\",\n control = control_coxph(pval_method = \"likelihood\"),\n .indent_mods = c(pvalue = 1L, hr = 2L, hr_ci = 3L),\n table_names = \"coxph_likelihood_pvalue\"\n ) %>%\n surv_timepoint(\n vars = \"AVAL\",\n var_labels = \"Months\",\n is_event = \"is_event\",\n time_point = 12,\n method = \"both\"\n )\n\nresult <- build_table(lyt, df = adtte_f, alt_counts_df = adsl) %>%\n prune_table()\n\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\nPatients with event (%) 58 (43.3%) 58 (43.3%) 69 (52.3%) \n Earliest contributing event \n Death 58 58 69 \nPatients without event (%) 76 (56.7%) 76 (56.7%) 63 (47.7%) \nTime to Event (Months) \n Median NA NA 9.4 \n 95% CI (9.3, NA) (9.4, NA) (7.6, NA) \n 25% and 75%-ile 5.6, NA 5.6, NA 5.0, NA \n Range 0.5 to 16.4 {1} 0.9 to 16.3 {1} 0.5 to 16.3 {1}\nUnstratified Analysis \n p-value (log-rank) 0.9998 0.1541 \n p-value (wald) 0.9998 0.1552 \n p-value (likelihood) 0.9998 0.1543 \n Hazard Ratio 1.00 1.29 \n 95% CI (0.69, 1.44) (0.91, 1.83) \n12 Months \n Patients remaining at risk 49 48 37 \n Event Free Rate (%) 56.72 56.72 47.73 \n 95% CI (48.33, 65.11) (48.33, 65.11) (39.21, 56.25) \n Difference in Event Free Rate 0.00 -8.99 \n 95% CI (-11.86, 11.86) (-20.95, 2.97) \n p-value (Z-test) 1.0000 0.1406 \n—————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Censored observation: range maximum\n—————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadtte <- random.cdisc.data::cadtte\n\n# Ensure that character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadtte <- df_explicit_na(adtte)\n\nadtte_f <- adtte %>%\n dplyr::filter(PARAMCD == \"OS\") %>%\n dplyr::mutate(\n AVAL = day2month(AVAL),\n is_event = CNSR == 0,\n is_not_event = CNSR == 1,\n EVNT1 = factor(\n case_when(\n is_event == TRUE ~ \"Patients with event (%)\",\n is_event == FALSE ~ \"Patients without event (%)\"\n ),\n levels = c(\"Patients with event (%)\", \"Patients without event (%)\")\n ),\n EVNTDESC = factor(EVNTDESC)\n )", "crumbs": [ "Tables", - "ADA", - "ADAT04B" + "Efficacy", + "TTET01" ] }, { - "objectID": "tables/ADA/adat04b.html#reproducibility", - "href": "tables/ADA/adat04b.html#reproducibility", - "title": "ADAT04B", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:05:25 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/efficacy/ttet01.html#teal-app", + "href": "tables/efficacy/ttet01.html#teal-app", + "title": "TTET01", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADTTE <- df_explicit_na(ADTTE)\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To Event Table\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"),\n \"OS\"\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n \"SEX\"\n ),\n time_points = choices_selected(c(6, 8), 6),\n event_desc_var = choices_selected(\n variable_choices(ADTTE, \"EVNTDESC\"),\n \"EVNTDESC\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADTTE <- random.cdisc.data::cadtte\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADTTE <- df_explicit_na(ADTTE)\n})\ndatanames <- c(\"ADSL\", \"ADTTE\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADTTE <- data[[\"ADTTE\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_tte(\n label = \"Time To Event Table\",\n dataname = \"ADTTE\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADTTE, \"PARAMCD\", \"PARAM\"),\n \"OS\"\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"SEX\", \"BMRKR2\")),\n \"SEX\"\n ),\n time_points = choices_selected(c(6, 8), 6),\n event_desc_var = choices_selected(\n variable_choices(ADTTE, \"EVNTDESC\"),\n \"EVNTDESC\",\n fixed = TRUE\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "ADA", - "ADAT04B" + "Efficacy", + "TTET01" ] }, { - "objectID": "tables/ADA/adat03.html#output", - "href": "tables/ADA/adat03.html#output", - "title": "ADAT03", - "section": "Output", - "text": "Output\n\n\nStandard Table (μg/mL)\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# parameters in columns\nadat03_stats <- c(\"n\", \"mean\", \"sd\", \"median\", \"min\", \"max\", \"cv\", \"geom_mean\", \"count_fraction\")\nadat03_lbls <- c(\n n = \"Total Number\\nof Measurable\\n Samples\",\n mean = \"Mean\",\n sd = \"SD\",\n median = \"Median\",\n min = \"Minimum\",\n max = \"Maximum\",\n cv = \"CV (%)\",\n geom_mean = \"Geometric Mean\",\n count_fraction = paste0(\"Samples with\\nConcentration\\n≤ \", max_conc, \"μg/mL\")\n)\nadat03_fmts <- c(\n n = \"xx.\",\n mean = format_sigfig(3),\n sd = format_sigfig(3),\n median = format_sigfig(3),\n min = format_sigfig(3),\n max = format_sigfig(3),\n cv = \"xx.x\",\n geom_mean = format_sigfig(3),\n count_fraction = format_count_fraction\n)\n\nafun_list <- lapply(\n 1:9,\n function(i) make_afun(s_summary, .stats = adat03_stats[i], .formats = adat03_fmts[i], .labels = \"Overall\")\n)\n\n# lyt creation\nlyt <- basic_table() %>%\n split_rows_by(\n var = \"ARM\",\n label_pos = \"topleft\",\n split_label = \"Treatment Group\",\n split_fun = drop_split_levels,\n section_div = \"\"\n ) %>%\n add_rowcounts() %>%\n split_rows_by(\n var = \"VISIT\",\n label_pos = \"topleft\",\n split_label = \"Visit\",\n split_fun = drop_split_levels,\n child_labels = \"hidden\"\n ) %>%\n analyze_vars_in_cols(\n vars = c(rep(\"AVAL\", 8), \"AVAL_LT\"),\n .stats = adat03_stats,\n .labels = adat03_lbls,\n .formats = adat03_fmts\n ) %>%\n analyze_colvars(\n afun_list,\n nested = FALSE,\n extra_args = list(\".labels\" = \"Overall\")\n )\n\nresult <- build_table(lyt, anl, alt_counts_df = adsl)\n\nmain_title(result) <- paste(\n \"Summary of Serum Concentrations (μg/mL) at Timepoints Where ADA Samples Were Collected and Analyzed\\n\n Protocol:\", unique(adab$PARCAT1)[1]\n)\nsubtitles(result) <- paste(\"Analyte:\", unique(adab$PARAMCD)[1])\nfnotes_at_path(result, rowpath = NULL, colpath = c(\"multivars\", \"AVAL\")) <- \"Refers to the total no. of measurable ADA samples that have a corresponding measurable drug concentration sample (i.e. results with valid numeric values and LTRs). LTR results on post-dose samples are replaced by aaa µg/mL i.e. half of MQC value.\" \nfnotes_at_path(result, rowpath = NULL, colpath = c(\"multivars\", \"AVAL_LT\")) <- \"In validation, the assay was able to detect yyy ng/mL of surrogate ADA in the presence of zzz µg/mL of [drug]. BLQ = Below Limit of Quantitation, LTR = Lower than Reportable, MQC = Minimum Quantifiable Concentration, ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies). RXXXXXXX is also known as [drug]\" \n\nresult\n\nSummary of Serum Concentrations (μg/mL) at Timepoints Where ADA Samples Were Collected and Analyzed\n\n Protocol: A: Drug X Antibody\nAnalyte: R1800000\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Total Number Samples with \nTreatment Group of Measurable Concentration\n Visit Samples {1} Mean SD Median Minimum Maximum CV (%) Geometric Mean ≤ 15μg/mL {2}\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X (N=536) \n Day 1 402 0 0 0 0 0 NA NA 402 (100%) \n Day 2 134 16.2 1.63 16.2 12.6 19.9 10.0 16.1 39 (29.1%) \n\nC: Combination (N=792) \n Day 1 528 0 0 0 0 0 NA NA 528 (100%) \n Day 2 264 24.7 8.65 22.5 12.6 39.5 35.0 23.2 28 (10.6%) \n\nOverall 1328 6.54 11.0 0 0 39.5 167.5 NA 997 (75.1%) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n{1} - Refers to the total no. of measurable ADA samples that have a corresponding measurable drug concentration sample (i.e. results with valid numeric values and LTRs). LTR results on post-dose samples are replaced by aaa µg/mL i.e. half of MQC value.\n{2} - In validation, the assay was able to detect yyy ng/mL of surrogate ADA in the presence of zzz µg/mL of [drug]. BLQ = Below Limit of Quantitation, LTR = Lower than Reportable, MQC = Minimum Quantifiable Concentration, ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies). RXXXXXXX is also known as [drug]\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadab <- random.cdisc.data::cadab\nadpc <- random.cdisc.data::cadpc\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadab <- df_explicit_na(adab)\nadpc <- df_explicit_na(adpc)\n\n# Adjust zzz parameter\nmax_conc <- 15\n\nadpc <- adpc %>% select(USUBJID, NFRLT, AVAL, AVALU, AVALCAT1)\n\nanl <- adab %>%\n filter(., PARAM == \"ADA interpreted per sample result\") %>%\n select(-AVAL, AVALC, AVALU)\n\nanl <- merge(anl, adpc, by = c(\"USUBJID\", \"NFRLT\")) %>%\n mutate(AVAL_LT = ifelse(AVAL <= max_conc, TRUE, FALSE))", + "objectID": "tables/efficacy/ttet01.html#reproducibility", + "href": "tables/efficacy/ttet01.html#reproducibility", + "title": "TTET01", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:00:21 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "ADA", - "ADAT03" + "Efficacy", + "TTET01" ] }, { - "objectID": "tables/ADA/adat03.html#reproducibility", - "href": "tables/ADA/adat03.html#reproducibility", - "title": "ADAT03", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:05:39 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/efficacy/rspt01.html", + "href": "tables/efficacy/rspt01.html", + "title": "RSPT01", + "section": "", + "text": "Data pre-processing is done to label the analysis value (AVALC) so as to improve the readability of the output table. In addition, the response is binary defined (is_rsp, responder yes/no) depending on the analysis value. Finally, for comparison purposes, the reference arm is specified.\nCode# Pre-Processing\n\nanl <- anl_adsl %>%\n left_join(anl_adrs, by = c(\"STUDYID\", \"USUBJID\")) %>%\n mutate(rsp_lab = d_onco_rsp_label(AVALC)) %>%\n mutate(is_rsp = AVALC %in% c(\"CR\", \"PR\")) %>%\n mutate(ARM = relevel(ARM, ref = \"A: Drug X\")) %>%\n var_relabel(ARM = \"Description of Planned Arm\")", "crumbs": [ "Tables", - "ADA", - "ADAT03" + "Efficacy", + "RSPT01" ] }, { - "objectID": "tables/ECG/egt03.html#output", - "href": "tables/ECG/egt03.html#output", - "title": "EGT03", + "objectID": "tables/efficacy/rspt01.html#output", + "href": "tables/efficacy/rspt01.html#output", + "title": "RSPT01", "section": "Output", - "text": "Output\n\n\nTable of Baseline Versus Minimum Post-Baseline\nTable of Baseline Versus Maximum Post-Baseline\nData Setup\n\n\n\nFor the EGT03 template, data imputation should be avoided, and missing data explicit and accounted for, so the contingency table sum adds up to the group N. For illustration purposes, missing data are added to the example dataset.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeset.seed(123, kind = \"Mersenne-Twister\")\n\nadeg_f_pbmin$BNRIND <- factor(\n adeg_f_pbmin$BNRIND,\n levels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\"),\n labels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\")\n)\nadeg_f_pbmin$ANRIND <- factor(\n adeg_f_pbmin$ANRIND,\n levels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\"),\n labels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\")\n)\n\nadeg_f_pbmin$BNRIND[sample(seq_len(nrow(adeg_f_pbmin)), size = 5)] <- \"Missing\"\nadeg_f_pbmin$ANRIND[sample(seq_len(nrow(adeg_f_pbmin)), size = 5)] <- \"Missing\"\n\nattr(adeg_f_pbmin$ANRIND, \"label\") <- \"Analysis Reference Range Indicator\"\nattr(adeg_f_pbmin$BNRIND, \"label\") <- \"Baseline Reference Range Indicator\"\n\n# Temporary solution for overarching column\nadeg_f_pbmin <- adeg_f_pbmin %>% mutate(min_label = \"Minimum Post-Baseline Assessment\")\n\n# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table() %>%\n split_cols_by(\"min_label\") %>%\n split_cols_by(\"ANRIND\") %>%\n split_rows_by(\"ARMCD\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adeg_f_pbmin$ARMCD)) %>%\n add_rowcounts() %>%\n analyze_vars(\"BNRIND\", denom = \"N_row\", .stats = \"count_fraction\") %>%\n append_varlabels(adeg_f_pbmin, c(\"BNRIND\"), indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adeg_f_pbmin\n)\n\nresult\n\nPlanned Arm Code Minimum Post-Baseline Assessment \n Baseline Reference Range Indicator LOW NORMAL HIGH Missing \n————————————————————————————————————————————————————————————————————————————————\nARM A (N=134) \n LOW 1 (0.7%) 5 (3.7%) 0 0 \n NORMAL 36 (26.9%) 83 (61.9%) 0 1 (0.7%)\n HIGH 2 (1.5%) 4 (3%) 0 0 \n Missing 1 (0.7%) 0 0 1 (0.7%)\nARM B (N=134) \n LOW 1 (0.7%) 9 (6.7%) 0 0 \n NORMAL 40 (29.9%) 75 (56%) 0 2 (1.5%)\n HIGH 1 (0.7%) 4 (3%) 0 0 \n Missing 1 (0.7%) 1 (0.7%) 0 0 \nARM C (N=132) \n LOW 4 (3%) 11 (8.3%) 0 0 \n NORMAL 31 (23.5%) 75 (56.8%) 0 0 \n HIGH 1 (0.8%) 8 (6.1%) 0 1 (0.8%)\n Missing 1 (0.8%) 0 0 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nFor the EGT03 template, data imputation should be avoided, and missing data explicit and accounted for, so the contingency table sum adds up to the group N. For illustration purpose, missing data are added to the example dataset.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeset.seed(123, kind = \"Mersenne-Twister\")\n\nadeg_f_pbmax$BNRIND <- factor(\n adeg_f_pbmax$BNRIND,\n levels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\"),\n labels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\")\n)\nadeg_f_pbmax$ANRIND <- factor(\n adeg_f_pbmax$ANRIND,\n levels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\"),\n labels = c(\"LOW\", \"NORMAL\", \"HIGH\", \"Missing\")\n)\n\nadeg_f_pbmax$BNRIND[sample(seq_len(nrow(adeg_f_pbmax)), size = 5)] <- \"Missing\"\nadeg_f_pbmax$ANRIND[sample(seq_len(nrow(adeg_f_pbmax)), size = 5)] <- \"Missing\"\n\nattr(adeg_f_pbmax$ANRIND, \"label\") <- \"Analysis Reference Range Indicator\"\nattr(adeg_f_pbmax$BNRIND, \"label\") <- \"Baseline Reference Range Indicator\"\n\n# Temporary solution for overarching column\nadeg_f_pbmax <- adeg_f_pbmax %>% mutate(max_label = \"Maximum Post-Baseline Assessment\")\n\n# Define the split function\nsplit_fun <- drop_split_levels\n\nlyt <- basic_table() %>%\n split_cols_by(\"max_label\") %>%\n split_cols_by(\"ANRIND\") %>%\n split_rows_by(\"ARMCD\", split_fun = split_fun, label_pos = \"topleft\", split_label = obj_label(adeg_f_pbmax$ARMCD)) %>%\n add_rowcounts() %>%\n analyze_vars(\"BNRIND\", denom = \"N_row\", .stats = \"count_fraction\") %>%\n append_varlabels(adeg_f_pbmax, c(\"BNRIND\"), indent = 1L)\n\nresult <- build_table(\n lyt = lyt,\n df = adeg_f_pbmax\n)\n\nresult\n\nPlanned Arm Code Maximum Post-Baseline Assessment \n Baseline Reference Range Indicator LOW NORMAL HIGH Missing \n————————————————————————————————————————————————————————————————————————————————\nARM A (N=134) \n LOW 0 2 (1.5%) 4 (3%) 0 \n NORMAL 0 88 (65.7%) 31 (23.1%) 1 (0.7%)\n HIGH 0 5 (3.7%) 1 (0.7%) 0 \n Missing 0 0 1 (0.7%) 1 (0.7%)\nARM B (N=134) \n LOW 0 8 (6%) 2 (1.5%) 0 \n NORMAL 0 76 (56.7%) 39 (29.1%) 2 (1.5%)\n HIGH 0 3 (2.2%) 2 (1.5%) 0 \n Missing 0 1 (0.7%) 1 (0.7%) 0 \nARM C (N=132) \n LOW 0 12 (9.1%) 3 (2.3%) 0 \n NORMAL 0 79 (59.8%) 27 (20.5%) 0 \n HIGH 0 5 (3.8%) 4 (3%) 1 (0.8%)\n Missing 0 0 1 (0.8%) 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadeg <- random.cdisc.data::cadeg\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadeg <- df_explicit_na(adeg)\n\nadeg_labels <- var_labels(adeg)\n\nadeg_f_pbmin <- subset(\n adeg,\n PARAMCD == \"HR\" & # Heart Rate\n SAFFL == \"Y\" & # \"Safety Population Flag\"\n ONTRTFL == \"Y\" & # \"On Treatment Record Flag\"\n AVISIT == \"POST-BASELINE MINIMUM\" # \"Analysis Visit\"\n)\n\nadeg_f_pbmax <- subset(\n adeg,\n PARAMCD == \"HR\" & # Heart Rate\n SAFFL == \"Y\" & # \"Safety Population Flag\"\n ONTRTFL == \"Y\" & # \"On Treatment Record Flag\"\n AVISIT == \"POST-BASELINE MAXIMUM\" # \"Analysis Visit\"\n)\n\nvar_labels(adeg_f_pbmin) <- adeg_labels\nvar_labels(adeg_f_pbmax) <- adeg_labels", + "text": "Output\n\n\nStandard Table\nTable Selecting Sections to Display\nTable Modifying Analysis Details like Type of Confidence Interval, Alpha Level, Test Statistic\nTable with Stratified Analysis\nTable Modifying the Definition of Overall Response\nTable Defining New Sections to Display\nData Setup\n\n\n\nThe tabulation layout is built in layers for the analysis of overall response and applied to the pre-processed dataset.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt_01 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n estimate_proportion(\n vars = \"is_rsp\",\n table_names = \"est_prop\"\n ) %>%\n estimate_proportion_diff(\n vars = \"is_rsp\",\n show_labels = \"visible\",\n var_labels = \"Unstratified Analysis\",\n table_names = \"est_prop_diff\"\n ) %>%\n test_proportion_diff(\n vars = \"is_rsp\",\n table_names = \"test_prop_diff\"\n ) %>%\n estimate_odds_ratio(\n vars = \"is_rsp\",\n table_names = \"est_or\"\n ) %>%\n estimate_multinomial_response(var = \"rsp_lab\")\n\nresult <- build_table(lyt = lyt_01, df = anl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————\nResponders 100 (74.6%) 84 (62.7%) 81 (61.4%) \n95% CI (Wald, with correction) (66.9, 82.4) (54.1, 71.2) (52.7, 70.0) \nUnstratified Analysis \n Difference in Response rate (%) -11.9 -13.3 \n 95% CI (Wald, with correction) (-23.7, -0.2) (-25.1, -1.4) \n p-value (Chi-Squared Test) 0.0351 0.0204 \nOdds Ratio (95% CI) 0.57 (0.34 - 0.96) 0.54 (0.32 - 0.91)\nComplete Response (CR) 60 (44.8%) 47 (35.1%) 57 (43.2%) \n 95% CI (Wald, with correction) (35.98, 53.57) (26.62, 43.53) (34.35, 52.01) \nPartial Response (PR) 40 (29.9%) 37 (27.6%) 24 (18.2%) \n 95% CI (Wald, with correction) (21.73, 37.97) (19.67, 35.55) (11.22, 25.14) \nStable Disease (SD) 9 (6.7%) 22 (16.4%) 13 (9.8%) \n 95% CI (Wald, with correction) (2.11, 11.33) (9.77, 23.06) (4.39, 15.31) \nProgressive Disease (PD) 24 (17.9%) 16 (11.9%) 33 (25.0%) \n 95% CI (Wald, with correction) (11.05, 24.78) (6.08, 17.80) (17.23, 32.77) \nNot Evaluable (NE) 1 (0.7%) 12 (9.0%) 5 (3.8%) \n 95% CI (Wald, with correction) (0.00, 2.58) (3.75, 14.16) (0.15, 7.42) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nRemove (or add) rows of results by removing/adding the corresponding layers from the layout. For instance, the odds-ratio row is removed by simply removing the estimate_odds_ratio call:\n\nCodelyt_02 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n estimate_proportion(\n vars = \"is_rsp\",\n table_names = \"est_prop\"\n ) %>%\n estimate_proportion_diff(\n vars = \"is_rsp\",\n show_labels = \"visible\",\n var_labels = \"Unstratified Analysis\",\n table_names = \"est_prop_diff\"\n ) %>%\n test_proportion_diff(\n vars = \"is_rsp\",\n table_names = \"test_prop\"\n ) %>%\n estimate_multinomial_response(var = \"rsp_lab\")\n\nresult <- build_table(lyt = lyt_02, df = anl)\nresult\n\n A: Drug X B: Placebo C: Combination\n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————\nResponders 100 (74.6%) 84 (62.7%) 81 (61.4%) \n95% CI (Wald, with correction) (66.9, 82.4) (54.1, 71.2) (52.7, 70.0) \nUnstratified Analysis \n Difference in Response rate (%) -11.9 -13.3 \n 95% CI (Wald, with correction) (-23.7, -0.2) (-25.1, -1.4) \n p-value (Chi-Squared Test) 0.0351 0.0204 \nComplete Response (CR) 60 (44.8%) 47 (35.1%) 57 (43.2%) \n 95% CI (Wald, with correction) (35.98, 53.57) (26.62, 43.53) (34.35, 52.01)\nPartial Response (PR) 40 (29.9%) 37 (27.6%) 24 (18.2%) \n 95% CI (Wald, with correction) (21.73, 37.97) (19.67, 35.55) (11.22, 25.14)\nStable Disease (SD) 9 (6.7%) 22 (16.4%) 13 (9.8%) \n 95% CI (Wald, with correction) (2.11, 11.33) (9.77, 23.06) (4.39, 15.31) \nProgressive Disease (PD) 24 (17.9%) 16 (11.9%) 33 (25.0%) \n 95% CI (Wald, with correction) (11.05, 24.78) (6.08, 17.80) (17.23, 32.77)\nNot Evaluable (NE) 1 (0.7%) 12 (9.0%) 5 (3.8%) \n 95% CI (Wald, with correction) (0.00, 2.58) (3.75, 14.16) (0.15, 7.42) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe confidence level is controlled by the conf_level parameter to the estimation functions. Similarly, the methods for tests and confidence interval can be modified (see ?estimate_proportion_diff).\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeconf_level <- 0.90\nlyt_03 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n estimate_proportion(\n vars = \"is_rsp\",\n conf_level = conf_level,\n method = \"clopper-pearson\",\n table_names = \"est_prop\"\n ) %>%\n estimate_proportion_diff(\n vars = \"is_rsp\",\n show_labels = \"visible\",\n var_labels = \"Unstratified Analysis\",\n conf_level = conf_level,\n method = \"ha\",\n table_names = \"est_prop_diff\"\n ) %>%\n test_proportion_diff(\n vars = \"is_rsp\",\n method = \"fisher\",\n table_names = \"test_prop\"\n ) %>%\n estimate_odds_ratio(\n vars = \"is_rsp\",\n conf_level = conf_level,\n table_names = \"est_or\"\n ) %>%\n estimate_multinomial_response(\n var = \"rsp_lab\",\n conf_level = conf_level,\n method = \"clopper-pearson\"\n )\n\nresult <- build_table(lyt = lyt_03, df = anl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n————————————————————————————————————————————————————————————————————————————————————————————\nResponders 100 (74.6%) 84 (62.7%) 81 (61.4%) \n90% CI (Clopper-Pearson) (67.7, 80.7) (55.3, 69.7) (53.9, 68.5) \nUnstratified Analysis \n Difference in Response rate (%) -11.9 -13.3 \n 90% CI (Anderson-Hauck) (-21.6, -2.3) (-23.0, -3.5) \n p-value (Fisher's Exact Test) 0.0479 0.0253 \nOdds Ratio (90% CI) 0.57 (0.37 - 0.89) 0.54 (0.35 - 0.84)\nComplete Response (CR) 60 (44.8%) 47 (35.1%) 57 (43.2%) \n 90% CI (Clopper-Pearson) (37.48, 52.25) (28.22, 42.43) (35.88, 50.71) \nPartial Response (PR) 40 (29.9%) 37 (27.6%) 24 (18.2%) \n 90% CI (Clopper-Pearson) (23.36, 37.02) (21.31, 34.67) (12.87, 24.61) \nStable Disease (SD) 9 (6.7%) 22 (16.4%) 13 (9.8%) \n 90% CI (Clopper-Pearson) (3.55, 11.43) (11.38, 22.61) (5.92, 15.20) \nProgressive Disease (PD) 24 (17.9%) 16 (11.9%) 33 (25.0%) \n 90% CI (Clopper-Pearson) (12.67, 24.25) (7.63, 17.57) (18.90, 31.97) \nNot Evaluable (NE) 1 (0.7%) 12 (9.0%) 5 (3.8%) \n 90% CI (Clopper-Pearson) (0.04, 3.49) (5.25, 14.11) (1.50, 7.80) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nThe stratified analysis section can be added by defining the analyses needed with control_binary_comparison for the argument strat_analysis and identifying the stratification variables to use.\n\nCodestrata <- \"STRATA1\"\nlyt_04 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n estimate_proportion(\n vars = \"is_rsp\",\n table_names = \"est_prop\"\n ) %>%\n estimate_proportion_diff(\n vars = \"is_rsp\",\n show_labels = \"visible\",\n var_labels = \"Unstratified Analysis\",\n table_names = \"est_prop_diff\"\n ) %>%\n test_proportion_diff(\n vars = \"is_rsp\",\n table_names = \"test_prop\"\n ) %>%\n estimate_odds_ratio(\n vars = \"is_rsp\",\n table_names = \"est_or\"\n ) %>%\n estimate_proportion_diff(\n vars = \"is_rsp\",\n show_labels = \"visible\",\n var_labels = \"Stratified Analysis\",\n method = \"cmh\",\n variables = list(strata = strata),\n table_names = \"est_prop_diff_strat\"\n ) %>%\n test_proportion_diff(\n vars = \"is_rsp\",\n method = \"cmh\",\n variables = list(strata = strata),\n table_names = \"test_prop_strat\"\n ) %>%\n estimate_odds_ratio(\n vars = \"is_rsp\",\n variables = list(strata = strata, arm = \"ARM\"),\n table_names = \"est_or_strat\"\n ) %>%\n estimate_multinomial_response(var = \"rsp_lab\")\n\nresult <- build_table(lyt = lyt_04, df = anl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————\nResponders 100 (74.6%) 84 (62.7%) 81 (61.4%) \n95% CI (Wald, with correction) (66.9, 82.4) (54.1, 71.2) (52.7, 70.0) \nUnstratified Analysis \n Difference in Response rate (%) -11.9 -13.3 \n 95% CI (Wald, with correction) (-23.7, -0.2) (-25.1, -1.4) \n p-value (Chi-Squared Test) 0.0351 0.0204 \nOdds Ratio (95% CI) 0.57 (0.34 - 0.96) 0.54 (0.32 - 0.91)\nStratified Analysis \n Difference in Response rate (%) -11.9 -13.5 \n 95% CI (CMH, without correction) (-22.7, -1.0) (-24.5, -2.5) \n p-value (Cochran-Mantel-Haenszel Test) 0.0366 0.0180 \nOdds Ratio (95% CI) 0.57 (0.34 - 0.96) 0.54 (0.32 - 0.90)\nComplete Response (CR) 60 (44.8%) 47 (35.1%) 57 (43.2%) \n 95% CI (Wald, with correction) (35.98, 53.57) (26.62, 43.53) (34.35, 52.01) \nPartial Response (PR) 40 (29.9%) 37 (27.6%) 24 (18.2%) \n 95% CI (Wald, with correction) (21.73, 37.97) (19.67, 35.55) (11.22, 25.14) \nStable Disease (SD) 9 (6.7%) 22 (16.4%) 13 (9.8%) \n 95% CI (Wald, with correction) (2.11, 11.33) (9.77, 23.06) (4.39, 15.31) \nProgressive Disease (PD) 24 (17.9%) 16 (11.9%) 33 (25.0%) \n 95% CI (Wald, with correction) (11.05, 24.78) (6.08, 17.80) (17.23, 32.77) \nNot Evaluable (NE) 1 (0.7%) 12 (9.0%) 5 (3.8%) \n 95% CI (Wald, with correction) (0.00, 2.58) (3.75, 14.16) (0.15, 7.42) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe definition of responders is realized during the pre-processing step. The layout does not need to be modified and can be reused.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- anl_adsl %>%\n left_join(anl_adrs, by = c(\"STUDYID\", \"USUBJID\")) %>%\n mutate(rsp_lab = d_onco_rsp_label(AVALC)) %>%\n mutate(is_rsp = AVALC == \"CR\") %>%\n mutate(ARM = relevel(ARM, ref = \"A: Drug X\")) %>%\n var_relabel(ARM = \"Description of Planned Arm\")\n\nresult <- build_table(lyt = lyt_01, df = anl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————\nResponders 60 (44.8%) 47 (35.1%) 57 (43.2%) \n95% CI (Wald, with correction) (36.0, 53.6) (26.6, 43.5) (34.4, 52.0) \nUnstratified Analysis \n Difference in Response rate (%) -9.7 -1.6 \n 95% CI (Wald, with correction) (-22.1, 2.7) (-14.3, 11.1) \n p-value (Chi-Squared Test) 0.1049 0.7934 \nOdds Ratio (95% CI) 0.67 (0.41 - 1.09) 0.94 (0.58 - 1.52)\nComplete Response (CR) 60 (44.8%) 47 (35.1%) 57 (43.2%) \n 95% CI (Wald, with correction) (35.98, 53.57) (26.62, 43.53) (34.35, 52.01) \nPartial Response (PR) 40 (29.9%) 37 (27.6%) 24 (18.2%) \n 95% CI (Wald, with correction) (21.73, 37.97) (19.67, 35.55) (11.22, 25.14) \nStable Disease (SD) 9 (6.7%) 22 (16.4%) 13 (9.8%) \n 95% CI (Wald, with correction) (2.11, 11.33) (9.77, 23.06) (4.39, 15.31) \nProgressive Disease (PD) 24 (17.9%) 16 (11.9%) 33 (25.0%) \n 95% CI (Wald, with correction) (11.05, 24.78) (6.08, 17.80) (17.23, 32.77) \nNot Evaluable (NE) 1 (0.7%) 12 (9.0%) 5 (3.8%) \n 95% CI (Wald, with correction) (0.00, 2.58) (3.75, 14.16) (0.15, 7.42) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSimilarly to in the previous tab, redefinition or relabeling of the result is a pre-processing step and the original table layout can be reused.\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- anl_adsl %>%\n left_join(anl_adrs, by = c(\"STUDYID\", \"USUBJID\")) %>%\n mutate(rsp_lab = as.character(d_onco_rsp_label(AVALC))) %>%\n mutate(\n rsp_lab = case_when(\n rsp_lab == \"Complete Response (CR)\" ~ \"No Progression\",\n rsp_lab == \"Partial Response (PR)\" ~ \"No Progression\",\n rsp_lab == \"Stable Disease (SD)\" ~ \"No Progression\",\n TRUE ~ rsp_lab\n )\n ) %>%\n mutate(is_rsp = rsp_lab %in% \"No Progression\") %>%\n mutate(ARM = relevel(ARM, ref = \"A: Drug X\")) %>%\n var_relabel(ARM = \"Description of Planned Arm\")\n\nresult <- build_table(lyt = lyt_01, df = anl)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————\nResponders 109 (81.3%) 106 (79.1%) 94 (71.2%) \n95% CI (Wald, with correction) (74.4, 88.3) (71.8, 86.4) (63.1, 79.3) \nUnstratified Analysis \n Difference in Response rate (%) -2.2 -10.1 \n 95% CI (Wald, with correction) (-12.5, 8.0) (-21.0, 0.8) \n p-value (Chi-Squared Test) 0.6455 0.0520 \nOdds Ratio (95% CI) 0.87 (0.48 - 1.59) 0.57 (0.32 - 1.01)\nProgressive Disease (PD) 24 (17.9%) 16 (11.9%) 33 (25.0%) \n 95% CI (Wald, with correction) (11.05, 24.78) (6.08, 17.80) (17.23, 32.77) \nNo Progression 109 (81.3%) 106 (79.1%) 94 (71.2%) \n 95% CI (Wald, with correction) (74.37, 88.31) (71.85, 86.36) (63.11, 79.31) \nNot Evaluable (NE) 1 (0.7%) 12 (9.0%) 5 (3.8%) \n 95% CI (Wald, with correction) (0.00, 2.58) (3.75, 14.16) (0.15, 7.42) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\n\nadsl <- random.cdisc.data::cadsl\nadrs <- random.cdisc.data::cadrs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadrs <- df_explicit_na(adrs)\n\nanl_adrs <- adrs %>%\n filter(PARAMCD == \"INVET\") %>%\n select(STUDYID, USUBJID, PARAMCD, AVISIT, AVALC)\nanl_adsl <- adsl %>%\n select(STUDYID, USUBJID, ARM, STRATA1)", "crumbs": [ "Tables", - "ECG", - "EGT03" + "Efficacy", + "RSPT01" ] }, { - "objectID": "tables/ECG/egt03.html#teal-app", - "href": "tables/ECG/egt03.html#teal-app", - "title": "EGT03", + "objectID": "tables/efficacy/rspt01.html#teal-app", + "href": "tables/efficacy/rspt01.html#teal-app", + "title": "RSPT01", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_shift_by_arm(\n label = \"Shift by Arm Table\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n value_choices(ADEG, \"PARAMCD\"),\n selected = \"HR\"\n ),\n visit_var = choices_selected(\n value_choices(ADEG, \"AVISIT\"),\n selected = \"POST-BASELINE MINIMUM\"\n ),\n aval_var = choices_selected(\n variable_choices(ADEG, subset = \"ANRIND\"),\n selected = \"ANRIND\", fixed = TRUE\n ),\n baseline_var = choices_selected(\n variable_choices(ADEG, subset = \"BNRIND\"),\n selected = \"BNRIND\", fixed = TRUE\n ),\n treatment_flag_var = choices_selected(\n variable_choices(ADEG, subset = \"ONTRTFL\"),\n selected = \"ONTRTFL\", fixed = TRUE\n ),\n treatment_flag = choices_selected(\n value_choices(ADEG, \"ONTRTFL\"),\n selected = \"Y\", fixed = TRUE\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_shift_by_arm(\n label = \"Shift by Arm Table\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n variable_choices(ADSL, subset = c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n paramcd = choices_selected(\n value_choices(ADEG, \"PARAMCD\"),\n selected = \"HR\"\n ),\n visit_var = choices_selected(\n value_choices(ADEG, \"AVISIT\"),\n selected = \"POST-BASELINE MINIMUM\"\n ),\n aval_var = choices_selected(\n variable_choices(ADEG, subset = \"ANRIND\"),\n selected = \"ANRIND\", fixed = TRUE\n ),\n baseline_var = choices_selected(\n variable_choices(ADEG, subset = \"BNRIND\"),\n selected = \"BNRIND\", fixed = TRUE\n ),\n treatment_flag_var = choices_selected(\n variable_choices(ADEG, subset = \"ONTRTFL\"),\n selected = \"ONTRTFL\", fixed = TRUE\n ),\n treatment_flag = choices_selected(\n value_choices(ADEG, \"ONTRTFL\"),\n selected = \"Y\", fixed = TRUE\n )\n )\n ),\n filter = teal_slices(teal_slice(\"ADSL\", \"SAFFL\", selected = \"Y\"))\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADRS <- df_explicit_na(ADRS)\n\n ADSL <- ADSL %>%\n mutate(Dum_ARM = factor(rep(\"Single ARM\", nrow(.))))\n ADRS <- ADRS %>%\n mutate(Dum_ARM = factor(rep(\"Single ARM\", nrow(.))))\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_binary_outcome(\n label = \"Responders\",\n dataname = \"ADRS\",\n paramcd = choices_selected(\n choices = value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n selected = \"BESRSPI\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADRS, c(\"ARM\", \"ARMCD\", \"ACTARMCD\", \"Dum_ARM\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n strata_var = choices_selected(\n choices = variable_choices(ADRS, c(\"SEX\", \"BMRKR2\")),\n select = NULL\n ),\n rsp_table = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADRS <- df_explicit_na(ADRS)\n\n ADSL <- ADSL %>%\n mutate(Dum_ARM = factor(rep(\"Single ARM\", nrow(.))))\n ADRS <- ADRS %>%\n mutate(Dum_ARM = factor(rep(\"Single ARM\", nrow(.))))\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n ),\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_binary_outcome(\n label = \"Responders\",\n dataname = \"ADRS\",\n paramcd = choices_selected(\n choices = value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n selected = \"BESRSPI\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADRS, c(\"ARM\", \"ARMCD\", \"ACTARMCD\", \"Dum_ARM\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n strata_var = choices_selected(\n choices = variable_choices(ADRS, c(\"SEX\", \"BMRKR2\")),\n select = NULL\n ),\n rsp_table = TRUE\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "ECG", - "EGT03" + "Efficacy", + "RSPT01" ] }, { - "objectID": "tables/ECG/egt03.html#reproducibility", - "href": "tables/ECG/egt03.html#reproducibility", - "title": "EGT03", + "objectID": "tables/efficacy/rspt01.html#reproducibility", + "href": "tables/efficacy/rspt01.html#reproducibility", + "title": "RSPT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:06:18 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:01:05 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "ECG", - "EGT03" + "Efficacy", + "RSPT01" ] }, { - "objectID": "tables/ECG/egt05_qtcat.html#output", - "href": "tables/ECG/egt05_qtcat.html#output", - "title": "EGT05_QTCAT", + "objectID": "tables/efficacy/cmht01.html#output", + "href": "tables/efficacy/cmht01.html#output", + "title": "CMHT01", "section": "Output", - "text": "Output\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodesplit_fun <- drop_split_levels\n\nlyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARM\") %>%\n split_rows_by(\n \"PARAM\",\n split_label = obj_label(adeg_f$PARAM),\n split_fun = split_fun,\n label_pos = \"topleft\"\n ) %>%\n split_rows_by(\n \"AVISIT\",\n split_label = obj_label(adeg_f$AVISIT),\n split_fun = split_fun,\n label_pos = \"topleft\"\n ) %>%\n analyze_vars(\n vars = c(\"AVALCAT1\", \"CHGCAT1\"),\n var_labels = c(\"Value at Visit\", \"Change from Baseline\")\n ) %>%\n append_topleft(\" Category\")\n\nresult <- build_table(lyt = lyt, df = adeg_f, alt_counts_df = adsl) %>%\n prune_table()\n\nresult\n\nParameter \n Analysis Visit A: Drug X B: Placebo C: Combination\n Category (N=134) (N=134) (N=132) \n——————————————————————————————————————————————————————————————————————\nQT Duration \n BASELINE \n Value at Visit \n n 134 134 132 \n <=450 msec 115 (85.8%) 117 (87.3%) 104 (78.8%) \n >450 to <=480 msec 6 (4.5%) 10 (7.5%) 9 (6.8%) \n >480 to <= 500 msec 4 (3%) 3 (2.2%) 6 (4.5%) \n >500 msec 9 (6.7%) 4 (3%) 13 (9.8%) \n WEEK 1 DAY 8 \n Value at Visit \n n 134 134 132 \n <=450 msec 113 (84.3%) 106 (79.1%) 106 (80.3%) \n >450 to <=480 msec 10 (7.5%) 10 (7.5%) 11 (8.3%) \n >480 to <= 500 msec 4 (3%) 4 (3%) 3 (2.3%) \n >500 msec 7 (5.2%) 14 (10.4%) 12 (9.1%) \n Change from Baseline \n n 134 134 132 \n <=30 msec 76 (56.7%) 75 (56%) 75 (56.8%) \n >30 to <=60 msec 7 (5.2%) 13 (9.7%) 11 (8.3%) \n >60 msec 51 (38.1%) 46 (34.3%) 46 (34.8%) \n WEEK 2 DAY 15 \n Value at Visit \n n 134 134 132 \n <=450 msec 111 (82.8%) 114 (85.1%) 112 (84.8%) \n >450 to <=480 msec 10 (7.5%) 9 (6.7%) 9 (6.8%) \n >480 to <= 500 msec 7 (5.2%) 2 (1.5%) 5 (3.8%) \n >500 msec 6 (4.5%) 9 (6.7%) 6 (4.5%) \n Change from Baseline \n n 134 134 132 \n <=30 msec 71 (53%) 87 (64.9%) 89 (67.4%) \n >30 to <=60 msec 11 (8.2%) 9 (6.7%) 9 (6.8%) \n >60 msec 52 (38.8%) 38 (28.4%) 34 (25.8%) \n WEEK 3 DAY 22 \n Value at Visit \n n 134 134 132 \n <=450 msec 106 (79.1%) 112 (83.6%) 118 (89.4%) \n >450 to <=480 msec 13 (9.7%) 7 (5.2%) 3 (2.3%) \n >480 to <= 500 msec 4 (3%) 5 (3.7%) 2 (1.5%) \n >500 msec 11 (8.2%) 10 (7.5%) 9 (6.8%) \n Change from Baseline \n n 134 134 132 \n <=30 msec 63 (47%) 80 (59.7%) 81 (61.4%) \n >30 to <=60 msec 14 (10.4%) 8 (6%) 11 (8.3%) \n >60 msec 57 (42.5%) 46 (34.3%) 40 (30.3%) \n WEEK 4 DAY 29 \n Value at Visit \n n 134 134 132 \n <=450 msec 117 (87.3%) 103 (76.9%) 114 (86.4%) \n >450 to <=480 msec 7 (5.2%) 14 (10.4%) 6 (4.5%) \n >480 to <= 500 msec 4 (3%) 7 (5.2%) 3 (2.3%) \n >500 msec 6 (4.5%) 10 (7.5%) 9 (6.8%) \n Change from Baseline \n n 134 134 132 \n <=30 msec 79 (59%) 80 (59.7%) 79 (59.8%) \n >30 to <=60 msec 11 (8.2%) 7 (5.2%) 10 (7.6%) \n >60 msec 44 (32.8%) 47 (35.1%) 43 (32.6%) \n WEEK 5 DAY 36 \n Value at Visit \n n 134 134 132 \n <=450 msec 107 (79.9%) 117 (87.3%) 112 (84.8%) \n >450 to <=480 msec 16 (11.9%) 5 (3.7%) 13 (9.8%) \n >480 to <= 500 msec 5 (3.7%) 9 (6.7%) 3 (2.3%) \n >500 msec 6 (4.5%) 3 (2.2%) 4 (3%) \n Change from Baseline \n n 134 134 132 \n <=30 msec 72 (53.7%) 82 (61.2%) 73 (55.3%) \n >30 to <=60 msec 10 (7.5%) 11 (8.2%) 11 (8.3%) \n >60 msec 52 (38.8%) 41 (30.6%) 48 (36.4%) \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadeg <- random.cdisc.data::cadeg\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadeg <- df_explicit_na(adeg)\n\nadeg_labels <- var_labels(adeg)\nadeg_f <- adeg %>%\n filter(\n PARAMCD == \"QT\",\n ANL01FL == \"Y\"\n ) %>%\n mutate(\n AVALCAT1 = case_when(\n AVAL <= 450 ~ \"<=450 msec\",\n AVAL <= 480 ~ \">450 to <=480 msec\",\n AVAL <= 500 ~ \">480 to <= 500 msec\",\n AVAL > 500 ~ \">500 msec\",\n is.na(AVAL) ~ \"<Missing>\"\n ),\n CHGCAT1 = case_when(\n CHG <= 30 ~ \"<=30 msec\",\n CHG <= 60 ~ \">30 to <=60 msec\",\n CHG > 60 ~ \">60 msec\",\n is.na(CHG) ~ \"<Missing>\"\n )\n ) %>%\n mutate(\n AVALCAT1 = factor(\n AVALCAT1,\n levels = c(\n \"<=450 msec\",\n \">450 to <=480 msec\",\n \">480 to <= 500 msec\",\n \">500 msec\",\n \"<Missing>\"\n )\n ),\n CHGCAT1 = factor(\n CHGCAT1,\n levels = c(\n \"<=30 msec\",\n \">30 to <=60 msec\",\n \">60 msec\",\n \"<Missing>\"\n )\n )\n ) %>%\n var_relabel(\n AVALCAT1 = \"Value at Visit\",\n CHGCAT1 = \"Change from Baseline\"\n )", + "text": "Output\n\n\nTable of Single Parameter\nTable of Multiple Parameters\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl_01 <- adqs %>%\n filter(PARAMCD == \"FKSI-FWB\" & AVISIT == \"WEEK 1 DAY 8\") %>%\n mutate(is_rsp = PCHG > 15) %>%\n mutate(ARM = relevel(ARM, ref = \"A: Drug X\")) %>%\n var_relabel(ARM = \"Description of Planned Arm\") %>%\n mutate(strata = interaction(STRATA1, STRATA2, drop = TRUE))\n\nlyt_01 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n estimate_proportion(vars = \"is_rsp\", table_names = \"est_prop\") %>%\n estimate_proportion_diff(\n var_labels = \"Unstratified Analysis\",\n vars = \"is_rsp\",\n show_labels = \"visible\",\n table_names = \"est_prop_diff\"\n ) %>%\n test_proportion_diff(vars = \"is_rsp\", table_names = \"test_prop\") %>%\n estimate_odds_ratio(vars = \"is_rsp\", table_names = \"est_or\") %>%\n estimate_proportion_diff(\n var_labels = \"Stratified Analysis\",\n vars = \"is_rsp\",\n show_labels = \"visible\",\n method = \"cmh\",\n variables = list(strata = \"strata\"),\n table_names = \"est_prop_diff_strat\"\n ) %>%\n test_proportion_diff(\n vars = \"is_rsp\",\n method = \"cmh\",\n variables = list(strata = \"strata\"),\n table_names = \"test_prop_strat\"\n ) %>%\n estimate_odds_ratio(\n vars = \"is_rsp\",\n variables = list(strata = \"strata\", arm = \"ARM\"),\n table_names = \"est_or_strat\"\n )\n\nresult <- build_table(\n lyt = lyt_01,\n df = anl_01,\n alt_counts_df = adsl\n)\nresult\n\n A: Drug X B: Placebo C: Combination \n (N=134) (N=134) (N=132) \n—————————————————————————————————————————————————————————————————————————————————————————————————\nResponders 49 (36.6%) 51 (38.1%) 47 (35.6%) \n95% CI (Wald, with correction) (28.0, 45.1) (29.5, 46.7) (27.1, 44.2) \nUnstratified Analysis \n Difference in Response rate (%) 1.5 -1.0 \n 95% CI (Wald, with correction) (-10.8, 13.8) (-13.3, 11.3) \n p-value (Chi-Squared Test) 0.8006 0.8704 \nOdds Ratio (95% CI) 1.07 (0.65 - 1.75) 0.96 (0.58 - 1.58)\nStratified Analysis \n Difference in Response rate (%) 2.8 -1.5 \n 95% CI (CMH, without correction) (-8.2, 13.8) (-13.0, 9.9) \n p-value (Cochran-Mantel-Haenszel Test) 0.6397 0.7952 \nOdds Ratio (95% CI) 1.12 (0.68 - 1.83) 0.99 (0.60 - 1.64)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl_02 <- adqs %>%\n filter(AVISIT == \"WEEK 1 DAY 8\") %>%\n mutate(is_rsp = PCHG > 15) %>%\n mutate(PARAM = droplevels(PARAM)) %>%\n mutate(ARM = relevel(ARM, ref = \"A: Drug X\")) %>%\n var_relabel(ARM = \"Description of Planned Arm\") %>%\n mutate(strata = interaction(STRATA1, STRATA2, drop = TRUE))\n\nvar_labels(anl_02)[\"PARAM\"] <- \"Parameter\"\n\nsplit_fun <- drop_split_levels\n\nlyt_02 <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(var = \"ARM\", ref_group = \"A: Drug X\") %>%\n split_rows_by(\n var = \"PARAM\",\n split_fun = split_fun,\n label_pos = \"topleft\",\n split_label = obj_label(anl_02$PARAM)\n ) %>%\n estimate_proportion(vars = \"is_rsp\", table_names = \"est_prop\") %>%\n estimate_proportion_diff(\n var_labels = \"Unstratified Analysis\",\n vars = \"is_rsp\",\n show_labels = \"visible\",\n table_names = \"est_prop_diff\"\n ) %>%\n test_proportion_diff(vars = \"is_rsp\", table_names = \"test_prop\") %>%\n estimate_odds_ratio(vars = \"is_rsp\", table_names = \"est_or\") %>%\n estimate_proportion_diff(\n var_labels = \"Stratified Analysis\",\n vars = \"is_rsp\",\n show_labels = \"visible\",\n method = \"cmh\",\n variables = list(strata = \"strata\"),\n table_names = \"est_prop_diff_strat\"\n ) %>%\n test_proportion_diff(\n vars = \"is_rsp\",\n method = \"cmh\",\n variables = list(strata = \"strata\"),\n table_names = \"test_prop_strat\"\n ) %>%\n estimate_odds_ratio(\n vars = \"is_rsp\",\n variables = list(strata = \"strata\", arm = \"ARM\"),\n table_names = \"est_or_strat\"\n )\n\nresult <- build_table(\n lyt = lyt_02,\n df = anl_02,\n alt_counts_df = adsl\n)\nresult\n\n A: Drug X B: Placebo C: Combination \nParameter (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————————————\nBFI All Questions \n Responders 57 (42.5%) 65 (48.5%) 50 (37.9%) \n 95% CI (Wald, with correction) (33.8, 51.3) (39.7, 57.3) (29.2, 46.5) \n Unstratified Analysis \n Difference in Response rate (%) 6.0 -4.7 \n 95% CI (Wald, with correction) (-6.7, 18.6) (-17.2, 7.9) \n p-value (Chi-Squared Test) 0.3264 0.4385 \n Odds Ratio (95% CI) 1.27 (0.79 - 2.06) 0.82 (0.50 - 1.35)\n Stratified Analysis \n Difference in Response rate (%) 6.7 -5.1 \n 95% CI (CMH, without correction) (-5.0, 18.4) (-16.8, 6.6) \n p-value (Cochran-Mantel-Haenszel Test) 0.2781 0.4056 \n Odds Ratio (95% CI) 1.30 (0.80 - 2.11) 0.80 (0.49 - 1.32)\nFatigue Interference \n Responders 66 (49.3%) 50 (37.3%) 48 (36.4%) \n 95% CI (Wald, with correction) (40.4, 58.1) (28.8, 45.9) (27.8, 44.9) \n Unstratified Analysis \n Difference in Response rate (%) -11.9 -12.9 \n 95% CI (Wald, with correction) (-24.5, 0.6) (-25.4, -0.3) \n p-value (Chi-Squared Test) 0.0485 0.0337 \n Odds Ratio (95% CI) 0.61 (0.38 - 1.00) 0.59 (0.36 - 0.96)\n Stratified Analysis \n Difference in Response rate (%) -12.0 -13.3 \n 95% CI (CMH, without correction) (-23.7, -0.2) (-24.9, -1.6) \n p-value (Cochran-Mantel-Haenszel Test) 0.0518 0.0303 \n Odds Ratio (95% CI) 0.61 (0.37 - 0.99) 0.58 (0.36 - 0.96)\nFKSI-19 All Questions \n Responders 60 (44.8%) 57 (42.5%) 68 (51.5%) \n 95% CI (Wald, with correction) (36.0, 53.6) (33.8, 51.3) (42.6, 60.4) \n Unstratified Analysis \n Difference in Response rate (%) -2.2 6.7 \n 95% CI (Wald, with correction) (-14.9, 10.4) (-6.0, 19.5) \n p-value (Chi-Squared Test) 0.7118 0.2714 \n Odds Ratio (95% CI) 0.91 (0.56 - 1.48) 1.31 (0.81 - 2.12)\n Stratified Analysis \n Difference in Response rate (%) -2.8 5.6 \n 95% CI (CMH, without correction) (-14.3, 8.8) (-6.2, 17.4) \n p-value (Cochran-Mantel-Haenszel Test) 0.6442 0.3683 \n Odds Ratio (95% CI) 0.90 (0.56 - 1.47) 1.26 (0.77 - 2.04)\nFunction/Well-Being (GF1,GF3,GF7) \n Responders 49 (36.6%) 51 (38.1%) 47 (35.6%) \n 95% CI (Wald, with correction) (28.0, 45.1) (29.5, 46.7) (27.1, 44.2) \n Unstratified Analysis \n Difference in Response rate (%) 1.5 -1.0 \n 95% CI (Wald, with correction) (-10.8, 13.8) (-13.3, 11.3) \n p-value (Chi-Squared Test) 0.8006 0.8704 \n Odds Ratio (95% CI) 1.07 (0.65 - 1.75) 0.96 (0.58 - 1.58)\n Stratified Analysis \n Difference in Response rate (%) 2.8 -1.5 \n 95% CI (CMH, without correction) (-8.2, 13.8) (-13.0, 9.9) \n p-value (Cochran-Mantel-Haenszel Test) 0.6397 0.7952 \n Odds Ratio (95% CI) 1.12 (0.68 - 1.83) 0.99 (0.60 - 1.64)\nTreatment Side Effects (GP2,C5,GP5) \n Responders 62 (46.3%) 49 (36.6%) 51 (38.6%) \n 95% CI (Wald, with correction) (37.5, 55.1) (28.0, 45.1) (30.0, 47.3) \n Unstratified Analysis \n Difference in Response rate (%) -9.7 -7.6 \n 95% CI (Wald, with correction) (-22.2, 2.8) (-20.2, 5.0) \n p-value (Chi-Squared Test) 0.1069 0.2080 \n Odds Ratio (95% CI) 0.67 (0.41 - 1.09) 0.73 (0.45 - 1.19)\n Stratified Analysis \n Difference in Response rate (%) -9.6 -7.1 \n 95% CI (CMH, without correction) (-21.0, 1.8) (-18.8, 4.6) \n p-value (Cochran-Mantel-Haenszel Test) 0.1168 0.2426 \n Odds Ratio (95% CI) 0.67 (0.41 - 1.10) 0.73 (0.45 - 1.19)\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadqs <- random.cdisc.data::cadqs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadqs <- df_explicit_na(adqs)", "crumbs": [ "Tables", - "ECG", - "EGT05_QTCAT" + "Efficacy", + "CMHT01" ] }, { - "objectID": "tables/ECG/egt05_qtcat.html#teal-app", - "href": "tables/ECG/egt05_qtcat.html#teal-app", - "title": "EGT05_QTCAT", + "objectID": "tables/efficacy/cmht01.html#teal-app", + "href": "tables/efficacy/cmht01.html#teal-app", + "title": "CMHT01", "section": "\nteal App", - "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADEG <- df_explicit_na(ADEG)\n adeg_labels <- col_labels(ADEG)\n\n ADEG <- ADEG %>%\n filter(\n ANL01FL == \"Y\" # no need to filter for PARAMCD here\n ) %>%\n mutate(\n AVALCAT1 = case_when(\n AVAL <= 450 ~ \"<=450 msec\",\n AVAL <= 480 ~ \">450 to <=480 msec\",\n AVAL <= 500 ~ \">480 to <= 500 msec\",\n AVAL > 500 ~ \">500 msec\",\n is.na(AVAL) ~ \"<Missing>\"\n ),\n CHGCAT1 = case_when(\n CHG <= 30 ~ \"<=30 msec\",\n CHG <= 60 ~ \">30 to <=60 msec\",\n CHG > 60 ~ \">60 msec\",\n is.na(CHG) ~ \"<Missing>\"\n )\n ) %>%\n mutate(\n AVALCAT1 = factor(\n AVALCAT1,\n levels = c(\n \"<=450 msec\",\n \">450 to <=480 msec\",\n \">480 to <= 500 msec\",\n \">500 msec\",\n \"<Missing>\"\n )\n ),\n CHGCAT1 = factor(\n CHGCAT1,\n levels = c(\n \"<=30 msec\",\n \">30 to <=60 msec\",\n \">60 msec\",\n \"<Missing>\"\n )\n )\n )\n col_labels(ADEG) <- c(\n adeg_labels,\n \"AVALCAT1\" = \"Value at Visit\",\n \"CHGCAT1\" = \"Change from Baseline\"\n )\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"ECG Actual Values and Changes from Baseline by Visit\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"AVALCAT1\", \"CHGCAT1\")),\n selected = c(\"AVALCAT1\", \"CHGCAT1\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADEG, \"PARAMCD\", \"PARAM\"),\n selected = \"QT\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADEG <- random.cdisc.data::cadeg\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADEG <- df_explicit_na(ADEG)\n adeg_labels <- col_labels(ADEG)\n\n ADEG <- ADEG %>%\n filter(\n ANL01FL == \"Y\" # no need to filter for PARAMCD here\n ) %>%\n mutate(\n AVALCAT1 = case_when(\n AVAL <= 450 ~ \"<=450 msec\",\n AVAL <= 480 ~ \">450 to <=480 msec\",\n AVAL <= 500 ~ \">480 to <= 500 msec\",\n AVAL > 500 ~ \">500 msec\",\n is.na(AVAL) ~ \"<Missing>\"\n ),\n CHGCAT1 = case_when(\n CHG <= 30 ~ \"<=30 msec\",\n CHG <= 60 ~ \">30 to <=60 msec\",\n CHG > 60 ~ \">60 msec\",\n is.na(CHG) ~ \"<Missing>\"\n )\n ) %>%\n mutate(\n AVALCAT1 = factor(\n AVALCAT1,\n levels = c(\n \"<=450 msec\",\n \">450 to <=480 msec\",\n \">480 to <= 500 msec\",\n \">500 msec\",\n \"<Missing>\"\n )\n ),\n CHGCAT1 = factor(\n CHGCAT1,\n levels = c(\n \"<=30 msec\",\n \">30 to <=60 msec\",\n \">60 msec\",\n \"<Missing>\"\n )\n )\n )\n col_labels(ADEG) <- c(\n adeg_labels,\n \"AVALCAT1\" = \"Value at Visit\",\n \"CHGCAT1\" = \"Change from Baseline\"\n )\n})\ndatanames <- c(\"ADSL\", \"ADEG\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADEG <- data[[\"ADEG\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_summary_by(\n label = \"ECG Actual Values and Changes from Baseline by Visit\",\n dataname = \"ADEG\",\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n selected = \"ARM\"\n ),\n by_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"PARAM\", \"AVISIT\")),\n selected = c(\"AVISIT\")\n ),\n summarize_vars = choices_selected(\n choices = variable_choices(ADEG, c(\"AVALCAT1\", \"CHGCAT1\")),\n selected = c(\"AVALCAT1\", \"CHGCAT1\")\n ),\n useNA = \"ifany\",\n paramcd = choices_selected(\n choices = value_choices(ADEG, \"PARAMCD\", \"PARAM\"),\n selected = \"QT\"\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ARMCD = list(ref = \"ARM B\", comp = c(\"ARM A\", \"ARM C\")),\n ARM = list(ref = \"B: Placebo\", comp = c(\"A: Drug X\", \"C: Combination\"))\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_binary_outcome(\n label = \"Responders\",\n dataname = \"ADRS\",\n paramcd = choices_selected(\n choices = value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n selected = \"BESRSPI\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADRS, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n strata_var = choices_selected(\n choices = variable_choices(ADRS, c(\"SEX\", \"BMRKR2\")),\n select = NULL\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADRS <- data[[\"ADRS\"]]\narm_ref_comp <- list(\n ARMCD = list(ref = \"ARM B\", comp = c(\"ARM A\", \"ARM C\")),\n ARM = list(ref = \"B: Placebo\", comp = c(\"A: Drug X\", \"C: Combination\"))\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_binary_outcome(\n label = \"Responders\",\n dataname = \"ADRS\",\n paramcd = choices_selected(\n choices = value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n selected = \"BESRSPI\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADRS, c(\"ARM\", \"ARMCD\", \"ACTARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n strata_var = choices_selected(\n choices = variable_choices(ADRS, c(\"SEX\", \"BMRKR2\")),\n select = NULL\n )\n )\n )\n)\n\nshinyApp(app$ui, app$server)", "crumbs": [ "Tables", - "ECG", - "EGT05_QTCAT" + "Efficacy", + "CMHT01" ] }, { - "objectID": "tables/ECG/egt05_qtcat.html#reproducibility", - "href": "tables/ECG/egt05_qtcat.html#reproducibility", - "title": "EGT05_QTCAT", + "objectID": "tables/efficacy/cmht01.html#reproducibility", + "href": "tables/efficacy/cmht01.html#reproducibility", + "title": "CMHT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:07:02 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1)\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-01 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-01 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9097 2025-01-01 [1] https://p~\n teal.code * 0.5.0.9021 2025-01-01 [1] https://p~\n teal.data * 0.6.0.9023 2025-01-01 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-01 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~\n tern * 0.9.6.9018 2025-01-01 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-01 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:01:37 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ "Tables", - "ECG", - "EGT05_QTCAT" + "Efficacy", + "CMHT01" ] }, { - "objectID": "tlg-index.html", - "href": "tlg-index.html", - "title": "Index", - "section": "", - "text": "Tables\n\nADA\n        ADAT01 – Baseline Prevalence and Incidence of Treatment Emergent ADA\n        ADAT02 – Summary of Patients with Treatment-Induced ADA\n        ADAT03 – Summary of Serum Concentrations at Timepoints Where ADA Samples Were Collected and Analyzed\n        ADAT04A – Baseline Prevalence and Incidence of Treatment Emergent NAbs\n        ADAT04B – Baseline Prevalence and Incidence of NAbs\n\n\nAdverse Events\n        AET01 – Safety Summary\n        AET01_AESI – Safety Summary (Adverse Events of Special Interest)\n        AET02 – Adverse Events\n        AET02_SMQ – Adverse Events by Standardized MedDRA Query\n        AET03 – Adverse Events by Greatest Intensity\n        AET04 – Adverse Events by Highest NCI CTCAE Grade\n        AET04_PI – Adverse Events Reported in \\(\\geq\\) 10% of Patients by Highest NCI CTCAE Grade\n        AET05 – Adverse Event Rate Adjusted for Patient-Years at Risk – First Occurrence\n        AET05_ALL – Adverse Event Rate Adjusted for Patient-Years at Risk – All Occurrences\n        AET06 – Adverse Events by Baseline Characteristic\n        AET06_SMQ – Adverse Events by Baseline Characteristic, by SMQ and Preferred Term\n        AET07 – Adverse Events Resulting in Death\n        AET09 – Adverse Events Related to Study Drug\n        AET09_SMQ – Adverse Events Related to Study Drug by Standardized MedDRA Query\n        AET10 – Most Common (\\(\\geq\\) 5%) Adverse Events\n\n\nConcomitant Medications\n        CMT01 – Concomitant Medications (GNEDrug Legacy Coding)\n        CMT01A – Concomitant Medications by Medication Class and Preferred Name\n        CMT01B – Concomitant Medications by Medication Class and Preferred Name\n        CMT02_PT – Concomitant Medications by Preferred Name (WHODrug Coding)\n\n\nDeaths\n        DTHT01 – Deaths\n\n\nDemography\n        DMT01 – Demographics and Baseline Characteristics\n\n\nDisclosures\n        DISCLOSUREST01 – Disclosures Outputs\n        EUDRAT01 – Non-Serious Adverse Events Reported in \\(\\geq\\) 5% of Patients in Any Treatment Group – Patients and Events\n        EUDRAT02 – Serious Adverse Events, Fatal Serious Adverse Events, and Serious Adverse Events Related to Study Medication\n\n\nDisposition\n        DST01 – Patient Disposition\n        PDT01 – Major Protocol Deviations\n        PDT02 – Major Protocol Deviations Related to Epidemic/Pandemic\n\n\nECG\n        EGT01 – ECG Results and Change from Baseline by Visit\n        EGT02 – ECG Abnormalities (EGT02_1 & EGT02_2)\n        EGT03 – Shift Table of ECG Interval Data – Baseline Versus Minimum/Maximum Post-Baseline\n        EGT04 – Shift Table of Qualitative ECG Assessments\n        EGT05_QTCAT – ECG Actual Values and Changes from Baseline by Visit\n\n\nEfficacy\n        AOVT01 – ANCOVA for Multiple End Points\n        AOVT02 – ANCOVA with Single End Point and Customized Table\n        AOVT03 – ANCOVA with Consideration of Interaction\n        CFBT01 – Efficacy Data and Change from Baseline by Visit\n        CMHT01 – Cochran-Mantel-Haenszel (CMH) Summary\n        COXT01 – Cox Regression\n        COXT02 – Multivariable Cox Regression\n        DORT01 – Duration of Response\n        LGRT02 – Multi-Variable Logistic Regression\n        MMRMT01 – Tables for Mixed-Effect Model Repeated Measures Analysis\n        ONCT05 – Objective Response Rate by Subgroup\n        RATET01 – Event Rate Summary for Recurrent Events\n        RBMIT01 – Tables for RBMI\n        RSPT01 – Best Overall Response\n        TTET01 – Time-To-Event Summary\n\n\nExposure\n        EXT01 – Study Drug Exposure Table\n\n\nLab Results\n        LBT01 – Laboratory Test Results and Change from Baseline by Visit\n        LBT02 – Laboratory Test Results by Visit\n        LBT03 – Laboratory Test Results Change from Baseline by Visit\n        LBT04 – Laboratory Abnormalities Not Present at Baseline\n        LBT05 – Laboratory Abnormalities with Single and Replicated Marked\n        LBT06 – Laboratory Abnormalities by Visit and Baseline Status\n        LBT07 – Laboratory Test Results with Highest NCI CTCAE Grade Post-Baseline\n        LBT08 – Laboratory Test Results with Highest NCI CTCAE Grade at Any Time\n        LBT09 – Liver Laboratory Tests – Patients with Elevated Post-Baseline AST or ALT Levels\n        LBT10 – Liver Laboratory Tests – Patients with Elevated Post-Baseline AST or ALT Levels at Two Consecutive Visits (with Respect to ULN)\n        LBT10_BL – Liver Laboratory Tests – Patients with Elevated Post-Baseline AST or ALT Levels at Two Consecutive Visits (with Respect to Baseline)\n        LBT11 – Time to First Increase in Liver Laboratory Test Result Meeting Hy’s Law Laboratory Critieria (with Respect to ULN)\n        LBT11_BL – Time to First Increase in Liver Laboratory Test Result Meeting Hy’s Law Laboratory Critieria (with Respect to Baseline)\n        LBT12 – Liver Laboratory Tests by Time on Treatment – Patients with Elevated Post-Baseline AST or ALT Levels (with Respect to ULN)\n        LBT12_BL – Liver Laboratory Tests by Time on Treatment – Patients with Elevated Post-Baseline AST or ALT Levels (with Respect to Baseline)\n        LBT13 – NCI CTCAE Grade Laboratory Abnormalities by Visit and Baseline Grade\n        LBT14 – Laboratory Test Results Shift Table – Highest NCI CTCAE Grade Post-Baseline by Baseline NCI CTCAE Grade\n        LBT15 – Laboratory Test Shifts to NCI CTCAE Grade 3-4 Post-Baseline\n\n\nMedical History\n        MHT01 – Medical History\n\n\nPharmacokinetic\n        PKCT01 – Summary Concentration Table\n        PKPT02 – Pharmacokinetic Parameter Summary – Plasma/Serum/Blood PK Parameters (Stats in Rows)\n        PKPT03 – Pharmacokinetic Parameter Summary of Plasma by Treatment (Stats in Columns)\n        PKPT04 – Pharmacokinetic Parameter Summary – Urine PK Parameters (Stats in Rows)\n        PKPT05 – Summary of Urinary PK Parameters by Treatment Arm (Stats in Columns)\n        PKPT06 – Pharmacokinetic Parameter Summary – Dose-Normalized PK Parameters (Stats in Rows)\n        PKPT07 – Table of Mean Dose-Normalized Selected Pharmacokinetic Parameters (Stats in Columns)\n        PKPT08 – Pharmacokinetic Parameter Summary of Cumulative Amount of Drug Eliminated and Cumulative Percentage of Drug Recovered (Stats in Columns)\n        PKPT11 – Pharmacokinetic Parameter Estimated Ratios of Geometric Means and 90% Confidence Intervals for AUC and CMAX\n\n\nRisk Management Plan\n        RMPT01 – Duration of Exposure for Risk Management Plan\n        RMPT03 – Extent of Exposure by Age Group and Gender for Risk Management Plan\n        RMPT04 – Extent of Exposure by Ethnic Origin for Risk Management Plan\n        RMPT05 – Extent of Exposure by Race for Risk Management Plan\n        RMPT06 – Seriousness, Outcomes, Severity, Frequency with 95% CI for Risk Management Plan\n\n\nSafety\n        ENTXX – Enrollment Variants\n\n\nVital Signs\n        VST01 – Vital Sign Results and Change from Baseline by Visit\n        VST02 – Vital Sign Abnormalities\n\n\n\n\nListings\n\nADA\n        ADAL02 – Listing of Anti-Drug Antibody Data for Treatment Emergent ADA Positive Patients\n\n\nAdverse Events\n        AEL01 – Listing of Preferred Terms, Lowest Level Terms, and Investigator-Specified Adverse Event Terms\n        AEL01_NOLLT – Listing of Preferred Terms and Investigator-Specified Adverse Event Terms\n        AEL02 – Listing of Adverse Events\n        AEL02_ED – Listing of Adverse Events (for Early Development Studies)\n        AEL03 – Listing of Serious Adverse Events\n        AEL04 – Listing of Patient Deaths\n\n\nConcomitant Medications\n        CML01 – Listing of Previous and Concomitant Medications\n        CML02A_GL – Listing of Concomitant Medication Class Level 2, Preferred Name, and Investigator-Specified Terms\n        CML02B_GL – Listing of Concomitant Medication Class, Preferred Name, and Investigator-Specified Terms\n\n\nDisposition\n        DSL01 – Listing of Patients with Study Drug Withdrawn Due to Adverse Events\n        DSL02 – Listing of Patients Who Discontinued Early from Study\n\n\nDevelopment Safety Update Report\n        DSUR4 – Listing of Patients Who Died During Reporting Period\n\n\nECG\n        EGL01 – Listing of ECG Data: Safety-Evaluable Patients\n\n\nExposure\n        EXL01 – Listing of Exposure to Study Drug\n\n\nLab Results\n        LBL01 – Listing of Laboratory Test Results\n        LBL01_RLS – Listing of Laboratory Test Results Using Roche Safety Lab Standardization\n        LBL02A – Listing of Laboratory Abnormalities (constant units)\n        LBL02A_RLS – Listing of Laboratory Abnormalities Defined by Roche Safety Lab Standardization\n        LBL02B – Listing of Laboratory Abnormalities (variable units)\n\n\nMedical History\n        MHL01 – Listing of Medical History and Concurrent Diseases\n\n\nPharmacokinetic\n        PKCL01 – Listing of Drug A Concentration by Treatment Group, Patient and Nominal Time\n        PKCL02 – Listing of Drug A Urine Concentration and Volumes\n        PKPL01 – Listing of Drug A Plasma PK Parameters\n        PKPL02 – Listing of Drug A Urine PK Parameters\n        PKPL04 – Listing of Individual Drug A AUCIFO and CMAX Ratios Following Drug A or Drug B\n\n\nVital Signs\n        VSL01 – Listing of Vital Signs: Safety-Evaluable Patients\n\n\n\n\nGraphs\n\nEfficacy\n        FSTG01 – Subgroup Analysis of Best Overall Response\n        FSTG02 – Subgroup Analysis of Survival Duration\n        KMG01 – Kaplan-Meier Plot\n        MMRMG01 – Plots for Mixed-Effect Model Repeated Measures Analysis\n        MMRMG02 – Forest Plot for Mixed-Effect Model Repeated Measures\n\n\nPharmacokinetic\n        PKCG01 – Plot of PK Concentration Over Time by Subject\n        PKCG02 – Plot of PK Concentration Over Time by Cohort/Treatment Group/Dose\n        PKCG03 – Plot of Mean PK Concentration Over Time by Cohort\n        PKPG01 – Plot of Mean Cumulative Percentage (%) of Recovered Drug in Urine\n        PKPG02 – Pharmacokinetic Parameter Summary of Serum PK Parameters by Treatment\n        PKPG03 – Box Plot of Pharmacokinetic Parameters by Visit – Plasma\n        PKPG04 – Box Plot of Pharmacokinetic Parameters by Visit – Plasma\n        PKPG06 – Boxplot of Metabolite to Parent Ratios by Treatment\n\n\nOther\n        BRG01 – Bar Chart\n        BWG01 – Box Plot\n        CIG01 – Confidence Interval Plot\n        IPPG01 – Individual Patient Plot Over Time\n        LTG01 – Lattice Plot of Laboratory Tests by Treatment Group Over Time\n        MNG01 – Mean Plot", + "objectID": "tables/efficacy/rbmit01.html#draws", + "href": "tables/efficacy/rbmit01.html#draws", + "title": "RBMIT01", + "section": "Draws", + "text": "Draws\nThe rbmi::draws() function fits the imputation models and stores the corresponding parameter estimates or Bayesian posterior parameter draws. The three main inputs to the rbmi::draws() function are:\n\n\ndata - The primary longitudinal data.frame containing the outcome variable and all covariates.\n\ndata_ice - A data.frame which specifies the first visit affected by an intercurrent event (ICE) and the imputation strategy for handling missing outcome data after the ICE. At most one ICE which is to be imputed by a non-MAR strategy is allowed per subject.\n\nmethod - The statistical method used to fit the imputation models and to create imputed datasets.", "crumbs": [ - "Index" - ] - }, - { - "objectID": "CONTRIBUTING.html#table-of-contents", - "href": "CONTRIBUTING.html#table-of-contents", - "title": "", - "section": "Table of contents", - "text": "Table of contents\n👶 Getting started\n📔 Code of Conduct\n🗃 License\n📜 Issues\n🚩 Pull requests\n💻 Coding guidelines\n🏆 Recognition model\n❓ Questions" - }, - { - "objectID": "CONTRIBUTING.html#getting-started", - "href": "CONTRIBUTING.html#getting-started", - "title": "", - "section": "Getting started", - "text": "Getting started\nPlease familiarize yourself with the specific project structure and the book content. Please make sure you read the “Development” section in the README file." - }, - { - "objectID": "CONTRIBUTING.html#code-of-conduct", - "href": "CONTRIBUTING.html#code-of-conduct", - "title": "", - "section": "Code of Conduct", - "text": "Code of Conduct\nA Code of Conduct governs this project. Participants and contributors are expected to follow the rules outlined therein." - }, - { - "objectID": "CONTRIBUTING.html#license", - "href": "CONTRIBUTING.html#license", - "title": "", - "section": "License", - "text": "License\nAll your contributions will be covered by this project’s license." - }, - { - "objectID": "CONTRIBUTING.html#issues", - "href": "CONTRIBUTING.html#issues", - "title": "", - "section": "Issues", - "text": "Issues\nWe use GitHub to track issues, feature requests, and bugs. Before submitting a new issue, please check if the issue has already been reported. If the issue already exists, please upvote the existing issue 👍.\nFor new feature requests, please elaborate on the context and the benefit the feature will have for users, developers, or other relevant personas." - }, - { - "objectID": "CONTRIBUTING.html#pull-requests", - "href": "CONTRIBUTING.html#pull-requests", - "title": "", - "section": "Pull requests", - "text": "Pull requests\n\nGitHub Flow\nThis repository uses the GitHub Flow model for collaboration. To submit a pull request:\n\nCreate a branch\nPlease see the branch naming convention below. If you don’t have write access to this repository, please fork it.\nMake changes\nMake sure your code\n\npasses all checks imposed by GitHub Actions\nis well documented\nis well tested with unit tests sufficiently covering the changes introduced\n\nCreate a pull request (PR)\nIn the pull request description, please link the relevant issue (if any), provide a detailed description of the change, and include any assumptions.\nAddress review comments, if any\nPost approval\nMerge your PR if you have write access. Otherwise, the reviewer will merge the PR on your behalf.\nPat yourself on the back\nCongratulations! 🎉 You are now an official contributor to this project! We are grateful for your contribution.\n\n\n\nBranch naming convention\nSuppose your changes are related to a current issue in the current project; please name your branch as follows: <issue_id>_<short_description>. Please use underscore (_) as a delimiter for word separation. For example, 420_fix_ui_bug would be a suitable branch name if your change is resolving and UI-related bug reported in issue number 420 in the current project.\nIf your change affects multiple repositories, please name your branches as follows: <issue_id>_<issue_repo>_<short description>. For example, 69_awesomeproject_fix_spelling_error would reference issue 69 reported in project awesomeproject and aims to resolve one or more spelling errors in multiple (likely related) repositories.\n\n\nmonorepo and staged.dependencies\nSometimes you might need to change upstream dependent package(s) to be able to submit a meaningful change. We are using staged.dependencies functionality to simulate a monorepo behavior. The dependency configuration is already specified in this project’s staged_dependencies.yaml file. You need to name the feature branches appropriately. This is the only exception from the branch naming convention described above.\nPlease refer to the staged.dependencies package documentation for more details." - }, - { - "objectID": "CONTRIBUTING.html#coding-guidelines", - "href": "CONTRIBUTING.html#coding-guidelines", - "title": "", - "section": "Coding guidelines", - "text": "Coding guidelines\nThis repository follows some unified processes and standards adopted by its maintainers to ensure software development is carried out consistently within teams and cohesively across other repositories.\n\nStyle guide\nThis repository follows the standard tidyverse style guide and uses lintr for lint checks. Customized lint configurations are available in this repository’s .lintr file.\n\n\nDependency management\nLightweight is the right weight. This repository follows tinyverse recommedations of limiting dependencies to minimum.\n\n\nDependency version management\nIf the code is not compatible with all (!) historical versions of a given dependenct package, it is required to specify minimal version in the DESCRIPTION file. In particular: if the development version requires (imports) the development version of another package - it is required to put abc (>= 1.2.3.9000).\n\n\nRecommended development environment & tools\n\nR & package versions\nWe continuously test our packages against the newest R version along with the most recent dependencies from CRAN and BioConductor. We recommend that your working environment is also set up in the same way. You can find the details about the R version and packages used in the R CMD check GitHub Action execution log - there is a step that prints out the R sessionInfo().\nIf you discover bugs on older R versions or with an older set of dependencies, please create the relevant bug reports.\n\n\npre-commit\nWe highly recommend that you use the pre-commit tool combined with R hooks for pre-commit to execute some of the checks before committing and pushing your changes.\nPre-commit hooks are already available in this repository’s .pre-commit-config.yaml file." - }, - { - "objectID": "CONTRIBUTING.html#recognition-model", - "href": "CONTRIBUTING.html#recognition-model", - "title": "", - "section": "Recognition model", - "text": "Recognition model\nAs mentioned previously, all contributions are deeply valued and appreciated. While all contribution data is available as part of the repository insights, to recognize a significant contribution and hence add the contributor to the package authors list, the following rules are enforced:\n\nMinimum 5% of lines of code authored* (determined by git blame query) OR\nBeing at the top 5 contributors in terms of number of commits OR lines added OR lines removed*\n\n*Excluding auto-generated code, including but not limited to roxygen comments or renv.lock files.\nThe package maintainer also reserves the right to adjust the criteria to recognize contributions." - }, - { - "objectID": "CONTRIBUTING.html#questions", - "href": "CONTRIBUTING.html#questions", - "title": "", - "section": "Questions", - "text": "Questions\nIf you have further questions regarding the contribution guidelines, please contact the package/repository maintainer." - }, - { - "objectID": "listings/vital-signs/vsl01.html#output", - "href": "listings/vital-signs/vsl01.html#output", - "title": "VSL01", - "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"CRTNPT\", \"AGSXRC\", \"AVISIT\"),\n disp_cols = names(out),\n main_title = \"Listing of Vital Signs: Safety-Evaluable Patients\",\n main_footer = \"Baseline is the patient's last observation prior to initiation of study drug. Abnormalities are flagged as high (H) or low (L) if outside the Roche standard reference range.\" \n)\n\nhead(lsting, 20)\n\nListing of Vital Signs: Safety-Evaluable Patients\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Diastolic Blood \n Pressure, Systolic Blood \n Weight Sitting Diastolic Blood Pressure, Systolic Blood Respiratory Rate \n Result Temperature Result Result Pressure, Sitting Pressure, Pulse Rate Result Result \n Study (Kg); Weight (C); Temperature Rate (Pa); Sitting (Pa); Sitting (beats/min); Pulse Rate (breaths/min); Respiratory Rate\nTreatment Center/Subject ID Age/Sex/Race Visit Day Range:(40-100) Change from BL Range:(36.1-37.2) Change from BL Range:(80-120) Change from BL Range:(120-180) Change from BL Range:(60-100) Change from BL Range:(12-20) Change from BL \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/105 38/M/BLACK OR AFRICAN AMERICAN WEEK 1 DAY 8 189 90.96 24.62 36.79 -1.88 101.10 -12.65 181.05/H 3.70 84.91 -2.05 18.34 1.13 \n WEEK 2 DAY 15 323 41.40 -24.93 36.52 -2.14 111.02 -2.72 132.47 -44.88 71.54 -15.42 9.81/L -7.40 \n WEEK 3 DAY 22 492 60.55 -5.78 35.03/L -3.64 88.35 -25.39 112.67/L -64.68 33.75/L -53.22 21.23/H 4.02 \n WEEK 4 DAY 29 550 69.69 3.36 35.71/L -2.95 100.74 -13.00 194.88/H 17.53 97.51 10.54 12.50 -4.71 \n WEEK 5 DAY 36 628 81.64 15.30 36.01/L -2.65 123.17/H 9.43 140.33 -37.02 62.50 -24.47 10.91/L -6.30 \n BRA-1/134 47/M/WHITE WEEK 1 DAY 8 203 42.95 -12.51 36.39 -1.38 112.71 26.38 148.69 -52.75 69.12 3.72 15.31 -2.84 \n WEEK 2 DAY 15 326 20.36/L -35.09 35.75/L -2.03 98.42 12.09 188.08/H -13.36 68.79 3.40 17.60 -0.55 \n WEEK 3 DAY 22 363 46.33 -9.12 35.43/L -2.34 97.88 11.55 160.05 -41.39 90.21 24.81 18.15 0.00 \n WEEK 4 DAY 29 367 43.83 -11.62 36.01/L -1.76 98.97 12.65 132.19 -69.25 88.39 23.00 19.62 1.48 \n WEEK 5 DAY 36 417 31.75/L -23.71 36.35 -1.42 124.26/H 37.94 134.30 -67.14 88.64 23.25 20.08/H 1.94 \n BRA-1/42 36/M/BLACK OR AFRICAN AMERICAN WEEK 1 DAY 8 265 115.27/H 8.42 37.35/H -1.67 107.32 5.90 173.89 27.40 66.14 26.13 9.23/L 7.13 \n WEEK 2 DAY 15 313 45.84 -61.01 36.01/L -3.01 110.97 9.55 144.75 -1.74 109.71/H 69.70 7.18/L 5.08 \n WEEK 3 DAY 22 325 85.70 -21.14 37.71/H -1.31 124.13/H 22.71 89.08/L -57.41 90.29 50.28 25.16/H 23.05 \n WEEK 4 DAY 29 535 44.64 -62.21 36.44 -2.58 79.51/L -21.91 140.78 -5.71 82.44 42.43 14.06 11.95 \n WEEK 5 DAY 36 729 85.21 -21.64 35.78/L -3.23 105.26 3.84 126.60 -19.89 88.71 48.70 25.98/H 23.87 \n BRA-1/93 34/F/ASIAN WEEK 1 DAY 8 402 47.51 -35.34 35.50/L -0.83 94.27 17.98 98.82/L -61.71 72.44 -7.85 14.97 0.22 \n WEEK 2 DAY 15 460 67.64 -15.21 37.96/H 1.62 109.98 33.69 104.21/L -56.32 104.70/H 24.41 14.90 0.16 \n WEEK 3 DAY 22 464 53.06 -29.78 36.33 -0.01 90.17 13.87 139.66 -20.87 111.13/H 30.85 22.86/H 8.12 \n WEEK 4 DAY 29 496 61.68 -21.17 33.52/L -2.82 112.76 36.47 128.82 -31.70 72.89 -7.39 20.77/H 6.03 \n WEEK 5 DAY 36 538 53.98 -28.86 35.71/L -0.63 80.20 3.91 137.16 -23.37 96.63 16.35 18.10 3.36 \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nBaseline is the patient's last observation prior to initiation of study drug. Abnormalities are flagged as high (H) or low (L) if outside the Roche standard reference range.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadvs <- random.cdisc.data::cadvs\n\nget_param_unit_range <- function(dataset) {\n u_rng <- lapply(unique(dataset$PARAMCD), function(p) {\n dat <- dataset %>% filter(PARAMCD == p)\n list(\n unit = unique(dat$AVALU),\n range = paste0(unique(dat$ANRLO), \"-\", unique(dat$ANRHI))\n )\n })\n names(u_rng) <- unique(dataset$PARAMCD)\n u_rng\n}\n\nvs_u_rng <- get_param_unit_range(advs)\n\nadvs_sub <- advs %>%\n filter(!is.na(AVAL) & SAFFL == \"Y\" & ONTRTFL == \"Y\" & !is.na(VSSEQ)) %>%\n mutate(\n CRTNPT = paste(SITEID, sub(\"^.*-([[:alnum:]]+)$\", \"\\\\1\", SUBJID), sep = \"/\"),\n AGSXRC = paste(AGE, SEX, RACE, sep = \"/\"),\n AVAL = format(round(AVAL, 2), nsmall = 2),\n AVAL_ANRIND = ifelse(ANRIND %in% c(\"NORMAL\", \"\"), AVAL, paste(AVAL, substr(ANRIND, 1, 1), sep = \"/\")),\n CHG = format(round(CHG, 2), nsmall = 2)\n )\n\nanl_vs <- advs_sub %>%\n select(SUBJID, CRTNPT, AGSXRC, TRT01A, PARAMCD, AVAL_ANRIND, CHG, ADY, AVISIT, ADTM) %>%\n tidyr::pivot_wider(\n id_cols = c(SUBJID, CRTNPT, AGSXRC, TRT01A, ADY, AVISIT, ADTM),\n names_from = PARAMCD,\n values_from = c(AVAL_ANRIND, CHG)\n )\n\nout <- anl_vs %>%\n select(\n CRTNPT, AGSXRC, TRT01A, AVISIT, ADY, AVAL_ANRIND_WEIGHT, CHG_WEIGHT, AVAL_ANRIND_TEMP, CHG_TEMP, AVAL_ANRIND_DIABP,\n CHG_DIABP, AVAL_ANRIND_SYSBP, CHG_SYSBP, AVAL_ANRIND_PULSE, CHG_PULSE, AVAL_ANRIND_RESP, CHG_RESP\n ) %>%\n var_relabel(\n CRTNPT = \"Center/Subject ID\",\n AGSXRC = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n AVISIT = \"Visit\",\n ADY = \"Study\\nDay\",\n AVAL_ANRIND_WEIGHT = paste0(\n \"Weight\\nResult\\n(\",\n vs_u_rng$WEIGHT$unit,\n \");\\nRange:(\",\n vs_u_rng$WEIGHT$range,\n \")\"\n ),\n CHG_WEIGHT = \"Weight\\nChange from BL\",\n AVAL_ANRIND_TEMP = paste0(\n \"Temperature Result\\n(\",\n vs_u_rng$TEMP$unit,\n \");\\nRange:(\",\n vs_u_rng$TEMP$range,\n \")\"\n ),\n CHG_TEMP = \"Temperature Rate\\nChange from BL\",\n AVAL_ANRIND_DIABP = paste0(\n \"Diastolic Blood\\nPressure,\\nSitting\\nResult\\n(\",\n vs_u_rng$DIABP$unit,\n \");\\nRange:(\",\n vs_u_rng$DIABP$range,\n \")\"\n ),\n CHG_DIABP = \"Diastolic Blood\\nPressure,\\nSitting\\nChange from BL\",\n AVAL_ANRIND_SYSBP = paste0(\n \"Systolic Blood\\nPressure,\\nSitting\\n(\",\n vs_u_rng$SYSBP$unit,\n \");\\nRange:(\",\n vs_u_rng$SYSBP$range,\n \")\"\n ),\n CHG_SYSBP = \"Systolic Blood\\nPressure,\\nSitting\\nChange from BL\",\n AVAL_ANRIND_PULSE = paste0(\n \"Pulse Rate Result\\n(\",\n vs_u_rng$PULSE$unit,\n \");\\nRange:(\",\n vs_u_rng$PULSE$range,\n \")\"\n ),\n CHG_PULSE = \"Pulse Rate\\nChange from BL\",\n AVAL_ANRIND_RESP = paste0(\n \"Respiratory Rate\\nResult\\n(\",\n vs_u_rng$RESP$unit,\n \");\\nRange:(\",\n vs_u_rng$RESP$range,\n \")\"\n ),\n CHG_RESP = \"Respiratory Rate\\nChange from BL\"\n )", + "Tables", + "Efficacy", + "RBMIT01" + ] + }, + { + "objectID": "tables/efficacy/rbmit01.html#impute", + "href": "tables/efficacy/rbmit01.html#impute", + "title": "RBMIT01", + "section": "Impute", + "text": "Impute\nThe next step is to use the parameters from the imputation model to generate the imputed datasets. This is done via the rbmi::impute() function. The function only has two key inputs: the imputation model output from rbmi::draws() and the reference groups relevant to reference-based imputation methods. It’s usage is thus:\n\nCodeimpute_references <- c(\"DRUG\" = \"PLACEBO\", \"PLACEBO\" = \"PLACEBO\")\n\nimpute_obj <- rbmi::impute(\n draws_obj,\n references = impute_references\n)", "crumbs": [ - "Listings", - "Vital Signs", - "VSL01" + "Tables", + "Efficacy", + "RBMIT01" ] }, { - "objectID": "listings/vital-signs/vsl01.html#reproducibility", - "href": "listings/vital-signs/vsl01.html#reproducibility", - "title": "VSL01", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:07:29 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/efficacy/rbmit01.html#analyze", + "href": "tables/efficacy/rbmit01.html#analyze", + "title": "RBMIT01", + "section": "Analyze", + "text": "Analyze\nThe next step is to run the analysis model on each imputed dataset. This is done by defining an analysis function and then calling rbmi::analyse() to apply this function to each imputed dataset.\n\nCode# Define analysis model\nanalyse_fun <- ancova\n\nref_levels <- levels(impute_obj$data$group[[1]])\nnames(ref_levels) <- c(\"ref\", \"alt\")\n\nanalyse_obj <- rbmi::analyse(\n imputations = impute_obj,\n fun = analyse_fun,\n vars = rbmi::set_vars(\n subjid = \"TMP_ID\",\n outcome = missing_var,\n visit = vars$visit,\n group = vars$group,\n covariates = covariates$analyse\n )\n)", "crumbs": [ - "Listings", - "Vital Signs", - "VSL01" + "Tables", + "Efficacy", + "RBMIT01" ] }, { - "objectID": "listings/lab-results/lbl01.html#output", - "href": "listings/lab-results/lbl01.html#output", - "title": "LBL01", - "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"CPID\"),\n disp_cols = names(out),\n main_title = \"Listing of Laboratory Test Results\",\n main_footer = \"NCI CTCAE grade is displayed as abnormal high (H) or low (L) followed by the grade.\"\n)\n\nhead(lsting, 20)\n\nListing of Laboratory Test Results\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Days Since \n Study Last Dose of ALT CRP IGA \nTreatment Center/Patient ID Day Study Drug (U/L / NCI CTCAE grade) (mg/L / NCI CTCAE grade) (g/L / NCI CTCAE grade)\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-105 80 NA 4.30 / L4 9.09 2.84 \n 149 69 24.70 9.15 2.93 \n 314 165 24.87 10.89 / H2 2.66 \n 398 84 3.67 / L3 8.14 2.86 \n 470 72 18.55 10.59 / H3 2.88 \n 528 58 7.73 10.09 / H3 2.93 \n 535 7 23.51 9.20 2.88 \n BRA-1/id-134 225 NA 7.37 10.46 / H1 2.86 \n 227 2 16.42 7.43 / L1 2.76 \n 255 28 11.16 9.41 2.75 \n 269 14 15.89 10.02 / H4 2.84 \n 357 88 24.35 8.01 2.86 \n 436 79 16.03 8.51 2.98 \n 440 4 17.21 7.63 / L3 2.78 \n BRA-1/id-42 176 NA 16.56 8.88 2.75 \n 477 301 16.49 8.11 2.95 \n 534 57 18.71 8.78 2.95 \n 550 16 11.44 9.53 2.99 \n 569 19 21.66 10.32 / H2 3.00 / H1 \n 608 39 24.61 7.95 / L2 2.78 \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nNCI CTCAE grade is displayed as abnormal high (H) or low (L) followed by the grade.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadlb <- random.cdisc.data::cadlb\n\nadlb_x <- adlb %>%\n filter(!is.na(AVAL) & !is.na(LBSEQ) & !is.na(ADY) & ANRIND != \"\") %>%\n mutate(\n CPID = paste(SITEID, SUBJID, sep = \"/\"),\n PARAM_U = paste0(PARAMCD, \"\\n(\", AVALU, \" / NCI CTCAE grade)\"),\n ANRIND = factor(\n case_when(\n ANRIND == \"LOW\" ~ \"L\",\n ANRIND == \"HIGH\" ~ \"H\",\n TRUE ~ as.character(ANRIND)\n ),\n levels = c(\"\", \"H\", \"L\", \"NORMAL\")\n ),\n AVALC = as.character(format(round(AVAL, 2), nsmall = 2))\n ) %>%\n mutate(AVAL_GR = ifelse(\n !ANRIND %in% c(\"H\", \"L\"),\n AVALC,\n paste(AVALC, paste0(ANRIND, sub(\"-\", \"\", ATOXGR)), sep = \" / \")\n )) %>%\n select(CPID, TRT01A, ADY, LBSEQ, PARAM_U, AVAL_GR) %>%\n unique()\n\nout <- adlb_x %>%\n arrange(CPID, ADY, PARAM_U, LBSEQ) %>%\n tidyr::pivot_wider(\n id_cols = c(TRT01A, CPID, ADY),\n names_from = PARAM_U,\n values_from = AVAL_GR\n ) %>%\n group_by(CPID) %>%\n mutate(DLD = ADY - lag(ADY)) %>%\n ungroup() %>%\n select(CPID, TRT01A, ADY, DLD, unique(adlb_x$PARAM_U))\n\nvar_labels(out) <- names(out)\nout <- out %>%\n var_relabel(\n TRT01A = \"Treatment\",\n CPID = \"Center/Patient ID\",\n ADY = \"Study\\nDay\",\n DLD = \"Days Since\\nLast Dose of\\nStudy Drug\"\n )", + "objectID": "tables/efficacy/rbmit01.html#pool", + "href": "tables/efficacy/rbmit01.html#pool", + "title": "RBMIT01", + "section": "Pool", + "text": "Pool\nThe rbmi::pool() function can be used to summarize the analysis results across multiple imputed datasets to provide an overall statistic with a standard error, confidence intervals and a p-value for the hypothesis test of the null hypothesis that the effect is equal to 0. Using the broom::tidy() function the rbmi final results are reshaped.\n\nCodelibrary(broom)\n\npool_obj <- rbmi::pool(\n results = analyse_obj,\n conf.level = 0.95,\n alternative = c(\"two.sided\", \"less\", \"greater\"),\n type = c(\"percentile\", \"normal\")\n)\n\ndf <- tidy(pool_obj)\ndf\n\n group est se_est lower_cl_est upper_cl_est est_contr se_contr\n1 ref -1.615820 0.4862316 -2.575771 -0.6558685 NA NA\n2 alt -1.707626 0.4749573 -2.645319 -0.7699335 -0.09180645 0.6826279\n3 ref -4.218952 0.6505048 -5.503615 -2.9342892 NA NA\n4 alt -2.815275 0.6364376 -4.072204 -1.5583461 1.40367691 0.9149382\n5 ref -6.330717 0.7020406 -7.717703 -4.9437297 NA NA\n6 alt -4.177543 0.6863985 -5.533665 -2.8214218 2.15317319 0.9854002\n7 ref -7.540923 0.8133804 -9.152471 -5.9293739 NA NA\n8 alt -4.824323 0.7521449 -6.310829 -3.3378160 2.71660019 1.1225222\n lower_cl_contr upper_cl_contr p_value relative_reduc visit conf_level\n1 NA NA NA NA 4 0.95\n2 -1.4394968 1.255884 0.89317724 0.05681725 4 0.95\n3 NA NA NA NA 5 0.95\n4 -0.4032862 3.210640 0.12696838 -0.33270747 5 0.95\n5 NA NA NA NA 6 0.95\n6 0.2063790 4.099967 0.03040925 -0.34011524 6 0.95\n7 NA NA NA NA 7 0.95\n8 0.4945431 4.938657 0.01698541 -0.36024772 7 0.95", "crumbs": [ - "Listings", - "Lab Results", - "LBL01" + "Tables", + "Efficacy", + "RBMIT01" ] }, { - "objectID": "listings/lab-results/lbl01.html#reproducibility", - "href": "listings/lab-results/lbl01.html#reproducibility", - "title": "LBL01", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:07:39 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/efficacy/rbmit01.html#create-output", + "href": "tables/efficacy/rbmit01.html#create-output", + "title": "RBMIT01", + "section": "Create Output", + "text": "Create Output\nFinally, use functions from the rtables and tern packages to generate a nicely formatted rtable object.\n\nCoderesult <- basic_table() %>%\n split_cols_by(\"group\", ref_group = levels(df$group)[1]) %>%\n split_rows_by(\"visit\", split_label = \"Visit\", label_pos = \"topleft\") %>%\n summarize_rbmi() %>%\n build_table(df)\nresult\n\nVisit ref alt \n—————————————————————————————————————————————————————————————————————————\n4 \n Adjusted Mean (SE) -1.616 (0.486) -1.708 (0.475) \n 95% CI (-2.576, -0.656) (-2.645, -0.770)\n Difference in Adjusted Means (SE) -0.092 (0.683) \n 95% CI (-1.439, 1.256) \n Relative Reduction (%) 5.7% \n p-value (RBMI) 0.8932 \n5 \n Adjusted Mean (SE) -4.219 (0.651) -2.815 (0.636) \n 95% CI (-5.504, -2.934) (-4.072, -1.558)\n Difference in Adjusted Means (SE) 1.404 (0.915) \n 95% CI (-0.403, 3.211) \n Relative Reduction (%) -33.3% \n p-value (RBMI) 0.1270 \n6 \n Adjusted Mean (SE) -6.331 (0.702) -4.178 (0.686) \n 95% CI (-7.718, -4.944) (-5.534, -2.821)\n Difference in Adjusted Means (SE) 2.153 (0.985) \n 95% CI (0.206, 4.100) \n Relative Reduction (%) -34.0% \n p-value (RBMI) 0.0304 \n7 \n Adjusted Mean (SE) -7.541 (0.813) -4.824 (0.752) \n 95% CI (-9.152, -5.929) (-6.311, -3.338)\n Difference in Adjusted Means (SE) 2.717 (1.123) \n 95% CI (0.495, 4.939) \n Relative Reduction (%) -36.0% \n p-value (RBMI) 0.0170", "crumbs": [ - "Listings", - "Lab Results", - "LBL01" + "Tables", + "Efficacy", + "RBMIT01" ] }, { - "objectID": "listings/lab-results/lbl02a_rls.html#output", - "href": "listings/lab-results/lbl02a_rls.html#output", - "title": "LBL02A_RLS", - "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"LBTEST_U\", \"CPID\"),\n disp_cols = names(out),\n main_title = \"Listing of Laboratory Abnormalities Defined by Roche Safety Lab Standardization\",\n main_footer = \"Standard reference range, marked reference range and clinically relevant change from baseline are from the Roche Safety Lab Standardization guideline. Abnormalities are flagged as high (H) or low (L) if outside the standard reference range; high high (HH) or low low (LL) if outside the marked reference range with a clinically relevant change from baseline.\" \n)\n\nhead(lsting, 20)\n\nListing of Laboratory Abnormalities Defined by Roche Safety Lab Standardization\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Clinically \n Days Since % Change Standard Marked Relevant \n Study Last Dose of from Reference Reference Change Abnormality\nTreatment Lab Test (Unit) Center/Patient ID Day Study Drug Result Baseline Range Range Dec./Inc. Flag \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X Alanine Aminotransferase Measurement (U/L) BRA-1/id-105 80 0 4.3 NA 5.5 - 31.1 7 - 55 40% / 40% LL \n 149 69 24.7 0.0 5.5 - 31.1 7 - 55 40% / 40% \n 314 165 24.9 0.7 5.5 - 31.1 7 - 55 40% / 40% \n 398 84 3.7 -85.2 5.5 - 31.1 7 - 55 40% / 40% LL \n 470 72 18.5 -24.9 5.5 - 31.1 7 - 55 40% / 40% \n 528 58 7.7 -68.7 5.5 - 31.1 7 - 55 40% / 40% \n 535 7 23.5 -4.8 5.5 - 31.1 7 - 55 40% / 40% \n BRA-1/id-134 225 0 7.4 NA 5.5 - 31.1 7 - 55 40% / 40% \n 227 2 16.4 0.0 5.5 - 31.1 7 - 55 40% / 40% \n 255 28 11.2 -32.0 5.5 - 31.1 7 - 55 40% / 40% \n 269 14 15.9 -3.2 5.5 - 31.1 7 - 55 40% / 40% \n 357 88 24.4 48.3 5.5 - 31.1 7 - 55 40% / 40% \n 436 79 16.0 -2.4 5.5 - 31.1 7 - 55 40% / 40% \n 440 4 17.2 4.8 5.5 - 31.1 7 - 55 40% / 40% \n BRA-1/id-42 176 0 16.6 NA 5.5 - 31.1 7 - 55 40% / 40% \n 477 301 16.5 0.0 5.5 - 31.1 7 - 55 40% / 40% \n 534 57 18.7 13.4 5.5 - 31.1 7 - 55 40% / 40% \n 550 16 11.4 -30.6 5.5 - 31.1 7 - 55 40% / 40% \n 569 19 21.7 31.3 5.5 - 31.1 7 - 55 40% / 40% \n 608 39 24.6 49.2 5.5 - 31.1 7 - 55 40% / 40% \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\nStandard reference range, marked reference range and clinically relevant change from baseline are from the Roche Safety Lab Standardization guideline. Abnormalities are flagged as high (H) or low (L) if outside the standard reference range; high high (HH) or low low (LL) if outside the marked reference range with a clinically relevant change from baseline.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadlb <- random.cdisc.data::cadlb\n\nadlb_x <- adlb %>%\n filter(\n LBTEST != \"\"\n ) %>%\n mutate(\n LBTEST_U = paste0(LBTEST, \" (\", AVALU, \")\"),\n CPID = paste(SITEID, SUBJID, sep = \"/\")\n ) %>%\n mutate(CRC = paste(\"40%\", \"40%\", sep = \" / \"))\n\nstd_rng <- adlb_x %>%\n group_by(LBTEST_U) %>%\n summarise(\n STD_RNG_LO = stats::quantile(AVAL, probs = c(0.1), na.rm = TRUE),\n STD_RNG_HI = stats::quantile(AVAL, probs = c(0.9), na.rm = TRUE)\n ) %>%\n ungroup()\n\nadlb_x <- adlb_x %>%\n left_join(std_rng, by = \"LBTEST_U\") %>%\n mutate(\n AVAL = format(round(AVAL, 1), nsmall = 1),\n PCHG = format(round(PCHG, 1), nsmall = 1),\n LBNRNG = paste(ANRLO, ANRHI, sep = \" - \"),\n STD_RNG_LO = format(round(STD_RNG_LO, 1), nsmall = 1),\n STD_RNG_HI = format(round(STD_RNG_HI, 1), nsmall = 1)\n ) %>%\n mutate(\n STD_RNG = paste(STD_RNG_LO, STD_RNG_HI, sep = \" - \"),\n ANRIND = factor(case_when(\n ANRIND == \"LOW\" & AVAL > STD_RNG_LO ~ \"L\",\n ANRIND == \"HIGH\" & AVAL < STD_RNG_HI ~ \"H\",\n ANRIND == \"LOW\" & AVAL <= STD_RNG_LO ~ \"LL\",\n ANRIND == \"HIGH\" & AVAL >= STD_RNG_HI ~ \"HH\",\n TRUE ~ \"\"\n ))\n ) %>%\n select(LBTEST_U, TRT01A, CPID, ADY, AVAL, PCHG, STD_RNG, LBNRNG, CRC, ANRIND) %>%\n unique() %>%\n arrange(CPID, ADY) %>%\n group_by(LBTEST_U, CPID) %>%\n mutate(DLD = ADY - lag(ADY)) %>%\n ungroup() %>%\n mutate(DLD = ifelse(is.na(DLD), 0, DLD))\n\nout <- adlb_x %>%\n select(LBTEST_U, TRT01A, CPID, ADY, DLD, AVAL, PCHG, STD_RNG, LBNRNG, CRC, ANRIND)\n\nvar_labels(out) <- names(out)\nout <- out %>%\n var_relabel(\n LBTEST_U = \"Lab Test (Unit)\",\n TRT01A = \"Treatment\",\n CPID = \"Center/Patient ID\",\n ADY = \"Study\\nDay\",\n DLD = \"Days Since\\nLast Dose of\\nStudy Drug\",\n AVAL = \"Result\",\n PCHG = \"% Change\\nfrom\\nBaseline\",\n STD_RNG = \"Standard\\nReference\\nRange\",\n LBNRNG = \"Marked\\nReference\\nRange\",\n CRC = \"Clinically\\nRelevant\\nChange\\nDec./Inc.\",\n ANRIND = \"Abnormality\\nFlag\"\n )", + "objectID": "tables/efficacy/rbmit01.html#data-setup", + "href": "tables/efficacy/rbmit01.html#data-setup", + "title": "RBMIT01", + "section": "Data Setup", + "text": "Data Setup\nWe use a publicly available example dataset from an antidepressant clinical trial of an active drug versus placebo from the rbmi package. The relevant endpoint is the Hamilton 17-item depression rating scale (HAMD17) which was assessed at baseline and at weeks 1, 2, 4, and 6. Study drug discontinuation occurred in 24% of subjects from the active drug and 26% of subjects from placebo. All data after study drug discontinuation are missing and there is a single additional intermittent missing observation.\n\nCodelibrary(tern.rbmi)\nlibrary(dplyr)\nset.seed(123)\n\ndata <- antidepressant_data\nlevels(data$THERAPY) <- c(\"PLACEBO\", \"DRUG\") # This is important! The order defines the computation order later\n\nmissing_var <- \"CHANGE\"\nvars <- list(\n id = \"PATIENT\",\n visit = \"VISIT\",\n expand_vars = c(\"BASVAL\", \"THERAPY\"),\n group = \"THERAPY\"\n)\ncovariates <- list(\n draws = c(\"BASVAL*VISIT\", \"THERAPY*VISIT\"),\n analyse = c(\"BASVAL\")\n)\n\ndata <- data %>%\n dplyr::select(PATIENT, THERAPY, VISIT, BASVAL, THERAPY, CHANGE) %>%\n dplyr::mutate(dplyr::across(.cols = vars$id, ~ as.factor(.x))) %>%\n dplyr::arrange(dplyr::across(.cols = c(vars$id, vars$visit)))\n\n# Use expand_locf to add rows corresponding to visits with missing outcomes to the dataset\ndata_full <- do.call(\n expand_locf,\n args = list(\n data = data,\n vars = c(vars$expand_vars, vars$group),\n group = vars$id,\n order = c(vars$id, vars$visit)\n ) %>%\n append(lapply(data[c(vars$id, vars$visit)], levels))\n)\n\ndata_full <- data_full %>%\n dplyr::group_by(dplyr::across(vars$id)) %>%\n dplyr::mutate(!!vars$group := Filter(Negate(is.na), .data[[vars$group]])[1])\n\n# there are duplicates - use first value\ndata_full <- data_full %>%\n dplyr::group_by(dplyr::across(c(vars$id, vars$group, vars$visit))) %>%\n dplyr::slice(1) %>%\n dplyr::ungroup()\n# need to have a single ID column\ndata_full <- data_full %>%\n tidyr::unite(\"TMP_ID\", dplyr::all_of(vars$id), sep = \"_#_\", remove = FALSE) %>%\n dplyr::mutate(TMP_ID = as.factor(TMP_ID))", "crumbs": [ - "Listings", - "Lab Results", - "LBL02A_RLS" + "Tables", + "Efficacy", + "RBMIT01" ] }, { - "objectID": "listings/lab-results/lbl02a_rls.html#reproducibility", - "href": "listings/lab-results/lbl02a_rls.html#reproducibility", - "title": "LBL02A_RLS", + "objectID": "tables/efficacy/rbmit01.html#reproducibility", + "href": "tables/efficacy/rbmit01.html#reproducibility", + "title": "RBMIT01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:07:49 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:03:29 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n assertthat 0.2.1 2019-03-21 [1] RSPM\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom * 1.0.7 2024-09-26 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gridExtra 2.3 2017-09-09 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n inline 0.3.19 2021-05-31 [1] CRAN (R 4.4.1)\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n loo 2.8.0 2024-07-03 [1] CRAN (R 4.4.1)\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n matrixStats 1.4.1 2024-09-08 [1] CRAN (R 4.4.1)\n mmrm 0.3.14.9001 2025-01-08 [1] https://p~\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgbuild 1.4.5 2024-10-28 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n QuickJSR 1.4.0 2024-10-01 [1] CRAN (R 4.4.1)\n R6 2.5.1 2021-08-19 [1] RSPM\n rbibutils 2.3 2024-10-04 [1] RSPM\n rbmi * 1.3.1 2024-12-11 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n RcppParallel 5.1.9 2024-08-19 [1] CRAN (R 4.4.1)\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rstan 2.32.6 2024-03-05 [1] CRAN (R 4.4.1)\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n StanHeaders 2.32.10 2024-07-15 [1] CRAN (R 4.4.1)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.rbmi * 0.1.4.9002 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n TMB 1.9.16 2025-01-08 [1] CRAN (R 4.4.1)\n V8 6.0.0 2024-10-12 [1] CRAN (R 4.4.1)\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", - "Lab Results", - "LBL02A_RLS" + "Tables", + "Efficacy", + "RBMIT01" ] }, { - "objectID": "listings/medical-history/mhl01.html#output", - "href": "listings/medical-history/mhl01.html#output", - "title": "MHL01", + "objectID": "tables/efficacy/aovt02.html#output", + "href": "tables/efficacy/aovt02.html#output", + "title": "AOVT02", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"ID\", \"ASR\", \"MHBODSYS\", \"MHDECOD\"),\n disp_cols = names(out),\n main_title = \"Listing of Medical History and Concurrent Diseases\"\n)\n\nhead(lsting, 20)\n\nListing of Medical History and Concurrent Diseases\n\n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Date of First \n Study Drug Start Date Start Day End Date End Day Time Relation \nTreatment Center/Patient ID Age/Sex/Race SOC Disease Term Administration of Disease of Disease of Disease of Disease of Disease \n—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-134 47/M/WHITE cl A trm A_2/2 04NOV2020 21SEP2021 321 16FEB2022 469 PRIOR_CONCOMITANT\n 04NOV2020 02DEC2021 393 13JAN2022 435 PRIOR_CONCOMITANT\n cl B trm B_2/3 04NOV2020 15APR2021 162 04OCT2021 334 PRIOR_CONCOMITANT\n cl D trm D_2/3 04NOV2020 19MAY2021 196 31OCT2021 361 PRIOR_CONCOMITANT\n BRA-1/id-42 36/M/BLACK OR AFRICAN AMERICAN cl A trm A_2/2 01JAN2020 09JUN2020 160 22FEB2021 418 PRIOR_CONCOMITANT\n 01JAN2020 04APR2021 459 15OCT2021 653 PRIOR_CONCOMITANT\n 01JAN2020 20APR2021 475 10AUG2021 587 PRIOR_CONCOMITANT\n cl B trm B_1/3 01JAN2020 15APR2021 470 23AUG2021 600 PRIOR_CONCOMITANT\n 01JAN2020 03OCT2021 641 17OCT2021 655 PRIOR_CONCOMITANT\n trm B_3/3 01JAN2020 19OCT2020 292 07DEC2020 341 PRIOR_CONCOMITANT\n cl C trm C_1/2 01JAN2020 11MAY2021 496 19OCT2021 657 PRIOR_CONCOMITANT\n trm C_2/2 01JAN2020 09FEB2020 39 28JUN2021 544 PRIOR_CONCOMITANT\n 01JAN2020 05APR2020 95 04FEB2021 400 PRIOR_CONCOMITANT\n cl D trm D_1/3 01JAN2020 05MAR2020 64 24NOV2021 693 PRIOR_CONCOMITANT\n BRA-1/id-93 34/F/ASIAN cl A trm A_1/2 20JUN2020 03NOV2020 136 19JAN2021 213 PRIOR_CONCOMITANT\n cl B trm B_1/3 20JUN2020 25NOV2021 523 18DEC2021 546 PRIOR_CONCOMITANT\n trm B_3/3 20JUN2020 06FEB2022 596 15FEB2022 605 PRIOR_CONCOMITANT\n cl C trm C_1/2 20JUN2020 28MAR2021 281 11JUL2021 386 PRIOR_CONCOMITANT\n cl D trm D_1/3 20JUN2020 02MAY2021 316 06JAN2022 565 PRIOR_CONCOMITANT\n trm D_2/3 20JUN2020 03AUG2020 44 18SEP2020 90 PRIOR_CONCOMITANT\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadmh <- random.cdisc.data::cadmh\n\nout <- admh %>%\n mutate(\n ASR = paste(AGE, SEX, RACE, sep = \"/\"),\n ID = paste(SITEID, SUBJID, sep = \"/\"),\n TRTSDTM = toupper(format(as.Date(TRTSDTM), \"%d%b%Y\")),\n ASTDTM = toupper(format(as.Date(ASTDTM), \"%d%b%Y\")),\n AENDTM = toupper(format(as.Date(AENDTM), \"%d%b%Y\"))\n ) %>%\n select(ID, ASR, TRT01A, MHBODSYS, MHDECOD, TRTSDTM, ASTDTM, ASTDY, AENDTM, AENDY, ATIREL)\n\nvar_labels(out) <- c(\n ID = \"Center/Patient ID\",\n ASR = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n MHBODSYS = \"SOC\",\n MHDECOD = \"Disease Term\",\n TRTSDTM = \"Date of First\\nStudy Drug\\nAdministration\",\n ASTDTM = \"Start Date\\nof Disease\",\n ASTDY = \"Start Day\\nof Disease\",\n AENDTM = \"End Date\\nof Disease\",\n AENDY = \"End Day\\nof Disease\",\n ATIREL = \"Time Relation\\nof Disease\"\n)", + "text": "Output\nThis example will focus on data from a single visit “WEEK 1 DAY 8” and a single endpoint “FKSI-FWB”. Only evaluable populations will be analyzed.\n\n\nStandard Table\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelyt <- basic_table(show_colcounts = TRUE) %>%\n split_cols_by(\"ARMCD\", ref_group = \"ARM A\") %>%\n append_varlabels(adqs_single, \"PARAM\") %>%\n summarize_ancova(\n vars = \"CHG\",\n variables = list(arm = \"ARMCD\", covariates = NULL),\n conf_level = 0.95,\n var_labels = \"Unadjusted comparison\",\n .labels = c(lsmean = \"Mean\", lsmean_diff = \"Difference in Means\"),\n table_names = \"unadjusted\"\n ) %>%\n summarize_ancova(\n vars = \"CHG\",\n variables = list(arm = \"ARMCD\", covariates = c(\"BASE\", \"STRATA1\")),\n conf_level = 0.95,\n var_labels = \"Adjusted comparison (covariates BASE and STRATA1)\",\n table_names = \"adjusted\"\n )\n\nresult <- build_table(\n lyt = lyt,\n df = adqs_single,\n alt_counts_df = adsl\n)\n\nresult\n\n ARM A ARM B ARM C \nParameter (N=134) (N=134) (N=132) \n———————————————————————————————————————————————————————————————————————————————————————————\nUnadjusted comparison \n n 68 73 62 \n Mean 3.68 5.07 3.09 \n Difference in Means 1.38 -0.59 \n 95% CI (-2.76, 5.53) (-4.91, 3.73)\n p-value 0.5113 0.7873 \nAdjusted comparison (covariates BASE and STRATA1) \n n 68 73 62 \n Adjusted Mean 4.06 3.57 3.34 \n Difference in Adjusted Means -0.49 -0.72 \n 95% CI (-3.28, 2.29) (-3.57, 2.12)\n p-value 0.7277 0.6165 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\n\nadsl <- random.cdisc.data::cadsl\nadqs <- random.cdisc.data::cadqs\n\n# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\nadsl <- df_explicit_na(adsl)\nadqs <- df_explicit_na(adqs)\n\nadqs_single <- adqs %>%\n filter(\n AVISIT == \"WEEK 1 DAY 8\",\n PARAMCD == \"FKSI-FWB\"\n ) %>%\n mutate(CHG = ifelse(BMEASIFL == \"Y\", CHG, NA))", "crumbs": [ - "Listings", - "Medical History", - "MHL01" + "Tables", + "Efficacy", + "AOVT02" ] }, { - "objectID": "listings/medical-history/mhl01.html#reproducibility", - "href": "listings/medical-history/mhl01.html#reproducibility", - "title": "MHL01", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:07:58 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tables/efficacy/aovt02.html#teal-app", + "href": "tables/efficacy/aovt02.html#teal-app", + "title": "AOVT02", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADQS <- df_explicit_na(ADQS)\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADQS <- data[[\"ADQS\"]]\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_ancova(\n label = \"ANCOVA table\",\n dataname = \"ADQS\",\n avisit = choices_selected(\n choices = value_choices(ADQS, \"AVISIT\"),\n selected = \"WEEK 1 DAY 8\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ACTARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n aval_var = choices_selected(\n choices = variable_choices(ADQS, c(\"CHG\", \"AVAL\")),\n selected = \"CHG\"\n ),\n cov_var = choices_selected(\n choices = variable_choices(ADQS, c(\"BASE\", \"STRATA1\", \"SEX\")),\n selected = \"STRATA1\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = \"FKSI-FWB\"\n )\n )\n )\n)\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs\n\n # Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.\n ADSL <- df_explicit_na(ADSL)\n ADQS <- df_explicit_na(ADQS)\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADQS <- data[[\"ADQS\"]]\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ACTARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_t_ancova(\n label = \"ANCOVA table\",\n dataname = \"ADQS\",\n avisit = choices_selected(\n choices = value_choices(ADQS, \"AVISIT\"),\n selected = \"WEEK 1 DAY 8\"\n ),\n arm_var = choices_selected(\n choices = variable_choices(ADSL, c(\"ARM\", \"ACTARMCD\")),\n selected = \"ARM\"\n ),\n arm_ref_comp = arm_ref_comp,\n aval_var = choices_selected(\n choices = variable_choices(ADQS, c(\"CHG\", \"AVAL\")),\n selected = \"CHG\"\n ),\n cov_var = choices_selected(\n choices = variable_choices(ADQS, c(\"BASE\", \"STRATA1\", \"SEX\")),\n selected = \"STRATA1\"\n ),\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = \"FKSI-FWB\"\n )\n )\n )\n)\nshinyApp(app$ui, app$server)", "crumbs": [ - "Listings", - "Medical History", - "MHL01" + "Tables", + "Efficacy", + "AOVT02" ] }, { - "objectID": "listings/concomitant-medications/cml02a_gl.html#output", - "href": "listings/concomitant-medications/cml02a_gl.html#output", - "title": "CML02A_GL", - "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"ATC2\", \"CMDECOD\", \"CMTRT\"),\n disp_cols = names(out),\n main_title = \"Listing of Concomitant Medication Class Level 2, Preferred Name, and Investigator-Specified Terms\"\n)\n\nhead(lsting, 20)\n\nListing of Concomitant Medication Class Level 2, Preferred Name, and Investigator-Specified Terms\n\n———————————————————————————————————————————————————————————————————\n Investigator-Specified\nATC Class Level 2 WHODrug Preferred Name Treatment Term \n———————————————————————————————————————————————————————————————————\n ATCCLAS2 A medname A_1/3 A_1/3 \n medname A_2/3 A_2/3 \n medname A_3/3 A_3/3 \n ATCCLAS2 A p2 medname A_3/3 A_3/3 \n ATCCLAS2 B medname B_1/4 B_1/4 \n medname B_2/4 B_2/4 \n medname B_3/4 B_3/4 \n medname B_4/4 B_4/4 \n ATCCLAS2 B p2 medname B_1/4 B_1/4 \n medname B_2/4 B_2/4 \n ATCCLAS2 B p3 medname B_1/4 B_1/4 \n medname B_2/4 B_2/4 \n ATCCLAS2 C medname C_1/2 C_1/2 \n medname C_2/2 C_2/2 \n ATCCLAS2 C p2 medname C_1/2 C_1/2 \n medname C_2/2 C_2/2 \n ATCCLAS2 C p3 medname C_2/2 C_2/2 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadcm <- random.cdisc.data::cadcm\n\nout <- adcm %>%\n select(ATC2, CMDECOD, CMTRT) %>%\n unique()\n\nvar_labels(out) <- c(\n ATC2 = \"ATC Class Level 2\",\n CMDECOD = \"WHODrug Preferred Name\",\n CMTRT = \"Investigator-Specified\\nTreatment Term\"\n)", + "objectID": "tables/efficacy/aovt02.html#reproducibility", + "href": "tables/efficacy/aovt02.html#reproducibility", + "title": "AOVT02", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:04:08 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", - "Concomitant Medications", - "CML02A_GL" + "Tables", + "Efficacy", + "AOVT02" ] }, { - "objectID": "listings/concomitant-medications/cml02a_gl.html#reproducibility", - "href": "listings/concomitant-medications/cml02a_gl.html#reproducibility", - "title": "CML02A_GL", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:08:07 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "tlg-index.html", + "href": "tlg-index.html", + "title": "Index", + "section": "", + "text": "Tables\n\nADA\n        ADAT01 – Baseline Prevalence and Incidence of Treatment Emergent ADA\n        ADAT02 – Summary of Patients with Treatment-Induced ADA\n        ADAT03 – Summary of Serum Concentrations at Timepoints Where ADA Samples Were Collected and Analyzed\n        ADAT04A – Baseline Prevalence and Incidence of Treatment Emergent NAbs\n        ADAT04B – Baseline Prevalence and Incidence of NAbs\n\n\nAdverse Events\n        AET01 – Safety Summary\n        AET01_AESI – Safety Summary (Adverse Events of Special Interest)\n        AET02 – Adverse Events\n        AET02_SMQ – Adverse Events by Standardized MedDRA Query\n        AET03 – Adverse Events by Greatest Intensity\n        AET04 – Adverse Events by Highest NCI CTCAE Grade\n        AET04_PI – Adverse Events Reported in \\(\\geq\\) 10% of Patients by Highest NCI CTCAE Grade\n        AET05 – Adverse Event Rate Adjusted for Patient-Years at Risk – First Occurrence\n        AET05_ALL – Adverse Event Rate Adjusted for Patient-Years at Risk – All Occurrences\n        AET06 – Adverse Events by Baseline Characteristic\n        AET06_SMQ – Adverse Events by Baseline Characteristic, by SMQ and Preferred Term\n        AET07 – Adverse Events Resulting in Death\n        AET09 – Adverse Events Related to Study Drug\n        AET09_SMQ – Adverse Events Related to Study Drug by Standardized MedDRA Query\n        AET10 – Most Common (\\(\\geq\\) 5%) Adverse Events\n\n\nConcomitant Medications\n        CMT01 – Concomitant Medications (GNEDrug Legacy Coding)\n        CMT01A – Concomitant Medications by Medication Class and Preferred Name\n        CMT01B – Concomitant Medications by Medication Class and Preferred Name\n        CMT02_PT – Concomitant Medications by Preferred Name (WHODrug Coding)\n\n\nDeaths\n        DTHT01 – Deaths\n\n\nDemography\n        DMT01 – Demographics and Baseline Characteristics\n\n\nDisclosures\n        DISCLOSUREST01 – Disclosures Outputs\n        EUDRAT01 – Non-Serious Adverse Events Reported in \\(\\geq\\) 5% of Patients in Any Treatment Group – Patients and Events\n        EUDRAT02 – Serious Adverse Events, Fatal Serious Adverse Events, and Serious Adverse Events Related to Study Medication\n\n\nDisposition\n        DST01 – Patient Disposition\n        PDT01 – Major Protocol Deviations\n        PDT02 – Major Protocol Deviations Related to Epidemic/Pandemic\n\n\nECG\n        EGT01 – ECG Results and Change from Baseline by Visit\n        EGT02 – ECG Abnormalities (EGT02_1 & EGT02_2)\n        EGT03 – Shift Table of ECG Interval Data – Baseline Versus Minimum/Maximum Post-Baseline\n        EGT04 – Shift Table of Qualitative ECG Assessments\n        EGT05_QTCAT – ECG Actual Values and Changes from Baseline by Visit\n\n\nEfficacy\n        AOVT01 – ANCOVA for Multiple End Points\n        AOVT02 – ANCOVA with Single End Point and Customized Table\n        AOVT03 – ANCOVA with Consideration of Interaction\n        CFBT01 – Efficacy Data and Change from Baseline by Visit\n        CMHT01 – Cochran-Mantel-Haenszel (CMH) Summary\n        COXT01 – Cox Regression\n        COXT02 – Multivariable Cox Regression\n        DORT01 – Duration of Response\n        LGRT02 – Multi-Variable Logistic Regression\n        MMRMT01 – Tables for Mixed-Effect Model Repeated Measures Analysis\n        ONCT05 – Objective Response Rate by Subgroup\n        RATET01 – Event Rate Summary for Recurrent Events\n        RBMIT01 – Tables for RBMI\n        RSPT01 – Best Overall Response\n        TTET01 – Time-To-Event Summary\n\n\nExposure\n        EXT01 – Study Drug Exposure Table\n\n\nLab Results\n        LBT01 – Laboratory Test Results and Change from Baseline by Visit\n        LBT02 – Laboratory Test Results by Visit\n        LBT03 – Laboratory Test Results Change from Baseline by Visit\n        LBT04 – Laboratory Abnormalities Not Present at Baseline\n        LBT05 – Laboratory Abnormalities with Single and Replicated Marked\n        LBT06 – Laboratory Abnormalities by Visit and Baseline Status\n        LBT07 – Laboratory Test Results with Highest NCI CTCAE Grade Post-Baseline\n        LBT08 – Laboratory Test Results with Highest NCI CTCAE Grade at Any Time\n        LBT09 – Liver Laboratory Tests – Patients with Elevated Post-Baseline AST or ALT Levels\n        LBT10 – Liver Laboratory Tests – Patients with Elevated Post-Baseline AST or ALT Levels at Two Consecutive Visits (with Respect to ULN)\n        LBT10_BL – Liver Laboratory Tests – Patients with Elevated Post-Baseline AST or ALT Levels at Two Consecutive Visits (with Respect to Baseline)\n        LBT11 – Time to First Increase in Liver Laboratory Test Result Meeting Hy’s Law Laboratory Critieria (with Respect to ULN)\n        LBT11_BL – Time to First Increase in Liver Laboratory Test Result Meeting Hy’s Law Laboratory Critieria (with Respect to Baseline)\n        LBT12 – Liver Laboratory Tests by Time on Treatment – Patients with Elevated Post-Baseline AST or ALT Levels (with Respect to ULN)\n        LBT12_BL – Liver Laboratory Tests by Time on Treatment – Patients with Elevated Post-Baseline AST or ALT Levels (with Respect to Baseline)\n        LBT13 – NCI CTCAE Grade Laboratory Abnormalities by Visit and Baseline Grade\n        LBT14 – Laboratory Test Results Shift Table – Highest NCI CTCAE Grade Post-Baseline by Baseline NCI CTCAE Grade\n        LBT15 – Laboratory Test Shifts to NCI CTCAE Grade 3-4 Post-Baseline\n\n\nMedical History\n        MHT01 – Medical History\n\n\nPharmacokinetic\n        PKCT01 – Summary Concentration Table\n        PKPT02 – Pharmacokinetic Parameter Summary – Plasma/Serum/Blood PK Parameters (Stats in Rows)\n        PKPT03 – Pharmacokinetic Parameter Summary of Plasma by Treatment (Stats in Columns)\n        PKPT04 – Pharmacokinetic Parameter Summary – Urine PK Parameters (Stats in Rows)\n        PKPT05 – Summary of Urinary PK Parameters by Treatment Arm (Stats in Columns)\n        PKPT06 – Pharmacokinetic Parameter Summary – Dose-Normalized PK Parameters (Stats in Rows)\n        PKPT07 – Table of Mean Dose-Normalized Selected Pharmacokinetic Parameters (Stats in Columns)\n        PKPT08 – Pharmacokinetic Parameter Summary of Cumulative Amount of Drug Eliminated and Cumulative Percentage of Drug Recovered (Stats in Columns)\n        PKPT11 – Pharmacokinetic Parameter Estimated Ratios of Geometric Means and 90% Confidence Intervals for AUC and CMAX\n\n\nRisk Management Plan\n        RMPT01 – Duration of Exposure for Risk Management Plan\n        RMPT03 – Extent of Exposure by Age Group and Gender for Risk Management Plan\n        RMPT04 – Extent of Exposure by Ethnic Origin for Risk Management Plan\n        RMPT05 – Extent of Exposure by Race for Risk Management Plan\n        RMPT06 – Seriousness, Outcomes, Severity, Frequency with 95% CI for Risk Management Plan\n\n\nSafety\n        ENTXX – Enrollment Variants\n\n\nVital Signs\n        VST01 – Vital Sign Results and Change from Baseline by Visit\n        VST02 – Vital Sign Abnormalities\n\n\n\n\nListings\n\nADA\n        ADAL02 – Listing of Anti-Drug Antibody Data for Treatment Emergent ADA Positive Patients\n\n\nAdverse Events\n        AEL01 – Listing of Preferred Terms, Lowest Level Terms, and Investigator-Specified Adverse Event Terms\n        AEL01_NOLLT – Listing of Preferred Terms and Investigator-Specified Adverse Event Terms\n        AEL02 – Listing of Adverse Events\n        AEL02_ED – Listing of Adverse Events (for Early Development Studies)\n        AEL03 – Listing of Serious Adverse Events\n        AEL04 – Listing of Patient Deaths\n\n\nConcomitant Medications\n        CML01 – Listing of Previous and Concomitant Medications\n        CML02A_GL – Listing of Concomitant Medication Class Level 2, Preferred Name, and Investigator-Specified Terms\n        CML02B_GL – Listing of Concomitant Medication Class, Preferred Name, and Investigator-Specified Terms\n\n\nDisposition\n        DSL01 – Listing of Patients with Study Drug Withdrawn Due to Adverse Events\n        DSL02 – Listing of Patients Who Discontinued Early from Study\n\n\nDevelopment Safety Update Report\n        DSUR4 – Listing of Patients Who Died During Reporting Period\n\n\nECG\n        EGL01 – Listing of ECG Data: Safety-Evaluable Patients\n\n\nExposure\n        EXL01 – Listing of Exposure to Study Drug\n\n\nLab Results\n        LBL01 – Listing of Laboratory Test Results\n        LBL01_RLS – Listing of Laboratory Test Results Using Roche Safety Lab Standardization\n        LBL02A – Listing of Laboratory Abnormalities (constant units)\n        LBL02A_RLS – Listing of Laboratory Abnormalities Defined by Roche Safety Lab Standardization\n        LBL02B – Listing of Laboratory Abnormalities (variable units)\n\n\nMedical History\n        MHL01 – Listing of Medical History and Concurrent Diseases\n\n\nPharmacokinetic\n        PKCL01 – Listing of Drug A Concentration by Treatment Group, Patient and Nominal Time\n        PKCL02 – Listing of Drug A Urine Concentration and Volumes\n        PKPL01 – Listing of Drug A Plasma PK Parameters\n        PKPL02 – Listing of Drug A Urine PK Parameters\n        PKPL04 – Listing of Individual Drug A AUCIFO and CMAX Ratios Following Drug A or Drug B\n\n\nVital Signs\n        VSL01 – Listing of Vital Signs: Safety-Evaluable Patients\n\n\n\n\nGraphs\n\nEfficacy\n        FSTG01 – Subgroup Analysis of Best Overall Response\n        FSTG02 – Subgroup Analysis of Survival Duration\n        KMG01 – Kaplan-Meier Plot\n        MMRMG01 – Plots for Mixed-Effect Model Repeated Measures Analysis\n        MMRMG02 – Forest Plot for Mixed-Effect Model Repeated Measures\n\n\nPharmacokinetic\n        PKCG01 – Plot of PK Concentration Over Time by Subject\n        PKCG02 – Plot of PK Concentration Over Time by Cohort/Treatment Group/Dose\n        PKCG03 – Plot of Mean PK Concentration Over Time by Cohort\n        PKPG01 – Plot of Mean Cumulative Percentage (%) of Recovered Drug in Urine\n        PKPG02 – Pharmacokinetic Parameter Summary of Serum PK Parameters by Treatment\n        PKPG03 – Box Plot of Pharmacokinetic Parameters by Visit – Plasma\n        PKPG04 – Box Plot of Pharmacokinetic Parameters by Visit – Plasma\n        PKPG06 – Boxplot of Metabolite to Parent Ratios by Treatment\n\n\nOther\n        BRG01 – Bar Chart\n        BWG01 – Box Plot\n        CIG01 – Confidence Interval Plot\n        IPPG01 – Individual Patient Plot Over Time\n        LTG01 – Lattice Plot of Laboratory Tests by Treatment Group Over Time\n        MNG01 – Mean Plot", "crumbs": [ - "Listings", - "Concomitant Medications", - "CML02A_GL" + "Index" ] }, { - "objectID": "listings/concomitant-medications/cml01.html#output", - "href": "listings/concomitant-medications/cml01.html#output", - "title": "CML01", - "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"ID\", \"AGSXRC\", \"CMDECOD\"),\n disp_cols = names(out),\n main_title = \"Listing of Previous and Concomitant Medications\"\n)\n\nhead(lsting, 20)\n\nListing of Previous and Concomitant Medications\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Date of First Ongoing \n Study Drug Medication Duration at Final \nTreatment Center/Patient ID Age/Sex/Race Medication Name Administration Start Date Study Day (days) Previous? Contact? Dose Dose Unit Frequency Route \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-134 47/M/WHITE medname A_2/3 04NOV2020 21SEP2021 321 -148 No No 30 mg/breath Q4H INTRAMUSCULAR\n 04NOV2020 02DEC2021 393 -42 No No 41 umol/L TWICE UNKNOWN \n medname B_1/4 04NOV2020 15APR2021 162 -172 No No 25 ug/kg/day Q4H INTRAVENOUS \n 04NOV2020 15APR2021 162 -172 No No 25 ug/kg/day Q4H INTRAVENOUS \n 04NOV2020 15APR2021 162 -172 No No 25 ug/kg/day Q4H INTRAVENOUS \n medname C_1/2 04NOV2020 19MAY2021 196 -165 No No 22 ug/mL TID INHALED \n 04NOV2020 19MAY2021 196 -165 No No 22 ug/mL TID INHALED \n BRA-1/id-42 36/M/BLACK OR AFRICAN AMERICAN medname A_2/3 01JAN2020 09JUN2020 160 -258 No Yes 48 DROP QD INTRAVENOUS \n 01JAN2020 04APR2021 459 -194 No Yes 57 ug/kg/day Q4W NASAL \n 01JAN2020 15APR2021 470 -130 No Yes 83 ug/kg/day Q4H UNKNOWN \n 01JAN2020 20APR2021 475 -112 No Yes 17 ug/kg/day Q4H SUBCUTANEOUS \n medname A_3/3 01JAN2020 03OCT2021 641 -14 No Yes 68 % 4 TIMES PER MONTH UNKNOWN \n 01JAN2020 03OCT2021 641 -14 No Yes 68 % 4 TIMES PER MONTH UNKNOWN \n medname B_1/4 01JAN2020 19OCT2020 292 -49 No Yes 5 ug/mL TWICE UNKNOWN \n 01JAN2020 19OCT2020 292 -49 No Yes 5 ug/mL TWICE UNKNOWN \n 01JAN2020 19OCT2020 292 -49 No Yes 5 ug/mL TWICE UNKNOWN \n medname B_2/4 01JAN2020 11MAY2021 496 -161 No Yes 83 ug/mL TWICE RECTAL \n 01JAN2020 11MAY2021 496 -161 No Yes 83 ug/mL TWICE RECTAL \n 01JAN2020 11MAY2021 496 -161 No Yes 83 ug/mL TWICE RECTAL \n medname B_3/4 01JAN2020 09FEB2020 39 -505 No Yes 85 ug QD SUBCUTANEOUS \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadcm <- random.cdisc.data::cadcm\n\nout <- adcm %>%\n filter(!is.na(CMDECOD)) %>%\n mutate(\n ID = paste(SITEID, SUBJID, sep = \"/\"),\n AGSXRC = paste(AGE, SEX, RACE, sep = \"/\"),\n TRTSD = toupper(format(as.Date(TRTSDTM), \"%d%b%Y\")),\n CMASTD = toupper(format(as.Date(ASTDTM), \"%d%b%Y\")),\n CMSTRFL = ifelse(ASTDY < 0, \"Yes\", \"No\"),\n CMENRFL = ifelse(CMENRTPT == \"ONGOING\", \"Yes\", \"No\")\n ) %>%\n select(\n ID, AGSXRC, TRT01A, CMDECOD, TRTSD, CMASTD, ASTDY, ADURN,\n CMSTRFL, CMENRFL, CMDOSE, CMDOSU, CMDOSFRQ, CMROUTE\n )\n\nvar_labels(out) <- c(\n ID = \"Center/Patient ID\",\n AGSXRC = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n CMDECOD = \"Medication Name\",\n TRTSD = \"Date of First\\nStudy Drug\\nAdministration\",\n CMASTD = \"Medication\\nStart Date\",\n ASTDY = \"Study Day\",\n ADURN = \"Duration\\n(days)\",\n CMSTRFL = \"Previous?\",\n CMENRFL = \"Ongoing\\nat Final\\nContact?\",\n CMDOSE = \"Dose\",\n CMDOSU = \"Dose Unit\",\n CMDOSFRQ = \"Frequency\",\n CMROUTE = \"Route\"\n)", + "objectID": "appendix/reproducibility.html#session-info", + "href": "appendix/reproducibility.html#session-info", + "title": "Reproducibility", + "section": "Session Info", + "text": "Session Info\n\nCodesessionInfo()\n\nR version 4.4.1 (2024-06-14)\nPlatform: x86_64-pc-linux-gnu\nRunning under: Ubuntu 22.04.5 LTS\n\nMatrix products: default\nBLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 \nLAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so; LAPACK version 3.10.0\n\nlocale:\n [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C \n [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 \n [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 \n [7] LC_PAPER=en_US.UTF-8 LC_NAME=C \n [9] LC_ADDRESS=C LC_TELEPHONE=C \n[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C \n\ntime zone: Etc/UTC\ntzcode source: system (glibc)\n\nattached base packages:\n[1] stats graphics grDevices utils datasets methods base \n\nloaded via a namespace (and not attached):\n [1] digest_0.6.37 R6_2.5.1 codetools_0.2-20 fastmap_1.2.0 \n [5] pkgcache_2.2.3 xfun_0.50 magrittr_2.0.3 glue_1.8.0 \n [9] knitr_1.49 htmltools_0.5.8.1 rmarkdown_2.29 lifecycle_1.0.4 \n[13] ps_1.8.1 cli_3.6.3 processx_3.8.4 vctrs_0.6.5 \n[17] testthat_3.2.2 compiler_4.4.1 tools_4.4.1 brio_1.1.5 \n[21] curl_6.1.0 evaluate_1.0.1 pillar_1.10.1 yaml_2.3.10 \n[25] htmlwidgets_1.6.4 rlang_1.1.4 jsonlite_1.8.9 \n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\n\nCodewithr::with_options(\n list(renv.verbose = FALSE),\n renv::snapshot(\"..\", lockfile = \"../assets/www/renv.lock\", prompt = FALSE, force = TRUE)\n)\n\n\nDownload", "crumbs": [ - "Listings", - "Concomitant Medications", - "CML01" + "Appendix", + "Reproducibility" ] }, { - "objectID": "listings/concomitant-medications/cml01.html#reproducibility", - "href": "listings/concomitant-medications/cml01.html#reproducibility", - "title": "CML01", - "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:08:17 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "objectID": "graphs/other/ltg01.html", + "href": "graphs/other/ltg01.html", + "title": "LTG01", + "section": "", + "text": "Lattice plots are natively handled by R, the examples below rely mostly on the package ggplot2.", "crumbs": [ - "Listings", - "Concomitant Medications", - "CML01" + "Graphs", + "Other", + "LTG01" ] }, { - "objectID": "listings/adverse-events/ael02_ed.html#output", - "href": "listings/adverse-events/ael02_ed.html#output", - "title": "AEL02_ED", + "objectID": "graphs/other/ltg01.html#output", + "href": "graphs/other/ltg01.html#output", + "title": "LTG01", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"cent_subj\", \"ASR\"),\n disp_cols = names(out),\n main_title = \"Listing of Adverse Events (for early development studies)\",\n main_footer = \"\n(1) Outcome: 1 = fatal; 2 = not recovered/not resolved; 3 = recovered/resolved;\n 4 = recovered/resolved with sequelae; 5 = recovering/resolving; 6 = unknown.\n(2) Action taken with study drug: 1 = dose increased; 2 = dose not changed;\n 3 = dose reduced; 4 = drug interrupted; 5 = drug withdrawn; 6 = not applicable;\n 7 = unknown.\n* Study day derived from imputed onset date.\n** Duration derived from imputed onset date and/or end date.\"\n)\n\nhead(lsting, 20)\n\nListing of Adverse Events (for early development studies)\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Time from Time from Time from \n Adverse Study Last Dose Last Dose Last Dose AE Most Caused by Action\n Event MedDRA Day of to Onset to Onset to Onset Duration Extreme Study Outcome Treatment Taken \nTreatment Center/Patient ID Age/Sex/Race Preferred Term Onset days hrs mins in Days Serious Intensity Drug (1) for AE (2) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-134 47/M/WHITE dcd B.2.1.2.1 162 7 19 4 173 No MODERATE No 5 Yes 2 \n dcd D.1.1.4.2 196 1 20 48 166 No MODERATE No 5 No 2 \n dcd A.1.1.1.2 321 28 12 54 149 Yes MODERATE No 5 Yes 2 \n dcd A.1.1.1.2 393 12 19 17 43 Yes MODERATE No 5 No 5 \n BRA-1/id-42 36/M/BLACK OR AFRICAN AMERICAN dcd C.2.1.2.1 39 30 9 4 506 No MODERATE Yes 2 No 6 \n dcd D.1.1.1.1 64 26 17 10 630 Yes SEVERE Yes 1 No 6 \n dcd C.2.1.2.1 95 4 12 58 306 No MODERATE Yes 5 No 2 \n dcd A.1.1.1.2 160 24 5 57 259 Yes MODERATE No 2 Yes 2 \n dcd B.2.2.3.1 292 9 23 4 50 Yes MILD No 3 No 2 \n dcd A.1.1.1.2 459 9 5 4 195 Yes MODERATE No 5 Yes 2 \n dcd B.1.1.1.1 470 6 5 0 131 Yes SEVERE Yes 1 No 6 \n dcd A.1.1.1.2 475 20 16 16 113 Yes MODERATE No 4 Yes 2 \n dcd C.1.1.1.3 496 5 5 28 162 No SEVERE Yes 5 Yes 2 \n dcd B.1.1.1.1 641 8 17 4 15 Yes SEVERE Yes 1 Yes 6 \n BRA-1/id-93 34/F/ASIAN dcd D.1.1.4.2 44 18 15 39 47 No MODERATE No 5 Yes 2 \n dcd D.2.1.5.3 79 2 3 58 300 No MILD Yes 5 No 3 \n dcd A.1.1.1.1 136 22 1 19 78 No MILD No 3 Yes 2 \n dcd D.2.1.5.3 260 12 12 26 305 No MILD Yes 5 No 2 \n dcd C.1.1.1.3 281 4 14 52 106 No SEVERE Yes 5 Yes 2 \n dcd D.1.1.1.1 316 6 12 43 250 Yes SEVERE Yes 1 No 6 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n\n(1) Outcome: 1 = fatal; 2 = not recovered/not resolved; 3 = recovered/resolved;\n 4 = recovered/resolved with sequelae; 5 = recovering/resolving; 6 = unknown.\n(2) Action taken with study drug: 1 = dose increased; 2 = dose not changed;\n 3 = dose reduced; 4 = drug interrupted; 5 = drug withdrawn; 6 = not applicable;\n 7 = unknown.\n* Study day derived from imputed onset date.\n** Duration derived from imputed onset date and/or end date.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\nlibrary(lubridate)\n\nadae <- random.cdisc.data::cadae\n\nadae_anl <- adae %>%\n filter(SAFFL == \"Y\") %>%\n mutate(\n DHM = as.period(LDOSEDTM %--% ASTDTM),\n TMOM = minute(DHM) + ifelse(second(DHM) >= 30, 1, 0),\n TMOH = hour(DHM) + ifelse(TMOM == 60, 1, 0),\n TMOD = day(DHM) + ifelse(TMOH == 24, 1, 0)\n ) %>%\n mutate(\n TMOM = TMOM %% 60,\n TMOH = TMOH %% 24\n )\n\nout <- adae_anl %>%\n mutate(\n ADURN = AENDY - ASTDY + 1,\n cent_subj = paste(SITEID, SUBJID, sep = \"/\"),\n ASR = paste(AGE, SEX, RACE, sep = \"/\"),\n AESER_F = if_else(AESER == \"Y\", \"Yes\", \"No\", \"\"),\n AEREL_F = if_else(AEREL == \"Y\", \"Yes\", \"No\", \"\"),\n AECONTRT_F = if_else(AECONTRT == \"Y\", \"Yes\", \"No\", \"\"),\n AEOUT_F = case_when(\n AEOUT == \"FATAL\" ~ 1,\n AEOUT == \"NOT RECOVERED/NOT RESOLVED\" ~ 2,\n AEOUT == \"RECOVERED/RESOLVED\" ~ 3,\n AEOUT == \"RECOVERED/RESOLVED WITH SEQUELAE\" ~ 4,\n AEOUT == \"RECOVERING/RESOLVING\" ~ 5,\n AEOUT == \"UNKNOWN\" ~ 6\n ),\n AEACN_F = case_when(\n AEACN == \"DOSE INCREASED\" ~ 1,\n AEACN == \"DOSE NOT CHANGED\" ~ 2,\n AEACN == \"DOSE REDUCED\" | AEACN == \"DOSE RATE REDUCED\" ~ 3,\n AEACN == \"DRUG INTERRUPTED\" ~ 4,\n AEACN == \"DRUG WITHDRAWN\" ~ 5,\n AEACN == \"NOT APPLICABLE\" | AEACN == \"NOT EVALUABLE\" ~ 6,\n AEACN == \"UNKNOWN\" ~ 7\n )\n ) %>%\n select(\n cent_subj, ASR, TRT01A, AEDECOD, ASTDY, TMOD, TMOH, TMOM,\n ADURN, AESER_F, AESEV, AEREL_F, AEOUT_F, AECONTRT_F, AEACN_F\n )\n\nout <- out %>% var_relabel(\n cent_subj = \"Center/Patient ID\",\n ASR = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n AEDECOD = \"Adverse\\nEvent MedDRA\\nPreferred Term\",\n ASTDY = \"Study\\nDay of\\nOnset\",\n TMOD = \"Time from\\nLast Dose\\nto Onset\\ndays\",\n TMOH = \"Time from\\nLast Dose\\nto Onset\\nhrs\",\n TMOM = \"Time from\\nLast Dose\\nto Onset\\nmins\",\n ADURN = \"AE\\nDuration\\nin Days\",\n AESER_F = \"Serious\",\n AESEV = \"Most\\nExtreme\\nIntensity\",\n AEREL_F = \"Caused by\\nStudy\\nDrug\",\n AEOUT_F = \"Outcome\\n(1)\",\n AECONTRT_F = \"Treatment\\nfor AE\",\n AEACN_F = \"Action\\nTaken\\n(2)\"\n)", + "text": "Output\n\n\nPlot of Liver Function Tests\nPlot of Liver Function Tests Including Mean, Median, and 95% CIs\nData Setup\n\n\n\nBasic Plot\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# General mapping and \"lattice\" (\"facet\" in ggplot2 nomenclature).\ng1 <- {\n ggplot(\n data = adlb,\n mapping = aes(x = AVISIT, y = AVAL, colour = SUBJID, shape = SUBJID)\n ) +\n facet_grid(LBTESTCD ~ ARM, scales = \"free_y\") +\n scale_shape_manual(values = pch)\n}\n\n# Add points and lines.\ng1 <- g1 + geom_point()\ng1 <- g1 + geom_line()\nplot <- g1\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nModifying Facets\n\n\n Preview\n Try this using WebR\n\n\n\nThe units describing rows of panes and the number of patients under each arm is specified by modifying facet_grid():\n\nCode# Include the units and the sample size N.\ng2 <- g1 + facet_grid(\n paste0(LBTESTCD, \"\\n(\", AVALU, \")\") ~ ARM_N,\n scales = \"free_y\"\n)\n\nplot <- g2\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nModifying X-Axis\n\n\n Preview\n Try this using WebR\n\n\n\nThe graphic elements are modified through usual ggplot2 functions. For instance, the x-axis could be improved as follows:\n\nCodeg3 <- g2 + theme(\n axis.text.x = element_text(angle = 45, hjust = 1),\n axis.title = element_blank()\n) + scale_x_continuous(breaks = adlb$AVISIT, labels = adlb$AVISIT_txt)\n\nplot <- g3\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe functions stat_mean_ci and stat_median_ci from the tern package allow the addition of mean and/or median confidence intervals. The example below suggests a larger dataset, where the individual subject legend may not be relevant but the mean or the median are of special interest.\nPre-Processing\n\nCode# Datasets\nadsl <- random.cdisc.data::cadsl %>% slice(1:40)\nadlb <- random.cdisc.data::cadlb %>% filter(USUBJID %in% adsl$USUBJID)\n\n# Pre-processing\nadlb$AVISIT_txt <- adlb$AVISIT\nadlb$AVISIT <- as.numeric(adlb$AVISIT)\nadlb$ARM_N <- adlb$ARM\nlevels(adlb$ARM_N) <- with(\n data = adlb,\n paste0(\n levels(ARM_N), \" (N = \",\n tapply(SUBJID, ARM_N, function(x) length(unique(x))), \")\"\n )\n)\n\n# Plot utils\nnpch <- 1:25\nnpatients <- length(unique(adlb$SUBJID))\npch <- c(\n rep(npch, times = npatients %/% length(npch)),\n npch[1:(npatients %% length(npch))]\n)\n\n\n\n\n\n\n\n\nBasic Plot\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# General mapping and \"lattice\" (\"facet\" in ggplot2 nomenclature)\ng4 <- {\n ggplot(\n data = adlb,\n mapping = aes(x = AVISIT, y = AVAL, colour = SUBJID, shape = SUBJID)\n ) +\n facet_grid(LBTESTCD ~ ARM_N, scales = \"free_y\") +\n scale_shape_manual(values = pch) +\n scale_color_manual(values = rep(getOption(\"ggplot2.discrete.colour\"), 2))\n}\n\n# Add points and lines.\n# Note that with so many patients, legend might not be useful and transparency\n# is advisable.\ng4 <- g4 + geom_point(alpha = .3)\ng4 <- g4 + geom_line(alpha = .3)\ng4 <- g4 + guides(colour = \"none\", shape = \"none\")\ng4 <- g4 + theme(\n axis.text.x = element_text(angle = 45, hjust = 1),\n axis.title = element_blank()\n)\ng4 <- g4 + scale_x_continuous(breaks = adlb$AVISIT, labels = adlb$AVISIT_txt)\nplot <- g4\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nAdding Mean\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Add the mean along with the 95% CI at every visit.\ng51 <- g4 + stat_summary(\n fun = mean, linewidth = 1, geom = \"line\",\n aes(group = 1, linetype = \"Mean +/- 95% CI\")\n)\ng51 <- g51 + stat_summary(\n fun.data = tern::stat_mean_ci, geom = \"errorbar\",\n aes(group = 1, linetype = \"Mean +/- 95% CI\")\n)\nplot <- g51 + guides(linetype = guide_legend(title = NULL))\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nAdding Median\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Instead of a mean, the median could be more relevant.\ng52 <- g51 + stat_summary(\n fun = median, linewidth = 1, geom = \"line\",\n aes(group = 1, linetype = \"Median +/- 95% CI\")\n)\ng52 <- g52 + stat_summary(\n fun.data = tern::stat_median_ci, geom = \"errorbar\",\n aes(group = 1, linetype = \"Median +/- 95% CI\")\n)\nplot <- g52 + guides(linetype = guide_legend(title = \"Aggregate\"))\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nChanging Confidence Level\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# Change the confidence level of interval for the median.\n# Note: check `?stat_mean_ci()` and `?stat_median_ci()` for further fine tuning.\ng53 <- g4 + stat_summary(\n fun = median, linewidth = 1, geom = \"line\",\n aes(group = 1, linetype = \"Median +/- 80% CI\")\n)\ng53 <- g53 + stat_summary(\n fun.data = function(x) tern::stat_median_ci(x, conf_level = 0.8),\n geom = \"errorbar\", aes(group = 1, linetype = \"Median +/- 80% CI\")\n)\nplot <- g53 + guides(linetype = guide_legend(title = NULL))\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(teal.modules.clinical)\nlibrary(ggplot2)\nlibrary(dplyr)\nlibrary(nestcolor)\n\n# Datasets\nadsl <- random.cdisc.data::cadsl %>% slice(1:8)\nadlb <- random.cdisc.data::cadlb %>% filter(USUBJID %in% adsl$USUBJID)\n\n# Pre-processing\nadlb$AVISIT_txt <- adlb$AVISIT\nadlb$AVISIT <- as.numeric(adlb$AVISIT)\nadlb$ARM_N <- adlb$ARM\nlevels(adlb$ARM_N) <- with(\n data = adlb,\n paste0(\n levels(ARM_N), \" (N = \",\n tapply(SUBJID, ARM_N, function(x) length(unique(x))), \")\"\n )\n)\n\n# Plot utils\nnpch <- 1:25\nnpatients <- length(unique(adlb$SUBJID))\npch <- c(\n rep(npch, times = npatients %/% length(npch)),\n npch[1:(npatients %% length(npch))]\n)", "crumbs": [ - "Listings", - "Adverse Events", - "AEL02_ED" + "Graphs", + "Other", + "LTG01" ] }, { - "objectID": "listings/adverse-events/ael02_ed.html#reproducibility", - "href": "listings/adverse-events/ael02_ed.html#reproducibility", - "title": "AEL02_ED", + "objectID": "graphs/other/ltg01.html#reproducibility", + "href": "graphs/other/ltg01.html#reproducibility", + "title": "LTG01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:08:26 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n lubridate * 1.9.4 2024-12-08 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n timechange 0.3.0 2024-01-18 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:05:32 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", - "Adverse Events", - "AEL02_ED" + "Graphs", + "Other", + "LTG01" ] }, { - "objectID": "listings/adverse-events/ael01.html#output", - "href": "listings/adverse-events/ael01.html#output", - "title": "AEL01", + "objectID": "graphs/other/cig01.html#output", + "href": "graphs/other/cig01.html#output", + "title": "CIG01", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"AESOC\", \"AEDECOD\", \"AELLT\"),\n disp_cols = names(out),\n main_title = \"Listing of Preferred Terms, Lowest Level Terms, and Investigator-Specified Adverse Event Terms\"\n)\n\nhead(lsting, 20)\n\nListing of Preferred Terms, Lowest Level Terms, and Investigator-Specified Adverse Event Terms\n\n—————————————————————————————————————————————————————————————————————————————————————————————————————\n Investigator-Specified\nMedDRA System Organ Class MedDRA Preferred Term MedDRA Lowest Level Term Adverse Event Term \n—————————————————————————————————————————————————————————————————————————————————————————————————————\n cl A dcd A.1.1.1.1 llt A.1.1.1.1 trm A.1.1.1.1 \n dcd A.1.1.1.2 llt A.1.1.1.2 trm A.1.1.1.2 \n cl B dcd B.1.1.1.1 llt B.1.1.1.1 trm B.1.1.1.1 \n dcd B.2.1.2.1 llt B.2.1.2.1 trm B.2.1.2.1 \n dcd B.2.2.3.1 llt B.2.2.3.1 trm B.2.2.3.1 \n cl C dcd C.1.1.1.3 llt C.1.1.1.3 trm C.1.1.1.3 \n dcd C.2.1.2.1 llt C.2.1.2.1 trm C.2.1.2.1 \n cl D dcd D.1.1.1.1 llt D.1.1.1.1 trm D.1.1.1.1 \n dcd D.1.1.4.2 llt D.1.1.4.2 trm D.1.1.4.2 \n dcd D.2.1.5.3 llt D.2.1.5.3 trm D.2.1.5.3 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadae <- random.cdisc.data::cadae\n\nout <- adae %>%\n select(AESOC, AEDECOD, AELLT, AETERM) %>%\n unique()\n\nvar_labels(out) <- c(\n AESOC = \"MedDRA System Organ Class\",\n AEDECOD = \"MedDRA Preferred Term\",\n AELLT = \"MedDRA Lowest Level Term\",\n AETERM = \"Investigator-Specified\\nAdverse Event Term\"\n)", + "text": "Output\n\n\nPlot of Mean and 95% CIs for Mean\nPlot of Confidence Interval Using a Different Stratification Variable\nPlot of Median and 95% CIs for Median\nPlot of Median and 95% CIs for Median Using Different Alpha Level\nTable of Mean and Median\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nThe function stat_mean_ci from the tern package can be used with default values to draw the 95% confidence interval around the mean.\n\nCodeplot <- ggplot(\n data = adlb,\n mapping = aes(\n x = ARMCD, y = AVAL, color = SEX,\n lty = SEX, shape = SEX\n )\n) +\n stat_summary(\n fun.data = tern::stat_mean_ci,\n geom = \"errorbar\",\n width = 0.1,\n position = position_dodge(width = 0.5)\n ) +\n stat_summary(\n fun = mean,\n geom = \"point\",\n position = position_dodge(width = 0.5)\n ) +\n labs(\n title = \"Confidence Interval Plot by Treatment Group\",\n caption = \"Mean and 95% CIs for mean are displayed.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n )\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- ggplot(\n data = adlb,\n mapping = aes(\n x = ARMCD, y = AVAL, color = STRATA2,\n lty = STRATA2, shape = STRATA2\n )\n) +\n stat_summary(\n fun.data = tern::stat_mean_ci,\n geom = \"errorbar\",\n width = 0.1,\n position = position_dodge(width = 0.5)\n ) +\n stat_summary(\n fun = mean,\n geom = \"point\",\n position = position_dodge(width = 0.5)\n ) +\n labs(\n title = \"Confidence Interval Plot by Treatment Group\",\n caption = \"Mean and 95% CIs for mean are displayed.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n )\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nThe function stat_median_ci from the tern package works similarly to stat_mean_ci.\n\nCodeplot <- ggplot(\n data = adlb,\n mapping = aes(\n x = ARMCD, y = AVAL, color = STRATA1,\n lty = STRATA1, shape = STRATA1\n )\n) +\n stat_summary(\n fun.data = stat_median_ci,\n geom = \"errorbar\",\n width = 0.1,\n position = position_dodge(width = 0.5)\n ) +\n stat_summary(\n fun = median,\n geom = \"point\",\n position = position_dodge(width = 0.5)\n ) +\n labs(\n title = \"Confidence Interval Plot by Treatment Group\",\n caption = \"Median and 95% CIs for median are displayed.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n )\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nTo modify the confidence level for the estimation of the confidence interval, the call to stat_mean_ci (or stat_median_ci) can be slightly modified.\n\nCodeplot <- ggplot(\n data = adlb,\n mapping = aes(\n x = ARMCD, y = AVAL, color = SEX,\n lty = SEX, shape = SEX\n )\n) +\n stat_summary(\n fun.data = function(x) tern::stat_mean_ci(x, conf_level = 0.9),\n geom = \"errorbar\",\n width = 0.1,\n position = position_dodge(width = 0.5)\n ) +\n stat_summary(\n fun = mean,\n geom = \"point\",\n position = position_dodge(width = 0.5)\n ) +\n labs(\n title = \"Confidence Interval Plot by Treatment Group\",\n caption = \"Mean and 90% CIs for mean are displayed.\",\n x = \"Treatment Group\",\n y = paste0(adlb$PARAMCD[1], \" (\", adlb$AVALU[1], \")\")\n )\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nThe corresponding table is simply obtained using the rtables framework:\n\nCodelyt <- basic_table() %>%\n split_cols_by(var = \"ARMCD\") %>%\n analyze_vars(vars = \"AVAL\", .stats = c(\"mean_sd\", \"median\"))\ntable <- build_table(lyt = lyt, df = adlb)\ntable\n\n ARM A ARM B ARM C \n————————————————————————————————————————————————\nMean (SD) 17.7 (9.9) 18.7 (9.8) 19.5 (9.1)\nMedian 17.5 18.2 19.0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(ggplot2)\nlibrary(dplyr)\nlibrary(nestcolor)\n\nadlb <- random.cdisc.data::cadlb %>%\n filter(PARAMCD == \"ALT\", AVISIT == \"BASELINE\")", "crumbs": [ - "Listings", - "Adverse Events", - "AEL01" + "Graphs", + "Other", + "CIG01" ] }, { - "objectID": "listings/adverse-events/ael01.html#reproducibility", - "href": "listings/adverse-events/ael01.html#reproducibility", - "title": "AEL01", + "objectID": "graphs/other/cig01.html#teal-app", + "href": "graphs/other/cig01.html#teal-app", + "title": "CIG01", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_ci(\n label = \"Confidence Interval Plot\",\n x_var = data_extract_spec(\n dataname = \"ADSL\",\n select = select_spec(\n choices = c(\"ARMCD\", \"BMRKR2\"),\n selected = c(\"ARMCD\"),\n multiple = FALSE,\n fixed = FALSE\n )\n ),\n y_var = data_extract_spec(\n dataname = \"ADLB\",\n filter = list(\n filter_spec(\n vars = \"PARAMCD\",\n choices = levels(ADLB$PARAMCD),\n selected = levels(ADLB$PARAMCD)[1],\n multiple = FALSE,\n label = \"Select lab:\"\n ),\n filter_spec(\n vars = \"AVISIT\",\n choices = levels(ADLB$AVISIT),\n selected = levels(ADLB$AVISIT)[1],\n multiple = FALSE,\n label = \"Select visit:\"\n )\n ),\n select = select_spec(\n label = \"Analyzed Value\",\n choices = c(\"AVAL\", \"CHG\"),\n selected = \"AVAL\",\n multiple = FALSE,\n fixed = FALSE\n )\n ),\n color = data_extract_spec(\n dataname = \"ADSL\",\n select = select_spec(\n label = \"Color by variable\",\n choices = c(\"SEX\", \"STRATA1\", \"STRATA2\"),\n selected = c(\"STRATA1\"),\n multiple = FALSE,\n fixed = FALSE\n )\n )\n )\n ),\n header = \"Example of Confidence Interval Plot\",\n footer = tags$p(\n class = \"text-muted\", \"Source: `teal.modules.clinical::tm_g_ci`\"\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADLB <- random.cdisc.data::cadlb\n})\ndatanames <- c(\"ADSL\", \"ADLB\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\n## Reusable Configuration For Modules\nADLB <- data[[\"ADLB\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_ci(\n label = \"Confidence Interval Plot\",\n x_var = data_extract_spec(\n dataname = \"ADSL\",\n select = select_spec(\n choices = c(\"ARMCD\", \"BMRKR2\"),\n selected = c(\"ARMCD\"),\n multiple = FALSE,\n fixed = FALSE\n )\n ),\n y_var = data_extract_spec(\n dataname = \"ADLB\",\n filter = list(\n filter_spec(\n vars = \"PARAMCD\",\n choices = levels(ADLB$PARAMCD),\n selected = levels(ADLB$PARAMCD)[1],\n multiple = FALSE,\n label = \"Select lab:\"\n ),\n filter_spec(\n vars = \"AVISIT\",\n choices = levels(ADLB$AVISIT),\n selected = levels(ADLB$AVISIT)[1],\n multiple = FALSE,\n label = \"Select visit:\"\n )\n ),\n select = select_spec(\n label = \"Analyzed Value\",\n choices = c(\"AVAL\", \"CHG\"),\n selected = \"AVAL\",\n multiple = FALSE,\n fixed = FALSE\n )\n ),\n color = data_extract_spec(\n dataname = \"ADSL\",\n select = select_spec(\n label = \"Color by variable\",\n choices = c(\"SEX\", \"STRATA1\", \"STRATA2\"),\n selected = c(\"STRATA1\"),\n multiple = FALSE,\n fixed = FALSE\n )\n )\n )\n ),\n header = \"Example of Confidence Interval Plot\",\n footer = tags$p(\n class = \"text-muted\", \"Source: `teal.modules.clinical::tm_g_ci`\"\n )\n)\n\nshinyApp(app$ui, app$server)", + "crumbs": [ + "Graphs", + "Other", + "CIG01" + ] + }, + { + "objectID": "graphs/other/cig01.html#reproducibility", + "href": "graphs/other/cig01.html#reproducibility", + "title": "CIG01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:08:35 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:06:13 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", - "Adverse Events", - "AEL01" + "Graphs", + "Other", + "CIG01" ] }, { - "objectID": "listings/adverse-events/ael03.html#output", - "href": "listings/adverse-events/ael03.html#output", - "title": "AEL03", + "objectID": "graphs/other/brg01.html#output", + "href": "graphs/other/brg01.html#output", + "title": "BRG01", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"CPID\", \"ASR\"),\n disp_cols = names(out),\n main_title = \"Listing of Serious Adverse Events\",\n main_footer = \"\n(1) Outcome: 1 = fatal; 2 = not recovered/not resolved; 3 = recovered/resolved;\n 4 = recovered/resolved with sequelae; 5 = recovering/resolving; 6 = unknown.\n(2) Action taken with study drug: 1 = dose increased; 2 = dose not changed;\n 3 = dose reduced; 4 = drug interrupted; 5 = drug withdrawn; 6 = not applicable;\n 7 = unknown.\n(3) Reason classified as serious: 1 = resulted in death; 2 = life threatening;\n 3 = required prolonged in patient hospitalization; 4 = disabling;\n 5 = a congenital anomaly/birth defect in offspring of study subject;\n 6 = does not meet any of the above serious criteria, but may jeopardize the subject,\n and may require medical or surgical intervention to prevent one of the outcomes listed above.\n* Study day derived from imputed onset date.\n** Duration derived from imputed onset date and/or end date.\"\n)\n\nhead(lsting, 20)\n\nListing of Serious Adverse Events\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Date of Reason \n Adverse First Study Study AE Most Caused by Action Classified\n Event MedDRA Drug Day of Duration Extreme Study Outcome Treatment Taken as Serious\nTreatment Center/Patient ID Age/Sex/Race Preferred Term Administration Onset in Days Intensity Drug (1) for AE (2) (3) \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nA: Drug X BRA-1/id-134 47/M/WHITE dcd A.1.1.1.2 04NOV2020 321 149 MODERATE No 5 Yes 2 4, 5 \n dcd A.1.1.1.2 04NOV2020 393 43 MODERATE No 5 No 5 5 \n BRA-1/id-42 36/M/BLACK OR AFRICAN AMERICAN dcd D.1.1.1.1 01JAN2020 64 630 SEVERE Yes 1 No 6 1 \n dcd A.1.1.1.2 01JAN2020 160 259 MODERATE No 2 Yes 2 4 \n dcd B.2.2.3.1 01JAN2020 292 50 MILD No 3 No 2 4 \n dcd A.1.1.1.2 01JAN2020 459 195 MODERATE No 5 Yes 2 5 \n dcd B.1.1.1.1 01JAN2020 470 131 SEVERE Yes 1 No 6 1 \n dcd A.1.1.1.2 01JAN2020 475 113 MODERATE No 4 Yes 2 4 \n dcd B.1.1.1.1 01JAN2020 641 15 SEVERE Yes 1 Yes 6 1 \n BRA-1/id-93 34/F/ASIAN dcd D.1.1.1.1 20JUN2020 316 250 SEVERE Yes 1 No 6 1 \n dcd B.1.1.1.1 20JUN2020 523 24 SEVERE Yes 1 No 6 1 \n dcd B.2.2.3.1 20JUN2020 596 10 MILD No 3 Yes 2 4 \n BRA-11/id-345 37/F/WHITE dcd B.1.1.1.1 18AUG2020 1009 35 SEVERE Yes 1 No 6 1 \n BRA-11/id-397 38/M/ASIAN dcd D.1.1.1.1 27JUN2020 516 441 SEVERE Yes 1 No 6 1 \n dcd B.1.1.1.1 27JUN2020 1011 30 SEVERE Yes 1 Yes 6 1 \n BRA-11/id-50 26/M/BLACK OR AFRICAN AMERICAN dcd A.1.1.1.2 28APR2019 1007 68 MODERATE No 3 Yes 2 5 \n BRA-13/id-177 24/M/WHITE dcd B.1.1.1.1 30AUG2020 249 470 SEVERE Yes 1 No 6 1 \n dcd B.1.1.1.1 30AUG2020 1012 33 SEVERE Yes 1 No 6 1 \n BRA-15/id-36 38/F/ASIAN dcd B.1.1.1.1 08JAN2020 372 154 SEVERE Yes 1 Yes 6 1 \n dcd A.1.1.1.2 08JAN2020 573 134 MODERATE No 3 Yes 2 3 \n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n\n(1) Outcome: 1 = fatal; 2 = not recovered/not resolved; 3 = recovered/resolved;\n 4 = recovered/resolved with sequelae; 5 = recovering/resolving; 6 = unknown.\n(2) Action taken with study drug: 1 = dose increased; 2 = dose not changed;\n 3 = dose reduced; 4 = drug interrupted; 5 = drug withdrawn; 6 = not applicable;\n 7 = unknown.\n(3) Reason classified as serious: 1 = resulted in death; 2 = life threatening;\n 3 = required prolonged in patient hospitalization; 4 = disabling;\n 5 = a congenital anomaly/birth defect in offspring of study subject;\n 6 = does not meet any of the above serious criteria, but may jeopardize the subject,\n and may require medical or surgical intervention to prevent one of the outcomes listed above.\n* Study day derived from imputed onset date.\n** Duration derived from imputed onset date and/or end date.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadae <- random.cdisc.data::cadae\nadae$AESCONG[which(adae$AESER == \"Y\")[seq(3)]] <- \"Y\" # To mimic possibility of overlap\n\nout <- adae %>%\n filter(AESER == \"Y\") %>%\n mutate(\n CPID = paste(SITEID, SUBJID, sep = \"/\"),\n ASR = paste(AGE, SEX, RACE, sep = \"/\"),\n Date_First = toupper(format(as.Date(TRTSDTM), \"%d%b%Y\")),\n Duration = AENDY - ASTDY + 1,\n Related = ifelse(AEREL == \"Y\", \"Yes\", ifelse(AEREL == \"N\", \"No\", \"\")),\n Outcome = case_when(\n AEOUT == \"FATAL\" ~ 1,\n AEOUT == \"NOT RECOVERED/NOT RESOLVED\" ~ 2,\n AEOUT == \"RECOVERED/RESOLVED\" ~ 3,\n AEOUT == \"RECOVERED/RESOLVED WITH SEQUELAE\" ~ 4,\n AEOUT == \"RECOVERING/RESOLVING\" ~ 5,\n AEOUT == \"UNKNOWN\" ~ 6\n ),\n Treated = ifelse(AECONTRT == \"Y\", \"Yes\", ifelse(AECONTRT == \"N\", \"No\", \"\")),\n Action = case_when(\n AEACN == \"DOSE INCREASED\" ~ 1,\n AEACN == \"DOSE NOT CHANGED\" ~ 2,\n AEACN == \"DOSE REDUCED\" | AEACN == \"DOSE RATE REDUCED\" ~ 3,\n AEACN == \"DRUG INTERRUPTED\" ~ 4,\n AEACN == \"DRUG WITHDRAWN\" ~ 5,\n AEACN == \"NOT APPLICABLE\" | AEACN == \"NOT EVALUABLE\" ~ 6,\n AEACN == \"UNKNOWN\" ~ 7\n )\n ) %>%\n rowwise() %>%\n mutate(\n SERREAS = paste(\n which(\n c(AESDTH, AESLIFE, AESHOSP, AESDISAB, AESCONG, AESMIE) == \"Y\"\n ),\n collapse = \", \"\n )\n ) %>%\n ungroup()\n\nout <- out %>%\n select(CPID, ASR, TRT01A, AEDECOD, Date_First, ASTDY, Duration, AESEV, Related, Outcome, Treated, Action, SERREAS)\n\nvar_labels(out) <- c(\n CPID = \"Center/Patient ID\",\n ASR = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n AEDECOD = \"Adverse\\nEvent MedDRA\\nPreferred Term\",\n Date_First = \"Date of\\nFirst Study\\nDrug\\nAdministration\",\n ASTDY = \"Study\\nDay of\\nOnset\",\n Duration = \"AE\\nDuration\\nin Days\",\n AESEV = \"Most\\nExtreme\\nIntensity\",\n Related = \"Caused by\\nStudy\\nDrug\",\n Outcome = \"Outcome\\n(1)\",\n Treated = \"Treatment\\nfor AE\",\n Action = \"Action\\nTaken\\n(2)\",\n SERREAS = \"Reason\\nClassified\\nas Serious\\n(3)\"\n)", + "text": "Output\n\n\nPlot of Frequency\nPlot of Percentage\nPlot of Frequency with Total Number of Subjects\nPlot of Frequency with Horizontal Bars\nPlot of Percentage and Confidence Intervals\nPlot of Percentage by Treatment and Covariate\nPlot of Percentage by Covariate and Treatment\nPlot of Percentage with Mean and Median\nPlot of Categorical Variable\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- adae %>%\n filter(AESER == \"Y\")\nanl <- anl[!duplicated(anl$USUBJID), ]\n\nplot <- ggplot(anl, aes(x = .data[[\"ACTARM\"]])) +\n geom_bar(fill = getOption(\"ggplot2.discrete.fill\")[1]) +\n geom_text(stat = \"count\", aes(label = ggplot2::after_stat(count)), vjust = -.5) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Frequency of Subjects With Serious AEs: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Frequency\")\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- adae %>%\n filter(AESOC == \"cl A\")\n\nanl <- anl[!duplicated(anl$USUBJID), ] %>%\n group_by(ACTARM) %>%\n summarise(n = n()) %>%\n mutate(N = patpop) %>%\n mutate(N = as.numeric(N)) %>%\n mutate(pct = round((n / N) * 100, 2))\n\nplot <- ggplot(anl, aes(x = .data[[\"ACTARM\"]])) +\n geom_col(aes(x = ACTARM, y = pct), fill = getOption(\"ggplot2.discrete.fill\")[1]) +\n scale_y_continuous(labels = scales::comma) +\n geom_text(aes(y = pct, label = pct), stat = \"identity\", vjust = -0.5) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Percent of Subjects With cl A Disorders: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Percent\")\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- adae %>%\n filter(AESOC == \"cl A\")\nanl <- anl[!duplicated(anl$USUBJID), ]\n\nanl <- anl %>%\n group_by(ACTARM) %>%\n mutate(n = n()) %>%\n mutate(xvarlabel = paste0(ACTARM, \"\\n\\nN = \", n))\n\nplot <- ggplot(anl, aes(x = .data[[\"xvarlabel\"]])) +\n geom_bar(fill = getOption(\"ggplot2.discrete.fill\")[1]) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Frequency of Subjects With Serious AEs: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Frequency\")\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- adae %>%\n filter(AESER == \"Y\")\nanl <- anl[!duplicated(anl$USUBJID), ]\n\nplot <- ggplot(anl, aes(x = .data[[\"ACTARM\"]])) +\n geom_bar(fill = getOption(\"ggplot2.discrete.fill\")[1]) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Frequency of Subjects With Serious AEs: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Frequency\") +\n coord_flip()\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\n\nCodeanl <- adlb %>%\n filter(PARAMCD == \"ALT\" & ANRIND == \"HIGH\")\nanl <- anl[!duplicated(anl$USUBJID), ]\n\npatpop5 <- as.data.frame(table(adsl$ACTARM)) %>%\n mutate(ACTARM = as.vector(Var1)) %>%\n mutate(TRTPOP = Freq) %>%\n select(ACTARM, TRTPOP)\n\nanlpop <- as.data.frame(table(anl$ANRIND, anl$ACTARM)) %>%\n filter(Var1 == \"HIGH\") %>%\n mutate(ACTARM = as.vector(Var2)) %>%\n mutate(EVENTCOUNT = Freq) %>%\n select(ACTARM, EVENTCOUNT)\n\nanl <- left_join(patpop5, anlpop, by = \"ACTARM\")\nCIs <- binom.confint(x = anl$EVENTCOUNT, n = anl$TRTPOP, methods = \"exact\") \nanl <- cbind(anl, CIs[, 4:6])\n\nplot <- ggplot(anl) +\n geom_bar(\n aes(x = ACTARM, y = mean * 100),\n stat = \"identity\",\n fill = getOption(\"ggplot2.discrete.fill\")[1],\n alpha = 0.7\n ) +\n geom_errorbar(\n aes(x = ACTARM, ymin = lower * 100, ymax = upper * 100),\n width = 0.5,\n colour = \"#20b4ff\",\n alpha = 0.9,\n linewidth = 1.0\n ) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Percent of Subjects with Abnormaly High ALT: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Percentage\")\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- adae %>%\n filter(AESER == \"Y\")\n\npatpop6 <- dplyr::count(adsl, ACTARM, SEX, name = \"N_arm_sex\")\n\nanl <- anl[!duplicated(anl$USUBJID), ] %>%\n group_by(ACTARM, SEX) %>%\n summarise(n = n(), .groups = \"drop\") %>%\n left_join(patpop6, by = c(\"ACTARM\", \"SEX\")) %>%\n mutate(pct = round((n / N_arm_sex) * 100, 2))\n\nplot <- ggplot(anl, aes(x = .data[[\"ACTARM\"]], fill = .data[[\"SEX\"]])) +\n geom_col(aes(y = pct), position = position_dodge()) +\n guides(fill = guide_legend(title = getElement(vl_ae, \"SEX\"))) +\n scale_y_continuous(labels = scales::comma) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Percent of Subjects With Serious AEs: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Percent\")\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- adae %>%\n filter(AESER == \"Y\")\n\nanl <- anl[!duplicated(anl$USUBJID), ] %>%\n group_by(SEX, ACTARM) %>%\n summarise(n = n(), .groups = \"drop_last\") %>%\n mutate(N = patpop) %>%\n mutate(N = as.numeric(N)) %>%\n mutate(pct = round((n / N) * 100, 2))\n\nplot <- ggplot(anl, aes(x = .data[[\"SEX\"]], fill = .data[[\"ACTARM\"]])) +\n geom_col(aes(y = pct), position = position_dodge()) +\n guides(fill = guide_legend(title = getElement(vl_ae, \"ACTARM\"))) +\n scale_y_continuous(labels = scales::comma) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Percent of Subjects With Serious AEs: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"SEX\"), \" (N = \", denom, \")\")) +\n ylab(\"Percent\")\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl1 <- adlb %>%\n filter(AVISIT == \"BASELINE\", PARAMCD == \"CRP\" & ANRIND == \"HIGH\")\n\nanl <- anl1[!duplicated(anl1$USUBJID), ] %>%\n group_by(ACTARM) %>%\n summarise(n = n()) %>%\n mutate(N = patpop) %>%\n mutate(N = as.numeric(N)) %>%\n mutate(pct = round((n / N) * 100, 2))\n\ngraph <- ggplot(anl, aes(x = .data[[\"ACTARM\"]])) +\n geom_col(aes(x = ACTARM, y = pct), fill = getOption(\"ggplot2.discrete.fill\")[1]) +\n scale_y_continuous(labels = scales::comma, expand = expansion(c(0, .25))) +\n geom_text(aes(y = pct, label = pct), stat = \"identity\", vjust = -0.5) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Percent of Subjects with Abnormaly High CRP at Baseline \\n Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_lb, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Percent\")\n\nsd_w <- anl1 %>%\n group_by(ACTARM) %>%\n summarise(\n mean = round(mean(AVAL, na.rm = TRUE), 2),\n median = round(median(AVAL, na.rm = TRUE), 2)\n ) %>%\n arrange(ACTARM)\n\nsd_l <- gather(sd_w, key = stat, value = value, mean:median)\nsd_l <- sd_l %>% mutate(\n stat_lbl = case_when(\n stat == \"mean\" ~ \"Mean\",\n stat == \"median\" ~ \"Median\"\n )\n)\n\nsd_l$stat_lbl <- factor(sd_l$stat_lbl, levels = c(\"Median\", \"Mean\"))\n\ntbl_theme <- theme(\n panel.border = element_blank(),\n panel.grid.major = element_blank(),\n panel.grid.minor = element_blank(),\n axis.ticks = element_blank(),\n axis.title = element_blank(),\n axis.text.y = element_text(face = \"plain\"),\n axis.text.x = element_blank()\n)\n\ntbl <- ggplot(sd_l, aes(x = ACTARM, y = stat_lbl, label = value)) +\n geom_text(size = 3) +\n scale_y_discrete(labels = levels(sd_l$stat_lbl)) +\n theme_bw() +\n tbl_theme\n\nplot <- cowplot::plot_grid(graph, tbl,\n rel_heights = c(4, 1),\n ncol = 1, nrow = 2, align = \"v\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl <- adae\n\nanl <- anl %>%\n arrange(USUBJID, AETOXGRC) %>%\n group_by(USUBJID) %>%\n slice(n()) %>%\n ungroup()\n\nanl <- anl[!duplicated(anl$USUBJID), ] %>%\n group_by(ACTARM, AETOXGRC) %>%\n summarise(n = n(), .groups = \"drop_last\") %>%\n mutate(N = patpop) %>%\n mutate(N = as.numeric(N)) %>%\n mutate(pct = round((n / N) * 100, 2))\n\nplot <- ggplot(anl, aes(x = .data[[\"ACTARM\"]], fill = .data[[\"AETOXGRC\"]])) +\n geom_col(aes(y = pct)) +\n guides(fill = guide_legend(title = getElement(vl_ae, \"AETOXGRC\"))) +\n scale_y_continuous(labels = scales::comma) +\n theme(plot.title = element_text(hjust = 0.5)) +\n ggtitle(\"Percent of Subjects With AE by Highest \\n NCI CTCAE Grade: Safety-Evaluable Subjects\") +\n xlab(paste0(getElement(vl_ae, \"ACTARM\"), \" (N = \", denom, \")\")) +\n ylab(\"Percent\")\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(binom)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(tidyr)\nlibrary(tern)\nlibrary(nestcolor)\n\nadsl <- random.cdisc.data::cadsl\n\n# filtered population\npatpop_df <- adsl %>%\n group_by(STUDYID) %>%\n summarise(patpop = n())\npatpop <- setNames(patpop_df$patpop, patpop_df$STUDYID)\ndenom <- patpop_df$patpop\n\nadae <- random.cdisc.data::cadae %>%\n mutate(AETOXGRC = as.character(AETOXGR))\nattributes(adae$AETOXGRC)$label <- \"Analysis Toxicity Grade (C)\"\nvl_ae <- var_labels(adae)\n\nadlb <- random.cdisc.data::cadlb\nvl_lb <- var_labels(adlb)", "crumbs": [ - "Listings", - "Adverse Events", - "AEL03" + "Graphs", + "Other", + "BRG01" ] }, - { - "objectID": "listings/adverse-events/ael03.html#reproducibility", - "href": "listings/adverse-events/ael03.html#reproducibility", - "title": "AEL03", + { + "objectID": "graphs/other/brg01.html#reproducibility", + "href": "graphs/other/brg01.html#reproducibility", + "title": "BRG01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:08:45 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:06:46 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n binom * 1.1-1.1 2022-05-02 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr * 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", - "Adverse Events", - "AEL03" + "Graphs", + "Other", + "BRG01" ] }, { - "objectID": "listings/disposition/dsl01.html#output", - "href": "listings/disposition/dsl01.html#output", - "title": "DSL01", + "objectID": "graphs/pharmacokinetic/pkcg01.html#output", + "href": "graphs/pharmacokinetic/pkcg01.html#output", + "title": "PKCG01", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = \"TRT01A\",\n disp_cols = names(out),\n main_title = \"Listing of Patients with Study Drug Withdrawn Due to Adverse Events\"\n)\n\nhead(lsting, 20)\n\nListing of Patients with Study Drug Withdrawn Due to Adverse Events\n\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n Date of First \n Study Drug Study Day Discontinued \n Treatment Center/Patient ID Age/Sex/Race Administration of Withdrawal Early from Study?\n————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X RUS-18/id-359 47/F/BLACK OR AFRICAN AMERICAN 08JUN2019 1096 No \n BRA-1/id-42 36/M/BLACK OR AFRICAN AMERICAN 01JAN2020 NA No \n CHN-11/id-256 23/M/ASIAN 17MAR2020 1096 No \n CHN-1/id-26 29/M/WHITE 16JUL2020 1096 No \n CHN-1/id-62 36/F/WHITE 22NOV2020 455 Yes \n B: Placebo CHN-7/id-28 40/M/AMERICAN INDIAN OR ALASKA NATIVE 11MAR2019 1096 No \n CHN-13/id-102 37/M/ASIAN 23MAR2019 1096 No \n CHN-3/id-333 30/F/BLACK OR AFRICAN AMERICAN 13JAN2020 NA No \n USA-12/id-226 30/M/WHITE 29JAN2020 NA No \n CHN-9/id-147 26/F/ASIAN 06FEB2020 NA No \n USA-11/id-157 50/M/WHITE 14JUN2020 1096 No \n CHN-9/id-11 28/F/NATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 27JAN2021 388 Yes \nC: Combination CHN-15/id-262 35/M/BLACK OR AFRICAN AMERICAN 26FEB2019 1096 No \n NGA-11/id-173 24/F/BLACK OR AFRICAN AMERICAN 10MAR2019 1096 No \n CHN-11/id-263 34/F/ASIAN 03APR2019 1096 No \n PAK-2/id-191 38/F/AMERICAN INDIAN OR ALASKA NATIVE 07APR2019 1096 No \n USA-11/id-136 38/F/ASIAN 02OCT2019 865 Yes \n CHN-17/id-31 35/F/ASIAN 17NOV2019 NA No \n BRA-11/id-237 64/F/ASIAN 10MAR2020 1096 No \n USA-11/id-100 40/F/ASIAN 10MAR2020 705 Yes \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadsl <- random.cdisc.data::cadsl\n\nout <- adsl %>%\n filter(AEWITHFL == \"Y\") %>%\n mutate(\n ID = paste(SITEID, SUBJID, sep = \"/\"),\n ASR = paste(AGE, SEX, RACE, sep = \"/\"),\n SSADM = toupper(format(as.Date(TRTSDTM), format = \"%d%b%Y\")),\n STDWD = as.numeric(ceiling(difftime(TRTEDTM, TRTSDTM, units = \"days\"))),\n DISCONT = ifelse(!is.na(DCSREAS) & toupper(EOSSTT) == \"DISCONTINUED\", \"Yes\", \"No\")\n ) %>%\n select(ID, ASR, TRT01A, SSADM, STDWD, DISCONT)\n\nvar_labels(out) <- c(\n ID = \"Center/Patient ID\",\n ASR = \"Age/Sex/Race\",\n TRT01A = \"Treatment\",\n SSADM = \"Date of First\\nStudy Drug\\nAdministration\",\n STDWD = \"Study Day\\nof Withdrawal\",\n DISCONT = \"Discontinued\\nEarly from Study?\"\n)", + "text": "Output\n\n\nPlot in Linear Scale\nPlot in Log Scale\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpc_a <- adpc %>%\n filter(\n PARAM == \"Plasma Drug X\",\n ARMCD == \"ARM A\"\n ) %>%\n mutate(Patient_ID = sub(\".*id-\", \"\", USUBJID))\n\nuse_title <- \"Plot of Plasma Drug X (ug/mL) Concentrations Over Time by\\nPatient: PK Evaluable Patients\"\nuse_subtitle <- \"Analyte: Plasma Drug X (ug/mL) \\nTreatment Group: ARM A\"\nuse_footnote <- \"Program: \\nOutput:\"\n\nresult <- g_ipp(\n df = adpc_a,\n xvar = \"NFRLT\",\n yvar = \"AVAL\",\n xlab = \"Norminal Time from First Dose (hr)\",\n ylab = \"Concentration (ug/mL)\",\n id_var = \"Patient_ID\",\n add_baseline_hline = FALSE,\n yvar_baseline = \"AVAL\", # yvar_baseline cannot be NA or ignore\n title = use_title,\n subtitle = use_subtitle,\n caption = use_footnote,\n plotting_choices = \"separate_by_obs\"\n)\nplot <- result[[1]] # only show the first subject\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpc_a <- adpc %>%\n filter(\n PARAM == \"Plasma Drug X\",\n ARMCD == \"ARM A\"\n ) %>%\n mutate(avalog = ifelse(AVAL != 0, AVAL, 0.001)) %>%\n mutate(Patient_ID = sub(\".*id-\", \"\", USUBJID))\n\nuse_title2 <- \"Plot of Plasma Drug X (ug/mL) Concentrations Over Time by\\nPatient: PK Evaluable Patients\"\nuse_subtitle2 <- \"Analyte: Plasma Drug X (ug/mL) \\nTreatment Group: ARM A\"\nuse_footnote2 <- \"Program: \\nOutput:\"\n\nresult <- g_ipp(\n df = adpc_a,\n xvar = \"NFRLT\",\n yvar = \"avalog\",\n xlab = \"Norminal Time from First Dose (hr)\",\n ylab = \"Concentration (ug/mL)\",\n id_var = \"Patient_ID\",\n add_baseline_hline = FALSE,\n yvar_baseline = \"AVAL\", # yvar_baseline cannot be NA or ignore\n title = use_title2,\n subtitle = use_subtitle2,\n caption = use_footnote2,\n plotting_choices = \"separate_by_obs\"\n)\nplot <- result[[1]] + ggplot2::scale_y_log10(breaks = c(0.001, 0.01, 0.1, 1, 10), labels = c(0.001, 0.01, 0.1, 1, 10))\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\n\nadpc <- random.cdisc.data::cadpc", "crumbs": [ - "Listings", - "Disposition", - "DSL01" + "Graphs", + "Pharmacokinetic", + "PKCG01" ] }, { - "objectID": "listings/disposition/dsl01.html#reproducibility", - "href": "listings/disposition/dsl01.html#reproducibility", - "title": "DSL01", + "objectID": "graphs/pharmacokinetic/pkcg01.html#reproducibility", + "href": "graphs/pharmacokinetic/pkcg01.html#reproducibility", + "title": "PKCG01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:08:54 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:07:02 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", - "Disposition", - "DSL01" + "Graphs", + "Pharmacokinetic", + "PKCG01" ] }, { - "objectID": "listings/pharmacokinetic/pkcl02.html#output", - "href": "listings/pharmacokinetic/pkcl02.html#output", - "title": "PKCL02", + "objectID": "graphs/pharmacokinetic/pkpg06.html#output", + "href": "graphs/pharmacokinetic/pkpg06.html#output", + "title": "PKPG06", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"TRT01A\", \"USUBJID\", \"VISIT\"),\n disp_cols = names(out),\n main_title = paste0(\n \"Listing of \", drug_a, \" Urine Concentration and Volumes following \", unique(adpc_x$REGIMEN)[1],\n \" of \", drug_a, \", PK Population\\nProtocol: xxnnnnn\"\n ),\n subtitles = paste(\"Analyte:\", drug_a)\n)\n\nhead(lsting, 20)\n\nListing of Drug X Urine Concentration and Volumes following BID of Drug X, PK Population\nProtocol: xxnnnnn\nAnalyte: Drug X\n\n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n UR_Conc (ug/mL) - Vurine (mL) - UR_Conc (ug/mL) - Vurine (mL) - UR_Conc (ug/mL) - Vurine (mL) - UR_Conc (ug/mL) - Vurine (mL) - UR_Conc (ug/mL) - Vurine (mL) - \n Urine Collection Urine Collection Urine Collection Urine Collection Urine Collection Urine Collection Urine Collection Urine Collection Urine Collection Urine Collection \n Interval: Interval: Interval (hours): Interval (hours): Interval (hours): Interval (hours): Interval (hours): Interval (hours): Interval (hours): Interval (hours):\nTreatment Group Subject ID Visit redose redose 0 - 4 0 - 4 4 - 8 4 - 8 8 - 12 8 - 12 0 - 24 0 - 24 \n——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X AB12345-BRA-1-id-105 Day 1 0 713.94 5.461 96.92 0.562 235.38 0.049 384.98 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 735.22 \n AB12345-BRA-1-id-134 Day 1 0 1068.83 4.064 145.1 0.178 352.39 0.006 576.35 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 1080.14 \n AB12345-BRA-1-id-42 Day 1 0 817.09 4.277 110.93 0.305 269.39 0.018 440.6 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 737.25 \n AB12345-BRA-1-id-93 Day 1 0 864.61 4.324 117.38 0.278 285.06 0.015 466.23 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 757.23 \n AB12345-BRA-11-id-217 Day 1 0 724.93 6.225 98.41 0.672 239.01 0.059 390.91 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 1185.46 \n AB12345-BRA-11-id-345 Day 1 0 840.09 6.511 114.05 0.588 276.98 0.04 453.01 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 883.89 \n AB12345-BRA-11-id-397 Day 1 0 974.41 5.478 132.28 0.354 321.26 0.017 525.44 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 918.67 \n AB12345-BRA-11-id-50 Day 1 0 922.97 4.122 125.3 0.228 304.3 0.01 497.7 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 808.08 \n AB12345-BRA-13-id-177 Day 1 0 694.09 4.267 94.23 0.421 228.84 0.038 374.28 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 908.45 \n AB12345-BRA-14-id-23 Day 1 0 722.84 4.254 98.13 0.386 238.32 0.032 389.78 NA NA \n Day 2 NA NA NA NA NA NA NA NA 0 862.1 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\ndrug_a <- \"Drug X\"\nspec <- \"URINE\"\n\nadpc <- random.cdisc.data::cadpc\nadpc_x <- adpc %>%\n mutate(REGIMEN = ifelse(\"REGIMEN\" %in% names(adpc), REGIMEN, \"BID\")) %>%\n filter(\n grepl(drug_a, PARAM),\n ASMED == spec\n )\n\nout <- adpc_x %>%\n tidyr::pivot_longer(\n cols = c(AVAL, PCVOL),\n names_to = \"URCD\",\n values_to = \"VALUE\"\n ) %>%\n mutate(\n URCD = case_when(\n URCD == \"AVAL\" ~ \"UR_Conc\",\n URCD == \"PCVOL\" ~ \"Vurine\",\n TRUE ~ URCD\n ),\n UNIT = case_when(\n URCD == \"UR_Conc\" ~ as.character(AVALU),\n URCD == \"Vurine\" ~ as.character(PCVOLU),\n TRUE ~ \"NA\"\n )\n ) %>%\n mutate(\n PARAM_INT = paste0(\n URCD, \" (\", UNIT, \") -\\nUrine Collection\\nInterval\",\n ifelse(PCTPT == \"Predose\", \"\", \" (hours)\"), \":\\n\",\n gsub(\"[PTH]\", \"\", PCTPT)\n )\n ) %>%\n select(TRT01A, USUBJID, VISIT, PARAM_INT, VALUE) %>%\n unique() %>%\n tidyr::pivot_wider(\n id_cols = c(TRT01A, USUBJID, VISIT),\n names_from = PARAM_INT,\n values_from = VALUE\n )\n\nvar_labels(out) <- names(out)\nout <- out %>% var_relabel(\n TRT01A = \"Treatment Group\",\n USUBJID = \"Subject ID\",\n VISIT = \"Visit\"\n)", + "text": "Output\n\n\nPlot with Whiskers at ±1.5 Times Inter-Quartile Range\nPlot with Whiskers at Minimum and Maximum Values\nPlot with Whiskers at 5th and 95th Percentiles\nData Setup\n\n\n\nDrug X Boxplot\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- ggplot(anl_x, aes(x = PARAMCD, y = ratio, fill = ACTARM)) +\n geom_boxplot(outlier.size = 2) +\n stat_boxplot(geom = \"errorbar\") +\n stat_summary(\n geom = \"point\",\n fun = \"mean\",\n col = \"black\",\n size = 5,\n shape = 8,\n position = position_dodge(0.75)\n ) +\n geom_text(\n data = . %>% dplyr::group_by(PARAMCD, ACTARM) %>% dplyr::filter(ratio %in% boxplot.stats(ratio)$out),\n aes(x = PARAMCD, y = ratio, label = USUBJID, col = ACTARM),\n size = 3,\n hjust = -0.2,\n position = position_dodge(0.75),\n show.legend = FALSE\n ) +\n labs(\n title = \"Boxplot of Metabolite to Parent Ratios by Treatment\",\n subtitle = paste0(\n \"Analyte: Plasma Drug X, Metabolite Drug X \",\n \"\\nPK Parameter: \",\n as.character(paste(unique(anl_x$PARAMCD), collapse = \", \")),\n \"\\nVisit: \",\n as.character((unique(anl_x$AVISIT)))\n ),\n caption = \"Program: \\nOutput:\",\n x = \"Parameter\",\n y = \"Metabolite to Parent Ratio\"\n ) +\n theme(plot.caption = element_text(hjust = 0)) +\n theme_nest()\n\n# PKPG06\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\nDrug Y Boxplot\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeplot <- ggplot(anl_y, aes(x = PARAMCD, y = ratio, fill = ACTARM)) +\n geom_boxplot(outlier.size = 2) +\n stat_boxplot(geom = \"errorbar\") +\n stat_summary(\n geom = \"point\",\n fun = \"mean\",\n col = \"black\",\n size = 5,\n shape = 8,\n position = position_dodge(0.75)\n ) +\n geom_text(\n data = . %>% dplyr::group_by(PARAMCD, ACTARM) %>% dplyr::filter(ratio %in% boxplot.stats(ratio)$out),\n aes(x = PARAMCD, y = ratio, label = USUBJID, color = ACTARM),\n size = 3,\n hjust = -0.2,\n position = position_dodge(0.75),\n show.legend = FALSE\n ) +\n labs(\n title = \"Boxplot of Metabolite to Parent Ratios by Treatment\",\n subtitle = paste0(\n \"Analyte: Plasma Drug Y, Metabolite Drug Y \",\n \"\\nPK Parameter: \",\n as.character(paste(unique(anl_y$PARAMCD), collapse = \", \")),\n \"\\nVisit: \",\n as.character((unique(anl_y$AVISIT)))\n ),\n caption = \"Program: \\nOutput:\",\n x = \"Parameter\",\n y = \"Metabolite to Parent Ratio\"\n ) +\n theme(plot.caption = element_text(hjust = 0)) +\n theme_nest()\n\n# result\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCode# whiskers are formed with the minimum and maximum values\nplot <- ggplot(anl_x, aes(x = PARAMCD, y = ratio, fill = ACTARM)) +\n geom_boxplot(outlier.size = 0) +\n stat_boxplot(geom = \"errorbar\", coef = NULL) +\n stat_summary(geom = \"point\", fun = \"mean\", col = \"black\", size = 5, shape = 8, position = position_dodge(0.75)) +\n labs(\n title = \"Boxplot of Metabolite to Parent Ratios by Treatment\",\n subtitle = paste0(\n \"Analyte: Plasma Drug X, Metabolite Drug X \",\n \"\\nPK Parameter: \",\n as.character(paste(unique(anl_x$PARAMCD), collapse = \", \")),\n \"\\nVisit: \",\n as.character((unique(anl_x$AVISIT)))\n ),\n caption = \"Program:\\nOutput:\",\n x = \"Parameter\",\n y = \"Metabolite to Parent Ratio\"\n ) +\n theme(plot.caption = element_text(hjust = 0)) +\n theme_nest()\n\n# result\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl_x_without_outliers <- anl_x %>%\n dplyr::group_by(PARAMCD, ACTARM) %>%\n dplyr::mutate(outlier = ifelse(outliers(ratio), ratio, as.numeric(NA)))\nplot <- ggplot(anl_x, aes(PARAMCD, ratio, fill = ACTARM, label = USUBJID)) +\n stat_summary(\n fun.data = quantiles, geom = \"boxplot\",\n position = position_dodge(1)\n ) +\n stat_summary(\n geom = \"point\",\n fun = \"mean\",\n col = \"black\",\n size = 5,\n shape = 8,\n position = position_dodge(1)\n ) +\n stat_summary(\n fun.data = quantiles, geom = \"errorbar\",\n position = position_dodge(1)\n ) +\n geom_point(\n data = anl_x_without_outliers,\n aes(x = PARAMCD, y = outlier),\n na.rm = TRUE,\n size = 2,\n position = position_dodge(1),\n show.legend = FALSE\n ) +\n geom_text(\n data = anl_x_without_outliers,\n aes(x = PARAMCD, y = outlier, label = USUBJID, color = ACTARM),\n na.rm = TRUE,\n size = 3,\n hjust = -0.2,\n vjust = 1,\n position = position_dodge(1),\n show.legend = FALSE\n ) +\n labs(\n title = \"Boxplot of Metabolite to Parent Ratios by Treatment\",\n subtitle = paste0(\n \"Analyte: Plasma Drug X, Metabolite Drug X \",\n \"\\nPK Parameter: \",\n as.character(paste(unique(anl_x$PARAMCD), collapse = \", \")),\n \"\\nVisit: \",\n as.character((unique(anl_x$AVISIT)))\n ),\n caption = \"Program: \\nOutput:\",\n x = \"Parameter\",\n y = \"Metabolite to Parent Ratio\"\n ) +\n theme(plot.caption = element_text(hjust = 0)) +\n theme_nest()\n\n# result\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(ggplot2)\nlibrary(tidyr)\nlibrary(tern)\nlibrary(nestcolor)\n\nadpp <- random.cdisc.data::cadpp\n\n# Filter NAs\nadpp <- adpp %>%\n filter(PPSPEC != \"NA\" & PARAM != \"NA\" & PPCAT != \"NA\") %>%\n filter(PARAMCD == \"CMAX\" | PARAMCD == \"AUCIFO\", AVISITN == 1)\n\n# filter data by PPCAT and calculate ratio\nanl_x <- adpp %>%\n filter(PPCAT %in% c(\"Metabolite Drug X\", \"Plasma Drug X\")) %>%\n pivot_wider(\n id_cols = c(USUBJID, ACTARM, PARAMCD, AVISIT),\n names_from = PPCAT,\n values_from = AVAL\n ) %>%\n dplyr::mutate(ratio = `Metabolite Drug X` / `Plasma Drug X`) %>%\n filter(!is.na(ratio), ratio != Inf)\n\nanl_y <- adpp %>%\n filter(PPCAT %in% c(\"Metabolite Drug Y\", \"Plasma Drug Y\")) %>%\n pivot_wider(\n id_cols = c(USUBJID, ACTARM, PARAMCD, AVISIT),\n names_from = PPCAT,\n values_from = AVAL\n ) %>%\n dplyr::mutate(ratio = `Metabolite Drug Y` / `Plasma Drug Y`) %>%\n filter(!is.na(ratio), ratio != Inf)\n\n# functions to calculate custom quantiles and outliers\nquantiles <- function(x) {\n quant <- quantile(x, probs = c(0.05, 0.25, 0.5, 0.75, 0.95))\n names(quant) <- c(\"ymin\", \"lower\", \"middle\", \"upper\", \"ymax\")\n quant\n}\n\noutliers <- function(x) {\n return(x < quantile(x, 0.05) | x > quantile(x, 0.95))\n}", "crumbs": [ - "Listings", + "Graphs", "Pharmacokinetic", - "PKCL02" + "PKPG06" ] }, { - "objectID": "listings/pharmacokinetic/pkcl02.html#reproducibility", - "href": "listings/pharmacokinetic/pkcl02.html#reproducibility", - "title": "PKCL02", + "objectID": "graphs/pharmacokinetic/pkpg06.html#reproducibility", + "href": "graphs/pharmacokinetic/pkpg06.html#reproducibility", + "title": "PKPG06", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:09:03 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:07:16 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr * 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", + "Graphs", "Pharmacokinetic", - "PKCL02" + "PKPG06" ] }, { - "objectID": "listings/pharmacokinetic/adal01.html#output", - "href": "listings/pharmacokinetic/adal01.html#output", - "title": "ADAL01", + "objectID": "graphs/pharmacokinetic/pkcg02.html#output", + "href": "graphs/pharmacokinetic/pkcg02.html#output", + "title": "PKCG02", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"USUBJID\", \"VISIT\"),\n disp_cols = names(out),\n main_title = paste0(\n \"Listing of Anti-\", drugcd, \" Antibody Data for Patients with At Least One ADA Sample Datum by Treatment, \",\n \"PK Population\\nProtocol: \", drug_a\n ),\n subtitles = paste(\"\\nTreatment Group:\", trt),\n main_footer = \"(1) Minimum reportable titer = 1.10 (example only)\n(2) Minimum reportable titer = 1.10 (example only)\n(3) Minimum reportable concentration = 3.0 (example only)\nBLQ = Below Limit of Quantitation, LTR = Lower than Reportable, N/A = Not Applicable, N.C. = Not Calculable,\nADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies)\nROXXXXXXX is also known as [drug]\"\n)\n\ntail(lsting, 50)[1:24, ]\n\nListing of Anti-R1800000 Antibody Data for Patients with At Least One ADA Sample Datum by Treatment, PK Population\nProtocol: A: Drug X Antibody\n\nTreatment Group: A: Drug X\n\n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n ADA NAb Sample Patient Patient \n Nominal Titer Titer Sample Neutralizing Treatment Treatment Drug \n Time Units Units ADA Antibody Emergent ADA Emergent NAb Concentration\n Subject ID Visit Timepoint (hr) (1) (2) Result (NAb) Result Status Status (ug/mL) (3) \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\nAB12345-PAK-11-id-145 Day 1 Predose 0.00 N/A N/A Negative Negative Negative Negative N/A \n Day 2 24H 1.00 N/A N/A Negative Negative N/A \nAB12345-PAK-11-id-187 Day 1 Predose 0.00 N/A N/A Negative Negative Positive Negative N/A \n Day 2 24H 1.00 1.16 1.16 Positive Positive N/A \nAB12345-PAK-11-id-268 Day 1 Predose 0.00 N/A N/A Negative Negative Negative Negative N/A \n Day 2 24H 1.00 N/A N/A Negative Negative N/A \nAB12345-PAK-11-id-68 Day 1 Predose 0.00 1.08 1.08 Positive Positive Positive Negative N/A \n Day 2 24H 1.00 1.19 1.19 Positive Positive N/A \nAB12345-PAK-12-id-328 Day 1 Predose 0.00 1.11 1.11 Positive Positive Negative Negative N/A \n Day 2 24H 1.00 N/A N/A Negative Negative N/A \nAB12345-PAK-12-id-85 Day 1 Predose 0.00 1.06 1.06 Positive Positive Positive Negative N/A \n Day 2 24H 1.00 1.35 1.35 Positive Positive N/A \nAB12345-PAK-13-id-251 Day 1 Predose 0.00 N/A N/A Negative Negative Positive Negative N/A \n Day 2 24H 1.00 1.14 1.14 Positive Positive N/A \nAB12345-PAK-14-id-117 Day 1 Predose 0.00 1.04 1.04 Positive Positive Positive Negative N/A \n Day 2 24H 1.00 1.06 1.06 Positive Positive N/A \nAB12345-PAK-15-id-314 Day 1 Predose 0.00 N/A N/A Negative Negative Positive Negative N/A \n Day 2 24H 1.00 1.02 1.02 Positive Positive N/A \nAB12345-PAK-2-id-213 Day 1 Predose 0.00 1.24 1.24 Positive Positive Negative Negative N/A \n Day 2 24H 1.00 N/A N/A Negative Negative N/A \n AB12345-RUS-1-id-52 Day 1 Predose 0.00 N/A N/A Negative Negative Positive Negative N/A \n Day 2 24H 1.00 1.22 1.22 Positive Positive N/A \nAB12345-RUS-13-id-70 Day 1 Predose 0.00 N/A N/A Negative Negative Negative Negative N/A \n Day 2 24H 1.00 N/A N/A Negative Negative N/A \n———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n\n(1) Minimum reportable titer = 1.10 (example only)\n(2) Minimum reportable titer = 1.10 (example only)\n(3) Minimum reportable concentration = 3.0 (example only)\nBLQ = Below Limit of Quantitation, LTR = Lower than Reportable, N/A = Not Applicable, N.C. = Not Calculable,\nADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies)\nROXXXXXXX is also known as [drug]\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\nlibrary(random.cdisc.data)\n\nadpc <- cadpc\nadab <- cadab\n\ntrt <- \"A: Drug X\"\nmin_titer_ada <- 1.10\nmin_titer_nab <- 1.10\nmin_conc <- 3.0\n\nif (unique(adpc$RELTMU) == \"hr\") adpc$NFRLT <- adpc$NFRLT / 24\nadpc_f <- adpc %>% filter(PARAM == \"Plasma Drug X\")\n\n\ndrug_a <- unique(adab$PARCAT1)[1]\ndrugcd <- unique(adab$PARAMCD[adab$PARAM == \"Antibody titer units\"])[1]\nconc_u <- unique(adpc_f$AVALU)\n\nadpc_f <- adpc_f %>% select(USUBJID, NFRLT, AVAL)\nadab1 <- adab %>%\n filter(ARM == trt) %>%\n select(-PARAM, -PARCAT1, -AVALC, -AVALU) %>%\n left_join(\n adpc_f,\n by = c(\"USUBJID\", \"NFRLT\"),\n suffix = c(\"_ab\", \"_pk\")\n ) %>%\n filter(!is.na(AVAL_ab))\n\nadab_f <- adab1 %>%\n tidyr::pivot_wider(\n id_cols = c(USUBJID, VISIT, NFRLT, ISTPT, AVAL_pk),\n names_from = PARAMCD,\n values_from = AVAL_ab\n )\n# Select the necessary ADA parameters\nadab_f1 <- adab_f %>%\n select(USUBJID, VISIT, NFRLT, ISTPT, AVAL_pk, R1800000, R1800001, RESULT1, RESULT2, ADASTAT1, ADASTAT2) %>%\n mutate(ADA = R1800000, NAB = R1800001) %>%\n select(-R1800000, -R1800001)\n\n\n# Find subject level ADA status\nadab_s <- adab_f1 %>%\n select(USUBJID, ADASTAT1, ADASTAT2) %>%\n filter(!is.na(ADASTAT1), !is.na(ADASTAT2))\n# Find time-vary ADA records\nadab_r <- adab_f1 %>%\n select(-ADASTAT1, -ADASTAT2) %>%\n filter(!is.na(VISIT))\n\nadab_o <- adab_r %>% left_join(adab_s, by = \"USUBJID\")\n\nout <- adab_o %>%\n mutate(AVAL_pk = ifelse(AVAL_pk == 0, NA, AVAL_pk)) %>%\n mutate(NFRLT = as.numeric(NFRLT)) %>%\n mutate(\n RESULT1 = ifelse(RESULT1 == 1, \"Positive\", \"Negative\"),\n RESULT2 = ifelse(RESULT2 == 1, \"Positive\", \"Negative\"),\n ADASTAT1 = ifelse(ADASTAT1 == 1, \"Positive\", \"Negative\"),\n ADASTAT2 = ifelse(ADASTAT2 == 1, \"Positive\", \"Negative\"),\n # ADA = ifelse(ADA < min_titer_ada, NA, ADA),\n # NAB = ifelse(NAB < min_titer_nab, NA, NAB),\n AVAL_pk = ifelse(AVAL_pk < min_conc, \"BLQ\", AVAL_pk)\n ) %>%\n select(\n USUBJID, VISIT, ISTPT, NFRLT, ADA, NAB, RESULT1, RESULT2, ADASTAT1, ADASTAT2,\n AVAL_pk\n ) %>%\n mutate_at(\n c(\"NFRLT\", \"ADA\", \"NAB\", \"AVAL_pk\"),\n ~ ifelse(is.na(.), replace(., is.na(.), \"N/A\"), format(round(., 2), nsmall = 2))\n )\n\nvar_labels(out) <- names(out)\n\nout <- out %>%\n arrange(USUBJID, VISIT, desc(ISTPT), NFRLT) %>%\n group_by(USUBJID) %>%\n mutate(\n ADASTAT1 = ifelse(row_number() == 1, ADASTAT1, \"\"),\n ADASTAT2 = ifelse(row_number() == 1, ADASTAT2, \"\")\n ) %>% # Keep only the first value in ADA status, set others to \"\"\n var_relabel(\n USUBJID = \"Subject ID\",\n VISIT = \"Visit\",\n ISTPT = \"Timepoint\",\n NFRLT = \"Nominal\\nTime\\n(hr)\",\n RESULT1 = \"Sample\\nADA\\nResult\",\n ADA = \"ADA\\nTiter\\nUnits\\n(1)\",\n ADASTAT1 = \"Patient\\nTreatment\\nEmergent ADA\\nStatus\",\n RESULT2 = \"Sample\\nNeutralizing\\nAntibody\\n(NAb) Result\",\n NAB = \"NAb\\nTiter\\nUnits\\n(2)\",\n ADASTAT2 = \"Patient\\nTreatment\\nEmergent NAb\\nStatus\",\n AVAL_pk = paste0(\"Drug\\nConcentration\\n(\", conc_u, \") (3)\")\n )", + "text": "Output\n\n\nPlot in Linear Scale\nPlot in Log Scale\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpc_a <- adpc %>%\n filter(\n PARAM == \"Plasma Drug X\",\n ARMCD == \"ARM A\"\n ) %>%\n mutate(Patient_ID = sub(\".*id-\", \"\", USUBJID)) %>%\n filter(Patient_ID %in% unique(Patient_ID)[1:10])\n\nuse_title1 <- \"Plot of X Concentration (ug/mL) Over Time by Treatment: \\nPK Evaluable Patients\"\nuse_subtitle1 <- \"Analyte: Plasma X (ug/mL) \\nTreatment Group: ARM A\"\nuse_footnote1 <- \"Program: \\nOutput:\"\n\nplot <- g_ipp(\n df = adpc_a,\n xvar = \"NFRLT\",\n yvar = \"AVAL\",\n xlab = \"Norminal Time from First Dose (hr)\",\n ylab = \"Concentration (ug/mL)\",\n id_var = \"Patient_ID\",\n add_baseline_hline = FALSE,\n yvar_baseline = \"AVAL\", # yvar_baseline cannot be NA or ignore\n title = use_title1,\n subtitle = use_subtitle1,\n caption = use_footnote1,\n plotting_choices = \"all_in_one\"\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeadpc_a <- adpc %>%\n filter(\n PARAM == \"Plasma Drug X\",\n ARMCD == \"ARM A\"\n ) %>%\n mutate(Patient_ID = sub(\".*id-\", \"\", USUBJID)) %>%\n mutate(avalog = ifelse(AVAL != 0, AVAL, 0.001)) %>%\n filter(Patient_ID %in% unique(Patient_ID)[1:10])\n\nuse_title3 <- \"Log-scale Plot of X Concentration (ug/mL) Over Time by Treatment: \\nPK Evaluable Patients\"\nuse_subtitle3 <- \"Analyte: Plasma X (ug/mL) \\nTreatment Group: ARM A\"\nuse_footnote3 <- \"Program: \\nOutput:\"\n\nresult <- g_ipp(\n df = adpc_a,\n xvar = \"NFRLT\",\n yvar = \"avalog\",\n xlab = \"Norminal Time from First Dose (hr)\",\n ylab = \"Concentration (ug/mL)\",\n id_var = \"Patient_ID\",\n add_baseline_hline = FALSE,\n yvar_baseline = \"AVAL\", # yvar_baseline cannot be NA or ignore\n title = use_title3,\n caption = use_footnote3,\n subtitle = use_subtitle3,\n plotting_choices = \"all_in_one\"\n)\nplot <- result + ggplot2::scale_y_log10(breaks = c(0.001, 0.01, 0.1, 1, 10), labels = c(0.001, 0.01, 0.1, 1, 10))\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\n\nadpc <- random.cdisc.data::cadpc", "crumbs": [ - "Listings", + "Graphs", "Pharmacokinetic", - "ADAL01" + "PKCG02" ] }, { - "objectID": "listings/pharmacokinetic/adal01.html#reproducibility", - "href": "listings/pharmacokinetic/adal01.html#reproducibility", - "title": "ADAL01", + "objectID": "graphs/pharmacokinetic/pkcg02.html#reproducibility", + "href": "graphs/pharmacokinetic/pkcg02.html#reproducibility", + "title": "PKCG02", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:09:13 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data * 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:07:30 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", + "Graphs", "Pharmacokinetic", - "ADAL01" + "PKCG02" ] }, { - "objectID": "listings/pharmacokinetic/pkcl01.html#output", - "href": "listings/pharmacokinetic/pkcl01.html#output", - "title": "PKCL01", + "objectID": "graphs/pharmacokinetic/pkpg01.html#output", + "href": "graphs/pharmacokinetic/pkpg01.html#output", + "title": "PKPG01", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = c(\"ARM\", \"USUBJID\", \"VISIT\"),\n disp_cols = names(out),\n main_title = paste(\n \"Listing of\",\n analyte,\n \"Concentration by Treatment Group, Subject and Nominal Time, PK Population\\nProtocol: xxnnnnn\"\n ),\n subtitles = paste(\"Analyte:\", analyte)\n)\n\nhead(lsting, 20)\n\nListing of Plasma Drug X Concentration by Treatment Group, Subject and Nominal Time, PK Population\nProtocol: xxnnnnn\nAnalyte: Plasma Drug X\n\n———————————————————————————————————————————————————————————————————————————————————————————————\n Actual Time \n Nominal Sampling From First Concentration\nTreatment Group Subject ID Visit Time (hr) Dose (hr) (ug/mL) \n———————————————————————————————————————————————————————————————————————————————————————————————\n A: Drug X AB12345-BRA-1-id-105 Day 1 0 0 0 \n 0.5 0.5 10.404 \n 1 1 13.987 \n 1.5 1.5 14.142 \n 2 2 12.744 \n 3 3 8.803 \n 4 4 5.461 \n 8 8 0.562 \n 12 12 0.049 \n Day 2 24 24 0 \n AB12345-BRA-1-id-134 Day 1 0 0 0 \n 0.5 0.5 14.405 \n 1 1 17.863 \n 1.5 1.5 16.613 \n 2 2 13.735 \n 3 3 7.923 \n 4 4 4.064 \n 8 8 0.178 \n 12 12 0.006 \n Day 2 24 24 0 \n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(rlistings)\nlibrary(dplyr)\n\nadpc <- random.cdisc.data::cadpc\n\nanalyte <- \"Plasma Drug X\"\n\nout <- adpc %>%\n filter(PARAM == analyte) %>%\n select(ARM, USUBJID, VISIT, NFRLT, AFRLT, AVAL)\n\nvar_labels(out) <- c(\n ARM = \"Treatment Group\",\n USUBJID = \"Subject ID\",\n VISIT = \"Visit\",\n NFRLT = paste0(\"Nominal Sampling\\nTime (\", adpc$RELTMU[1], \")\"),\n AFRLT = paste0(\"Actual Time\\nFrom First\\nDose (\", adpc$RELTMU[1], \")\"),\n AVAL = paste0(\"Concentration\\n(\", adpc$AVALU[1], \")\")\n)", + "text": "Output\n\n\nPlot with Two Cohorts\nPlot with Six Cohorts\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeuse_title <- \"Plot of Mean (+/- SD) Cummulative Percentage (%) of Recovered Drug in Urine \\nby Analyte, Visit: PK Evaluable Patients\" \nuse_subtitle <- \"Analyte: Plasma Drug X \\nVisit: CYCLE 1 DAY 1 \\nPK Parameter:\"\nuse_footnote <- \"Program: \\nOutput:\"\n\nseparation_between_barplots <- 1.5\n\nresult <- g_lineplot(\n df = adpp,\n variables = control_lineplot_vars(\n x = \"Time\",\n y = \"AVAL\",\n group_var = \"ARM\",\n paramcd = \"PARAM1\",\n y_unit = \"AVALU\"\n ),\n alt_counts_df = adpp,\n y_lab = \"Cummulative Percentage\",\n x_lab = \"Time (hours)\",\n y_lab_add_paramcd = FALSE,\n y_lab_add_unit = TRUE,\n interval = \"mean_sdi\",\n whiskers = c(\"mean_sdi_lwr\", \"mean_sdi_upr\"),\n title = use_title,\n subtitle = use_subtitle,\n caption = use_footnote,\n ggtheme = theme_nest(),\n position = ggplot2::position_dodge(width = 2)\n)\n\nplot <- result + theme(plot.caption = element_text(hjust = 0)) +\n scale_x_continuous(breaks = c(12, 24))\n\nScale for x is already present.\nAdding another scale for x, which will replace the existing scale.\n\nCodeplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\nIn this case we need to process the data further by artificially adding more random rows. Of course this step is not necessary in the case that data already has more cohorts.\n\nCodeadpp_hck <- adpp %>%\n mutate(AVAL + 1 * rnorm(nrow(adpp), mean = 1, sd = 1)) %>%\n mutate(ARM = as.factor(sample(\n c(\n \"D: Drug D\",\n \"E: Drug E\",\n \"F: Drug F\",\n \"G: Drug G\"\n ),\n nrow(adpp),\n replace = TRUE,\n prob = c(0.4, 0.3, 0.2, 0.1)\n )))\n\nadpp <- bind_rows(adpp, adpp_hck)\n\nuse_title <- \"Plot of Mean (+/- SD) Cummulative Percentage (%) of Recovered Drug in Urine \\nby Analyte, Visit: PK Evaluable Patients\" \nuse_subtitle <- \"Analyte: Plasma Drug X \\nVisit: CYCLE 1 DAY 1 \\nPK Parameter:\"\nuse_footnote <- \"Program: \\nOutput:\"\n\nseparation_between_barplots <- 1.5\n\nresult <- g_lineplot(\n df = adpp,\n variables = control_lineplot_vars(\n x = \"Time\",\n y = \"AVAL\",\n group_var = \"ARM\",\n paramcd = \"PARAM1\",\n y_unit = \"AVALU\"\n ),\n alt_counts_df = adpp,\n y_lab = \"Cummulative Percentage\",\n x_lab = \"Time (hours)\",\n y_lab_add_paramcd = FALSE,\n y_lab_add_unit = TRUE,\n interval = \"mean_sdi\",\n whiskers = c(\"mean_sdi_lwr\", \"mean_sdi_upr\"),\n title = use_title,\n subtitle = use_subtitle,\n caption = use_footnote,\n ggtheme = theme_nest(),\n position = ggplot2::position_dodge(width = 2)\n)\n\nplot <- result + theme(plot.caption = element_text(hjust = 0)) +\n scale_x_continuous(breaks = c(12, 24))\n\nScale for x is already present.\nAdding another scale for x, which will replace the existing scale.\n\nCodeplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(tern)\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(nestcolor)\nset.seed(123)\n\n# loading in the data\nadpp <- random.cdisc.data::cadpp\n\n# filtering the rows for specific data entries\nadpp <- adpp %>%\n filter(PARAMCD == \"RCPCINT\", AVISIT == \"CYCLE 1 DAY 1\", PPCAT == \"Plasma Drug X\")\n\n# adding or modifying specific columns\nadpp <- adpp %>%\n mutate(ARM = as.factor(TRT01A)) %>%\n mutate(PARAM1 = \"Fe\") %>% # re-format PK parameter name\n mutate(Time = as.numeric(gsub(\"PT*|\\\\.|H$\", \"\", PPENINT))) %>%\n droplevels() %>%\n df_explicit_na()\n\n# in cases where the cohorts are numeric it is possible to rename them\nlevels(adpp$ARM) <- c(\n \"A: Drug X\",\n \"C: Combination\"\n)", "crumbs": [ - "Listings", + "Graphs", "Pharmacokinetic", - "PKCL01" + "PKPG01" ] }, { - "objectID": "listings/pharmacokinetic/pkcl01.html#reproducibility", - "href": "listings/pharmacokinetic/pkcl01.html#reproducibility", - "title": "PKCL01", + "objectID": "graphs/pharmacokinetic/pkpg01.html#reproducibility", + "href": "graphs/pharmacokinetic/pkpg01.html#reproducibility", + "title": "PKPG01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:09:23 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:07:43 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 * 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n munsell 0.5.1 2024-04-01 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", + "Graphs", "Pharmacokinetic", - "PKCL01" + "PKPG01" ] }, { - "objectID": "listings/ADA/adal02.html#output", - "href": "listings/ADA/adal02.html#output", - "title": "ADAL02", + "objectID": "graphs/efficacy/fstg01.html#output", + "href": "graphs/efficacy/fstg01.html#output", + "title": "FSTG01", "section": "Output", - "text": "Output\n\n\nStandard Listing\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodelsting <- as_listing(\n out,\n key_cols = \"USUBJID\",\n disp_cols = names(out),\n main_title = paste0(\n \"Listing of Anti-\", drugcd, \" Antibody Data for Treatment Emergent ADA Positive Patients, PK Population\",\n \"\\nProtocol: \", unique(adab$PARCAT1)[1]\n ),\n subtitles = paste(\"\\nTreatment Group:\", trt),\n \n main_footer = \"Minimum reportable titer = 1.10 (example only)\n--- = No sample evaluated\nADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies)\nNumber of patients positive for Treatment Emergent ADA = the number of post-baseline evaluable patients determined to have treatment-induced ADA or treatment-enhanced ADA during the study period.\nTreatment-induced ADA = a patient with negative or missing baseline ADA result(s) and at least one positive post-baseline ADA result.\nTreatment-enhanced ADA = a patient with positive ADA result at baseline who has one or more post-baseline titer results that are at least 0.60 t.u. greater than the baseline titer result.\nTransient ADA = ADA positive result detected (a) at only one post-baseline sampling timepoint (excluding last timepoint) OR (b) at 2 or more timepoints during treatment where the first and last ADA positive samples are separated by a period of < 16 weeks, irrespective of any negative samples in between.\nPersistent ADA = ADA positive result detected (a) at the last post-baseline sampling timepoint, OR (b) at 2 or more time points during treatment where the first and last ADA positive samples are separated by a period ≥ 16 weeks, irrespective of any negative samples in between.\nAsterisk denotes sample that tested positive for Neutralizing Antibodies.\"\n \n)\n\nhead(lsting, 20)\n\nListing of Anti-R1800000 Antibody Data for Treatment Emergent ADA Positive Patients, PK Population\nProtocol: A: Drug X Antibody\n\nTreatment Group: A: Drug X\n\n—————————————————————————————————————————————————————\n Day 2 Patient Treatment \n Subject ID (Day 1) Emergent ADA Status\n—————————————————————————————————————————————————————\nAB12345-BRA-1-id-105 --- Enhanced \nAB12345-BRA-1-id-134 --- Enhanced \n AB12345-BRA-1-id-42 --- Enhanced \n AB12345-BRA-1-id-93 --- Enhanced \nAB12345-BRA-11-id-217 --- Enhanced \nAB12345-BRA-11-id-345 --- Enhanced \nAB12345-BRA-11-id-397 --- Enhanced \nAB12345-BRA-11-id-50 --- Enhanced \nAB12345-BRA-13-id-177 --- Enhanced \nAB12345-BRA-14-id-23 --- Enhanced \nAB12345-BRA-15-id-36 --- Enhanced \nAB12345-BRA-2-id-296 --- Enhanced \nAB12345-BRA-6-id-369 --- Enhanced \n AB12345-CAN-1-id-18 --- Enhanced \nAB12345-CAN-11-id-139 --- Enhanced \nAB12345-CAN-14-id-104 --- Enhanced \nAB12345-CHN-1-id-119 --- Enhanced \nAB12345-CHN-1-id-123 --- Enhanced \nAB12345-CHN-1-id-133 --- Enhanced \nAB12345-CHN-1-id-199 --- Enhanced \n—————————————————————————————————————————————————————\n\nMinimum reportable titer = 1.10 (example only)\n--- = No sample evaluated\nADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies)\nNumber of patients positive for Treatment Emergent ADA = the number of post-baseline evaluable patients determined to have treatment-induced ADA or treatment-enhanced ADA during the study period.\nTreatment-induced ADA = a patient with negative or missing baseline ADA result(s) and at least one positive post-baseline ADA result.\nTreatment-enhanced ADA = a patient with positive ADA result at baseline who has one or more post-baseline titer results that are at least 0.60 t.u. greater than the baseline titer result.\nTransient ADA = ADA positive result detected (a) at only one post-baseline sampling timepoint (excluding last timepoint) OR (b) at 2 or more timepoints during treatment where the first and last ADA positive samples are separated by a period of < 16 weeks, irrespective of any negative samples in between.\nPersistent ADA = ADA positive result detected (a) at the last post-baseline sampling timepoint, OR (b) at 2 or more time points during treatment where the first and last ADA positive samples are separated by a period ≥ 16 weeks, irrespective of any negative samples in between.\nAsterisk denotes sample that tested positive for Neutralizing Antibodies.\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(rlistings)\n\nadab <- random.cdisc.data::cadab %>%\n filter(NFRLT %% 1 == 0 & NFRLT > 0)\n\ntrt <- \"A: Drug X\"\ndrug_a <- \"A: Drug X Antibody\"\ndrugcd <- unique(adab$PARAMCD[adab$PARAM == \"Antibody titer units\"])[1]\nmin_titer <- 1.10\n\nadab_x <- adab %>%\n filter(\n ARM == trt,\n PARCAT1 == drug_a,\n ADPBLPFL == \"Y\"\n ) %>%\n select(-PARAMCD, -AVALC, -AVALU, -ARRLT, -NRRLT) %>%\n unique() %>%\n tidyr::pivot_wider(\n names_from = PARAM,\n values_from = AVAL\n ) %>%\n filter(if_any(matches(\"Treatment Emergent - Positive\"), ~ .x == 1)) %>%\n # filter(`Treatment Emergent - Positive` == 1) %>%\n mutate(\n VISN = factor(paste0(\n VISIT, \"\\n(Day \",\n ifelse(\n NFRLT %% 1 == 0,\n NFRLT,\n as.character(format(round(NFRLT, 2), nsmall = 2))\n ),\n \")\"\n )),\n PTES = ifelse(\n ifelse(\"Treatment induced ADA\" %in% names(.), `Treatment induced ADA` == 1, FALSE),\n ifelse(\n \"Transient ADA\" %in% names(.) & `Transient ADA` == 1,\n \"Induced (Transient)\",\n \"Induced (Persistent)\"\n ),\n \"Enhanced\"\n )\n ) %>%\n mutate(\n AVAL = paste0(\n ifelse(\n ifelse(\"ADA interpreted per sample result\" %in% names(.), `ADA interpreted per sample result` == 0, FALSE),\n \"NEGATIVE\",\n ifelse(\n ifelse(\"Antibody titer units\" %in% names(.), !is.na(`Antibody titer units`), FALSE),\n ifelse(\n `Antibody titer units` < min_titer,\n paste0(\"<\", format(min_titer, nsmall = 2)),\n as.character(format(round(`Antibody titer units`, 2), nsmall = 2))\n ),\n \"---\"\n )\n ),\n ifelse(\n ifelse(\"NAB interpreted per sample result\" %in% names(.), `NAB interpreted per sample result` == 1, FALSE),\n \"*\",\n \"\"\n )\n )\n )\n\nout <- adab_x %>%\n select(USUBJID, VISN, AVAL, PTES) %>%\n tidyr::pivot_wider(\n names_from = VISN,\n values_from = AVAL\n ) %>%\n select(USUBJID, unique(adab_x$VISN[order(adab_x$NFRLT)]), PTES)\n\nvar_labels(out) <- names(out)\n\nout <- out %>%\n var_relabel(\n USUBJID = \"Subject ID\",\n PTES = \"Patient Treatment\\nEmergent ADA Status\"\n )", + "text": "Output\n\n\nStandard Plot\nPlot Specifying Class Variables and Options for the Treatment Variable\nPlot Selecting Columns and Changing the Alpha Level\nPlot with Fixed Symbol Size\nPlot of CR Only, Setting Values Indicating Response\nData Setup\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodedf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"is_rsp\",\n arm = \"ARM\",\n subgroups = c(\"SEX\", \"BMRKR2\"),\n strata = \"STRATA2\"\n ),\n data = anl_rsp_arms_ab,\n conf_level = 0.95\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\"))\n\nplot <- g_forest(tbl = result)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl_rsp_comb_arms_ac <- anl %>%\n mutate(is_rsp = AVALC %in% c(\"CR\", \"PR\")) %>%\n filter(ARMCD %in% c(\"ARM B\", \"ARM A\", \"ARM C\")) %>%\n mutate(\n ARMCD = relevel(ARMCD, ref = \"ARM B\") %>%\n droplevels() %>%\n combine_levels(levels = c(\"ARM A\", \"ARM C\")),\n ARM = relevel(ARM, ref = \"B: Placebo\") %>%\n droplevels() %>%\n combine_levels(levels = c(\"A: Drug X\", \"C: Combination\")),\n # reorder levels of SEX\n SEX = forcats::fct_relevel(SEX, \"M\", \"F\"),\n # reorder levels of STRATA1 by frequency\n STRATA1 = forcats::fct_infreq(STRATA1)\n ) %>%\n droplevels()\nvar_labels(anl_rsp_comb_arms_ac) <- c(anl_labels, is_rsp = \"Is Responder\")\n\ndf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"is_rsp\",\n arm = \"ARMCD\",\n subgroups = c(\"SEX\", \"BMRKR2\"),\n strata = \"STRATA2\"\n ),\n data = anl_rsp_comb_arms_ac,\n conf_level = 0.95\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\"))\n\nplot <- g_forest(tbl = result)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodedf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"is_rsp\",\n arm = \"ARM\",\n subgroups = c(\"SEX\", \"BMRKR2\"),\n strata = \"STRATA2\"\n ),\n data = anl_rsp_arms_ab,\n conf_level = 0.90\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"or\", \"ci\"))\n\nplot <- g_forest(tbl = result)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodedf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"is_rsp\",\n arm = \"ARM\",\n subgroups = c(\"SEX\", \"BMRKR2\"),\n strata = \"STRATA2\"\n ),\n data = anl_rsp_arms_ab,\n conf_level = 0.95\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\"))\n\nplot <- g_forest(\n tbl = result,\n col_symbol_size = NULL\n)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Preview\n Try this using WebR\n\n\n\n\nCodeanl_cr_arms_ab <- anl %>%\n mutate(is_rsp = AVALC == \"CR\") %>%\n filter(ARMCD %in% c(\"ARM B\", \"ARM A\")) %>%\n mutate(\n ARMCD = relevel(ARMCD, ref = \"ARM B\") %>%\n droplevels(),\n ARM = relevel(ARM, ref = \"B: Placebo\") %>%\n droplevels()\n ) %>%\n droplevels()\nvar_labels(anl_cr_arms_ab) <- c(anl_labels, is_rsp = \"Is CR\")\n\ndf <- extract_rsp_subgroups(\n variables = list(\n rsp = \"is_rsp\",\n arm = \"ARM\",\n subgroups = c(\"SEX\", \"BMRKR2\"),\n strata = \"STRATA2\"\n ),\n data = anl_cr_arms_ab,\n conf_level = 0.95\n)\n\nresult <- basic_table() %>%\n tabulate_rsp_subgroups(df, vars = c(\"n_tot\", \"n\", \"n_rsp\", \"prop\", \"or\", \"ci\"))\n\nplot <- g_forest(tbl = result)\nplot\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nWebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCodelibrary(dplyr)\nlibrary(tern)\nlibrary(nestcolor)\n\nadsl_f <- random.cdisc.data::cadsl %>%\n select(STUDYID, USUBJID, ARMCD, ARM, SEX, BMRKR2, STRATA1, STRATA2)\n\nadrs_f <- random.cdisc.data::cadrs %>%\n filter(PARAMCD == \"INVET\") %>%\n select(STUDYID, USUBJID, PARAMCD, AVISIT, AVALC)\n\nanl <- inner_join(adsl_f, adrs_f, by = c(\"STUDYID\", \"USUBJID\"))\nanl <- df_explicit_na(anl)\nanl_labels <- var_labels(anl)\n\nanl_rsp_arms_ab <- anl %>%\n mutate(is_rsp = AVALC %in% c(\"CR\", \"PR\")) %>%\n filter(ARMCD %in% c(\"ARM B\", \"ARM A\")) %>%\n mutate(\n ARMCD = relevel(ARMCD, ref = \"ARM B\") %>%\n droplevels(),\n ARM = relevel(ARM, ref = \"B: Placebo\") %>%\n droplevels()\n ) %>%\n droplevels()\nvar_labels(anl_rsp_arms_ab) <- c(anl_labels, is_rsp = \"Is Responder\")", "crumbs": [ - "Listings", - "ADA", - "ADAL02" + "Graphs", + "Efficacy", + "FSTG01" ] }, { - "objectID": "listings/ADA/adal02.html#reproducibility", - "href": "listings/ADA/adal02.html#reproducibility", - "title": "ADAL02", + "objectID": "graphs/efficacy/fstg01.html#teal-app", + "href": "graphs/efficacy/fstg01.html#teal-app", + "title": "FSTG01", + "section": "\nteal App", + "text": "teal App\n\n\n Preview\n Try this using shinylive\n\n\n\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADRS <- data[[\"ADRS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_forest_rsp(\n label = \"Forest Response\",\n dataname = \"ADRS\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n \"ARMCD\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n \"BESRSPI\"\n ),\n subgroup_var = choices_selected(\n variable_choices(ADSL, names(ADSL)),\n c(\"BMRKR2\", \"SEX\")\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"STRATA1\", \"STRATA2\")),\n \"STRATA2\"\n ),\n plot_height = c(600L, 200L, 2000L),\n plot_width = c(1100L, 200L, 2000L)\n )\n )\n)\n\nshinyApp(app$ui, app$server)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExperimental use!\n\n\n\n\n\nshinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.\n\n\n\n\n#| '!! shinylive warning !!': |\n#| shinylive does not work in self-contained HTML documents.\n#| Please set `embed-resources: false` in your metadata.\n#| standalone: true\n#| viewerHeight: 800\n#| editorHeight: 200\n#| components: [viewer, editor]\n#| layout: vertical\n\n# -- WEBR HELPERS --\noptions(webr_pkg_repos = c(\"r-universe\" = \"https://pharmaverse.r-universe.dev\", getOption(\"webr_pkg_repos\")))\n\n# -- APP CODE --\nlibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n ADSL <- random.cdisc.data::cadsl\n ADRS <- random.cdisc.data::cadrs\n})\ndatanames <- c(\"ADSL\", \"ADRS\")\ndatanames(data) <- datanames\njoin_keys(data) <- default_cdisc_join_keys[datanames]\n\narm_ref_comp <- list(\n ARM = list(\n ref = \"B: Placebo\",\n comp = c(\"A: Drug X\", \"C: Combination\")\n ),\n ARMCD = list(\n ref = \"ARM B\",\n comp = c(\"ARM A\", \"ARM C\")\n )\n)\n\n## Reusable Configuration For Modules\nADSL <- data[[\"ADSL\"]]\nADRS <- data[[\"ADRS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_g_forest_rsp(\n label = \"Forest Response\",\n dataname = \"ADRS\",\n arm_var = choices_selected(\n variable_choices(ADSL, c(\"ARM\", \"ARMCD\")),\n \"ARMCD\"\n ),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n value_choices(ADRS, \"PARAMCD\", \"PARAM\"),\n \"BESRSPI\"\n ),\n subgroup_var = choices_selected(\n variable_choices(ADSL, names(ADSL)),\n c(\"BMRKR2\", \"SEX\")\n ),\n strata_var = choices_selected(\n variable_choices(ADSL, c(\"STRATA1\", \"STRATA2\")),\n \"STRATA2\"\n ),\n plot_height = c(600L, 200L, 2000L),\n plot_width = c(1100L, 200L, 2000L)\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "crumbs": [ + "Graphs", + "Efficacy", + "FSTG01" + ] + }, + { + "objectID": "graphs/efficacy/fstg01.html#reproducibility", + "href": "graphs/efficacy/fstg01.html#reproducibility", + "title": "FSTG01", "section": "Reproducibility", - "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-01 18:09:33 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-01\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n curl 6.0.1 2024-11-14 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n formatters * 0.5.9.9008 2025-01-01 [1] https://p~\n generics 0.1.3 2022-07-05 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n magrittr 2.0.3 2022-03-30 [1] RSPM\n pillar 1.10.0 2024-12-17 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~\n rlang 1.1.4 2024-06-04 [1] RSPM\n rlistings * 0.2.9.9012 2025-01-01 [1] https://p~\n rmarkdown 2.29 2024-11-04 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n testthat 3.2.2 2024-12-10 [1] RSPM\n tibble * 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.49 2024-10-31 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:08:32 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n forcats 1.0.0 2023-01-29 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n ragg 1.3.3 2024-09-11 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n systemfonts 1.1.0 2024-05-15 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n textshaping 0.4.1 2024-12-06 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", "crumbs": [ - "Listings", - "ADA", - "ADAL02" + "Graphs", + "Efficacy", + "FSTG01" ] }, { - "objectID": "CODE_OF_CONDUCT.html#our-pledge", - "href": "CODE_OF_CONDUCT.html#our-pledge", - "title": "", - "section": "Our Pledge", - "text": "Our Pledge\nWe as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.\nWe pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community." + "objectID": "graphs/efficacy/mmrmg01.html", + "href": "graphs/efficacy/mmrmg01.html", + "title": "MMRMG01", + "section": "", + "text": "Given an MMRM fitted with s_mmrm, g_mmrm_lsmeans displays for each visit the adjusted means within group and/or difference in adjusted means between groups. g_mmrm_diagnostic displays marginal residual plots for evaluating model fit.", + "crumbs": [ + "Graphs", + "Efficacy", + "MMRMG01" + ] }, { - "objectID": "CODE_OF_CONDUCT.html#our-standards", - "href": "CODE_OF_CONDUCT.html#our-standards", - "title": "", - "section": "Our Standards", - "text": "Our Standards\nExamples of behavior that contributes to a positive environment for our community include:\n\nDemonstrating empathy and kindness toward other people\nBeing respectful of differing opinions, viewpoints, and experiences\nGiving and gracefully accepting constructive feedback\nAccepting responsibility and apologizing to those affected by our mistakes, and learning from the experience\nFocusing on what is best not just for us as individuals, but for the overall community\n\nExamples of unacceptable behavior include:\n\nThe use of sexualized language or imagery, and sexual attention or advances of any kind\nTrolling, insulting or derogatory comments, and personal or political attacks\nPublic or private harassment\nPublishing others’ private information, such as a physical or email address, without their explicit permission\nOther conduct which could reasonably be considered inappropriate in a professional setting" + "objectID": "graphs/efficacy/mmrmg01.html#least-squares-means-estimates-within-groups", + "href": "graphs/efficacy/mmrmg01.html#least-squares-means-estimates-within-groups", + "title": "MMRMG01", + "section": "Least Squares Means: Estimates Within Groups", + "text": "Least Squares Means: Estimates Within Groups\nConsidering the treatment variable in the model\n\nCodeplot <- g_mmrm_lsmeans(\n mmrm_results,\n select = \"estimates\",\n xlab = \"Visit\"\n)\nplot\n\n\n\n\n\n\n\nConsidering the treatment variable in the model, with lines\n\nCodeplot <- g_mmrm_lsmeans(\n mmrm_results,\n select = \"estimates\",\n xlab = \"Visit\",\n show_lines = TRUE\n)\nplot\n\n\n\n\n\n\n\nConsidering the treatment variable in the model, with statistics table\n\nCodeplot <- g_mmrm_lsmeans(\n mmrm_results,\n select = \"estimates\",\n xlab = \"Visit\",\n table_stats = c(\"n\", \"estimate\", \"se\", \"ci\"),\n table_font_size = 4,\n table_rel_height = 0.6\n)\nplot", + "crumbs": [ + "Graphs", + "Efficacy", + "MMRMG01" + ] }, { - "objectID": "CODE_OF_CONDUCT.html#enforcement-responsibilities", - "href": "CODE_OF_CONDUCT.html#enforcement-responsibilities", - "title": "", - "section": "Enforcement Responsibilities", - "text": "Enforcement Responsibilities\nCommunity leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.\nCommunity leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate." + "objectID": "graphs/efficacy/mmrmg01.html#least-squares-means-contrasts-between-groups", + "href": "graphs/efficacy/mmrmg01.html#least-squares-means-contrasts-between-groups", + "title": "MMRMG01", + "section": "Least Squares Means: Contrasts Between Groups", + "text": "Least Squares Means: Contrasts Between Groups\nUsers can choose to display both estimates and contrasts together by running g_mmrm_lsmeans(mmrm_results).\n\nCodeplot <- g_mmrm_lsmeans(\n mmrm_results,\n select = \"contrasts\",\n titles = c(contrasts = \"Contrasts of FKSI-FWB means\"),\n xlab = \"Visit\"\n)\n\nCoordinate system already present. Adding new coordinate system, which will\nreplace the existing one.\n\nCodeplot", + "crumbs": [ + "Graphs", + "Efficacy", + "MMRMG01" + ] }, { - "objectID": "CODE_OF_CONDUCT.html#scope", - "href": "CODE_OF_CONDUCT.html#scope", - "title": "", - "section": "Scope", - "text": "Scope\nThis Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event." + "objectID": "graphs/efficacy/mmrmg01.html#model-diagnostics-marginal-fitted-values-vs.-residuals", + "href": "graphs/efficacy/mmrmg01.html#model-diagnostics-marginal-fitted-values-vs.-residuals", + "title": "MMRMG01", + "section": "Model Diagnostics: Marginal Fitted Values vs. Residuals", + "text": "Model Diagnostics: Marginal Fitted Values vs. Residuals\n\nCodeplot <- g_mmrm_diagnostic(mmrm_results)\nplot", + "crumbs": [ + "Graphs", + "Efficacy", + "MMRMG01" + ] }, { - "objectID": "CODE_OF_CONDUCT.html#enforcement", - "href": "CODE_OF_CONDUCT.html#enforcement", - "title": "", - "section": "Enforcement", - "text": "Enforcement\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at [INSERT CONTACT METHOD]. All complaints will be reviewed and investigated promptly and fairly.\nAll community leaders are obligated to respect the privacy and security of the reporter of any incident." + "objectID": "graphs/efficacy/mmrmg01.html#model-diagnostics-normality-of-marginal-residuals", + "href": "graphs/efficacy/mmrmg01.html#model-diagnostics-normality-of-marginal-residuals", + "title": "MMRMG01", + "section": "Model Diagnostics: Normality of Marginal Residuals", + "text": "Model Diagnostics: Normality of Marginal Residuals\n\nCodeplot <- g_mmrm_diagnostic(mmrm_results, type = \"q-q-residual\")\nplot", + "crumbs": [ + "Graphs", + "Efficacy", + "MMRMG01" + ] }, { - "objectID": "CODE_OF_CONDUCT.html#enforcement-guidelines", - "href": "CODE_OF_CONDUCT.html#enforcement-guidelines", - "title": "", - "section": "Enforcement Guidelines", - "text": "Enforcement Guidelines\nCommunity leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:\n\n1. Correction\nCommunity Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.\nConsequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.\n\n\n2. Warning\nCommunity Impact: A violation through a single incident or series of actions.\nConsequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.\n\n\n3. Temporary Ban\nCommunity Impact: A serious violation of community standards, including sustained inappropriate behavior.\nConsequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.\n\n\n4. Permanent Ban\nCommunity Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.\nConsequence: A permanent ban from any sort of public interaction within the community." + "objectID": "graphs/efficacy/mmrmg01.html#data-setup-and-model-fitting", + "href": "graphs/efficacy/mmrmg01.html#data-setup-and-model-fitting", + "title": "MMRMG01", + "section": "Data Setup and Model Fitting", + "text": "Data Setup and Model Fitting\n\nCodelibrary(dplyr)\nlibrary(tern.mmrm)\nlibrary(nestcolor)\n\nadsl <- random.cdisc.data::cadsl\nadqs <- random.cdisc.data::cadqs\n\nadqs_f <- adqs %>%\n dplyr::filter(PARAMCD == \"FKSI-FWB\" & !AVISIT %in% c(\"BASELINE\")) %>%\n droplevels() %>%\n dplyr::mutate(ARM = factor(ARM, levels = c(\"B: Placebo\", \"A: Drug X\", \"C: Combination\"))) %>%\n dplyr::mutate(AVISITN = rank(AVISITN) %>% as.factor() %>% as.numeric() %>% as.factor())\n\nmmrm_results <- fit_mmrm(\n vars = list(\n response = \"AVAL\",\n covariates = c(\"STRATA2\"),\n id = \"USUBJID\",\n arm = \"ARM\",\n visit = \"AVISIT\"\n ),\n data = adqs_f\n)", + "crumbs": [ + "Graphs", + "Efficacy", + "MMRMG01" + ] }, { - "objectID": "CODE_OF_CONDUCT.html#attribution", - "href": "CODE_OF_CONDUCT.html#attribution", - "title": "", - "section": "Attribution", - "text": "Attribution\nThis Code of Conduct is adapted from the Contributor Covenant, version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.\nCommunity Impact Guidelines were inspired by Mozilla’s code of conduct enforcement ladder.\nFor answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations." + "objectID": "graphs/efficacy/mmrmg01.html#teal-app", + "href": "graphs/efficacy/mmrmg01.html#teal-app", + "title": "MMRMG01", + "section": "\nteal App", + "text": "teal App\n\nCodelibrary(teal.modules.clinical)\n\n## Data reproducible code\ndata <- teal_data()\ndata <- within(data, {\n library(dplyr)\n\n ADSL <- random.cdisc.data::cadsl\n ADQS <- random.cdisc.data::cadqs %>%\n filter(ABLFL != \"Y\" & ABLFL2 != \"Y\") %>%\n filter(AVISIT %in% c(\"WEEK 1 DAY 8\", \"WEEK 2 DAY 15\", \"WEEK 3 DAY 22\")) %>%\n mutate(\n AVISIT = as.factor(AVISIT),\n AVISITN = rank(AVISITN) %>%\n as.factor() %>%\n as.numeric() %>%\n as.factor() # making consecutive numeric factor\n )\n})\ndatanames <- c(\"ADSL\", \"ADQS\")\ndatanames(data) <- datanames\n\nWarning: `datanames<-()` was deprecated in teal.data 0.6.1.\nℹ invalid to use `datanames()<-` or `names()<-` on an object of class\n `teal_data`. See ?names.teal_data\n\nCodejoin_keys(data) <- default_cdisc_join_keys[datanames]\n\narm_ref_comp <- list(\n ARMCD = list(\n ref = \"ARM A\",\n comp = c(\"ARM B\", \"ARM C\")\n )\n)\n\n## Reusable Configuration For Modules\nADQS <- data[[\"ADQS\"]]\n\n## Setup App\napp <- init(\n data = data,\n modules = modules(\n tm_a_mmrm(\n label = \"MMRM\",\n dataname = \"ADQS\",\n aval_var = choices_selected(c(\"AVAL\", \"CHG\"), \"AVAL\"),\n id_var = choices_selected(c(\"USUBJID\", \"SUBJID\"), \"USUBJID\"),\n arm_var = choices_selected(c(\"ARM\", \"ARMCD\"), \"ARMCD\"),\n visit_var = choices_selected(c(\"AVISIT\", \"AVISITN\"), \"AVISIT\"),\n arm_ref_comp = arm_ref_comp,\n paramcd = choices_selected(\n choices = value_choices(ADQS, \"PARAMCD\", \"PARAM\"),\n selected = \"FKSI-FWB\"\n ),\n cov_var = choices_selected(c(\"BASE\", \"AGE\", \"SEX\", \"BASE:AVISIT\"), NULL),\n conf_level = choices_selected(c(0.95, 0.9, 0.8), 0.95)\n )\n )\n)\n\nshinyApp(app$ui, app$server)", + "crumbs": [ + "Graphs", + "Efficacy", + "MMRMG01" + ] + }, + { + "objectID": "graphs/efficacy/mmrmg01.html#reproducibility", + "href": "graphs/efficacy/mmrmg01.html#reproducibility", + "title": "MMRMG01", + "section": "Reproducibility", + "text": "Reproducibility\nTimestamp\n\n\n[1] \"2025-01-08 18:09:33 UTC\"\n\n\nSession Info\n\n\n─ Session info ───────────────────────────────────────────────────────────────\n setting value\n version R version 4.4.1 (2024-06-14)\n os Ubuntu 22.04.5 LTS\n system x86_64, linux-gnu\n ui X11\n language (EN)\n collate en_US.UTF-8\n ctype en_US.UTF-8\n tz Etc/UTC\n date 2025-01-08\n pandoc 3.4 @ /usr/bin/ (via rmarkdown)\n\n─ Packages ───────────────────────────────────────────────────────────────────\n package * version date (UTC) lib source\n backports 1.5.0 2024-05-23 [1] RSPM\n brio 1.1.5 2024-04-24 [1] RSPM\n broom 1.0.7 2024-09-26 [1] RSPM\n bslib 0.8.0 2024-07-29 [1] RSPM\n cachem 1.1.0 2024-05-16 [1] RSPM\n callr 3.7.6 2024-03-25 [1] RSPM\n checkmate 2.3.2 2024-07-29 [1] RSPM\n chromote 0.3.1 2024-08-30 [1] RSPM\n cli 3.6.3 2024-06-21 [1] RSPM\n coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)\n codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)\n colorspace 2.1-1 2024-07-26 [1] RSPM\n cowplot 1.1.3 2024-01-22 [1] RSPM\n curl 6.1.0 2025-01-06 [1] RSPM\n digest 0.6.37 2024-08-19 [1] RSPM\n dplyr * 1.1.4 2023-11-17 [1] RSPM\n emmeans 1.10.6 2024-12-12 [1] RSPM\n estimability 1.5.1 2024-05-12 [1] RSPM\n evaluate 1.0.1 2024-10-10 [1] RSPM\n farver 2.1.2 2024-05-13 [1] RSPM\n fastmap 1.2.0 2024-05-15 [1] RSPM\n fontawesome 0.5.3 2024-11-16 [1] RSPM\n formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1)\n formatters * 0.5.9.9008 2025-01-08 [1] https://p~\n geepack 1.3.12 2024-09-23 [1] RSPM\n generics 0.1.3 2022-07-05 [1] RSPM\n ggplot2 3.5.1 2024-04-23 [1] RSPM\n glue 1.8.0 2024-09-30 [1] RSPM\n gtable 0.3.6 2024-10-25 [1] RSPM\n htmltools 0.5.8.1 2024-04-04 [1] RSPM\n htmlwidgets 1.6.4 2023-12-06 [1] RSPM\n httpuv 1.6.15 2024-03-26 [1] RSPM\n jquerylib 0.1.4 2021-04-26 [1] RSPM\n jsonlite 1.8.9 2024-09-20 [1] RSPM\n knitr 1.49 2024-11-08 [1] RSPM\n labeling 0.4.3 2023-08-29 [1] RSPM\n later 1.4.1 2024-11-27 [1] RSPM\n lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)\n lifecycle 1.0.4 2023-11-07 [1] RSPM\n logger 0.4.0 2024-10-22 [1] RSPM\n magrittr * 2.0.3 2022-03-30 [1] RSPM\n MASS 7.3-64 2025-01-04 [1] RSPM\n Matrix 1.7-1 2024-10-18 [1] RSPM\n memoise 2.0.1 2021-11-26 [1] RSPM\n mime 0.12 2021-09-28 [1] RSPM\n mmrm 0.3.14.9001 2025-01-08 [1] https://p~\n multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1)\n munsell 0.5.1 2024-04-01 [1] RSPM\n mvtnorm 1.3-2 2024-11-04 [1] RSPM\n nestcolor * 0.1.2.9017 2025-01-08 [1] https://p~\n nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1)\n parallelly 1.41.0 2024-12-18 [1] RSPM\n pillar 1.10.1 2025-01-07 [1] RSPM\n pkgcache 2.2.3 2024-09-12 [1] RSPM\n pkgconfig 2.0.3 2019-09-22 [1] RSPM\n processx 3.8.4 2024-03-16 [1] RSPM\n promises 1.3.2 2024-11-28 [1] RSPM\n ps 1.8.1 2024-10-28 [1] RSPM\n purrr 1.0.2 2023-08-10 [1] RSPM\n R6 2.5.1 2021-08-19 [1] RSPM\n random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~\n rbibutils 2.3 2024-10-04 [1] RSPM\n Rcpp 1.0.13-1 2024-11-02 [1] RSPM\n Rdpack 2.6.2 2024-11-15 [1] RSPM\n rlang 1.1.4 2024-06-04 [1] RSPM\n rmarkdown 2.29 2024-11-04 [1] RSPM\n rtables * 0.6.10.9014 2025-01-08 [1] https://p~\n sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1)\n sass 0.4.9 2024-03-15 [1] RSPM\n scales 1.3.0 2023-11-28 [1] RSPM\n sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2)\n shiny * 1.10.0 2024-12-14 [1] RSPM\n shinycssloaders 1.1.0 2024-07-30 [1] RSPM\n shinyjs 2.1.0 2021-12-23 [1] RSPM\n shinyvalidate 0.1.3 2023-10-04 [1] RSPM\n shinyWidgets 0.8.7 2024-09-23 [1] RSPM\n stringi 1.8.4 2024-05-06 [1] RSPM\n stringr 1.5.1 2023-11-14 [1] RSPM\n survival 3.8-3 2024-12-17 [1] RSPM\n teal * 0.15.2.9098 2025-01-08 [1] https://p~\n teal.code * 0.5.0.9022 2025-01-08 [1] https://p~\n teal.data * 0.6.0.9025 2025-01-08 [1] https://p~\n teal.logger 0.3.0.9003 2025-01-08 [1] https://p~\n teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~\n teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~\n teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~\n teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~\n teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~\n tern * 0.9.6.9018 2025-01-08 [1] https://p~\n tern.gee 0.1.5.9004 2025-01-08 [1] https://p~\n tern.mmrm * 0.3.2.9002 2025-01-08 [1] https://p~\n testthat 3.2.2 2024-12-10 [1] RSPM\n TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1)\n tibble 3.2.1 2023-03-20 [1] RSPM\n tidyr 1.3.1 2024-01-24 [1] RSPM\n tidyselect 1.2.1 2024-03-11 [1] RSPM\n TMB 1.9.16 2025-01-08 [1] CRAN (R 4.4.1)\n vctrs 0.6.5 2023-12-01 [1] RSPM\n webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1)\n webshot2 0.1.1 2023-08-11 [1] RSPM\n websocket 1.4.2 2024-07-22 [1] RSPM\n withr 3.0.2 2024-10-28 [1] RSPM\n xfun 0.50 2025-01-07 [1] RSPM\n xtable 1.8-4 2019-04-21 [1] RSPM\n yaml 2.3.10 2024-07-26 [1] RSPM\n zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1)\n\n [1] /usr/local/lib/R/site-library\n [2] /usr/local/lib/R/library\n\n──────────────────────────────────────────────────────────────────────────────\n\n\n\n.lock file\nDownload the .lock file and use renv::restore() on it to recreate environment used to generate this website.\nDownload", + "crumbs": [ + "Graphs", + "Efficacy", + "MMRMG01" + ] } ] \ No newline at end of file diff --git a/development/site_libs/bootstrap/bootstrap-dark.min.css b/development/site_libs/bootstrap/bootstrap-dark.min.css index 802def121..ff8043630 100644 --- a/development/site_libs/bootstrap/bootstrap-dark.min.css +++ b/development/site_libs/bootstrap/bootstrap-dark.min.css @@ -2,11 +2,11 @@ * Bootstrap v5.3.1 (https://getbootstrap.com/) * Copyright 2011-2023 The Bootstrap Authors * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */@import"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400&display=swap";:root,[data-bs-theme=light]{--bs-blue: #375a7f;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #e83e8c;--bs-red: #e74c3c;--bs-orange: #fd7e14;--bs-yellow: #f39c12;--bs-green: #00bc8c;--bs-teal: #20c997;--bs-cyan: #3498db;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #ebebeb;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #444;--bs-gray-800: #343a40;--bs-gray-900: #222;--bs-default: #434343;--bs-primary: #375a7f;--bs-secondary: #434343;--bs-success: #00bc8c;--bs-info: #3498db;--bs-warning: #f39c12;--bs-danger: #e74c3c;--bs-light: #6f6f6f;--bs-dark: #2d2d2d;--bs-default-rgb: 67, 67, 67;--bs-primary-rgb: 55, 90, 127;--bs-secondary-rgb: 67, 67, 67;--bs-success-rgb: 0, 188, 140;--bs-info-rgb: 52, 152, 219;--bs-warning-rgb: 243, 156, 18;--bs-danger-rgb: 231, 76, 60;--bs-light-rgb: 111, 111, 111;--bs-dark-rgb: 45, 45, 45;--bs-primary-text-emphasis: #162433;--bs-secondary-text-emphasis: #1b1b1b;--bs-success-text-emphasis: #004b38;--bs-info-text-emphasis: #153d58;--bs-warning-text-emphasis: #613e07;--bs-danger-text-emphasis: #5c1e18;--bs-light-text-emphasis: #444;--bs-dark-text-emphasis: #444;--bs-primary-bg-subtle: #d7dee5;--bs-secondary-bg-subtle: #d9d9d9;--bs-success-bg-subtle: #ccf2e8;--bs-info-bg-subtle: #d6eaf8;--bs-warning-bg-subtle: #fdebd0;--bs-danger-bg-subtle: #fadbd8;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #afbdcc;--bs-secondary-border-subtle: #b4b4b4;--bs-success-border-subtle: #99e4d1;--bs-info-border-subtle: #aed6f1;--bs-warning-border-subtle: #fad7a0;--bs-danger-border-subtle: #f5b7b1;--bs-light-border-subtle: #ebebeb;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-root-font-size: 17px;--bs-body-font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #fff;--bs-body-color-rgb: 255, 255, 255;--bs-body-bg: #222;--bs-body-bg-rgb: 34, 34, 34;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(255, 255, 255, 0.75);--bs-secondary-color-rgb: 255, 255, 255;--bs-secondary-bg: #ebebeb;--bs-secondary-bg-rgb: 235, 235, 235;--bs-tertiary-color: rgba(255, 255, 255, 0.5);--bs-tertiary-color-rgb: 255, 255, 255;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #00bc8c;--bs-link-color-rgb: 0, 188, 140;--bs-link-decoration: underline;--bs-link-hover-color: #009670;--bs-link-hover-color-rgb: 0, 150, 112;--bs-code-color: #7d12ba;--bs-highlight-bg: #fdebd0;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, 0.175);--bs-border-radius: 0.25rem;--bs-border-radius-sm: 0.2em;--bs-border-radius-lg: 0.5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width: 0.25rem;--bs-focus-ring-opacity: 0.25;--bs-focus-ring-color: rgba(55, 90, 127, 0.25);--bs-form-valid-color: #00bc8c;--bs-form-valid-border-color: #00bc8c;--bs-form-invalid-color: #e74c3c;--bs-form-invalid-border-color: #e74c3c}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #222;--bs-body-bg-rgb: 34, 34, 34;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b2e31;--bs-tertiary-bg-rgb: 43, 46, 49;--bs-primary-text-emphasis: #879cb2;--bs-secondary-text-emphasis: #8e8e8e;--bs-success-text-emphasis: #66d7ba;--bs-info-text-emphasis: #85c1e9;--bs-warning-text-emphasis: #f8c471;--bs-danger-text-emphasis: #f1948a;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #0b1219;--bs-secondary-bg-subtle: #0d0d0d;--bs-success-bg-subtle: #00261c;--bs-info-bg-subtle: #0a1e2c;--bs-warning-bg-subtle: #311f04;--bs-danger-bg-subtle: #2e0f0c;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #21364c;--bs-secondary-border-subtle: #282828;--bs-success-border-subtle: #007154;--bs-info-border-subtle: #1f5b83;--bs-warning-border-subtle: #925e0b;--bs-danger-border-subtle: #8b2e24;--bs-light-border-subtle: #444;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #879cb2;--bs-link-hover-color: #9fb0c1;--bs-link-color-rgb: 135, 156, 178;--bs-link-hover-color-rgb: 159, 176, 193;--bs-code-color: white;--bs-border-color: #444;--bs-border-color-translucent: rgba(255, 255, 255, 0.15);--bs-form-valid-color: #66d7ba;--bs-form-valid-border-color: #66d7ba;--bs-form-invalid-color: #f1948a;--bs-form-invalid-border-color: #f1948a}*,*::before,*::after{box-sizing:border-box}:root{font-size:var(--bs-root-font-size)}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h1,.h1{font-size:2rem}}h2,.h2{font-size:calc(1.29rem + 0.48vw)}@media(min-width: 1200px){h2,.h2{font-size:1.65rem}}h3,.h3{font-size:calc(1.27rem + 0.24vw)}@media(min-width: 1200px){h3,.h3{font-size:1.45rem}}h4,.h4{font-size:1.25rem}h5,.h5{font-size:1.1rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #ebebeb}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:0.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em;color:inherit;background-color:#f8f9fa;padding:.5rem;border:1px solid var(--bs-border-color, #dee2e6);border-radius:.25rem}pre code{background-color:rgba(0,0,0,0);font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:var(--bs-code-color);background-color:#f8f9fa;border-radius:.25rem;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#222;background-color:#fff;border-radius:.2em}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:rgba(255,255,255,.75);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#222;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:rgba(255,255,255,.75)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media(min-width: 576px){.container-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media(min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: #fff;--bs-table-bg: #222;--bs-table-border-color: #434343;--bs-table-accent-bg: transparent;--bs-table-striped-color: #fff;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: #fff;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: #fff;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(1px*2) solid #fff}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #fff;--bs-table-bg: #375a7f;--bs-table-border-color: #4b6b8c;--bs-table-striped-bg: #416285;--bs-table-striped-color: #fff;--bs-table-active-bg: #4b6b8c;--bs-table-active-color: #fff;--bs-table-hover-bg: #466689;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #fff;--bs-table-bg: #434343;--bs-table-border-color: #565656;--bs-table-striped-bg: #4c4c4c;--bs-table-striped-color: #fff;--bs-table-active-bg: #565656;--bs-table-active-color: #fff;--bs-table-hover-bg: #515151;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #fff;--bs-table-bg: #00bc8c;--bs-table-border-color: #1ac398;--bs-table-striped-bg: #0dbf92;--bs-table-striped-color: #fff;--bs-table-active-bg: #1ac398;--bs-table-active-color: #fff;--bs-table-hover-bg: #13c195;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #fff;--bs-table-bg: #3498db;--bs-table-border-color: #48a2df;--bs-table-striped-bg: #3e9ddd;--bs-table-striped-color: #fff;--bs-table-active-bg: #48a2df;--bs-table-active-color: #fff;--bs-table-hover-bg: #43a0de;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #fff;--bs-table-bg: #f39c12;--bs-table-border-color: #f4a62a;--bs-table-striped-bg: #f4a11e;--bs-table-striped-color: #fff;--bs-table-active-bg: #f4a62a;--bs-table-active-color: #fff;--bs-table-hover-bg: #f4a324;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #fff;--bs-table-bg: #e74c3c;--bs-table-border-color: #e95e50;--bs-table-striped-bg: #e85546;--bs-table-striped-color: #fff;--bs-table-active-bg: #e95e50;--bs-table-active-color: #fff;--bs-table-hover-bg: #e9594b;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #fff;--bs-table-bg: #6f6f6f;--bs-table-border-color: #7d7d7d;--bs-table-striped-bg: #767676;--bs-table-striped-color: #fff;--bs-table-active-bg: #7d7d7d;--bs-table-active-color: #fff;--bs-table-hover-bg: #7a7a7a;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #2d2d2d;--bs-table-border-color: #424242;--bs-table-striped-bg: #383838;--bs-table-striped-color: #fff;--bs-table-active-bg: #424242;--bs-table-active-color: #fff;--bs-table-hover-bg: #3d3d3d;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(0.375rem + 1px);padding-bottom:calc(0.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:rgba(255,255,255,.75)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#2d2d2d;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fff;background-clip:padding-box;border:1px solid #adb5bd;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#2d2d2d;background-color:#fff;border-color:#9badbf;outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:#595959;opacity:1}.form-control:disabled{background-color:#ebebeb;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#6f6f6f;background-color:#434343;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#363636}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#fff;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2));padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + calc(1px * 2))}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2))}.form-control-color{width:3rem;height:calc(1.5em + 0.75rem + calc(1px * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:.25rem}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:.25rem}.form-control-color.form-control-sm{height:calc(1.5em + 0.5rem + calc(1px * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(1px * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#2d2d2d;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fff;background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #adb5bd;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#9badbf;outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{color:#595959;background-color:#ebebeb}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #2d2d2d}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem;border-radius:.2em}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.5rem}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-reverse{padding-right:0;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:0;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{--bs-form-check-bg: #fff;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:none;print-color-adjust:exact}.form-check-input[type=checkbox],.shiny-input-container .checkbox input[type=checkbox],.shiny-input-container .checkbox-inline input[type=checkbox],.shiny-input-container .radio input[type=checkbox],.shiny-input-container .radio-inline input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio],.shiny-input-container .checkbox input[type=radio],.shiny-input-container .checkbox-inline input[type=radio],.shiny-input-container .radio input[type=radio],.shiny-input-container .radio-inline input[type=radio]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#9badbf;outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.form-check-input:checked,.shiny-input-container .checkbox input:checked,.shiny-input-container .checkbox-inline input:checked,.shiny-input-container .radio input:checked,.shiny-input-container .radio-inline input:checked{background-color:#375a7f;border-color:#375a7f}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate,.shiny-input-container .checkbox input[type=checkbox]:indeterminate,.shiny-input-container .checkbox-inline input[type=checkbox]:indeterminate,.shiny-input-container .radio input[type=checkbox]:indeterminate,.shiny-input-container .radio-inline input[type=checkbox]:indeterminate{background-color:#375a7f;border-color:#375a7f;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{cursor:default;opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%239badbf'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:rgba(0,0,0,0)}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #222,0 0 0 .25rem rgba(55,90,127,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #222,0 0 0 .25rem rgba(55,90,127,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#375a7f;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#c3ced9}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#f8f9fa;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#375a7f;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#c3ced9}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#f8f9fa;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:rgba(255,255,255,.75)}.form-range:disabled::-moz-range-thumb{background-color:rgba(255,255,255,.75)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(1px * 2));min-height:calc(3.5rem + calc(1px * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:1px solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:#fff;border-radius:.25rem}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:1px 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:#ebebeb}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#6f6f6f;text-align:center;white-space:nowrap;background-color:#434343;border:1px solid #adb5bd;border-radius:.25rem}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(1px*-1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#00bc8c}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:#00bc8c;border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#00bc8c;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300bc8c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#00bc8c;box-shadow:0 0 0 .25rem rgba(0,188,140,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#00bc8c}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300bc8c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#00bc8c;box-shadow:0 0 0 .25rem rgba(0,188,140,.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#00bc8c}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#00bc8c}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(0,188,140,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#00bc8c}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#e74c3c}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:#e74c3c;border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#e74c3c;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e74c3c' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#e74c3c;box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#e74c3c}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e74c3c' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#e74c3c;box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#e74c3c}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#e74c3c}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#e74c3c}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: 0.75rem;--bs-btn-padding-y: 0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: #fff;--bs-btn-bg: transparent;--bs-btn-border-width: 1px;--bs-btn-border-color: transparent;--bs-btn-border-radius: 0.25rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity: 0.65;--bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-default{--bs-btn-color: #fff;--bs-btn-bg: #434343;--bs-btn-border-color: #434343;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #393939;--bs-btn-hover-border-color: #363636;--bs-btn-focus-shadow-rgb: 95, 95, 95;--bs-btn-active-color: #fff;--bs-btn-active-bg: #363636;--bs-btn-active-border-color: #323232;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #434343;--bs-btn-disabled-border-color: #434343}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #375a7f;--bs-btn-border-color: #375a7f;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #2f4d6c;--bs-btn-hover-border-color: #2c4866;--bs-btn-focus-shadow-rgb: 85, 115, 146;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2c4866;--bs-btn-active-border-color: #29445f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #375a7f;--bs-btn-disabled-border-color: #375a7f}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #434343;--bs-btn-border-color: #434343;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #393939;--bs-btn-hover-border-color: #363636;--bs-btn-focus-shadow-rgb: 95, 95, 95;--bs-btn-active-color: #fff;--bs-btn-active-bg: #363636;--bs-btn-active-border-color: #323232;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #434343;--bs-btn-disabled-border-color: #434343}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #00bc8c;--bs-btn-border-color: #00bc8c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #00a077;--bs-btn-hover-border-color: #009670;--bs-btn-focus-shadow-rgb: 38, 198, 157;--bs-btn-active-color: #fff;--bs-btn-active-bg: #009670;--bs-btn-active-border-color: #008d69;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #00bc8c;--bs-btn-disabled-border-color: #00bc8c}.btn-info{--bs-btn-color: #fff;--bs-btn-bg: #3498db;--bs-btn-border-color: #3498db;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #2c81ba;--bs-btn-hover-border-color: #2a7aaf;--bs-btn-focus-shadow-rgb: 82, 167, 224;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2a7aaf;--bs-btn-active-border-color: #2772a4;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #3498db;--bs-btn-disabled-border-color: #3498db}.btn-warning{--bs-btn-color: #fff;--bs-btn-bg: #f39c12;--bs-btn-border-color: #f39c12;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #cf850f;--bs-btn-hover-border-color: #c27d0e;--bs-btn-focus-shadow-rgb: 245, 171, 54;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c27d0e;--bs-btn-active-border-color: #b6750e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #f39c12;--bs-btn-disabled-border-color: #f39c12}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #e74c3c;--bs-btn-border-color: #e74c3c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c44133;--bs-btn-hover-border-color: #b93d30;--bs-btn-focus-shadow-rgb: 235, 103, 89;--bs-btn-active-color: #fff;--bs-btn-active-bg: #b93d30;--bs-btn-active-border-color: #ad392d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #e74c3c;--bs-btn-disabled-border-color: #e74c3c}.btn-light{--bs-btn-color: #fff;--bs-btn-bg: #6f6f6f;--bs-btn-border-color: #6f6f6f;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5e5e5e;--bs-btn-hover-border-color: #595959;--bs-btn-focus-shadow-rgb: 133, 133, 133;--bs-btn-active-color: #fff;--bs-btn-active-bg: #595959;--bs-btn-active-border-color: #535353;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6f6f6f;--bs-btn-disabled-border-color: #6f6f6f}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #2d2d2d;--bs-btn-border-color: #2d2d2d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #4d4d4d;--bs-btn-hover-border-color: #424242;--bs-btn-focus-shadow-rgb: 77, 77, 77;--bs-btn-active-color: #fff;--bs-btn-active-bg: #575757;--bs-btn-active-border-color: #424242;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #2d2d2d;--bs-btn-disabled-border-color: #2d2d2d}.btn-outline-default{--bs-btn-color: #434343;--bs-btn-border-color: #434343;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #434343;--bs-btn-hover-border-color: #434343;--bs-btn-focus-shadow-rgb: 67, 67, 67;--bs-btn-active-color: #fff;--bs-btn-active-bg: #434343;--bs-btn-active-border-color: #434343;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #434343;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #434343;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-primary{--bs-btn-color: #375a7f;--bs-btn-border-color: #375a7f;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #375a7f;--bs-btn-hover-border-color: #375a7f;--bs-btn-focus-shadow-rgb: 55, 90, 127;--bs-btn-active-color: #fff;--bs-btn-active-bg: #375a7f;--bs-btn-active-border-color: #375a7f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #375a7f;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #375a7f;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #434343;--bs-btn-border-color: #434343;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #434343;--bs-btn-hover-border-color: #434343;--bs-btn-focus-shadow-rgb: 67, 67, 67;--bs-btn-active-color: #fff;--bs-btn-active-bg: #434343;--bs-btn-active-border-color: #434343;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #434343;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #434343;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #00bc8c;--bs-btn-border-color: #00bc8c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #00bc8c;--bs-btn-hover-border-color: #00bc8c;--bs-btn-focus-shadow-rgb: 0, 188, 140;--bs-btn-active-color: #fff;--bs-btn-active-bg: #00bc8c;--bs-btn-active-border-color: #00bc8c;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #00bc8c;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #00bc8c;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #3498db;--bs-btn-border-color: #3498db;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #3498db;--bs-btn-hover-border-color: #3498db;--bs-btn-focus-shadow-rgb: 52, 152, 219;--bs-btn-active-color: #fff;--bs-btn-active-bg: #3498db;--bs-btn-active-border-color: #3498db;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #3498db;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #3498db;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #f39c12;--bs-btn-border-color: #f39c12;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #f39c12;--bs-btn-hover-border-color: #f39c12;--bs-btn-focus-shadow-rgb: 243, 156, 18;--bs-btn-active-color: #fff;--bs-btn-active-bg: #f39c12;--bs-btn-active-border-color: #f39c12;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #f39c12;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f39c12;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #e74c3c;--bs-btn-border-color: #e74c3c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #e74c3c;--bs-btn-hover-border-color: #e74c3c;--bs-btn-focus-shadow-rgb: 231, 76, 60;--bs-btn-active-color: #fff;--bs-btn-active-bg: #e74c3c;--bs-btn-active-border-color: #e74c3c;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #e74c3c;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #e74c3c;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #6f6f6f;--bs-btn-border-color: #6f6f6f;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6f6f6f;--bs-btn-hover-border-color: #6f6f6f;--bs-btn-focus-shadow-rgb: 111, 111, 111;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6f6f6f;--bs-btn-active-border-color: #6f6f6f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #6f6f6f;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6f6f6f;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #2d2d2d;--bs-btn-border-color: #2d2d2d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #2d2d2d;--bs-btn-hover-border-color: #2d2d2d;--bs-btn-focus-shadow-rgb: 45, 45, 45;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2d2d2d;--bs-btn-active-border-color: #2d2d2d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #2d2d2d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #2d2d2d;--bs-btn-bg: transparent;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: #00bc8c;--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: #009670;--bs-btn-hover-border-color: transparent;--bs-btn-active-color: #009670;--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 38, 198, 157;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: 0.5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius: 0.5rem}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: 0.25rem;--bs-btn-padding-x: 0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius: 0.2em}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: 0.5rem;--bs-dropdown-spacer: 0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color: #fff;--bs-dropdown-bg: #222;--bs-dropdown-border-color: #434343;--bs-dropdown-border-radius: 0.25rem;--bs-dropdown-border-width: 1px;--bs-dropdown-inner-border-radius: calc(0.25rem - 1px);--bs-dropdown-divider-bg: #434343;--bs-dropdown-divider-margin-y: 0.5rem;--bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-dropdown-link-color: #fff;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-link-hover-bg: #375a7f;--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #375a7f;--bs-dropdown-link-disabled-color: rgba(255, 255, 255, 0.5);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: 0.25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: 0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:0.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: #434343;--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: #434343;--bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #375a7f;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:.25rem}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(1px*-1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(1px*-1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 2rem;--bs-nav-link-padding-y: 0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: #00bc8c;--bs-nav-link-hover-color: #009670;--bs-nav-link-disabled-color: #6f6f6f;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: 1px;--bs-nav-tabs-border-color: #434343;--bs-nav-tabs-border-radius: 0.25rem;--bs-nav-tabs-link-hover-border-color: #434343 #434343 transparent;--bs-nav-tabs-link-active-color: #fff;--bs-nav-tabs-link-active-bg: #222;--bs-nav-tabs-link-active-border-color: #434343 #434343 transparent;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1*var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid rgba(0,0,0,0);border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1*var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: 0.25rem;--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #375a7f}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: 0.125rem;--bs-nav-underline-link-active-color: #000;gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid rgba(0,0,0,0)}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: 1rem;--bs-navbar-color: #dee2e6;--bs-navbar-hover-color: rgba(250, 254, 253, 0.8);--bs-navbar-disabled-color: rgba(222, 226, 230, 0.75);--bs-navbar-active-color: #fafefd;--bs-navbar-brand-padding-y: 0.3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: #dee2e6;--bs-navbar-brand-hover-color: #fafefd;--bs-navbar-nav-link-padding-x: 0.5rem;--bs-navbar-toggler-padding-y: 0.25;--bs-navbar-toggler-padding-x: 0;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23dee2e6' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(222, 226, 230, 0);--bs-navbar-toggler-border-radius: 0.25rem;--bs-navbar-toggler-focus-width: 0.25rem;--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: 0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:rgba(0,0,0,0);border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: #dee2e6;--bs-navbar-hover-color: rgba(250, 254, 253, 0.8);--bs-navbar-disabled-color: rgba(222, 226, 230, 0.75);--bs-navbar-active-color: #fafefd;--bs-navbar-brand-color: #dee2e6;--bs-navbar-brand-hover-color: #fafefd;--bs-navbar-toggler-border-color: rgba(222, 226, 230, 0);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23dee2e6' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23dee2e6' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: 0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: 1px;--bs-card-border-color: rgba(0, 0, 0, 0.175);--bs-card-border-radius: 0.25rem;--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(0.25rem - 1px);--bs-card-cap-padding-y: 0.5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(52, 58, 64, 0.25);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: #2d2d2d;--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: 0.75rem;position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-0.5*var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-bottom:calc(-1*var(--bs-card-cap-padding-y));margin-left:calc(-0.5*var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-left:calc(-0.5*var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media(min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: #fff;--bs-accordion-bg: #222;--bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;--bs-accordion-border-color: #dee2e6;--bs-accordion-border-width: 1px;--bs-accordion-border-radius: 0.25rem;--bs-accordion-inner-border-radius: calc(0.25rem - 1px);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #fff;--bs-accordion-btn-bg: #222;--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23162433'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #9badbf;--bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #162433;--bs-accordion-active-bg: #d7dee5}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1*var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23879cb2'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23879cb2'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0.75rem;--bs-breadcrumb-padding-y: 0.375rem;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: #434343;--bs-breadcrumb-border-radius: 0.25rem;--bs-breadcrumb-divider-color: rgba(255, 255, 255, 0.75);--bs-breadcrumb-item-padding-x: 0.5rem;--bs-breadcrumb-item-active-color: rgba(255, 255, 255, 0.75);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: 0.75rem;--bs-pagination-padding-y: 0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color: #fff;--bs-pagination-bg: #00bc8c;--bs-pagination-border-width: 0;--bs-pagination-border-color: transparent;--bs-pagination-border-radius: 0.25rem;--bs-pagination-hover-color: #fff;--bs-pagination-hover-bg: #00efb2;--bs-pagination-hover-border-color: transparent;--bs-pagination-focus-color: #009670;--bs-pagination-focus-bg: #ebebeb;--bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #00efb2;--bs-pagination-active-border-color: transparent;--bs-pagination-disabled-color: #fff;--bs-pagination-disabled-bg: #007053;--bs-pagination-disabled-border-color: transparent;display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(0*-1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: 0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius: 0.5rem}.pagination-sm{--bs-pagination-padding-x: 0.5rem;--bs-pagination-padding-y: 0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius: 0.2em}.badge{--bs-badge-padding-x: 0.65em;--bs-badge-padding-y: 0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: 0.25rem;display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: 1px solid var(--bs-alert-border-color);--bs-alert-border-radius: 0.25rem;--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{--bs-alert-color: var(--bs-default-text-emphasis);--bs-alert-bg: var(--bs-default-bg-subtle);--bs-alert-border-color: var(--bs-default-border-subtle);--bs-alert-link-color: var(--bs-default-text-emphasis)}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg: #434343;--bs-progress-border-radius: 0.25rem;--bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #375a7f;--bs-progress-bar-transition: width 0.6s ease;display:flex;display:-webkit-flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: #fff;--bs-list-group-bg: #2d2d2d;--bs-list-group-border-color: #434343;--bs-list-group-border-width: 1px;--bs-list-group-border-radius: 0.25rem;--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: 0.5rem;--bs-list-group-action-color: rgba(255, 255, 255, 0.75);--bs-list-group-action-hover-color: #fff;--bs-list-group-action-hover-bg: #434343;--bs-list-group-action-active-color: #fff;--bs-list-group-action-active-bg: #222;--bs-list-group-disabled-color: rgba(255, 255, 255, 0.75);--bs-list-group-disabled-bg: #2d2d2d;--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #375a7f;--bs-list-group-active-border-color: #375a7f;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1*var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{--bs-list-group-color: var(--bs-default-text-emphasis);--bs-list-group-bg: var(--bs-default-bg-subtle);--bs-list-group-border-color: var(--bs-default-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-default-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-default-border-subtle);--bs-list-group-active-color: var(--bs-default-bg-subtle);--bs-list-group-active-bg: var(--bs-default-text-emphasis);--bs-list-group-active-border-color: var(--bs-default-text-emphasis)}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #fff;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: 0.4;--bs-btn-close-hover-opacity: 1;--bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: 0.25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:rgba(0,0,0,0) var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: 0.75rem;--bs-toast-padding-y: 0.5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg: #434343;--bs-toast-border-width: 1px;--bs-toast-border-color: rgba(0, 0, 0, 0.175);--bs-toast-border-radius: 0.25rem;--bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-toast-header-color: rgba(255, 255, 255, 0.75);--bs-toast-header-bg: #2d2d2d;--bs-toast-header-border-color: rgba(0, 0, 0, 0.175);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-0.5*var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: 0.5rem;--bs-modal-color: ;--bs-modal-bg: #2d2d2d;--bs-modal-border-color: #434343;--bs-modal-border-width: 1px;--bs-modal-border-radius: 0.5rem;--bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius: calc(0.5rem - 1px);--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: #434343;--bs-modal-header-border-width: 1px;--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: 0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: #434343;--bs-modal-footer-border-width: 1px;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin)*2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - var(--bs-modal-margin)*2)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: 0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y)*.5) calc(var(--bs-modal-header-padding-x)*.5);margin:calc(-0.5*var(--bs-modal-header-padding-y)) calc(-0.5*var(--bs-modal-header-padding-x)) calc(-0.5*var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap)*.5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap)*.5)}@media(min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media(min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media(min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: 0.5rem;--bs-tooltip-padding-y: 0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color: #222;--bs-tooltip-bg: #000;--bs-tooltip-border-radius: 0.25rem;--bs-tooltip-opacity: 0.9;--bs-tooltip-arrow-width: 0.8rem;--bs-tooltip-arrow-height: 0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) 0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size:0.875rem;--bs-popover-bg: #2d2d2d;--bs-popover-border-width: 1px;--bs-popover-border-color: rgba(0, 0, 0, 0.175);--bs-popover-border-radius: 0.5rem;--bs-popover-inner-border-radius: calc(0.5rem - 1px);--bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: 0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: #434343;--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: #fff;--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: 0.5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{border-width:0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-0.5*var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) 0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-border-width: 0.25em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:rgba(0,0,0,0)}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: 0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: #fff;--bs-offcanvas-bg: #222;--bs-offcanvas-border-width: 1px;--bs-offcanvas-border-color: #434343;--bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-offcanvas-transition: transform 0.3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media(max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 575.98px)and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media(min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 767.98px)and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media(min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 991.98px)and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media(min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 1199.98px)and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media(min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 1399.98px)and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media(min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y)*.5) calc(var(--bs-offcanvas-padding-x)*.5);margin-top:calc(-0.5*var(--bs-offcanvas-padding-y));margin-right:calc(-0.5*var(--bs-offcanvas-padding-x));margin-bottom:calc(-0.5*var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-default{color:#fff !important;background-color:RGBA(var(--bs-default-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#fff !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#fff !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#fff !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-default{color:RGBA(var(--bs-default-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-default-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-default:hover,.link-default:focus{color:RGBA(54, 54, 54, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(54, 54, 54, var(--bs-link-underline-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(44, 72, 102, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(44, 72, 102, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(54, 54, 54, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(54, 54, 54, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(0, 150, 112, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(0, 150, 112, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(42, 122, 175, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(42, 122, 175, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(194, 125, 14, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(194, 125, 14, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(185, 61, 48, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(185, 61, 48, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(89, 89, 89, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(89, 89, 89, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(36, 36, 36, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(36, 36, 36, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;-webkit-flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media(prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-inline-grid{display:inline-grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.focus-ring-default{--bs-focus-ring-color: rgba(var(--bs-default-rgb), var(--bs-focus-ring-opacity))}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-start-0{border-left:0 !important}.border-default{--bs-border-opacity: 1;border-color:rgba(var(--bs-default-rgb), var(--bs-border-opacity)) !important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.border-opacity-10{--bs-border-opacity: 0.1}.border-opacity-25{--bs-border-opacity: 0.25}.border-opacity-50{--bs-border-opacity: 0.5}.border-opacity-75{--bs-border-opacity: 0.75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.325rem + 0.9vw) !important}.fs-2{font-size:calc(1.29rem + 0.48vw) !important}.fs-3{font-size:calc(1.27rem + 0.24vw) !important}.fs-4{font-size:1.25rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: 0.25}.text-opacity-50{--bs-text-opacity: 0.5}.text-opacity-75{--bs-text-opacity: 0.75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity: 0.1}.link-opacity-10-hover:hover{--bs-link-opacity: 0.1}.link-opacity-25{--bs-link-opacity: 0.25}.link-opacity-25-hover:hover{--bs-link-opacity: 0.25}.link-opacity-50{--bs-link-opacity: 0.5}.link-opacity-50-hover:hover{--bs-link-opacity: 0.5}.link-opacity-75{--bs-link-opacity: 0.75}.link-opacity-75-hover:hover{--bs-link-opacity: 0.75}.link-opacity-100{--bs-link-opacity: 1}.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-default{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-default-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10{--bs-link-underline-opacity: 0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: 0.1}.link-underline-opacity-25{--bs-link-underline-opacity: 0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: 0.25}.link-underline-opacity-50{--bs-link-underline-opacity: 0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: 0.5}.link-underline-opacity-75{--bs-link-underline-opacity: 0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: 0.75}.link-underline-opacity-100{--bs-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-opacity-10{--bs-bg-opacity: 0.1}.bg-opacity-25{--bs-bg-opacity: 0.25}.bg-opacity-50{--bs-bg-opacity: 0.5}.bg-opacity-75{--bs-bg-opacity: 0.75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:var(--bs-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--bs-border-radius-sm) !important}.rounded-2{border-radius:var(--bs-border-radius) !important}.rounded-3{border-radius:var(--bs-border-radius-lg) !important}.rounded-4{border-radius:var(--bs-border-radius-xl) !important}.rounded-5{border-radius:var(--bs-border-radius-xxl) !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--bs-border-radius-pill) !important}.rounded-top{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-inline-grid{display:inline-grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-inline-grid{display:inline-grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-inline-grid{display:inline-grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-inline-grid{display:inline-grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-inline-grid{display:inline-grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#fff}.bg-primary{color:#fff}.bg-secondary{color:#fff}.bg-success{color:#fff}.bg-info{color:#fff}.bg-warning{color:#fff}.bg-danger{color:#fff}.bg-light{color:#fff}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.65rem !important}.fs-3{font-size:1.45rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-inline-grid{display:inline-grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}.bg-blue{--bslib-color-bg: #375a7f;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #375a7f;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #6f42c1;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #6f42c1;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #e83e8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #e83e8c;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #e74c3c;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #fd7e14;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #fd7e14;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #f39c12;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #00bc8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #00bc8c;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #3498db;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #3498db;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #434343}.bg-default{--bslib-color-bg: #434343;--bslib-color-fg: #fff}.text-primary{--bslib-color-fg: #375a7f}.bg-primary{--bslib-color-bg: #375a7f;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #434343}.bg-secondary{--bslib-color-bg: #434343;--bslib-color-fg: #fff}.text-success{--bslib-color-fg: #00bc8c}.bg-success{--bslib-color-bg: #00bc8c;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #3498db}.bg-info{--bslib-color-bg: #3498db;--bslib-color-fg: #fff}.text-warning{--bslib-color-fg: #f39c12}.bg-warning{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff}.text-danger{--bslib-color-fg: #e74c3c}.bg-danger{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #6f6f6f}.bg-light{--bslib-color-bg: #6f6f6f;--bslib-color-fg: #fff}.text-dark{--bslib-color-fg: #2d2d2d}.bg-dark{--bslib-color-bg: #2d2d2d;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4a3cad;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4a3cad;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4d5099;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4d5099;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7e4f84;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #7e4f84;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #7d5464;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #7d5464;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #866854;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #866854;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #827453;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #827453;color:#fff}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #218184;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #218184;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #fff;--bslib-color-bg: #2e8689;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #2e8689;color:#fff}.bg-gradient-blue-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #3673a4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #3673a4;color:#fff}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #532ec4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #532ec4;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #6a24de;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #6a24de;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9a22c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9a22c9;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #9a28a9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9a28a9;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a23c99;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a23c99;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #9e4898;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #9e4898;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #3d55c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #3d55c9;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5246e9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5246e9;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #594ca7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #594ca7;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #6b2ed5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #6b2ed5;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9f40ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9f40ac;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #9f468c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9f468c;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a85a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a85a7c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a4667b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #a4667b;color:#fff}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #4373ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #4373ac;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4f78b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4f78b0;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5764cb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5764cb;color:#fff}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a14987;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #a14987;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b42cb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b42cb5;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b840a1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b840a1;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #e8446c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #e8446c;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0585c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0585c;color:#fff}.bg-gradient-pink-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec645b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec645b;color:#fff}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #8b708c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #8b708c;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #fff;--bslib-color-bg: #987690;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #987690;color:#fff}.bg-gradient-pink-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a062ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a062ac;color:#fff}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a15257;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #a15257;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b33485;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b33485;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b74871;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b74871;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #e7465c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #e7465c;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0602c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0602c;color:#fff}.bg-gradient-red-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec6c2b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec6c2b;color:#fff}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #8b795c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #8b795c;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #fff;--bslib-color-bg: #977e60;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #977e60;color:#fff}.bg-gradient-red-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #9f6a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #9f6a7c;color:#fff}.bg-gradient-orange-blue{--bslib-color-fg: #fff;--bslib-color-bg: #ae703f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #ae703f;color:#fff}.bg-gradient-orange-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #c1526d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c1526d;color:#fff}.bg-gradient-orange-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c46659;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c46659;color:#fff}.bg-gradient-orange-pink{--bslib-color-fg: #fff;--bslib-color-bg: #f56444;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #f56444;color:#fff}.bg-gradient-orange-red{--bslib-color-fg: #fff;--bslib-color-bg: #f46a24;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #f46a24;color:#fff}.bg-gradient-orange-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #f98a13;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #f98a13;color:#fff}.bg-gradient-orange-green{--bslib-color-fg: #fff;--bslib-color-bg: #989744;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #989744;color:#fff}.bg-gradient-orange-teal{--bslib-color-fg: #fff;--bslib-color-bg: #a59c48;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a59c48;color:#fff}.bg-gradient-orange-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #ad8864;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #ad8864;color:#fff}.bg-gradient-yellow-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a8823e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #a8823e;color:#fff}.bg-gradient-yellow-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #bb646c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #bb646c;color:#fff}.bg-gradient-yellow-purple{--bslib-color-fg: #fff;--bslib-color-bg: #be7858;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #be7858;color:#fff}.bg-gradient-yellow-pink{--bslib-color-fg: #fff;--bslib-color-bg: #ef7643;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #ef7643;color:#fff}.bg-gradient-yellow-red{--bslib-color-fg: #fff;--bslib-color-bg: #ee7c23;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #ee7c23;color:#fff}.bg-gradient-yellow-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f79013;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f79013;color:#fff}.bg-gradient-yellow-green{--bslib-color-fg: #fff;--bslib-color-bg: #92a943;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #92a943;color:#fff}.bg-gradient-yellow-teal{--bslib-color-fg: #fff;--bslib-color-bg: #9fae47;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #9fae47;color:#fff}.bg-gradient-yellow-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a79a62;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a79a62;color:#fff}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #169587;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #169587;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #2977b5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #2977b5;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #2c8ba1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #2c8ba1;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #5d8a8c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #5d8a8c;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #5c8f6c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #5c8f6c;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #fff;--bslib-color-bg: #65a35c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #65a35c;color:#fff}.bg-gradient-green-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #61af5b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #61af5b;color:#fff}.bg-gradient-green-teal{--bslib-color-fg: #fff;--bslib-color-bg: #0dc190;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #0dc190;color:#fff}.bg-gradient-green-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #15aeac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #15aeac;color:#fff}.bg-gradient-teal-blue{--bslib-color-fg: #fff;--bslib-color-bg: #299d8d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #299d8d;color:#fff}.bg-gradient-teal-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#fff}.bg-gradient-teal-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4093a8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4093a8;color:#fff}.bg-gradient-teal-pink{--bslib-color-fg: #fff;--bslib-color-bg: #709193;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #709193;color:#fff}.bg-gradient-teal-red{--bslib-color-fg: #fff;--bslib-color-bg: #709773;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #709773;color:#fff}.bg-gradient-teal-orange{--bslib-color-fg: #fff;--bslib-color-bg: #78ab63;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #78ab63;color:#fff}.bg-gradient-teal-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #74b762;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #74b762;color:#fff}.bg-gradient-teal-green{--bslib-color-fg: #fff;--bslib-color-bg: #13c493;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #13c493;color:#fff}.bg-gradient-teal-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #28b5b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #28b5b2;color:#fff}.bg-gradient-cyan-blue{--bslib-color-fg: #fff;--bslib-color-bg: #357fb6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #357fb6;color:#fff}.bg-gradient-cyan-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4862e4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4862e4;color:#fff}.bg-gradient-cyan-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4c76d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4c76d1;color:#fff}.bg-gradient-cyan-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7c74bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #7c74bb;color:#fff}.bg-gradient-cyan-red{--bslib-color-fg: #fff;--bslib-color-bg: #7c7a9b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #7c7a9b;color:#fff}.bg-gradient-cyan-orange{--bslib-color-fg: #fff;--bslib-color-bg: #848e8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #848e8b;color:#fff}.bg-gradient-cyan-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #809a8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #809a8b;color:#fff}.bg-gradient-cyan-green{--bslib-color-fg: #fff;--bslib-color-bg: #1fa6bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #1fa6bb;color:#fff}.bg-gradient-cyan-teal{--bslib-color-fg: #fff;--bslib-color-bg: #2cacc0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #2cacc0;color:#fff}.bg-blue{--bslib-color-bg: #375a7f;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #375a7f;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #6f42c1;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #6f42c1;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #e83e8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #e83e8c;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #e74c3c;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #fd7e14;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #fd7e14;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #f39c12;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #00bc8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #00bc8c;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #3498db;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #3498db;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #434343}.bg-default{--bslib-color-bg: #434343;--bslib-color-fg: #fff}.text-primary{--bslib-color-fg: #375a7f}.bg-primary{--bslib-color-bg: #375a7f;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #434343}.bg-secondary{--bslib-color-bg: #434343;--bslib-color-fg: #fff}.text-success{--bslib-color-fg: #00bc8c}.bg-success{--bslib-color-bg: #00bc8c;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #3498db}.bg-info{--bslib-color-bg: #3498db;--bslib-color-fg: #fff}.text-warning{--bslib-color-fg: #f39c12}.bg-warning{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff}.text-danger{--bslib-color-fg: #e74c3c}.bg-danger{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #6f6f6f}.bg-light{--bslib-color-bg: #6f6f6f;--bslib-color-fg: #fff}.text-dark{--bslib-color-fg: #2d2d2d}.bg-dark{--bslib-color-bg: #2d2d2d;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4a3cad;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4a3cad;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4d5099;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4d5099;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7e4f84;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #7e4f84;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #7d5464;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #7d5464;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #866854;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #866854;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #827453;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #827453;color:#fff}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #218184;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #218184;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #fff;--bslib-color-bg: #2e8689;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #2e8689;color:#fff}.bg-gradient-blue-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #3673a4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #3673a4;color:#fff}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #532ec4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #532ec4;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #6a24de;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #6a24de;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9a22c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9a22c9;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #9a28a9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9a28a9;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a23c99;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a23c99;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #9e4898;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #9e4898;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #3d55c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #3d55c9;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5246e9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5246e9;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #594ca7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #594ca7;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #6b2ed5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #6b2ed5;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9f40ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9f40ac;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #9f468c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9f468c;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a85a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a85a7c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a4667b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #a4667b;color:#fff}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #4373ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #4373ac;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4f78b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4f78b0;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5764cb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5764cb;color:#fff}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a14987;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #a14987;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b42cb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b42cb5;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b840a1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b840a1;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #e8446c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #e8446c;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0585c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0585c;color:#fff}.bg-gradient-pink-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec645b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec645b;color:#fff}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #8b708c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #8b708c;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #fff;--bslib-color-bg: #987690;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #987690;color:#fff}.bg-gradient-pink-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a062ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a062ac;color:#fff}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a15257;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #a15257;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b33485;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b33485;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b74871;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b74871;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #e7465c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #e7465c;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0602c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0602c;color:#fff}.bg-gradient-red-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec6c2b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec6c2b;color:#fff}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #8b795c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #8b795c;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #fff;--bslib-color-bg: #977e60;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #977e60;color:#fff}.bg-gradient-red-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #9f6a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #9f6a7c;color:#fff}.bg-gradient-orange-blue{--bslib-color-fg: #fff;--bslib-color-bg: #ae703f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #ae703f;color:#fff}.bg-gradient-orange-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #c1526d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c1526d;color:#fff}.bg-gradient-orange-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c46659;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c46659;color:#fff}.bg-gradient-orange-pink{--bslib-color-fg: #fff;--bslib-color-bg: #f56444;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #f56444;color:#fff}.bg-gradient-orange-red{--bslib-color-fg: #fff;--bslib-color-bg: #f46a24;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #f46a24;color:#fff}.bg-gradient-orange-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #f98a13;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #f98a13;color:#fff}.bg-gradient-orange-green{--bslib-color-fg: #fff;--bslib-color-bg: #989744;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #989744;color:#fff}.bg-gradient-orange-teal{--bslib-color-fg: #fff;--bslib-color-bg: #a59c48;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a59c48;color:#fff}.bg-gradient-orange-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #ad8864;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #ad8864;color:#fff}.bg-gradient-yellow-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a8823e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #a8823e;color:#fff}.bg-gradient-yellow-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #bb646c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #bb646c;color:#fff}.bg-gradient-yellow-purple{--bslib-color-fg: #fff;--bslib-color-bg: #be7858;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #be7858;color:#fff}.bg-gradient-yellow-pink{--bslib-color-fg: #fff;--bslib-color-bg: #ef7643;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #ef7643;color:#fff}.bg-gradient-yellow-red{--bslib-color-fg: #fff;--bslib-color-bg: #ee7c23;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #ee7c23;color:#fff}.bg-gradient-yellow-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f79013;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f79013;color:#fff}.bg-gradient-yellow-green{--bslib-color-fg: #fff;--bslib-color-bg: #92a943;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #92a943;color:#fff}.bg-gradient-yellow-teal{--bslib-color-fg: #fff;--bslib-color-bg: #9fae47;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #9fae47;color:#fff}.bg-gradient-yellow-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a79a62;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a79a62;color:#fff}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #169587;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #169587;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #2977b5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #2977b5;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #2c8ba1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #2c8ba1;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #5d8a8c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #5d8a8c;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #5c8f6c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #5c8f6c;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #fff;--bslib-color-bg: #65a35c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #65a35c;color:#fff}.bg-gradient-green-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #61af5b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #61af5b;color:#fff}.bg-gradient-green-teal{--bslib-color-fg: #fff;--bslib-color-bg: #0dc190;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #0dc190;color:#fff}.bg-gradient-green-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #15aeac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #15aeac;color:#fff}.bg-gradient-teal-blue{--bslib-color-fg: #fff;--bslib-color-bg: #299d8d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #299d8d;color:#fff}.bg-gradient-teal-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#fff}.bg-gradient-teal-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4093a8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4093a8;color:#fff}.bg-gradient-teal-pink{--bslib-color-fg: #fff;--bslib-color-bg: #709193;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #709193;color:#fff}.bg-gradient-teal-red{--bslib-color-fg: #fff;--bslib-color-bg: #709773;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #709773;color:#fff}.bg-gradient-teal-orange{--bslib-color-fg: #fff;--bslib-color-bg: #78ab63;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #78ab63;color:#fff}.bg-gradient-teal-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #74b762;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #74b762;color:#fff}.bg-gradient-teal-green{--bslib-color-fg: #fff;--bslib-color-bg: #13c493;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #13c493;color:#fff}.bg-gradient-teal-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #28b5b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #28b5b2;color:#fff}.bg-gradient-cyan-blue{--bslib-color-fg: #fff;--bslib-color-bg: #357fb6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #357fb6;color:#fff}.bg-gradient-cyan-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4862e4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4862e4;color:#fff}.bg-gradient-cyan-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4c76d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4c76d1;color:#fff}.bg-gradient-cyan-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7c74bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #7c74bb;color:#fff}.bg-gradient-cyan-red{--bslib-color-fg: #fff;--bslib-color-bg: #7c7a9b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #7c7a9b;color:#fff}.bg-gradient-cyan-orange{--bslib-color-fg: #fff;--bslib-color-bg: #848e8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #848e8b;color:#fff}.bg-gradient-cyan-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #809a8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #809a8b;color:#fff}.bg-gradient-cyan-green{--bslib-color-fg: #fff;--bslib-color-bg: #1fa6bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #1fa6bb;color:#fff}.bg-gradient-cyan-teal{--bslib-color-fg: #fff;--bslib-color-bg: #2cacc0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #2cacc0;color:#fff}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}html{height:100%}.bslib-page-fill{width:100%;height:100%;margin:0;padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}@media(max-width: 575.98px){.bslib-page-fill{height:var(--bslib-page-fill-mobile-height, auto)}}.bslib-grid{display:grid !important;gap:var(--bslib-spacer, 1rem);height:var(--bslib-grid-height)}.bslib-grid.grid{grid-template-columns:repeat(var(--bs-columns, 12), minmax(0, 1fr));grid-template-rows:unset;grid-auto-rows:var(--bslib-grid--row-heights);--bslib-grid--row-heights--xs: unset;--bslib-grid--row-heights--sm: unset;--bslib-grid--row-heights--md: unset;--bslib-grid--row-heights--lg: unset;--bslib-grid--row-heights--xl: unset;--bslib-grid--row-heights--xxl: unset}.bslib-grid.grid.bslib-grid--row-heights--xs{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xs)}@media(min-width: 576px){.bslib-grid.grid.bslib-grid--row-heights--sm{--bslib-grid--row-heights: var(--bslib-grid--row-heights--sm)}}@media(min-width: 768px){.bslib-grid.grid.bslib-grid--row-heights--md{--bslib-grid--row-heights: var(--bslib-grid--row-heights--md)}}@media(min-width: 992px){.bslib-grid.grid.bslib-grid--row-heights--lg{--bslib-grid--row-heights: var(--bslib-grid--row-heights--lg)}}@media(min-width: 1200px){.bslib-grid.grid.bslib-grid--row-heights--xl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xl)}}@media(min-width: 1400px){.bslib-grid.grid.bslib-grid--row-heights--xxl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xxl)}}.bslib-grid>*>.shiny-input-container{width:100%}.bslib-grid-item{grid-column:auto/span 1}@media(max-width: 767.98px){.bslib-grid-item{grid-column:1/-1}}@media(max-width: 575.98px){.bslib-grid{grid-template-columns:1fr !important;height:var(--bslib-grid-height-mobile)}.bslib-grid.grid{height:unset !important;grid-auto-rows:var(--bslib-grid--row-heights--xs, auto)}}.navbar+.container-fluid:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-sm:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-md:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-lg:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xl:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xxl:has(>.tab-content>.tab-pane.active.html-fill-container){padding-left:0;padding-right:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container{padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child){padding:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]){border-left:none;border-right:none;border-bottom:none}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]){border-radius:0}.navbar+div>.bslib-sidebar-layout{border-top:var(--bslib-sidebar-border)}.bslib-card{overflow:auto}.bslib-card .card-body+.card-body{padding-top:0}.bslib-card .card-body{overflow:auto}.bslib-card .card-body p{margin-top:0}.bslib-card .card-body p:last-child{margin-bottom:0}.bslib-card .card-body{max-height:var(--bslib-card-body-max-height, none)}.bslib-card[data-full-screen=true]>.card-body{max-height:var(--bslib-card-body-max-height-full-screen, none)}.bslib-card .card-header .form-group{margin-bottom:0}.bslib-card .card-header .selectize-control{margin-bottom:0}.bslib-card .card-header .selectize-control .item{margin-right:1.15rem}.bslib-card .card-footer{margin-top:auto}.bslib-card .bslib-navs-card-title{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.bslib-card .bslib-navs-card-title .nav{margin-left:auto}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border=true]){border:none}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border-radius=true]){border-top-left-radius:0;border-top-right-radius:0}[data-full-screen=true]{position:fixed;inset:3.5rem 1rem 1rem;height:auto !important;max-height:none !important;width:auto !important;z-index:1070}.bslib-full-screen-enter{display:none;position:absolute;bottom:var(--bslib-full-screen-enter-bottom, 0.2rem);right:var(--bslib-full-screen-enter-right, 0);top:var(--bslib-full-screen-enter-top);left:var(--bslib-full-screen-enter-left);color:var(--bslib-color-fg, var(--bs-card-color));background-color:var(--bslib-color-bg, var(--bs-card-bg, var(--bs-body-bg)));border:var(--bs-card-border-width) solid var(--bslib-color-fg, var(--bs-card-border-color));box-shadow:0 2px 4px rgba(0,0,0,.15);margin:.2rem .4rem;padding:.55rem !important;font-size:.8rem;cursor:pointer;opacity:.7;z-index:1070}.bslib-full-screen-enter:hover{opacity:1}.card[data-full-screen=false]:hover>*>.bslib-full-screen-enter{display:block}.bslib-has-full-screen .card:hover>*>.bslib-full-screen-enter{display:none}@media(max-width: 575.98px){.bslib-full-screen-enter{display:none !important}}.bslib-full-screen-exit{position:relative;top:1.35rem;font-size:.9rem;cursor:pointer;text-decoration:none;display:flex;float:right;margin-right:2.15rem;align-items:center;color:rgba(var(--bs-body-bg-rgb), 0.8)}.bslib-full-screen-exit:hover{color:rgba(var(--bs-body-bg-rgb), 1)}.bslib-full-screen-exit svg{margin-left:.5rem;font-size:1.5rem}#bslib-full-screen-overlay{position:fixed;inset:0;background-color:rgba(var(--bs-body-color-rgb), 0.6);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:1069;animation:bslib-full-screen-overlay-enter 400ms cubic-bezier(0.6, 0.02, 0.65, 1) forwards}@keyframes bslib-full-screen-overlay-enter{0%{opacity:0}100%{opacity:1}}.accordion .accordion-header{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color);margin-bottom:0}@media(min-width: 1200px){.accordion .accordion-header{font-size:1.65rem}}.accordion .accordion-icon:not(:empty){margin-right:.75rem;display:flex}.accordion .accordion-button:not(.collapsed){box-shadow:none}.accordion .accordion-button:not(.collapsed):focus{box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.bslib-sidebar-layout{--bslib-sidebar-transition-duration: 500ms;--bslib-sidebar-transition-easing-x: cubic-bezier(0.8, 0.78, 0.22, 1.07);--bslib-sidebar-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, rgba(0, 0, 0, 0.175));--bslib-sidebar-border-radius: var(--bs-border-radius);--bslib-sidebar-vert-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, rgba(0, 0, 0, 0.175));--bslib-sidebar-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.05);--bslib-sidebar-fg: var(--bs-emphasis-color, black);--bslib-sidebar-main-fg: var(--bs-card-color, var(--bs-body-color));--bslib-sidebar-main-bg: var(--bs-card-bg, var(--bs-body-bg));--bslib-sidebar-toggle-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.1);--bslib-sidebar-padding: calc(var(--bslib-spacer) * 1.5);--bslib-sidebar-icon-size: var(--bslib-spacer, 1rem);--bslib-sidebar-icon-button-size: calc(var(--bslib-sidebar-icon-size, 1rem) * 2);--bslib-sidebar-padding-icon: calc(var(--bslib-sidebar-icon-button-size, 2rem) * 1.5);--bslib-collapse-toggle-border-radius: var(--bs-border-radius, 0.25rem);--bslib-collapse-toggle-transform: 0deg;--bslib-sidebar-toggle-transition-easing: cubic-bezier(1, 0, 0, 1);--bslib-collapse-toggle-right-transform: 180deg;--bslib-sidebar-column-main: minmax(0, 1fr);display:grid !important;grid-template-columns:min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px)) var(--bslib-sidebar-column-main);position:relative;transition:grid-template-columns ease-in-out var(--bslib-sidebar-transition-duration);border:var(--bslib-sidebar-border);border-radius:var(--bslib-sidebar-border-radius)}@media(prefers-reduced-motion: reduce){.bslib-sidebar-layout{transition:none}}.bslib-sidebar-layout[data-bslib-sidebar-border=false]{border:none}.bslib-sidebar-layout[data-bslib-sidebar-border-radius=false]{border-radius:initial}.bslib-sidebar-layout>.main,.bslib-sidebar-layout>.sidebar{grid-row:1/2;border-radius:inherit;overflow:auto}.bslib-sidebar-layout>.main{grid-column:2/3;border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--bslib-sidebar-padding);transition:padding var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration);color:var(--bslib-sidebar-main-fg);background-color:var(--bslib-sidebar-main-bg)}.bslib-sidebar-layout>.sidebar{grid-column:1/2;width:100%;height:100%;border-right:var(--bslib-sidebar-vert-border);border-top-right-radius:0;border-bottom-right-radius:0;color:var(--bslib-sidebar-fg);background-color:var(--bslib-sidebar-bg);backdrop-filter:blur(5px)}.bslib-sidebar-layout>.sidebar>.sidebar-content{display:flex;flex-direction:column;gap:var(--bslib-spacer, 1rem);padding:var(--bslib-sidebar-padding);padding-top:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout>.sidebar>.sidebar-content>:last-child:not(.sidebar-title){margin-bottom:0}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion{margin-left:calc(-1*var(--bslib-sidebar-padding));margin-right:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:last-child{margin-bottom:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child){margin-bottom:1rem}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion .accordion-body{display:flex;flex-direction:column}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:first-child) .accordion-item:first-child{border-top:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child) .accordion-item:last-child{border-bottom:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content.has-accordion>.sidebar-title{border-bottom:none;padding-bottom:0}.bslib-sidebar-layout>.sidebar .shiny-input-container{width:100%}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar>.sidebar-content{padding-top:var(--bslib-sidebar-padding)}.bslib-sidebar-layout>.collapse-toggle{grid-row:1/2;grid-column:1/2;display:inline-flex;align-items:center;position:absolute;right:calc(var(--bslib-sidebar-icon-size));top:calc(var(--bslib-sidebar-icon-size, 1rem)/2);border:none;border-radius:var(--bslib-collapse-toggle-border-radius);height:var(--bslib-sidebar-icon-button-size, 2rem);width:var(--bslib-sidebar-icon-button-size, 2rem);display:flex;align-items:center;justify-content:center;padding:0;color:var(--bslib-sidebar-fg);background-color:unset;transition:color var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),top var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),right var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),left var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover{background-color:var(--bslib-sidebar-toggle-bg)}.bslib-sidebar-layout>.collapse-toggle>.collapse-icon{opacity:.8;width:var(--bslib-sidebar-icon-size);height:var(--bslib-sidebar-icon-size);transform:rotateY(var(--bslib-collapse-toggle-transform));transition:transform var(--bslib-sidebar-toggle-transition-easing) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover>.collapse-icon{opacity:1}.bslib-sidebar-layout .sidebar-title{font-size:1.25rem;line-height:1.25;margin-top:0;margin-bottom:1rem;padding-bottom:1rem;border-bottom:var(--bslib-sidebar-border)}.bslib-sidebar-layout.sidebar-right{grid-template-columns:var(--bslib-sidebar-column-main) min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px))}.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/2;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit}.bslib-sidebar-layout.sidebar-right>.sidebar{grid-column:2/3;border-right:none;border-left:var(--bslib-sidebar-vert-border);border-top-left-radius:0;border-bottom-left-radius:0}.bslib-sidebar-layout.sidebar-right>.collapse-toggle{grid-column:2/3;left:var(--bslib-sidebar-icon-size);right:unset;border:var(--bslib-collapse-toggle-border)}.bslib-sidebar-layout.sidebar-right>.collapse-toggle>.collapse-icon{transform:rotateY(var(--bslib-collapse-toggle-right-transform))}.bslib-sidebar-layout.sidebar-collapsed{--bslib-collapse-toggle-transform: 180deg;--bslib-collapse-toggle-right-transform: 0deg;--bslib-sidebar-vert-border: none;grid-template-columns:0 minmax(0, 1fr)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right{grid-template-columns:minmax(0, 1fr) 0}.bslib-sidebar-layout.sidebar-collapsed:not(.transitioning)>.sidebar>*{display:none}.bslib-sidebar-layout.sidebar-collapsed>.main{border-radius:inherit}.bslib-sidebar-layout.sidebar-collapsed:not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed>.collapse-toggle{color:var(--bslib-sidebar-main-fg);top:calc(var(--bslib-sidebar-overlap-counter, 0)*(var(--bslib-sidebar-icon-size) + var(--bslib-sidebar-padding)) + var(--bslib-sidebar-icon-size, 1rem)/2);right:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px))}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.collapse-toggle{left:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px));right:unset}@media(min-width: 576px){.bslib-sidebar-layout.transitioning>.sidebar>.sidebar-content{display:none}}@media(max-width: 575.98px){.bslib-sidebar-layout[data-bslib-sidebar-open=desktop]{--bslib-sidebar-js-init-collapsed: true}.bslib-sidebar-layout>.sidebar,.bslib-sidebar-layout.sidebar-right>.sidebar{border:none}.bslib-sidebar-layout>.main,.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/3}.bslib-sidebar-layout[data-bslib-sidebar-open=always]{display:block !important}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar{max-height:var(--bslib-sidebar-max-height-mobile);overflow-y:auto;border-top:var(--bslib-sidebar-vert-border)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]){grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.sidebar{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.collapse-toggle{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed.sidebar-right{grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always])>.main{opacity:0;transition:opacity var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed>.main{opacity:1}}:root{--bslib-value-box-shadow: none;--bslib-value-box-border-width-auto-yes: var(--bslib-value-box-border-width-baseline);--bslib-value-box-border-width-auto-no: 0;--bslib-value-box-border-width-baseline: 1px}.bslib-value-box{border-width:var(--bslib-value-box-border-width-auto-no, var(--bslib-value-box-border-width-baseline));container-name:bslib-value-box;container-type:inline-size}.bslib-value-box.card{box-shadow:var(--bslib-value-box-shadow)}.bslib-value-box.border-auto{border-width:var(--bslib-value-box-border-width-auto-yes, var(--bslib-value-box-border-width-baseline))}.bslib-value-box.default{--bslib-value-box-bg-default: var(--bs-card-bg, #222);--bslib-value-box-border-color-default: var(--bs-card-border-color, rgba(0, 0, 0, 0.175));color:var(--bslib-value-box-color);background-color:var(--bslib-value-box-bg, var(--bslib-value-box-bg-default));border-color:var(--bslib-value-box-border-color, var(--bslib-value-box-border-color-default))}.bslib-value-box .value-box-grid{display:grid;grid-template-areas:"left right";align-items:center;overflow:hidden}.bslib-value-box .value-box-showcase{height:100%;max-height:var(---bslib-value-box-showcase-max-h, 100%)}.bslib-value-box .value-box-showcase,.bslib-value-box .value-box-showcase>.html-fill-item{width:100%}.bslib-value-box[data-full-screen=true] .value-box-showcase{max-height:var(---bslib-value-box-showcase-max-h-fs, 100%)}@media screen and (min-width: 575.98px){@container bslib-value-box (max-width: 300px){.bslib-value-box:not(.showcase-bottom) .value-box-grid{grid-template-columns:1fr !important;grid-template-rows:auto auto;grid-template-areas:"top" "bottom"}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-showcase{grid-area:top !important}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-area{grid-area:bottom !important;justify-content:end}}}.bslib-value-box .value-box-area{justify-content:center;padding:1.5rem 1rem;font-size:.9rem;font-weight:500}.bslib-value-box .value-box-area *{margin-bottom:0;margin-top:0}.bslib-value-box .value-box-title{font-size:1rem;margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.bslib-value-box .value-box-title:empty::after{content:" "}.bslib-value-box .value-box-value{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}@media(min-width: 1200px){.bslib-value-box .value-box-value{font-size:1.65rem}}.bslib-value-box .value-box-value:empty::after{content:" "}.bslib-value-box .value-box-showcase{align-items:center;justify-content:center;margin-top:auto;margin-bottom:auto;padding:1rem}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{opacity:.85;min-width:50px;max-width:125%}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{font-size:4rem}.bslib-value-box.showcase-top-right .value-box-grid{grid-template-columns:1fr var(---bslib-value-box-showcase-w, 50%)}.bslib-value-box.showcase-top-right .value-box-grid .value-box-showcase{grid-area:right;margin-left:auto;align-self:start;align-items:end;padding-left:0;padding-bottom:0}.bslib-value-box.showcase-top-right .value-box-grid .value-box-area{grid-area:left;align-self:end}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid{grid-template-columns:auto var(---bslib-value-box-showcase-w-fs, 1fr)}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid>div{align-self:center}.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-showcase{margin-top:0}@container bslib-value-box (max-width: 300px){.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-grid .value-box-showcase{padding-left:1rem}}.bslib-value-box.showcase-left-center .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w, 30%) auto}.bslib-value-box.showcase-left-center[data-full-screen=true] .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w-fs, 1fr) auto}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-showcase{grid-area:left}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-area{grid-area:right}.bslib-value-box.showcase-bottom .value-box-grid{grid-template-columns:1fr;grid-template-rows:1fr var(---bslib-value-box-showcase-h, auto);grid-template-areas:"top" "bottom";overflow:hidden}.bslib-value-box.showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.bslib-value-box.showcase-bottom .value-box-grid .value-box-area{grid-area:top}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid{grid-template-rows:1fr var(---bslib-value-box-showcase-h-fs, 2fr)}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid .value-box-showcase{padding:1rem}[data-bs-theme=dark] .bslib-value-box{--bslib-value-box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 50%)}:root{--bslib-page-sidebar-title-bg: #375a7f;--bslib-page-sidebar-title-color: #fff}.bslib-page-title{background-color:var(--bslib-page-sidebar-title-bg);color:var(--bslib-page-sidebar-title-color);font-size:1.25rem;font-weight:300;padding:var(--bslib-spacer, 1rem);padding-left:1.5rem;margin-bottom:0;border-bottom:1px solid #dee2e6}@media(min-width: 576px){.nav:not(.nav-hidden){display:flex !important;display:-webkit-flex !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column){float:none !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.bslib-nav-spacer{margin-left:auto !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.form-inline{margin-top:auto;margin-bottom:auto}.nav:not(.nav-hidden).nav-stacked{flex-direction:column;-webkit-flex-direction:column;height:100%}.nav:not(.nav-hidden).nav-stacked>.bslib-nav-spacer{margin-top:auto !important}}.html-fill-container{display:flex;flex-direction:column;min-height:0;min-width:0}.html-fill-container>.html-fill-item{flex:1 1 auto;min-height:0;min-width:0}.html-fill-container>:not(.html-fill-item){flex:0 0 auto}.quarto-container{min-height:calc(100vh - 132px)}body.hypothesis-enabled #quarto-header{margin-right:16px}footer.footer .nav-footer,#quarto-header>nav{padding-left:1em;padding-right:1em}footer.footer div.nav-footer p:first-child{margin-top:0}footer.footer div.nav-footer p:last-child{margin-bottom:0}#quarto-content>*{padding-top:14px}#quarto-content>#quarto-sidebar-glass{padding-top:0px}@media(max-width: 991.98px){#quarto-content>*{padding-top:0}#quarto-content .subtitle{padding-top:14px}#quarto-content section:first-of-type h2:first-of-type,#quarto-content section:first-of-type .h2:first-of-type{margin-top:1rem}}.headroom-target,header.headroom{will-change:transform;transition:position 200ms linear;transition:all 200ms linear}header.headroom--pinned{transform:translateY(0%)}header.headroom--unpinned{transform:translateY(-100%)}.navbar-container{width:100%}.navbar-brand{overflow:hidden;text-overflow:ellipsis}.navbar-brand-container{max-width:calc(100% - 115px);min-width:0;display:flex;align-items:center}@media(min-width: 992px){.navbar-brand-container{margin-right:1em}}.navbar-brand.navbar-brand-logo{margin-right:4px;display:inline-flex}.navbar-toggler{flex-basis:content;flex-shrink:0}.navbar .navbar-brand-container{order:2}.navbar .navbar-toggler{order:1}.navbar .navbar-container>.navbar-nav{order:20}.navbar .navbar-container>.navbar-brand-container{margin-left:0 !important;margin-right:0 !important}.navbar .navbar-collapse{order:20}.navbar #quarto-search{order:4;margin-left:auto}.navbar .navbar-toggler{margin-right:.5em}.navbar-collapse .quarto-navbar-tools{margin-left:.5em}.navbar-logo{max-height:24px;width:auto;padding-right:4px}nav .nav-item:not(.compact){padding-top:1px}nav .nav-link i,nav .dropdown-item i{padding-right:1px}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.6rem;padding-right:.6rem}nav .nav-item.compact .nav-link{padding-left:.5rem;padding-right:.5rem;font-size:1.1rem}.navbar .quarto-navbar-tools{order:3}.navbar .quarto-navbar-tools div.dropdown{display:inline-block}.navbar .quarto-navbar-tools .quarto-navigation-tool{color:#dee2e6}.navbar .quarto-navbar-tools .quarto-navigation-tool:hover{color:#fafefd}.navbar-nav .dropdown-menu{min-width:220px;font-size:.9rem}.navbar .navbar-nav .nav-link.dropdown-toggle::after{opacity:.75;vertical-align:.175em}.navbar ul.dropdown-menu{padding-top:0;padding-bottom:0}.navbar .dropdown-header{text-transform:uppercase;font-size:.8rem;padding:0 .5rem}.navbar .dropdown-item{padding:.4rem .5rem}.navbar .dropdown-item>i.bi{margin-left:.1rem;margin-right:.25em}.sidebar #quarto-search{margin-top:-1px}.sidebar #quarto-search svg.aa-SubmitIcon{width:16px;height:16px}.sidebar-navigation a{color:inherit}.sidebar-title{margin-top:.25rem;padding-bottom:.5rem;font-size:1.3rem;line-height:1.6rem;visibility:visible}.sidebar-title>a{font-size:inherit;text-decoration:none}.sidebar-title .sidebar-tools-main{margin-top:-6px}@media(max-width: 991.98px){#quarto-sidebar div.sidebar-header{padding-top:.2em}}.sidebar-header-stacked .sidebar-title{margin-top:.6rem}.sidebar-logo{max-width:90%;padding-bottom:.5rem}.sidebar-logo-link{text-decoration:none}.sidebar-navigation li a{text-decoration:none}.sidebar-navigation .quarto-navigation-tool{opacity:.7;font-size:.875rem}#quarto-sidebar>nav>.sidebar-tools-main{margin-left:14px}.sidebar-tools-main{display:inline-flex;margin-left:0px;order:2}.sidebar-tools-main:not(.tools-wide){vertical-align:middle}.sidebar-navigation .quarto-navigation-tool.dropdown-toggle::after{display:none}.sidebar.sidebar-navigation>*{padding-top:1em}.sidebar-item{margin-bottom:.2em;line-height:1rem;margin-top:.4rem}.sidebar-section{padding-left:.5em;padding-bottom:.2em}.sidebar-item .sidebar-item-container{display:flex;justify-content:space-between;cursor:pointer}.sidebar-item-toggle:hover{cursor:pointer}.sidebar-item .sidebar-item-toggle .bi{font-size:.7rem;text-align:center}.sidebar-item .sidebar-item-toggle .bi-chevron-right::before{transition:transform 200ms ease}.sidebar-item .sidebar-item-toggle[aria-expanded=false] .bi-chevron-right::before{transform:none}.sidebar-item .sidebar-item-toggle[aria-expanded=true] .bi-chevron-right::before{transform:rotate(90deg)}.sidebar-item-text{width:100%}.sidebar-navigation .sidebar-divider{margin-left:0;margin-right:0;margin-top:.5rem;margin-bottom:.5rem}@media(max-width: 991.98px){.quarto-secondary-nav{display:block}.quarto-secondary-nav button.quarto-search-button{padding-right:0em;padding-left:2em}.quarto-secondary-nav button.quarto-btn-toggle{margin-left:-0.75rem;margin-right:.15rem}.quarto-secondary-nav nav.quarto-title-breadcrumbs{display:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs{display:flex;align-items:center;padding-right:1em;margin-left:-0.25em}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{text-decoration:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs ol.breadcrumb{margin-bottom:0}}@media(min-width: 992px){.quarto-secondary-nav{display:none}}.quarto-title-breadcrumbs .breadcrumb{margin-bottom:.5em;font-size:.9rem}.quarto-title-breadcrumbs .breadcrumb li:last-of-type a{color:#6c757d}.quarto-secondary-nav .quarto-btn-toggle{color:#adadad}.quarto-secondary-nav[aria-expanded=false] .quarto-btn-toggle .bi-chevron-right::before{transform:none}.quarto-secondary-nav[aria-expanded=true] .quarto-btn-toggle .bi-chevron-right::before{transform:rotate(90deg)}.quarto-secondary-nav .quarto-btn-toggle .bi-chevron-right::before{transition:transform 200ms ease}.quarto-secondary-nav{cursor:pointer}.no-decor{text-decoration:none}.quarto-secondary-nav-title{margin-top:.3em;color:#adadad;padding-top:4px}.quarto-secondary-nav nav.quarto-page-breadcrumbs{color:#adadad}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{color:#adadad}.quarto-secondary-nav nav.quarto-page-breadcrumbs a:hover{color:rgba(26,195,152,.8)}.quarto-secondary-nav nav.quarto-page-breadcrumbs .breadcrumb-item::before{color:#7a7a7a}.breadcrumb-item{line-height:1.2rem}div.sidebar-item-container{color:#adadad}div.sidebar-item-container:hover,div.sidebar-item-container:focus{color:rgba(26,195,152,.8)}div.sidebar-item-container.disabled{color:rgba(173,173,173,.75)}div.sidebar-item-container .active,div.sidebar-item-container .show>.nav-link,div.sidebar-item-container .sidebar-link>code{color:#1ac398}div.sidebar.sidebar-navigation.rollup.quarto-sidebar-toggle-contents,nav.sidebar.sidebar-navigation:not(.rollup){background-color:#222}.sidebar.sidebar-navigation:not(.rollup){border-right:1px solid #434343 !important}@media(max-width: 991.98px){.sidebar-navigation .sidebar-item a,.nav-page .nav-page-text,.sidebar-navigation{font-size:1rem}.sidebar-navigation ul.sidebar-section.depth1 .sidebar-section-item{font-size:1.1rem}.sidebar-logo{display:none}.sidebar.sidebar-navigation{position:static;border-bottom:1px solid #434343}.sidebar.sidebar-navigation.collapsing{position:fixed;z-index:1000}.sidebar.sidebar-navigation.show{position:fixed;z-index:1000}.sidebar.sidebar-navigation{min-height:100%}nav.quarto-secondary-nav{background-color:#222;border-bottom:1px solid #434343}.quarto-banner nav.quarto-secondary-nav{background-color:#375a7f;color:#dee2e6;border-top:1px solid #434343}.sidebar .sidebar-footer{visibility:visible;padding-top:1rem;position:inherit}.sidebar-tools-collapse{display:block}}#quarto-sidebar{transition:width .15s ease-in}#quarto-sidebar>*{padding-right:1em}@media(max-width: 991.98px){#quarto-sidebar .sidebar-menu-container{white-space:nowrap;min-width:225px}#quarto-sidebar.show{transition:width .15s ease-out}}@media(min-width: 992px){#quarto-sidebar{display:flex;flex-direction:column}.nav-page .nav-page-text,.sidebar-navigation .sidebar-section .sidebar-item{font-size:.875rem}.sidebar-navigation .sidebar-item{font-size:.925rem}.sidebar.sidebar-navigation{display:block;position:sticky}.sidebar-search{width:100%}.sidebar .sidebar-footer{visibility:visible}}@media(min-width: 992px){#quarto-sidebar-glass{display:none}}@media(max-width: 991.98px){#quarto-sidebar-glass{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,0);transition:background-color .15s ease-in;z-index:-1}#quarto-sidebar-glass.collapsing{z-index:1000}#quarto-sidebar-glass.show{transition:background-color .15s ease-out;background-color:rgba(102,102,102,.4);z-index:1000}}.sidebar .sidebar-footer{padding:.5rem 1rem;align-self:flex-end;color:#6c757d;width:100%}.quarto-page-breadcrumbs .breadcrumb-item+.breadcrumb-item,.quarto-page-breadcrumbs .breadcrumb-item{padding-right:.33em;padding-left:0}.quarto-page-breadcrumbs .breadcrumb-item::before{padding-right:.33em}.quarto-sidebar-footer{font-size:.875em}.sidebar-section .bi-chevron-right{vertical-align:middle}.sidebar-section .bi-chevron-right::before{font-size:.9em}.notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.btn:focus:not(:focus-visible){box-shadow:none}.page-navigation{display:flex;justify-content:space-between}.nav-page{padding-bottom:.75em}.nav-page .bi{font-size:1.8rem;vertical-align:middle}.nav-page .nav-page-text{padding-left:.25em;padding-right:.25em}.nav-page a{color:#6c757d;text-decoration:none;display:flex;align-items:center}.nav-page a:hover{color:#009670}.nav-footer .toc-actions{padding-bottom:.5em;padding-top:.5em}.nav-footer .toc-actions a,.nav-footer .toc-actions a:hover{text-decoration:none}.nav-footer .toc-actions ul{display:flex;list-style:none}.nav-footer .toc-actions ul :first-child{margin-left:auto}.nav-footer .toc-actions ul :last-child{margin-right:auto}.nav-footer .toc-actions ul li{padding-right:1.5em}.nav-footer .toc-actions ul li i.bi{padding-right:.4em}.nav-footer .toc-actions ul li:last-of-type{padding-right:0}.nav-footer{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:baseline;text-align:center;padding-top:.5rem;padding-bottom:.5rem;background-color:#222}body.nav-fixed{padding-top:82px}body .nav-footer{border-top:1px solid #434343}.nav-footer-contents{color:#6c757d;margin-top:.25rem}.nav-footer{min-height:3.5em;color:#8a8a8a}.nav-footer a{color:#8a8a8a}.nav-footer .nav-footer-left{font-size:.825em}.nav-footer .nav-footer-center{font-size:.825em}.nav-footer .nav-footer-right{font-size:.825em}.nav-footer-left .footer-items,.nav-footer-center .footer-items,.nav-footer-right .footer-items{display:inline-flex;padding-top:.3em;padding-bottom:.3em;margin-bottom:0em}.nav-footer-left .footer-items .nav-link,.nav-footer-center .footer-items .nav-link,.nav-footer-right .footer-items .nav-link{padding-left:.6em;padding-right:.6em}@media(min-width: 768px){.nav-footer-left{flex:1 1 0px;text-align:left}}@media(max-width: 575.98px){.nav-footer-left{margin-bottom:1em;flex:100%}}@media(min-width: 768px){.nav-footer-right{flex:1 1 0px;text-align:right}}@media(max-width: 575.98px){.nav-footer-right{margin-bottom:1em;flex:100%}}.nav-footer-center{text-align:center;min-height:3em}@media(min-width: 768px){.nav-footer-center{flex:1 1 0px}}.nav-footer-center .footer-items{justify-content:center}@media(max-width: 767.98px){.nav-footer-center{margin-bottom:1em;flex:100%}}@media(max-width: 767.98px){.nav-footer-center{margin-top:3em;order:10}}.navbar .quarto-reader-toggle.reader .quarto-reader-toggle-btn{background-color:#dee2e6;border-radius:3px}@media(max-width: 991.98px){.quarto-reader-toggle{display:none}}.quarto-reader-toggle.reader.quarto-navigation-tool .quarto-reader-toggle-btn{background-color:#adadad;border-radius:3px}.quarto-reader-toggle .quarto-reader-toggle-btn{display:inline-flex;padding-left:.2em;padding-right:.2em;margin-left:-0.2em;margin-right:-0.2em;text-align:center}.navbar .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}#quarto-back-to-top{display:none;position:fixed;bottom:50px;background-color:#222;border-radius:.25rem;box-shadow:0 .2rem .5rem #6c757d,0 0 .05rem #6c757d;color:#6c757d;text-decoration:none;font-size:.9em;text-align:center;left:50%;padding:.4rem .8rem;transform:translate(-50%, 0)}#quarto-announcement{padding:.5em;display:flex;justify-content:space-between;margin-bottom:0;font-size:.9em}#quarto-announcement .quarto-announcement-content{margin-right:auto}#quarto-announcement .quarto-announcement-content p{margin-bottom:0}#quarto-announcement .quarto-announcement-icon{margin-right:.5em;font-size:1.2em;margin-top:-0.15em}#quarto-announcement .quarto-announcement-action{cursor:pointer}.aa-DetachedSearchButtonQuery{display:none}.aa-DetachedOverlay ul.aa-List,#quarto-search-results ul.aa-List{list-style:none;padding-left:0}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{background-color:#222;position:absolute;z-index:2000}#quarto-search-results .aa-Panel{max-width:400px}#quarto-search input{font-size:.925rem}@media(min-width: 992px){.navbar #quarto-search{margin-left:.25rem;order:999}}.navbar.navbar-expand-sm #quarto-search,.navbar.navbar-expand-md #quarto-search{order:999}@media(min-width: 992px){.navbar .quarto-navbar-tools{order:900}}@media(min-width: 992px){.navbar .quarto-navbar-tools.tools-end{margin-left:auto !important}}@media(max-width: 991.98px){#quarto-sidebar .sidebar-search{display:none}}#quarto-sidebar .sidebar-search .aa-Autocomplete{width:100%}.navbar .aa-Autocomplete .aa-Form{width:180px}.navbar #quarto-search.type-overlay .aa-Autocomplete{width:40px}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form{background-color:inherit;border:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form:focus-within{box-shadow:none;outline:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper{display:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper:focus-within{display:inherit}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-Label svg,.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-LoadingIndicator svg{width:26px;height:26px;color:#dee2e6;opacity:1}.navbar #quarto-search.type-overlay .aa-Autocomplete svg.aa-SubmitIcon{width:26px;height:26px;color:#dee2e6;opacity:1}.aa-Autocomplete .aa-Form,.aa-DetachedFormContainer .aa-Form{align-items:center;background-color:#fff;border:1px solid #adb5bd;border-radius:.25rem;color:#2d2d2d;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-Autocomplete .aa-Form:focus-within,.aa-DetachedFormContainer .aa-Form:focus-within{box-shadow:rgba(55,90,127,.6) 0 0 0 1px;outline:currentColor none medium}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;order:1}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{cursor:initial;flex-shrink:0;padding:0;text-align:left}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg{color:#2d2d2d;opacity:.5}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton{appearance:none;background:none;border:0;margin:0}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapper,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper{order:3;position:relative;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input{appearance:none;background:none;border:0;color:#2d2d2d;font:inherit;height:calc(1.5em + .1rem + 2px);padding:0;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::placeholder,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::placeholder{color:#2d2d2d;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input:focus{border-color:none;box-shadow:none;outline:none}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix{align-items:center;display:flex;order:4}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton{align-items:center;background:none;border:0;color:#2d2d2d;opacity:.8;cursor:pointer;display:flex;margin:0;width:calc(1.5em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus{color:#2d2d2d;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg{width:calc(1.5em + 0.75rem + calc(1px * 2))}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton{border:none;align-items:center;background:none;color:#2d2d2d;opacity:.4;font-size:.7rem;cursor:pointer;display:none;margin:0;width:calc(1em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus{color:#2d2d2d;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden]{display:none}.aa-PanelLayout:empty{display:none}.quarto-search-no-results.no-query{display:none}.aa-Source:has(.no-query){display:none}#quarto-search-results .aa-Panel{border:solid #adb5bd 1px}#quarto-search-results .aa-SourceNoResults{width:398px}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{max-height:65vh;overflow-y:auto;font-size:.925rem}.aa-DetachedOverlay .aa-SourceNoResults,#quarto-search-results .aa-SourceNoResults{height:60px;display:flex;justify-content:center;align-items:center}.aa-DetachedOverlay .search-error,#quarto-search-results .search-error{padding-top:10px;padding-left:20px;padding-right:20px;cursor:default}.aa-DetachedOverlay .search-error .search-error-title,#quarto-search-results .search-error .search-error-title{font-size:1.1rem;margin-bottom:.5rem}.aa-DetachedOverlay .search-error .search-error-title .search-error-icon,#quarto-search-results .search-error .search-error-title .search-error-icon{margin-right:8px}.aa-DetachedOverlay .search-error .search-error-text,#quarto-search-results .search-error .search-error-text{font-weight:300}.aa-DetachedOverlay .search-result-text,#quarto-search-results .search-result-text{font-weight:300;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2rem;max-height:2.4rem}.aa-DetachedOverlay .aa-SourceHeader .search-result-header,#quarto-search-results .aa-SourceHeader .search-result-header{font-size:.875rem;background-color:#2f2f2f;padding-left:14px;padding-bottom:4px;padding-top:4px}.aa-DetachedOverlay .aa-SourceHeader .search-result-header-no-results,#quarto-search-results .aa-SourceHeader .search-result-header-no-results{display:none}.aa-DetachedOverlay .aa-SourceFooter .algolia-search-logo,#quarto-search-results .aa-SourceFooter .algolia-search-logo{width:110px;opacity:.85;margin:8px;float:right}.aa-DetachedOverlay .search-result-section,#quarto-search-results .search-result-section{font-size:.925em}.aa-DetachedOverlay a.search-result-link,#quarto-search-results a.search-result-link{color:inherit;text-decoration:none}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item,#quarto-search-results li.aa-Item[aria-selected=true] .search-item{background-color:#375a7f}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text-container{color:#fff;background-color:#375a7f}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=true] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-match.mark{color:#fff;background-color:#2b4663}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item,#quarto-search-results li.aa-Item[aria-selected=false] .search-item{background-color:#2d2d2d}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text-container{color:#fff}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=false] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-match.mark{color:inherit;background-color:#000}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container{background-color:#2d2d2d;color:#fff}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container{padding-top:0px}.aa-DetachedOverlay li.aa-Item .search-result-doc.document-selectable .search-result-text-container,#quarto-search-results li.aa-Item .search-result-doc.document-selectable .search-result-text-container{margin-top:-4px}.aa-DetachedOverlay .aa-Item,#quarto-search-results .aa-Item{cursor:pointer}.aa-DetachedOverlay .aa-Item .search-item,#quarto-search-results .aa-Item .search-item{border-left:none;border-right:none;border-top:none;background-color:#2d2d2d;border-color:#adb5bd;color:#fff}.aa-DetachedOverlay .aa-Item .search-item p,#quarto-search-results .aa-Item .search-item p{margin-top:0;margin-bottom:0}.aa-DetachedOverlay .aa-Item .search-item i.bi,#quarto-search-results .aa-Item .search-item i.bi{padding-left:8px;padding-right:8px;font-size:1.3em}.aa-DetachedOverlay .aa-Item .search-item .search-result-title,#quarto-search-results .aa-Item .search-item .search-result-title{margin-top:.3em;margin-bottom:0em}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs,#quarto-search-results .aa-Item .search-item .search-result-crumbs{white-space:nowrap;text-overflow:ellipsis;font-size:.8em;font-weight:300;margin-right:1em}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs:not(.search-result-crumbs-wrap),#quarto-search-results .aa-Item .search-item .search-result-crumbs:not(.search-result-crumbs-wrap){max-width:30%;margin-left:auto;margin-top:.5em;margin-bottom:.1rem}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs.search-result-crumbs-wrap,#quarto-search-results .aa-Item .search-item .search-result-crumbs.search-result-crumbs-wrap{flex-basis:100%;margin-top:0em;margin-bottom:.2em;margin-left:37px}.aa-DetachedOverlay .aa-Item .search-result-title-container,#quarto-search-results .aa-Item .search-result-title-container{font-size:1em;display:flex;flex-wrap:wrap;padding:6px 4px 6px 4px}.aa-DetachedOverlay .aa-Item .search-result-text-container,#quarto-search-results .aa-Item .search-result-text-container{padding-bottom:8px;padding-right:8px;margin-left:42px}.aa-DetachedOverlay .aa-Item .search-result-doc-section,.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-doc-section,#quarto-search-results .aa-Item .search-result-more{padding-top:8px;padding-bottom:8px;padding-left:44px}.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-more{font-size:.8em;font-weight:400}.aa-DetachedOverlay .aa-Item .search-result-doc,#quarto-search-results .aa-Item .search-result-doc{border-top:1px solid #adb5bd}.aa-DetachedSearchButton{background:none;border:none}.aa-DetachedSearchButton .aa-DetachedSearchButtonPlaceholder{display:none}.navbar .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#dee2e6}.sidebar-tools-collapse #quarto-search,.sidebar-tools-main #quarto-search{display:inline}.sidebar-tools-collapse #quarto-search .aa-Autocomplete,.sidebar-tools-main #quarto-search .aa-Autocomplete{display:inline}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton{padding-left:4px;padding-right:4px}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#adadad}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon{margin-top:-3px}.aa-DetachedContainer{background:rgba(34,34,34,.65);width:90%;bottom:0;box-shadow:rgba(173,181,189,.6) 0 0 0 1px;outline:currentColor none medium;display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:1101}.aa-DetachedContainer::after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#222;border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{background-color:#222;border-bottom:1px solid #adb5bd;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:.5em}.aa-DetachedCancelButton{background:none;font-size:.8em;border:0;border-radius:3px;color:#fff;cursor:pointer;margin:0 0 0 .5em;padding:0 .5em}.aa-DetachedCancelButton:hover,.aa-DetachedCancelButton:focus{box-shadow:rgba(55,90,127,.6) 0 0 0 1px;outline:currentColor none medium}.aa-DetachedContainer--modal{bottom:inherit;height:auto;margin:0 auto;position:absolute;top:100px;border-radius:6px;max-width:850px}@media(max-width: 575.98px){.aa-DetachedContainer--modal{width:100%;top:0px;border-radius:0px;border:none}}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:var(--aa-detached-modal-max-height);padding-bottom:var(--aa-spacing-half);position:static}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:rgba(255,255,255,.4);position:fixed;left:0;right:0;top:0;margin:0;padding:0;height:100vh;z-index:1100}.quarto-dashboard.nav-fixed.dashboard-sidebar #quarto-content.quarto-dashboard-content{padding:0em}.quarto-dashboard #quarto-content.quarto-dashboard-content{padding:1em}.quarto-dashboard #quarto-content.quarto-dashboard-content>*{padding-top:0}@media(min-width: 576px){.quarto-dashboard{height:100%}}.quarto-dashboard .card.valuebox.bslib-card.bg-primary{background-color:#375a7f !important}.quarto-dashboard .card.valuebox.bslib-card.bg-secondary{background-color:#434343 !important}.quarto-dashboard .card.valuebox.bslib-card.bg-success{background-color:#00bc8c !important}.quarto-dashboard .card.valuebox.bslib-card.bg-info{background-color:#3498db !important}.quarto-dashboard .card.valuebox.bslib-card.bg-warning{background-color:#f39c12 !important}.quarto-dashboard .card.valuebox.bslib-card.bg-danger{background-color:#e74c3c !important}.quarto-dashboard .card.valuebox.bslib-card.bg-light{background-color:#6f6f6f !important}.quarto-dashboard .card.valuebox.bslib-card.bg-dark{background-color:#2d2d2d !important}.quarto-dashboard.dashboard-fill{display:flex;flex-direction:column}.quarto-dashboard #quarto-appendix{display:none}.quarto-dashboard #quarto-header #quarto-dashboard-header{border-top:solid 1px #4673a3;border-bottom:solid 1px #4673a3}.quarto-dashboard #quarto-header #quarto-dashboard-header>nav{padding-left:1em;padding-right:1em}.quarto-dashboard #quarto-header #quarto-dashboard-header>nav .navbar-brand-container{padding-left:0}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-toggler{margin-right:0}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-toggler-icon{height:1em;width:1em;background-image:url('data:image/svg+xml,')}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-brand-container{padding-right:1em}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-title{font-size:1.1em}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-nav{font-size:.9em}.quarto-dashboard #quarto-dashboard-header .navbar{padding:0}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-container{padding-left:1em}.quarto-dashboard #quarto-dashboard-header .navbar.slim .navbar-brand-container .nav-link,.quarto-dashboard #quarto-dashboard-header .navbar.slim .navbar-nav .nav-link{padding:.7em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-color-scheme-toggle{order:9}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-toggler{margin-left:.5em;order:10}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-nav .nav-link{padding:.5em;height:100%;display:flex;align-items:center}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-nav .active{background-color:#436e9b}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-brand-container{padding:.5em .5em .5em 0;display:flex;flex-direction:row;margin-right:2em;align-items:center}@media(max-width: 767.98px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-brand-container{margin-right:auto}}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{align-self:stretch}@media(min-width: 768px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{order:8}}@media(max-width: 767.98px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{order:1000;padding-bottom:.5em}}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse .navbar-nav{align-self:stretch}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title{font-size:1.25em;line-height:1.1em;display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title .navbar-title-text{margin-right:.4em}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title a{text-decoration:none;color:inherit}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-subtitle,.quarto-dashboard #quarto-dashboard-header .navbar .navbar-author{font-size:.9rem;margin-right:.5em}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-author{margin-left:auto}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-logo{max-height:48px;min-height:30px;object-fit:cover;margin-right:1em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-links{order:9;padding-right:1em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-link-text{margin-left:.25em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-link{padding-right:0em;padding-left:.7em;text-decoration:none;color:#dee2e6}.quarto-dashboard .page-layout-custom .tab-content{padding:0;border:none}.quarto-dashboard-img-contain{height:100%;width:100%;object-fit:contain}@media(max-width: 575.98px){.quarto-dashboard .bslib-grid{grid-template-rows:minmax(1em, max-content) !important}.quarto-dashboard .sidebar-content{height:inherit}.quarto-dashboard .page-layout-custom{min-height:100vh}}.quarto-dashboard.dashboard-toolbar>.page-layout-custom,.quarto-dashboard.dashboard-sidebar>.page-layout-custom{padding:0}.quarto-dashboard .quarto-dashboard-content.quarto-dashboard-pages{padding:0}.quarto-dashboard .callout{margin-bottom:0;margin-top:0}.quarto-dashboard .html-fill-container figure{overflow:hidden}.quarto-dashboard bslib-tooltip .rounded-pill{border:solid #6c757d 1px}.quarto-dashboard bslib-tooltip .rounded-pill .svg{fill:#fff}.quarto-dashboard .tabset .dashboard-card-no-title .nav-tabs{margin-left:0;margin-right:auto}.quarto-dashboard .tabset .tab-content{border:none}.quarto-dashboard .tabset .card-header .nav-link[role=tab]{margin-top:-6px;padding-top:6px;padding-bottom:6px}.quarto-dashboard .card.valuebox,.quarto-dashboard .card.bslib-value-box{min-height:3rem}.quarto-dashboard .card.valuebox .card-body,.quarto-dashboard .card.bslib-value-box .card-body{padding:0}.quarto-dashboard .bslib-value-box .value-box-value{font-size:clamp(.1em,15cqw,5em)}.quarto-dashboard .bslib-value-box .value-box-showcase .bi{font-size:clamp(.1em,max(18cqw,5.2cqh),5em);text-align:center;height:1em}.quarto-dashboard .bslib-value-box .value-box-showcase .bi::before{vertical-align:1em}.quarto-dashboard .bslib-value-box .value-box-area{margin-top:auto;margin-bottom:auto}.quarto-dashboard .card figure.quarto-float{display:flex;flex-direction:column;align-items:center}.quarto-dashboard .dashboard-scrolling{padding:1em}.quarto-dashboard .full-height{height:100%}.quarto-dashboard .showcase-bottom .value-box-grid{display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"top" "bottom"}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-showcase i.bi{font-size:4rem}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-area{grid-area:top}.quarto-dashboard .tab-content{margin-bottom:0}.quarto-dashboard .bslib-card .bslib-navs-card-title{justify-content:stretch;align-items:end}.quarto-dashboard .card-header{display:flex;flex-wrap:wrap;justify-content:space-between}.quarto-dashboard .card-header .card-title{display:flex;flex-direction:column;justify-content:center;margin-bottom:0}.quarto-dashboard .tabset .card-toolbar{margin-bottom:1em}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout{border:none;gap:var(--bslib-spacer, 1rem)}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.main{padding:0}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.sidebar{border-radius:.25rem;border:1px solid rgba(0,0,0,.175)}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.collapse-toggle{display:none}@media(max-width: 767.98px){.quarto-dashboard .bslib-grid>.bslib-sidebar-layout{grid-template-columns:1fr;grid-template-rows:max-content 1fr}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.main{grid-column:1;grid-row:2}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout .sidebar{grid-column:1;grid-row:1}}.quarto-dashboard .sidebar-right .sidebar{padding-left:2.5em}.quarto-dashboard .sidebar-right .collapse-toggle{left:2px}.quarto-dashboard .quarto-dashboard .sidebar-right button.collapse-toggle:not(.transitioning){left:unset}.quarto-dashboard aside.sidebar{padding-left:1em;padding-right:1em;background-color:rgba(52,58,64,.25);color:#fff}.quarto-dashboard .bslib-sidebar-layout>div.main{padding:.7em}.quarto-dashboard .bslib-sidebar-layout button.collapse-toggle{margin-top:.3em}.quarto-dashboard .bslib-sidebar-layout .collapse-toggle{top:0}.quarto-dashboard .bslib-sidebar-layout.sidebar-collapsed:not(.transitioning):not(.sidebar-right) .collapse-toggle{left:2px}.quarto-dashboard .sidebar>section>.h3:first-of-type{margin-top:0em}.quarto-dashboard .sidebar .h3,.quarto-dashboard .sidebar .h4,.quarto-dashboard .sidebar .h5,.quarto-dashboard .sidebar .h6{margin-top:.5em}.quarto-dashboard .sidebar form{flex-direction:column;align-items:start;margin-bottom:1em}.quarto-dashboard .sidebar form div[class*=oi-][class$=-input]{flex-direction:column}.quarto-dashboard .sidebar form[class*=oi-][class$=-toggle]{flex-direction:row-reverse;align-items:center;justify-content:start}.quarto-dashboard .sidebar form input[type=range]{margin-top:.5em;margin-right:.8em;margin-left:1em}.quarto-dashboard .sidebar label{width:fit-content}.quarto-dashboard .sidebar .card-body{margin-bottom:2em}.quarto-dashboard .sidebar .shiny-input-container{margin-bottom:1em}.quarto-dashboard .sidebar .shiny-options-group{margin-top:0}.quarto-dashboard .sidebar .control-label{margin-bottom:.3em}.quarto-dashboard .card .card-body .quarto-layout-row{align-items:stretch}.quarto-dashboard .toolbar{font-size:.9em;display:flex;flex-direction:row;border-top:solid 1px silver;padding:1em;flex-wrap:wrap;background-color:rgba(52,58,64,.25)}.quarto-dashboard .toolbar .cell-output-display{display:flex}.quarto-dashboard .toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .toolbar>*:last-child{margin-right:0}.quarto-dashboard .toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .toolbar .shiny-input-container{padding-bottom:0;margin-bottom:0}.quarto-dashboard .toolbar .shiny-input-container>*{flex-shrink:0;flex-grow:0}.quarto-dashboard .toolbar .form-group.shiny-input-container:not([role=group])>label{margin-bottom:0}.quarto-dashboard .toolbar .shiny-input-container.no-baseline{align-items:start;padding-top:6px}.quarto-dashboard .toolbar .shiny-input-container{display:flex;align-items:baseline}.quarto-dashboard .toolbar .shiny-input-container label{padding-right:.4em}.quarto-dashboard .toolbar .shiny-input-container .bslib-input-switch{margin-top:6px}.quarto-dashboard .toolbar input[type=text]{line-height:1;width:inherit}.quarto-dashboard .toolbar .input-daterange{width:inherit}.quarto-dashboard .toolbar .input-daterange input[type=text]{height:2.4em;width:10em}.quarto-dashboard .toolbar .input-daterange .input-group-addon{height:auto;padding:0;margin-left:-5px !important;margin-right:-5px}.quarto-dashboard .toolbar .input-daterange .input-group-addon .input-group-text{padding-top:0;padding-bottom:0;height:100%}.quarto-dashboard .toolbar span.irs.irs--shiny{width:10em}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-line{top:9px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-min,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-max,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-from,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-to,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-single{top:20px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-bar{top:8px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-handle{top:0px}.quarto-dashboard .toolbar .shiny-input-checkboxgroup>label{margin-top:6px}.quarto-dashboard .toolbar .shiny-input-checkboxgroup>.shiny-options-group{margin-top:0;align-items:baseline}.quarto-dashboard .toolbar .shiny-input-radiogroup>label{margin-top:6px}.quarto-dashboard .toolbar .shiny-input-radiogroup>.shiny-options-group{align-items:baseline;margin-top:0}.quarto-dashboard .toolbar .shiny-input-radiogroup>.shiny-options-group>.radio{margin-right:.3em}.quarto-dashboard .toolbar .form-select{padding-top:.2em;padding-bottom:.2em}.quarto-dashboard .toolbar .shiny-input-select{min-width:6em}.quarto-dashboard .toolbar div.checkbox{margin-bottom:0px}.quarto-dashboard .toolbar>.checkbox:first-child{margin-top:6px}.quarto-dashboard .toolbar form{width:fit-content}.quarto-dashboard .toolbar form label{padding-top:.2em;padding-bottom:.2em;width:fit-content}.quarto-dashboard .toolbar form input[type=date]{width:fit-content}.quarto-dashboard .toolbar form input[type=color]{width:3em}.quarto-dashboard .toolbar form button{padding:.4em}.quarto-dashboard .toolbar form select{width:fit-content}.quarto-dashboard .toolbar>*{font-size:.9em;flex-grow:0}.quarto-dashboard .toolbar .shiny-input-container label{margin-bottom:1px}.quarto-dashboard .toolbar-bottom{margin-top:1em;margin-bottom:0 !important;order:2}.quarto-dashboard .quarto-dashboard-content>.dashboard-toolbar-container>.toolbar-content>.tab-content>.tab-pane>*:not(.bslib-sidebar-layout){padding:1em}.quarto-dashboard .quarto-dashboard-content>.dashboard-toolbar-container>.toolbar-content>*:not(.tab-content){padding:1em}.quarto-dashboard .quarto-dashboard-content>.tab-content>.dashboard-page>.dashboard-toolbar-container>.toolbar-content,.quarto-dashboard .quarto-dashboard-content>.tab-content>.dashboard-page:not(.dashboard-sidebar-container)>*:not(.dashboard-toolbar-container){padding:1em}.quarto-dashboard .toolbar-content{padding:0}.quarto-dashboard .quarto-dashboard-content.quarto-dashboard-pages .tab-pane>.dashboard-toolbar-container .toolbar{border-radius:0;margin-bottom:0}.quarto-dashboard .dashboard-toolbar-container.toolbar-toplevel .toolbar{border-bottom:1px solid rgba(0,0,0,.175)}.quarto-dashboard .dashboard-toolbar-container.toolbar-toplevel .toolbar-bottom{margin-top:0}.quarto-dashboard .dashboard-toolbar-container:not(.toolbar-toplevel) .toolbar{margin-bottom:1em;border-top:none;border-radius:.25rem;border:1px solid rgba(0,0,0,.175)}.quarto-dashboard .vega-embed.has-actions details{width:1.7em;height:2em;position:absolute !important;top:0;right:0}.quarto-dashboard .dashboard-toolbar-container{padding:0}.quarto-dashboard .card .card-header p:last-child,.quarto-dashboard .card .card-footer p:last-child{margin-bottom:0}.quarto-dashboard .card .card-body>.h4:first-child{margin-top:0}.quarto-dashboard .card .card-body{z-index:4}@media(max-width: 767.98px){.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_length,.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_info,.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_paginate{text-align:initial}.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_filter{text-align:right}.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_paginate ul.pagination{justify-content:initial}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;padding-top:0}.quarto-dashboard .card .card-body .itables .dataTables_wrapper table{flex-shrink:0}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons{margin-bottom:.5em;margin-left:auto;width:fit-content;float:right}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons.btn-group{background:#222;border:none}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons .btn-secondary{background-color:#222;background-image:none;border:solid #dee2e6 1px;padding:.2em .7em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons .btn span{font-size:.8em;color:#fff}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{margin-left:.5em;margin-bottom:.5em;padding-top:0}@media(min-width: 768px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{font-size:.875em}}@media(max-width: 767.98px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{font-size:.8em}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_filter{margin-bottom:.5em;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_filter input[type=search]{padding:1px 5px 1px 5px;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_length{flex-basis:1 1 50%;margin-bottom:.5em;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_length select{padding:.4em 3em .4em .5em;font-size:.875em;margin-left:.2em;margin-right:.2em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate{flex-shrink:0}@media(min-width: 768px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate{margin-left:auto}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate ul.pagination .paginate_button .page-link{font-size:.8em}.quarto-dashboard .card .card-footer{font-size:.9em}.quarto-dashboard .card .card-toolbar{display:flex;flex-grow:1;flex-direction:row;width:100%;flex-wrap:wrap}.quarto-dashboard .card .card-toolbar>*{font-size:.8em;flex-grow:0}.quarto-dashboard .card .card-toolbar>.card-title{font-size:1em;flex-grow:1;align-self:flex-start;margin-top:.1em}.quarto-dashboard .card .card-toolbar .cell-output-display{display:flex}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .card .card-toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card .card-toolbar>*:last-child{margin-right:0}.quarto-dashboard .card .card-toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .card .card-toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .card .card-toolbar form{width:fit-content}.quarto-dashboard .card .card-toolbar form label{padding-top:.2em;padding-bottom:.2em;width:fit-content}.quarto-dashboard .card .card-toolbar form input[type=date]{width:fit-content}.quarto-dashboard .card .card-toolbar form input[type=color]{width:3em}.quarto-dashboard .card .card-toolbar form button{padding:.4em}.quarto-dashboard .card .card-toolbar form select{width:fit-content}.quarto-dashboard .card .card-toolbar .cell-output-display{display:flex}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .card .card-toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card .card-toolbar>*:last-child{margin-right:0}.quarto-dashboard .card .card-toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .card .card-toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:0;margin-bottom:0}.quarto-dashboard .card .card-toolbar .shiny-input-container>*{flex-shrink:0;flex-grow:0}.quarto-dashboard .card .card-toolbar .form-group.shiny-input-container:not([role=group])>label{margin-bottom:0}.quarto-dashboard .card .card-toolbar .shiny-input-container.no-baseline{align-items:start;padding-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-container{display:flex;align-items:baseline}.quarto-dashboard .card .card-toolbar .shiny-input-container label{padding-right:.4em}.quarto-dashboard .card .card-toolbar .shiny-input-container .bslib-input-switch{margin-top:6px}.quarto-dashboard .card .card-toolbar input[type=text]{line-height:1;width:inherit}.quarto-dashboard .card .card-toolbar .input-daterange{width:inherit}.quarto-dashboard .card .card-toolbar .input-daterange input[type=text]{height:2.4em;width:10em}.quarto-dashboard .card .card-toolbar .input-daterange .input-group-addon{height:auto;padding:0;margin-left:-5px !important;margin-right:-5px}.quarto-dashboard .card .card-toolbar .input-daterange .input-group-addon .input-group-text{padding-top:0;padding-bottom:0;height:100%}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny{width:10em}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-line{top:9px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-min,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-max,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-from,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-to,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-single{top:20px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-bar{top:8px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-handle{top:0px}.quarto-dashboard .card .card-toolbar .shiny-input-checkboxgroup>label{margin-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-checkboxgroup>.shiny-options-group{margin-top:0;align-items:baseline}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>label{margin-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>.shiny-options-group{align-items:baseline;margin-top:0}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>.shiny-options-group>.radio{margin-right:.3em}.quarto-dashboard .card .card-toolbar .form-select{padding-top:.2em;padding-bottom:.2em}.quarto-dashboard .card .card-toolbar .shiny-input-select{min-width:6em}.quarto-dashboard .card .card-toolbar div.checkbox{margin-bottom:0px}.quarto-dashboard .card .card-toolbar>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card-body>table>thead{border-top:none}.quarto-dashboard .card-body>.table>:not(caption)>*>*{background-color:#2d2d2d}.tableFloatingHeaderOriginal{background-color:#2d2d2d;position:sticky !important;top:0 !important}.dashboard-data-table{margin-top:-1px}div.value-box-area span.observablehq--number{font-size:calc(clamp(.1em,15cqw,5em)*1.25);line-height:1.2;color:inherit;font-family:var(--bs-body-font-family)}.quarto-listing{padding-bottom:1em}.listing-pagination{padding-top:.5em}ul.pagination{float:right;padding-left:8px;padding-top:.5em}ul.pagination li{padding-right:.75em}ul.pagination li.disabled a,ul.pagination li.active a{color:#fff;text-decoration:none}ul.pagination li:last-of-type{padding-right:0}.listing-actions-group{display:flex}.listing-actions-group .form-select,.listing-actions-group .form-control{background-color:#222;color:#fff}.quarto-listing-filter{margin-bottom:1em;width:200px;margin-left:auto}.quarto-listing-sort{margin-bottom:1em;margin-right:auto;width:auto}.quarto-listing-sort .input-group-text{font-size:.8em}.input-group-text{border-right:none}.quarto-listing-sort select.form-select{font-size:.8em}.listing-no-matching{text-align:center;padding-top:2em;padding-bottom:3em;font-size:1em}#quarto-margin-sidebar .quarto-listing-category{padding-top:0;font-size:1rem}#quarto-margin-sidebar .quarto-listing-category-title{cursor:pointer;font-weight:600;font-size:1rem}.quarto-listing-category .category{cursor:pointer}.quarto-listing-category .category.active{font-weight:600}.quarto-listing-category.category-cloud{display:flex;flex-wrap:wrap;align-items:baseline}.quarto-listing-category.category-cloud .category{padding-right:5px}.quarto-listing-category.category-cloud .category-cloud-1{font-size:.75em}.quarto-listing-category.category-cloud .category-cloud-2{font-size:.95em}.quarto-listing-category.category-cloud .category-cloud-3{font-size:1.15em}.quarto-listing-category.category-cloud .category-cloud-4{font-size:1.35em}.quarto-listing-category.category-cloud .category-cloud-5{font-size:1.55em}.quarto-listing-category.category-cloud .category-cloud-6{font-size:1.75em}.quarto-listing-category.category-cloud .category-cloud-7{font-size:1.95em}.quarto-listing-category.category-cloud .category-cloud-8{font-size:2.15em}.quarto-listing-category.category-cloud .category-cloud-9{font-size:2.35em}.quarto-listing-category.category-cloud .category-cloud-10{font-size:2.55em}.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-1{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-2{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-3{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-3{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-4{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-4{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-5{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-5{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-6{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-6{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-7{grid-template-columns:repeat(7, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-7{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-7{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-8{grid-template-columns:repeat(8, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-8{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-8{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-9{grid-template-columns:repeat(9, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-9{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-9{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-10{grid-template-columns:repeat(10, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-10{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-10{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-11{grid-template-columns:repeat(11, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-11{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-11{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-12{grid-template-columns:repeat(12, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-12{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-12{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-grid{gap:1.5em}.quarto-grid-item.borderless{border:none}.quarto-grid-item.borderless .listing-categories .listing-category:last-of-type,.quarto-grid-item.borderless .listing-categories .listing-category:first-of-type{padding-left:0}.quarto-grid-item.borderless .listing-categories .listing-category{border:0}.quarto-grid-link{text-decoration:none;color:inherit}.quarto-grid-link:hover{text-decoration:none;color:inherit}.quarto-grid-item h5.title,.quarto-grid-item .title.h5{margin-top:0;margin-bottom:0}.quarto-grid-item .card-footer{display:flex;justify-content:space-between;font-size:.8em}.quarto-grid-item .card-footer p{margin-bottom:0}.quarto-grid-item p.card-img-top{margin-bottom:0}.quarto-grid-item p.card-img-top>img{object-fit:cover}.quarto-grid-item .card-other-values{margin-top:.5em;font-size:.8em}.quarto-grid-item .card-other-values tr{margin-bottom:.5em}.quarto-grid-item .card-other-values tr>td:first-of-type{font-weight:600;padding-right:1em;padding-left:1em;vertical-align:top}.quarto-grid-item div.post-contents{display:flex;flex-direction:column;text-decoration:none;height:100%}.quarto-grid-item .listing-item-img-placeholder{background-color:rgba(52,58,64,.25);flex-shrink:0}.quarto-grid-item .card-attribution{padding-top:1em;display:flex;gap:1em;text-transform:uppercase;color:#6c757d;font-weight:500;flex-grow:10;align-items:flex-end}.quarto-grid-item .description{padding-bottom:1em}.quarto-grid-item .card-attribution .date{align-self:flex-end}.quarto-grid-item .card-attribution.justify{justify-content:space-between}.quarto-grid-item .card-attribution.start{justify-content:flex-start}.quarto-grid-item .card-attribution.end{justify-content:flex-end}.quarto-grid-item .card-title{margin-bottom:.1em}.quarto-grid-item .card-subtitle{padding-top:.25em}.quarto-grid-item .card-text{font-size:.9em}.quarto-grid-item .listing-reading-time{padding-bottom:.25em}.quarto-grid-item .card-text-small{font-size:.8em}.quarto-grid-item .card-subtitle.subtitle{font-size:.9em;font-weight:600;padding-bottom:.5em}.quarto-grid-item .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}.quarto-grid-item .listing-categories .listing-category{color:#6c757d;border:solid #6c757d 1px;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}.quarto-grid-item.card-right{text-align:right}.quarto-grid-item.card-right .listing-categories{justify-content:flex-end}.quarto-grid-item.card-left{text-align:left}.quarto-grid-item.card-center{text-align:center}.quarto-grid-item.card-center .listing-description{text-align:justify}.quarto-grid-item.card-center .listing-categories{justify-content:center}table.quarto-listing-table td.image{padding:0px}table.quarto-listing-table td.image img{width:100%;max-width:50px;object-fit:contain}table.quarto-listing-table a{text-decoration:none;word-break:keep-all}table.quarto-listing-table th a{color:inherit}table.quarto-listing-table th a.asc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table th a.desc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table.table-hover td{cursor:pointer}.quarto-post.image-left{flex-direction:row}.quarto-post.image-right{flex-direction:row-reverse}@media(max-width: 767.98px){.quarto-post.image-right,.quarto-post.image-left{gap:0em;flex-direction:column}.quarto-post .metadata{padding-bottom:1em;order:2}.quarto-post .body{order:1}.quarto-post .thumbnail{order:3}}.list.quarto-listing-default div:last-of-type{border-bottom:none}@media(min-width: 992px){.quarto-listing-container-default{margin-right:2em}}div.quarto-post{display:flex;gap:2em;margin-bottom:1.5em;border-bottom:1px solid #dee2e6}@media(max-width: 767.98px){div.quarto-post{padding-bottom:1em}}div.quarto-post .metadata{flex-basis:20%;flex-grow:0;margin-top:.2em;flex-shrink:10}div.quarto-post .thumbnail{flex-basis:30%;flex-grow:0;flex-shrink:0}div.quarto-post .thumbnail img{margin-top:.4em;width:100%;object-fit:cover}div.quarto-post .body{flex-basis:45%;flex-grow:1;flex-shrink:0}div.quarto-post .body h3.listing-title,div.quarto-post .body .listing-title.h3{margin-top:0px;margin-bottom:0px;border-bottom:none}div.quarto-post .body .listing-subtitle{font-size:.875em;margin-bottom:.5em;margin-top:.2em}div.quarto-post .body .description{font-size:.9em}div.quarto-post .body pre code{white-space:pre-wrap}div.quarto-post a{color:#fff;text-decoration:none}div.quarto-post .metadata{display:flex;flex-direction:column;font-size:.8em;font-family:Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";flex-basis:33%}div.quarto-post .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}div.quarto-post .listing-categories .listing-category{color:#6c757d;border:solid #6c757d 1px;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}div.quarto-post .listing-description{margin-bottom:.5em}div.quarto-about-jolla{display:flex !important;flex-direction:column;align-items:center;margin-top:10%;padding-bottom:1em}div.quarto-about-jolla .about-image{object-fit:cover;margin-left:auto;margin-right:auto;margin-bottom:1.5em}div.quarto-about-jolla img.round{border-radius:50%}div.quarto-about-jolla img.rounded{border-radius:10px}div.quarto-about-jolla .quarto-title h1.title,div.quarto-about-jolla .quarto-title .title.h1{text-align:center}div.quarto-about-jolla .quarto-title .description{text-align:center}div.quarto-about-jolla h2,div.quarto-about-jolla .h2{border-bottom:none}div.quarto-about-jolla .about-sep{width:60%}div.quarto-about-jolla main{text-align:center}div.quarto-about-jolla .about-links{display:flex}@media(min-width: 992px){div.quarto-about-jolla .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-jolla .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-jolla .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-jolla .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-jolla .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-jolla .about-link:hover{color:#00bc8c}div.quarto-about-jolla .about-link i.bi{margin-right:.15em}div.quarto-about-solana{display:flex !important;flex-direction:column;padding-top:3em !important;padding-bottom:1em}div.quarto-about-solana .about-entity{display:flex !important;align-items:start;justify-content:space-between}@media(min-width: 992px){div.quarto-about-solana .about-entity{flex-direction:row}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity{flex-direction:column-reverse;align-items:center;text-align:center}}div.quarto-about-solana .about-entity .entity-contents{display:flex;flex-direction:column}@media(max-width: 767.98px){div.quarto-about-solana .about-entity .entity-contents{width:100%}}div.quarto-about-solana .about-entity .about-image{object-fit:cover}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-image{margin-bottom:1.5em}}div.quarto-about-solana .about-entity img.round{border-radius:50%}div.quarto-about-solana .about-entity img.rounded{border-radius:10px}div.quarto-about-solana .about-entity .about-links{display:flex;justify-content:left;padding-bottom:1.2em}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-solana .about-entity .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-solana .about-entity .about-link:hover{color:#00bc8c}div.quarto-about-solana .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-solana .about-contents{padding-right:1.5em;flex-basis:0;flex-grow:1}div.quarto-about-solana .about-contents main.content{margin-top:0}div.quarto-about-solana .about-contents h2,div.quarto-about-solana .about-contents .h2{border-bottom:none}div.quarto-about-trestles{display:flex !important;flex-direction:row;padding-top:3em !important;padding-bottom:1em}@media(max-width: 991.98px){div.quarto-about-trestles{flex-direction:column;padding-top:0em !important}}div.quarto-about-trestles .about-entity{display:flex !important;flex-direction:column;align-items:center;text-align:center;padding-right:1em}@media(min-width: 992px){div.quarto-about-trestles .about-entity{flex:0 0 42%}}div.quarto-about-trestles .about-entity .about-image{object-fit:cover;margin-bottom:1.5em}div.quarto-about-trestles .about-entity img.round{border-radius:50%}div.quarto-about-trestles .about-entity img.rounded{border-radius:10px}div.quarto-about-trestles .about-entity .about-links{display:flex;justify-content:center}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-trestles .about-entity .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-trestles .about-entity .about-link:hover{color:#00bc8c}div.quarto-about-trestles .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-trestles .about-contents{flex-basis:0;flex-grow:1}div.quarto-about-trestles .about-contents h2,div.quarto-about-trestles .about-contents .h2{border-bottom:none}@media(min-width: 992px){div.quarto-about-trestles .about-contents{border-left:solid 1px #dee2e6;padding-left:1.5em}}div.quarto-about-trestles .about-contents main.content{margin-top:0}div.quarto-about-marquee{padding-bottom:1em}div.quarto-about-marquee .about-contents{display:flex;flex-direction:column}div.quarto-about-marquee .about-image{max-height:550px;margin-bottom:1.5em;object-fit:cover}div.quarto-about-marquee img.round{border-radius:50%}div.quarto-about-marquee img.rounded{border-radius:10px}div.quarto-about-marquee h2,div.quarto-about-marquee .h2{border-bottom:none}div.quarto-about-marquee .about-links{display:flex;justify-content:center;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-marquee .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-marquee .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-marquee .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-marquee .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-marquee .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-marquee .about-link:hover{color:#00bc8c}div.quarto-about-marquee .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-marquee .about-link{border:none}}div.quarto-about-broadside{display:flex;flex-direction:column;padding-bottom:1em}div.quarto-about-broadside .about-main{display:flex !important;padding-top:0 !important}@media(min-width: 992px){div.quarto-about-broadside .about-main{flex-direction:row;align-items:flex-start}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main{flex-direction:column}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main .about-entity{flex-shrink:0;width:100%;height:450px;margin-bottom:1.5em;background-size:cover;background-repeat:no-repeat}}@media(min-width: 992px){div.quarto-about-broadside .about-main .about-entity{flex:0 10 50%;margin-right:1.5em;width:100%;height:100%;background-size:100%;background-repeat:no-repeat}}div.quarto-about-broadside .about-main .about-contents{padding-top:14px;flex:0 0 50%}div.quarto-about-broadside h2,div.quarto-about-broadside .h2{border-bottom:none}div.quarto-about-broadside .about-sep{margin-top:1.5em;width:60%;align-self:center}div.quarto-about-broadside .about-links{display:flex;justify-content:center;column-gap:20px;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-broadside .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-broadside .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-broadside .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-broadside .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-broadside .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-broadside .about-link:hover{color:#00bc8c}div.quarto-about-broadside .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-broadside .about-link{border:none}}.tippy-box[data-theme~=quarto]{background-color:#222;border:solid 1px #dee2e6;border-radius:.25rem;color:#fff;font-size:.875rem}.tippy-box[data-theme~=quarto]>.tippy-backdrop{background-color:#222}.tippy-box[data-theme~=quarto]>.tippy-arrow:after,.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{content:"";position:absolute;z-index:-1}.tippy-box[data-theme~=quarto]>.tippy-arrow:after{border-color:rgba(0,0,0,0);border-style:solid}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-6px}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-6px}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-6px}.tippy-box[data-placement^=left]>.tippy-arrow:before{right:-6px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:before{border-top-color:#222}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:after{border-top-color:#dee2e6;border-width:7px 7px 0;top:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow>svg{top:16px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow:after{top:17px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#222;bottom:16px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:#dee2e6;border-width:0 7px 7px;bottom:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:15px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow:after{bottom:17px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:before{border-left-color:#222}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:after{border-left-color:#dee2e6;border-width:7px 0 7px 7px;left:17px;top:1px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow>svg{left:11px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow:after{left:12px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:before{border-right-color:#222;right:16px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:#dee2e6}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow{fill:#fff}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px}.top-right{position:absolute;top:1em;right:1em}.visually-hidden{border:0;clip:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none !important}.zindex-bottom{z-index:-1 !important}figure.figure{display:block}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p,.quarto-figure-left>figure>div{text-align:left}.quarto-figure-center>figure>p,.quarto-figure-center>figure>div{text-align:center}.quarto-figure-right>figure>p,.quarto-figure-right>figure>div{text-align:right}.quarto-figure>figure>div.cell-annotation,.quarto-figure>figure>div code{text-align:left}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption.quarto-float-caption-bottom{margin-bottom:.5em}figure>figcaption.quarto-float-caption-top{margin-top:.5em}div[id^=tbl-]{position:relative}.quarto-figure>.anchorjs-link{position:absolute;top:.6em;right:.5em}div[id^=tbl-]>.anchorjs-link{position:absolute;top:.7em;right:.3em}.quarto-figure:hover>.anchorjs-link,div[id^=tbl-]:hover>.anchorjs-link,h2:hover>.anchorjs-link,.h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,.h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,.h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,.h5:hover>.anchorjs-link,h6:hover>.anchorjs-link,.h6:hover>.anchorjs-link,.reveal-anchorjs-link>.anchorjs-link{opacity:1}#title-block-header{margin-block-end:1rem;position:relative;margin-top:-1px}#title-block-header .abstract{margin-block-start:1rem}#title-block-header .abstract .abstract-title{font-weight:600}#title-block-header a{text-decoration:none}#title-block-header .author,#title-block-header .date,#title-block-header .doi{margin-block-end:.2rem}#title-block-header .quarto-title-block>div{display:flex}#title-block-header .quarto-title-block>div>h1,#title-block-header .quarto-title-block>div>.h1{flex-grow:1}#title-block-header .quarto-title-block>div>button{flex-shrink:0;height:2.25rem;margin-top:0}@media(min-width: 992px){#title-block-header .quarto-title-block>div>button{margin-top:5px}}tr.header>th>p:last-of-type{margin-bottom:0px}table,table.table{margin-top:.5rem;margin-bottom:.5rem}caption,.table-caption{padding-top:.5rem;padding-bottom:.5rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-top{margin-top:.5rem;margin-bottom:.25rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-bottom{padding-top:.25rem;margin-bottom:.5rem;text-align:center}.utterances{max-width:none;margin-left:-8px}iframe{margin-bottom:1em}details{margin-bottom:1em}details[show]{margin-bottom:0}details>summary{color:#6c757d}details>summary>p:only-child{display:inline}pre.sourceCode,code.sourceCode{position:relative}dd code:not(.sourceCode),p code:not(.sourceCode){white-space:pre-wrap}code{white-space:pre}@media print{code{white-space:pre-wrap}}pre>code{display:block}pre>code.sourceCode{white-space:pre}pre>code.sourceCode>span>a:first-child::before{text-decoration:none}pre.code-overflow-wrap>code.sourceCode{white-space:pre-wrap}pre.code-overflow-scroll>code.sourceCode{white-space:pre}code a:any-link{color:inherit;text-decoration:none}code a:hover{color:inherit;text-decoration:underline}ul.task-list{padding-left:1em}[data-tippy-root]{display:inline-block}.tippy-content .footnote-back{display:none}.footnote-back{margin-left:.2em}.tippy-content{overflow-x:auto}.quarto-embedded-source-code{display:none}.quarto-unresolved-ref{font-weight:600}.quarto-cover-image{max-width:35%;float:right;margin-left:30px}.cell-output-display .widget-subarea{margin-bottom:1em}.cell-output-display:not(.no-overflow-x),.knitsql-table:not(.no-overflow-x){overflow-x:auto}.panel-input{margin-bottom:1em}.panel-input>div,.panel-input>div>div{display:inline-block;vertical-align:top;padding-right:12px}.panel-input>p:last-child{margin-bottom:0}.layout-sidebar{margin-bottom:1em}.layout-sidebar .tab-content{border:none}.tab-content>.page-columns.active{display:grid}div.sourceCode>iframe{width:100%;height:300px;margin-bottom:-0.5em}a{text-underline-offset:3px}div.ansi-escaped-output{font-family:monospace;display:block}/*! + */@import"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400&display=swap";:root,[data-bs-theme=light]{--bs-blue: #375a7f;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #e83e8c;--bs-red: #e74c3c;--bs-orange: #fd7e14;--bs-yellow: #f39c12;--bs-green: #00bc8c;--bs-teal: #20c997;--bs-cyan: #3498db;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #ebebeb;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #444;--bs-gray-800: #343a40;--bs-gray-900: #222;--bs-default: #434343;--bs-primary: #375a7f;--bs-secondary: #434343;--bs-success: #00bc8c;--bs-info: #3498db;--bs-warning: #f39c12;--bs-danger: #e74c3c;--bs-light: #6f6f6f;--bs-dark: #2d2d2d;--bs-default-rgb: 67, 67, 67;--bs-primary-rgb: 55, 90, 127;--bs-secondary-rgb: 67, 67, 67;--bs-success-rgb: 0, 188, 140;--bs-info-rgb: 52, 152, 219;--bs-warning-rgb: 243, 156, 18;--bs-danger-rgb: 231, 76, 60;--bs-light-rgb: 111, 111, 111;--bs-dark-rgb: 45, 45, 45;--bs-primary-text-emphasis: #162433;--bs-secondary-text-emphasis: #1b1b1b;--bs-success-text-emphasis: #004b38;--bs-info-text-emphasis: #153d58;--bs-warning-text-emphasis: #613e07;--bs-danger-text-emphasis: #5c1e18;--bs-light-text-emphasis: #444;--bs-dark-text-emphasis: #444;--bs-primary-bg-subtle: #d7dee5;--bs-secondary-bg-subtle: #d9d9d9;--bs-success-bg-subtle: #ccf2e8;--bs-info-bg-subtle: #d6eaf8;--bs-warning-bg-subtle: #fdebd0;--bs-danger-bg-subtle: #fadbd8;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #afbdcc;--bs-secondary-border-subtle: #b4b4b4;--bs-success-border-subtle: #99e4d1;--bs-info-border-subtle: #aed6f1;--bs-warning-border-subtle: #fad7a0;--bs-danger-border-subtle: #f5b7b1;--bs-light-border-subtle: #ebebeb;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-root-font-size: 17px;--bs-body-font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #fff;--bs-body-color-rgb: 255, 255, 255;--bs-body-bg: #222;--bs-body-bg-rgb: 34, 34, 34;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(255, 255, 255, 0.75);--bs-secondary-color-rgb: 255, 255, 255;--bs-secondary-bg: #ebebeb;--bs-secondary-bg-rgb: 235, 235, 235;--bs-tertiary-color: rgba(255, 255, 255, 0.5);--bs-tertiary-color-rgb: 255, 255, 255;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #00bc8c;--bs-link-color-rgb: 0, 188, 140;--bs-link-decoration: underline;--bs-link-hover-color: #009670;--bs-link-hover-color-rgb: 0, 150, 112;--bs-code-color: #7d12ba;--bs-highlight-bg: #fdebd0;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, 0.175);--bs-border-radius: 0.25rem;--bs-border-radius-sm: 0.2em;--bs-border-radius-lg: 0.5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width: 0.25rem;--bs-focus-ring-opacity: 0.25;--bs-focus-ring-color: rgba(55, 90, 127, 0.25);--bs-form-valid-color: #00bc8c;--bs-form-valid-border-color: #00bc8c;--bs-form-invalid-color: #e74c3c;--bs-form-invalid-border-color: #e74c3c}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #222;--bs-body-bg-rgb: 34, 34, 34;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b2e31;--bs-tertiary-bg-rgb: 43, 46, 49;--bs-primary-text-emphasis: #879cb2;--bs-secondary-text-emphasis: #8e8e8e;--bs-success-text-emphasis: #66d7ba;--bs-info-text-emphasis: #85c1e9;--bs-warning-text-emphasis: #f8c471;--bs-danger-text-emphasis: #f1948a;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #0b1219;--bs-secondary-bg-subtle: #0d0d0d;--bs-success-bg-subtle: #00261c;--bs-info-bg-subtle: #0a1e2c;--bs-warning-bg-subtle: #311f04;--bs-danger-bg-subtle: #2e0f0c;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #21364c;--bs-secondary-border-subtle: #282828;--bs-success-border-subtle: #007154;--bs-info-border-subtle: #1f5b83;--bs-warning-border-subtle: #925e0b;--bs-danger-border-subtle: #8b2e24;--bs-light-border-subtle: #444;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #879cb2;--bs-link-hover-color: #9fb0c1;--bs-link-color-rgb: 135, 156, 178;--bs-link-hover-color-rgb: 159, 176, 193;--bs-code-color: white;--bs-border-color: #444;--bs-border-color-translucent: rgba(255, 255, 255, 0.15);--bs-form-valid-color: #66d7ba;--bs-form-valid-border-color: #66d7ba;--bs-form-invalid-color: #f1948a;--bs-form-invalid-border-color: #f1948a}*,*::before,*::after{box-sizing:border-box}:root{font-size:var(--bs-root-font-size)}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h1,.h1{font-size:2rem}}h2,.h2{font-size:calc(1.29rem + 0.48vw)}@media(min-width: 1200px){h2,.h2{font-size:1.65rem}}h3,.h3{font-size:calc(1.27rem + 0.24vw)}@media(min-width: 1200px){h3,.h3{font-size:1.45rem}}h4,.h4{font-size:1.25rem}h5,.h5{font-size:1.1rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #ebebeb}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:0.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em;color:inherit;background-color:#f8f9fa;padding:.5rem;border:1px solid var(--bs-border-color, #dee2e6);border-radius:.25rem}pre code{background-color:rgba(0,0,0,0);font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:var(--bs-code-color);background-color:#f8f9fa;border-radius:.25rem;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#222;background-color:#fff;border-radius:.2em}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:rgba(255,255,255,.75);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#222;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:rgba(255,255,255,.75)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media(min-width: 576px){.container-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media(min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: #fff;--bs-table-bg: #222;--bs-table-border-color: #434343;--bs-table-accent-bg: transparent;--bs-table-striped-color: #fff;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: #fff;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: #fff;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(1px*2) solid #fff}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #fff;--bs-table-bg: #375a7f;--bs-table-border-color: #4b6b8c;--bs-table-striped-bg: #416285;--bs-table-striped-color: #fff;--bs-table-active-bg: #4b6b8c;--bs-table-active-color: #fff;--bs-table-hover-bg: #466689;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #fff;--bs-table-bg: #434343;--bs-table-border-color: #565656;--bs-table-striped-bg: #4c4c4c;--bs-table-striped-color: #fff;--bs-table-active-bg: #565656;--bs-table-active-color: #fff;--bs-table-hover-bg: #515151;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #fff;--bs-table-bg: #00bc8c;--bs-table-border-color: #1ac398;--bs-table-striped-bg: #0dbf92;--bs-table-striped-color: #fff;--bs-table-active-bg: #1ac398;--bs-table-active-color: #fff;--bs-table-hover-bg: #13c195;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #fff;--bs-table-bg: #3498db;--bs-table-border-color: #48a2df;--bs-table-striped-bg: #3e9ddd;--bs-table-striped-color: #fff;--bs-table-active-bg: #48a2df;--bs-table-active-color: #fff;--bs-table-hover-bg: #43a0de;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #fff;--bs-table-bg: #f39c12;--bs-table-border-color: #f4a62a;--bs-table-striped-bg: #f4a11e;--bs-table-striped-color: #fff;--bs-table-active-bg: #f4a62a;--bs-table-active-color: #fff;--bs-table-hover-bg: #f4a324;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #fff;--bs-table-bg: #e74c3c;--bs-table-border-color: #e95e50;--bs-table-striped-bg: #e85546;--bs-table-striped-color: #fff;--bs-table-active-bg: #e95e50;--bs-table-active-color: #fff;--bs-table-hover-bg: #e9594b;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #fff;--bs-table-bg: #6f6f6f;--bs-table-border-color: #7d7d7d;--bs-table-striped-bg: #767676;--bs-table-striped-color: #fff;--bs-table-active-bg: #7d7d7d;--bs-table-active-color: #fff;--bs-table-hover-bg: #7a7a7a;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #2d2d2d;--bs-table-border-color: #424242;--bs-table-striped-bg: #383838;--bs-table-striped-color: #fff;--bs-table-active-bg: #424242;--bs-table-active-color: #fff;--bs-table-hover-bg: #3d3d3d;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(0.375rem + 1px);padding-bottom:calc(0.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:rgba(255,255,255,.75)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#2d2d2d;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fff;background-clip:padding-box;border:1px solid #adb5bd;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#2d2d2d;background-color:#fff;border-color:#9badbf;outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:#595959;opacity:1}.form-control:disabled{background-color:#ebebeb;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#6f6f6f;background-color:#434343;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#363636}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#fff;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2));padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + calc(1px * 2))}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2))}.form-control-color{width:3rem;height:calc(1.5em + 0.75rem + calc(1px * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:.25rem}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:.25rem}.form-control-color.form-control-sm{height:calc(1.5em + 0.5rem + calc(1px * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(1px * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#2d2d2d;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fff;background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #adb5bd;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#9badbf;outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{color:#595959;background-color:#ebebeb}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #2d2d2d}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem;border-radius:.2em}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.5rem}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-reverse{padding-right:0;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:0;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{--bs-form-check-bg: #fff;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:none;print-color-adjust:exact}.form-check-input[type=checkbox],.shiny-input-container .checkbox input[type=checkbox],.shiny-input-container .checkbox-inline input[type=checkbox],.shiny-input-container .radio input[type=checkbox],.shiny-input-container .radio-inline input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio],.shiny-input-container .checkbox input[type=radio],.shiny-input-container .checkbox-inline input[type=radio],.shiny-input-container .radio input[type=radio],.shiny-input-container .radio-inline input[type=radio]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#9badbf;outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.form-check-input:checked,.shiny-input-container .checkbox input:checked,.shiny-input-container .checkbox-inline input:checked,.shiny-input-container .radio input:checked,.shiny-input-container .radio-inline input:checked{background-color:#375a7f;border-color:#375a7f}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate,.shiny-input-container .checkbox input[type=checkbox]:indeterminate,.shiny-input-container .checkbox-inline input[type=checkbox]:indeterminate,.shiny-input-container .radio input[type=checkbox]:indeterminate,.shiny-input-container .radio-inline input[type=checkbox]:indeterminate{background-color:#375a7f;border-color:#375a7f;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{cursor:default;opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%239badbf'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:rgba(0,0,0,0)}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #222,0 0 0 .25rem rgba(55,90,127,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #222,0 0 0 .25rem rgba(55,90,127,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#375a7f;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#c3ced9}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#f8f9fa;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#375a7f;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#c3ced9}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#f8f9fa;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:rgba(255,255,255,.75)}.form-range:disabled::-moz-range-thumb{background-color:rgba(255,255,255,.75)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(1px * 2));min-height:calc(3.5rem + calc(1px * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:1px solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:#fff;border-radius:.25rem}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:1px 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:#ebebeb}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#6f6f6f;text-align:center;white-space:nowrap;background-color:#434343;border:1px solid #adb5bd;border-radius:.25rem}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(1px*-1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#00bc8c}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:#00bc8c;border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#00bc8c;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300bc8c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#00bc8c;box-shadow:0 0 0 .25rem rgba(0,188,140,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#00bc8c}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300bc8c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#00bc8c;box-shadow:0 0 0 .25rem rgba(0,188,140,.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#00bc8c}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#00bc8c}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(0,188,140,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#00bc8c}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#e74c3c}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:#e74c3c;border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#e74c3c;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e74c3c' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#e74c3c;box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#e74c3c}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e74c3c' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#e74c3c;box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#e74c3c}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#e74c3c}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#e74c3c}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: 0.75rem;--bs-btn-padding-y: 0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: #fff;--bs-btn-bg: transparent;--bs-btn-border-width: 1px;--bs-btn-border-color: transparent;--bs-btn-border-radius: 0.25rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity: 0.65;--bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-default{--bs-btn-color: #fff;--bs-btn-bg: #434343;--bs-btn-border-color: #434343;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #393939;--bs-btn-hover-border-color: #363636;--bs-btn-focus-shadow-rgb: 95, 95, 95;--bs-btn-active-color: #fff;--bs-btn-active-bg: #363636;--bs-btn-active-border-color: #323232;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #434343;--bs-btn-disabled-border-color: #434343}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #375a7f;--bs-btn-border-color: #375a7f;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #2f4d6c;--bs-btn-hover-border-color: #2c4866;--bs-btn-focus-shadow-rgb: 85, 115, 146;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2c4866;--bs-btn-active-border-color: #29445f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #375a7f;--bs-btn-disabled-border-color: #375a7f}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #434343;--bs-btn-border-color: #434343;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #393939;--bs-btn-hover-border-color: #363636;--bs-btn-focus-shadow-rgb: 95, 95, 95;--bs-btn-active-color: #fff;--bs-btn-active-bg: #363636;--bs-btn-active-border-color: #323232;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #434343;--bs-btn-disabled-border-color: #434343}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #00bc8c;--bs-btn-border-color: #00bc8c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #00a077;--bs-btn-hover-border-color: #009670;--bs-btn-focus-shadow-rgb: 38, 198, 157;--bs-btn-active-color: #fff;--bs-btn-active-bg: #009670;--bs-btn-active-border-color: #008d69;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #00bc8c;--bs-btn-disabled-border-color: #00bc8c}.btn-info{--bs-btn-color: #fff;--bs-btn-bg: #3498db;--bs-btn-border-color: #3498db;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #2c81ba;--bs-btn-hover-border-color: #2a7aaf;--bs-btn-focus-shadow-rgb: 82, 167, 224;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2a7aaf;--bs-btn-active-border-color: #2772a4;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #3498db;--bs-btn-disabled-border-color: #3498db}.btn-warning{--bs-btn-color: #fff;--bs-btn-bg: #f39c12;--bs-btn-border-color: #f39c12;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #cf850f;--bs-btn-hover-border-color: #c27d0e;--bs-btn-focus-shadow-rgb: 245, 171, 54;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c27d0e;--bs-btn-active-border-color: #b6750e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #f39c12;--bs-btn-disabled-border-color: #f39c12}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #e74c3c;--bs-btn-border-color: #e74c3c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c44133;--bs-btn-hover-border-color: #b93d30;--bs-btn-focus-shadow-rgb: 235, 103, 89;--bs-btn-active-color: #fff;--bs-btn-active-bg: #b93d30;--bs-btn-active-border-color: #ad392d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #e74c3c;--bs-btn-disabled-border-color: #e74c3c}.btn-light{--bs-btn-color: #fff;--bs-btn-bg: #6f6f6f;--bs-btn-border-color: #6f6f6f;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5e5e5e;--bs-btn-hover-border-color: #595959;--bs-btn-focus-shadow-rgb: 133, 133, 133;--bs-btn-active-color: #fff;--bs-btn-active-bg: #595959;--bs-btn-active-border-color: #535353;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6f6f6f;--bs-btn-disabled-border-color: #6f6f6f}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #2d2d2d;--bs-btn-border-color: #2d2d2d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #4d4d4d;--bs-btn-hover-border-color: #424242;--bs-btn-focus-shadow-rgb: 77, 77, 77;--bs-btn-active-color: #fff;--bs-btn-active-bg: #575757;--bs-btn-active-border-color: #424242;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #2d2d2d;--bs-btn-disabled-border-color: #2d2d2d}.btn-outline-default{--bs-btn-color: #434343;--bs-btn-border-color: #434343;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #434343;--bs-btn-hover-border-color: #434343;--bs-btn-focus-shadow-rgb: 67, 67, 67;--bs-btn-active-color: #fff;--bs-btn-active-bg: #434343;--bs-btn-active-border-color: #434343;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #434343;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #434343;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-primary{--bs-btn-color: #375a7f;--bs-btn-border-color: #375a7f;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #375a7f;--bs-btn-hover-border-color: #375a7f;--bs-btn-focus-shadow-rgb: 55, 90, 127;--bs-btn-active-color: #fff;--bs-btn-active-bg: #375a7f;--bs-btn-active-border-color: #375a7f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #375a7f;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #375a7f;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #434343;--bs-btn-border-color: #434343;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #434343;--bs-btn-hover-border-color: #434343;--bs-btn-focus-shadow-rgb: 67, 67, 67;--bs-btn-active-color: #fff;--bs-btn-active-bg: #434343;--bs-btn-active-border-color: #434343;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #434343;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #434343;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #00bc8c;--bs-btn-border-color: #00bc8c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #00bc8c;--bs-btn-hover-border-color: #00bc8c;--bs-btn-focus-shadow-rgb: 0, 188, 140;--bs-btn-active-color: #fff;--bs-btn-active-bg: #00bc8c;--bs-btn-active-border-color: #00bc8c;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #00bc8c;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #00bc8c;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #3498db;--bs-btn-border-color: #3498db;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #3498db;--bs-btn-hover-border-color: #3498db;--bs-btn-focus-shadow-rgb: 52, 152, 219;--bs-btn-active-color: #fff;--bs-btn-active-bg: #3498db;--bs-btn-active-border-color: #3498db;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #3498db;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #3498db;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #f39c12;--bs-btn-border-color: #f39c12;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #f39c12;--bs-btn-hover-border-color: #f39c12;--bs-btn-focus-shadow-rgb: 243, 156, 18;--bs-btn-active-color: #fff;--bs-btn-active-bg: #f39c12;--bs-btn-active-border-color: #f39c12;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #f39c12;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f39c12;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #e74c3c;--bs-btn-border-color: #e74c3c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #e74c3c;--bs-btn-hover-border-color: #e74c3c;--bs-btn-focus-shadow-rgb: 231, 76, 60;--bs-btn-active-color: #fff;--bs-btn-active-bg: #e74c3c;--bs-btn-active-border-color: #e74c3c;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #e74c3c;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #e74c3c;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #6f6f6f;--bs-btn-border-color: #6f6f6f;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6f6f6f;--bs-btn-hover-border-color: #6f6f6f;--bs-btn-focus-shadow-rgb: 111, 111, 111;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6f6f6f;--bs-btn-active-border-color: #6f6f6f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #6f6f6f;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6f6f6f;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #2d2d2d;--bs-btn-border-color: #2d2d2d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #2d2d2d;--bs-btn-hover-border-color: #2d2d2d;--bs-btn-focus-shadow-rgb: 45, 45, 45;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2d2d2d;--bs-btn-active-border-color: #2d2d2d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #2d2d2d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #2d2d2d;--bs-btn-bg: transparent;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: #00bc8c;--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: #009670;--bs-btn-hover-border-color: transparent;--bs-btn-active-color: #009670;--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 38, 198, 157;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: 0.5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius: 0.5rem}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: 0.25rem;--bs-btn-padding-x: 0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius: 0.2em}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: 0.5rem;--bs-dropdown-spacer: 0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color: #fff;--bs-dropdown-bg: #222;--bs-dropdown-border-color: #434343;--bs-dropdown-border-radius: 0.25rem;--bs-dropdown-border-width: 1px;--bs-dropdown-inner-border-radius: calc(0.25rem - 1px);--bs-dropdown-divider-bg: #434343;--bs-dropdown-divider-margin-y: 0.5rem;--bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-dropdown-link-color: #fff;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-link-hover-bg: #375a7f;--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #375a7f;--bs-dropdown-link-disabled-color: rgba(255, 255, 255, 0.5);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: 0.25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: 0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:0.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: #434343;--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: #434343;--bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #375a7f;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:.25rem}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(1px*-1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(1px*-1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 2rem;--bs-nav-link-padding-y: 0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: #00bc8c;--bs-nav-link-hover-color: #009670;--bs-nav-link-disabled-color: #6f6f6f;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: 1px;--bs-nav-tabs-border-color: #434343;--bs-nav-tabs-border-radius: 0.25rem;--bs-nav-tabs-link-hover-border-color: #434343 #434343 transparent;--bs-nav-tabs-link-active-color: #fff;--bs-nav-tabs-link-active-bg: #222;--bs-nav-tabs-link-active-border-color: #434343 #434343 transparent;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1*var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid rgba(0,0,0,0);border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1*var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: 0.25rem;--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #375a7f}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: 0.125rem;--bs-nav-underline-link-active-color: #000;gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid rgba(0,0,0,0)}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: 1rem;--bs-navbar-color: #dee2e6;--bs-navbar-hover-color: rgba(250, 254, 253, 0.8);--bs-navbar-disabled-color: rgba(222, 226, 230, 0.75);--bs-navbar-active-color: #fafefd;--bs-navbar-brand-padding-y: 0.3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: #dee2e6;--bs-navbar-brand-hover-color: #fafefd;--bs-navbar-nav-link-padding-x: 0.5rem;--bs-navbar-toggler-padding-y: 0.25;--bs-navbar-toggler-padding-x: 0;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23dee2e6' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(222, 226, 230, 0);--bs-navbar-toggler-border-radius: 0.25rem;--bs-navbar-toggler-focus-width: 0.25rem;--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: 0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:rgba(0,0,0,0);border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: #dee2e6;--bs-navbar-hover-color: rgba(250, 254, 253, 0.8);--bs-navbar-disabled-color: rgba(222, 226, 230, 0.75);--bs-navbar-active-color: #fafefd;--bs-navbar-brand-color: #dee2e6;--bs-navbar-brand-hover-color: #fafefd;--bs-navbar-toggler-border-color: rgba(222, 226, 230, 0);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23dee2e6' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23dee2e6' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: 0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: 1px;--bs-card-border-color: rgba(0, 0, 0, 0.175);--bs-card-border-radius: 0.25rem;--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(0.25rem - 1px);--bs-card-cap-padding-y: 0.5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(52, 58, 64, 0.25);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: #2d2d2d;--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: 0.75rem;position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-0.5*var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-bottom:calc(-1*var(--bs-card-cap-padding-y));margin-left:calc(-0.5*var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-left:calc(-0.5*var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media(min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: #fff;--bs-accordion-bg: #222;--bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;--bs-accordion-border-color: #dee2e6;--bs-accordion-border-width: 1px;--bs-accordion-border-radius: 0.25rem;--bs-accordion-inner-border-radius: calc(0.25rem - 1px);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #fff;--bs-accordion-btn-bg: #222;--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23162433'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #9badbf;--bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #162433;--bs-accordion-active-bg: #d7dee5}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1*var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23879cb2'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23879cb2'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0.75rem;--bs-breadcrumb-padding-y: 0.375rem;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: #434343;--bs-breadcrumb-border-radius: 0.25rem;--bs-breadcrumb-divider-color: rgba(255, 255, 255, 0.75);--bs-breadcrumb-item-padding-x: 0.5rem;--bs-breadcrumb-item-active-color: rgba(255, 255, 255, 0.75);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: 0.75rem;--bs-pagination-padding-y: 0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color: #fff;--bs-pagination-bg: #00bc8c;--bs-pagination-border-width: 0;--bs-pagination-border-color: transparent;--bs-pagination-border-radius: 0.25rem;--bs-pagination-hover-color: #fff;--bs-pagination-hover-bg: #00efb2;--bs-pagination-hover-border-color: transparent;--bs-pagination-focus-color: #009670;--bs-pagination-focus-bg: #ebebeb;--bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #00efb2;--bs-pagination-active-border-color: transparent;--bs-pagination-disabled-color: #fff;--bs-pagination-disabled-bg: #007053;--bs-pagination-disabled-border-color: transparent;display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(0*-1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: 0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius: 0.5rem}.pagination-sm{--bs-pagination-padding-x: 0.5rem;--bs-pagination-padding-y: 0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius: 0.2em}.badge{--bs-badge-padding-x: 0.65em;--bs-badge-padding-y: 0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: 0.25rem;display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: 1px solid var(--bs-alert-border-color);--bs-alert-border-radius: 0.25rem;--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{--bs-alert-color: var(--bs-default-text-emphasis);--bs-alert-bg: var(--bs-default-bg-subtle);--bs-alert-border-color: var(--bs-default-border-subtle);--bs-alert-link-color: var(--bs-default-text-emphasis)}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg: #434343;--bs-progress-border-radius: 0.25rem;--bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #375a7f;--bs-progress-bar-transition: width 0.6s ease;display:flex;display:-webkit-flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: #fff;--bs-list-group-bg: #2d2d2d;--bs-list-group-border-color: #434343;--bs-list-group-border-width: 1px;--bs-list-group-border-radius: 0.25rem;--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: 0.5rem;--bs-list-group-action-color: rgba(255, 255, 255, 0.75);--bs-list-group-action-hover-color: #fff;--bs-list-group-action-hover-bg: #434343;--bs-list-group-action-active-color: #fff;--bs-list-group-action-active-bg: #222;--bs-list-group-disabled-color: rgba(255, 255, 255, 0.75);--bs-list-group-disabled-bg: #2d2d2d;--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #375a7f;--bs-list-group-active-border-color: #375a7f;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1*var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{--bs-list-group-color: var(--bs-default-text-emphasis);--bs-list-group-bg: var(--bs-default-bg-subtle);--bs-list-group-border-color: var(--bs-default-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-default-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-default-border-subtle);--bs-list-group-active-color: var(--bs-default-bg-subtle);--bs-list-group-active-bg: var(--bs-default-text-emphasis);--bs-list-group-active-border-color: var(--bs-default-text-emphasis)}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #fff;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: 0.4;--bs-btn-close-hover-opacity: 1;--bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: 0.25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:rgba(0,0,0,0) var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: 0.75rem;--bs-toast-padding-y: 0.5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg: #434343;--bs-toast-border-width: 1px;--bs-toast-border-color: rgba(0, 0, 0, 0.175);--bs-toast-border-radius: 0.25rem;--bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-toast-header-color: rgba(255, 255, 255, 0.75);--bs-toast-header-bg: #2d2d2d;--bs-toast-header-border-color: rgba(0, 0, 0, 0.175);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-0.5*var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: 0.5rem;--bs-modal-color: ;--bs-modal-bg: #2d2d2d;--bs-modal-border-color: #434343;--bs-modal-border-width: 1px;--bs-modal-border-radius: 0.5rem;--bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius: calc(0.5rem - 1px);--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: #434343;--bs-modal-header-border-width: 1px;--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: 0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: #434343;--bs-modal-footer-border-width: 1px;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin)*2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - var(--bs-modal-margin)*2)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: 0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y)*.5) calc(var(--bs-modal-header-padding-x)*.5);margin:calc(-0.5*var(--bs-modal-header-padding-y)) calc(-0.5*var(--bs-modal-header-padding-x)) calc(-0.5*var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap)*.5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap)*.5)}@media(min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media(min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media(min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: 0.5rem;--bs-tooltip-padding-y: 0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color: #222;--bs-tooltip-bg: #000;--bs-tooltip-border-radius: 0.25rem;--bs-tooltip-opacity: 0.9;--bs-tooltip-arrow-width: 0.8rem;--bs-tooltip-arrow-height: 0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) 0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size:0.875rem;--bs-popover-bg: #2d2d2d;--bs-popover-border-width: 1px;--bs-popover-border-color: rgba(0, 0, 0, 0.175);--bs-popover-border-radius: 0.5rem;--bs-popover-inner-border-radius: calc(0.5rem - 1px);--bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: 0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: #434343;--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: #fff;--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: 0.5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{border-width:0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-0.5*var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) 0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-border-width: 0.25em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:rgba(0,0,0,0)}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: 0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: #fff;--bs-offcanvas-bg: #222;--bs-offcanvas-border-width: 1px;--bs-offcanvas-border-color: #434343;--bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-offcanvas-transition: transform 0.3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media(max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 575.98px)and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media(min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 767.98px)and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media(min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 991.98px)and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media(min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 1199.98px)and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media(min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 1399.98px)and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media(min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y)*.5) calc(var(--bs-offcanvas-padding-x)*.5);margin-top:calc(-0.5*var(--bs-offcanvas-padding-y));margin-right:calc(-0.5*var(--bs-offcanvas-padding-x));margin-bottom:calc(-0.5*var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-default{color:#fff !important;background-color:RGBA(var(--bs-default-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#fff !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#fff !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#fff !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-default{color:RGBA(var(--bs-default-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-default-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-default:hover,.link-default:focus{color:RGBA(54, 54, 54, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(54, 54, 54, var(--bs-link-underline-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(44, 72, 102, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(44, 72, 102, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(54, 54, 54, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(54, 54, 54, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(0, 150, 112, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(0, 150, 112, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(42, 122, 175, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(42, 122, 175, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(194, 125, 14, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(194, 125, 14, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(185, 61, 48, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(185, 61, 48, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(89, 89, 89, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(89, 89, 89, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(36, 36, 36, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(36, 36, 36, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;-webkit-flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media(prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-inline-grid{display:inline-grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.focus-ring-default{--bs-focus-ring-color: rgba(var(--bs-default-rgb), var(--bs-focus-ring-opacity))}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-start-0{border-left:0 !important}.border-default{--bs-border-opacity: 1;border-color:rgba(var(--bs-default-rgb), var(--bs-border-opacity)) !important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.border-opacity-10{--bs-border-opacity: 0.1}.border-opacity-25{--bs-border-opacity: 0.25}.border-opacity-50{--bs-border-opacity: 0.5}.border-opacity-75{--bs-border-opacity: 0.75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.325rem + 0.9vw) !important}.fs-2{font-size:calc(1.29rem + 0.48vw) !important}.fs-3{font-size:calc(1.27rem + 0.24vw) !important}.fs-4{font-size:1.25rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: 0.25}.text-opacity-50{--bs-text-opacity: 0.5}.text-opacity-75{--bs-text-opacity: 0.75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity: 0.1}.link-opacity-10-hover:hover{--bs-link-opacity: 0.1}.link-opacity-25{--bs-link-opacity: 0.25}.link-opacity-25-hover:hover{--bs-link-opacity: 0.25}.link-opacity-50{--bs-link-opacity: 0.5}.link-opacity-50-hover:hover{--bs-link-opacity: 0.5}.link-opacity-75{--bs-link-opacity: 0.75}.link-opacity-75-hover:hover{--bs-link-opacity: 0.75}.link-opacity-100{--bs-link-opacity: 1}.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-default{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-default-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10{--bs-link-underline-opacity: 0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: 0.1}.link-underline-opacity-25{--bs-link-underline-opacity: 0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: 0.25}.link-underline-opacity-50{--bs-link-underline-opacity: 0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: 0.5}.link-underline-opacity-75{--bs-link-underline-opacity: 0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: 0.75}.link-underline-opacity-100{--bs-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-opacity-10{--bs-bg-opacity: 0.1}.bg-opacity-25{--bs-bg-opacity: 0.25}.bg-opacity-50{--bs-bg-opacity: 0.5}.bg-opacity-75{--bs-bg-opacity: 0.75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:var(--bs-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--bs-border-radius-sm) !important}.rounded-2{border-radius:var(--bs-border-radius) !important}.rounded-3{border-radius:var(--bs-border-radius-lg) !important}.rounded-4{border-radius:var(--bs-border-radius-xl) !important}.rounded-5{border-radius:var(--bs-border-radius-xxl) !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--bs-border-radius-pill) !important}.rounded-top{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-inline-grid{display:inline-grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-inline-grid{display:inline-grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-inline-grid{display:inline-grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-inline-grid{display:inline-grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-inline-grid{display:inline-grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#fff}.bg-primary{color:#fff}.bg-secondary{color:#fff}.bg-success{color:#fff}.bg-info{color:#fff}.bg-warning{color:#fff}.bg-danger{color:#fff}.bg-light{color:#fff}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.65rem !important}.fs-3{font-size:1.45rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-inline-grid{display:inline-grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.bg-blue{--bslib-color-bg: #375a7f;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #375a7f;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #6f42c1;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #6f42c1;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #e83e8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #e83e8c;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #e74c3c;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #fd7e14;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #fd7e14;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #f39c12;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #00bc8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #00bc8c;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #3498db;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #3498db;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #434343}.bg-default{--bslib-color-bg: #434343;--bslib-color-fg: #fff}.text-primary{--bslib-color-fg: #375a7f}.bg-primary{--bslib-color-bg: #375a7f;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #434343}.bg-secondary{--bslib-color-bg: #434343;--bslib-color-fg: #fff}.text-success{--bslib-color-fg: #00bc8c}.bg-success{--bslib-color-bg: #00bc8c;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #3498db}.bg-info{--bslib-color-bg: #3498db;--bslib-color-fg: #fff}.text-warning{--bslib-color-fg: #f39c12}.bg-warning{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff}.text-danger{--bslib-color-fg: #e74c3c}.bg-danger{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #6f6f6f}.bg-light{--bslib-color-bg: #6f6f6f;--bslib-color-fg: #fff}.text-dark{--bslib-color-fg: #2d2d2d}.bg-dark{--bslib-color-bg: #2d2d2d;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4a3cad;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4a3cad;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4d5099;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4d5099;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7e4f84;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #7e4f84;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #7d5464;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #7d5464;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #866854;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #866854;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #827453;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #827453;color:#fff}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #218184;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #218184;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #fff;--bslib-color-bg: #2e8689;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #2e8689;color:#fff}.bg-gradient-blue-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #3673a4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #3673a4;color:#fff}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #532ec4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #532ec4;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #6a24de;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #6a24de;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9a22c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9a22c9;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #9a28a9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9a28a9;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a23c99;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a23c99;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #9e4898;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #9e4898;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #3d55c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #3d55c9;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5246e9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5246e9;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #594ca7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #594ca7;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #6b2ed5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #6b2ed5;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9f40ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9f40ac;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #9f468c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9f468c;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a85a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a85a7c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a4667b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #a4667b;color:#fff}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #4373ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #4373ac;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4f78b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4f78b0;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5764cb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5764cb;color:#fff}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a14987;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #a14987;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b42cb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b42cb5;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b840a1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b840a1;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #e8446c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #e8446c;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0585c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0585c;color:#fff}.bg-gradient-pink-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec645b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec645b;color:#fff}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #8b708c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #8b708c;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #fff;--bslib-color-bg: #987690;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #987690;color:#fff}.bg-gradient-pink-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a062ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a062ac;color:#fff}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a15257;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #a15257;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b33485;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b33485;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b74871;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b74871;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #e7465c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #e7465c;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0602c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0602c;color:#fff}.bg-gradient-red-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec6c2b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec6c2b;color:#fff}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #8b795c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #8b795c;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #fff;--bslib-color-bg: #977e60;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #977e60;color:#fff}.bg-gradient-red-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #9f6a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #9f6a7c;color:#fff}.bg-gradient-orange-blue{--bslib-color-fg: #fff;--bslib-color-bg: #ae703f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #ae703f;color:#fff}.bg-gradient-orange-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #c1526d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c1526d;color:#fff}.bg-gradient-orange-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c46659;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c46659;color:#fff}.bg-gradient-orange-pink{--bslib-color-fg: #fff;--bslib-color-bg: #f56444;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #f56444;color:#fff}.bg-gradient-orange-red{--bslib-color-fg: #fff;--bslib-color-bg: #f46a24;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #f46a24;color:#fff}.bg-gradient-orange-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #f98a13;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #f98a13;color:#fff}.bg-gradient-orange-green{--bslib-color-fg: #fff;--bslib-color-bg: #989744;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #989744;color:#fff}.bg-gradient-orange-teal{--bslib-color-fg: #fff;--bslib-color-bg: #a59c48;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a59c48;color:#fff}.bg-gradient-orange-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #ad8864;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #ad8864;color:#fff}.bg-gradient-yellow-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a8823e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #a8823e;color:#fff}.bg-gradient-yellow-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #bb646c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #bb646c;color:#fff}.bg-gradient-yellow-purple{--bslib-color-fg: #fff;--bslib-color-bg: #be7858;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #be7858;color:#fff}.bg-gradient-yellow-pink{--bslib-color-fg: #fff;--bslib-color-bg: #ef7643;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #ef7643;color:#fff}.bg-gradient-yellow-red{--bslib-color-fg: #fff;--bslib-color-bg: #ee7c23;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #ee7c23;color:#fff}.bg-gradient-yellow-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f79013;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f79013;color:#fff}.bg-gradient-yellow-green{--bslib-color-fg: #fff;--bslib-color-bg: #92a943;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #92a943;color:#fff}.bg-gradient-yellow-teal{--bslib-color-fg: #fff;--bslib-color-bg: #9fae47;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #9fae47;color:#fff}.bg-gradient-yellow-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a79a62;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a79a62;color:#fff}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #169587;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #169587;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #2977b5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #2977b5;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #2c8ba1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #2c8ba1;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #5d8a8c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #5d8a8c;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #5c8f6c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #5c8f6c;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #fff;--bslib-color-bg: #65a35c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #65a35c;color:#fff}.bg-gradient-green-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #61af5b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #61af5b;color:#fff}.bg-gradient-green-teal{--bslib-color-fg: #fff;--bslib-color-bg: #0dc190;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #0dc190;color:#fff}.bg-gradient-green-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #15aeac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #15aeac;color:#fff}.bg-gradient-teal-blue{--bslib-color-fg: #fff;--bslib-color-bg: #299d8d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #299d8d;color:#fff}.bg-gradient-teal-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#fff}.bg-gradient-teal-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4093a8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4093a8;color:#fff}.bg-gradient-teal-pink{--bslib-color-fg: #fff;--bslib-color-bg: #709193;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #709193;color:#fff}.bg-gradient-teal-red{--bslib-color-fg: #fff;--bslib-color-bg: #709773;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #709773;color:#fff}.bg-gradient-teal-orange{--bslib-color-fg: #fff;--bslib-color-bg: #78ab63;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #78ab63;color:#fff}.bg-gradient-teal-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #74b762;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #74b762;color:#fff}.bg-gradient-teal-green{--bslib-color-fg: #fff;--bslib-color-bg: #13c493;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #13c493;color:#fff}.bg-gradient-teal-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #28b5b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #28b5b2;color:#fff}.bg-gradient-cyan-blue{--bslib-color-fg: #fff;--bslib-color-bg: #357fb6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #357fb6;color:#fff}.bg-gradient-cyan-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4862e4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4862e4;color:#fff}.bg-gradient-cyan-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4c76d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4c76d1;color:#fff}.bg-gradient-cyan-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7c74bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #7c74bb;color:#fff}.bg-gradient-cyan-red{--bslib-color-fg: #fff;--bslib-color-bg: #7c7a9b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #7c7a9b;color:#fff}.bg-gradient-cyan-orange{--bslib-color-fg: #fff;--bslib-color-bg: #848e8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #848e8b;color:#fff}.bg-gradient-cyan-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #809a8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #809a8b;color:#fff}.bg-gradient-cyan-green{--bslib-color-fg: #fff;--bslib-color-bg: #1fa6bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #1fa6bb;color:#fff}.bg-gradient-cyan-teal{--bslib-color-fg: #fff;--bslib-color-bg: #2cacc0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #2cacc0;color:#fff}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}.bg-blue{--bslib-color-bg: #375a7f;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #375a7f;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #6f42c1;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #6f42c1;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #e83e8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #e83e8c;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #e74c3c;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #fd7e14;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #fd7e14;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #f39c12;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #00bc8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #00bc8c;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #3498db;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #3498db;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #434343}.bg-default{--bslib-color-bg: #434343;--bslib-color-fg: #fff}.text-primary{--bslib-color-fg: #375a7f}.bg-primary{--bslib-color-bg: #375a7f;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #434343}.bg-secondary{--bslib-color-bg: #434343;--bslib-color-fg: #fff}.text-success{--bslib-color-fg: #00bc8c}.bg-success{--bslib-color-bg: #00bc8c;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #3498db}.bg-info{--bslib-color-bg: #3498db;--bslib-color-fg: #fff}.text-warning{--bslib-color-fg: #f39c12}.bg-warning{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff}.text-danger{--bslib-color-fg: #e74c3c}.bg-danger{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #6f6f6f}.bg-light{--bslib-color-bg: #6f6f6f;--bslib-color-fg: #fff}.text-dark{--bslib-color-fg: #2d2d2d}.bg-dark{--bslib-color-bg: #2d2d2d;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4a3cad;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4a3cad;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4d5099;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4d5099;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7e4f84;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #7e4f84;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #7d5464;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #7d5464;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #866854;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #866854;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #827453;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #827453;color:#fff}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #218184;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #218184;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #fff;--bslib-color-bg: #2e8689;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #2e8689;color:#fff}.bg-gradient-blue-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #3673a4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #375a7f var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #3673a4;color:#fff}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #532ec4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #532ec4;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #6a24de;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #6a24de;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9a22c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9a22c9;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #9a28a9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9a28a9;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a23c99;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a23c99;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #9e4898;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #9e4898;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #3d55c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #3d55c9;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5246e9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5246e9;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #594ca7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #594ca7;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #6b2ed5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #6b2ed5;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9f40ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9f40ac;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #9f468c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9f468c;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a85a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a85a7c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a4667b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #a4667b;color:#fff}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #4373ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #4373ac;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4f78b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4f78b0;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5764cb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5764cb;color:#fff}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a14987;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #a14987;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b42cb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b42cb5;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b840a1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b840a1;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #e8446c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #e8446c;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0585c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0585c;color:#fff}.bg-gradient-pink-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec645b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec645b;color:#fff}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #8b708c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #8b708c;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #fff;--bslib-color-bg: #987690;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #987690;color:#fff}.bg-gradient-pink-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a062ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a062ac;color:#fff}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a15257;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #a15257;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b33485;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b33485;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b74871;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b74871;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #e7465c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #e7465c;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0602c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0602c;color:#fff}.bg-gradient-red-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec6c2b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec6c2b;color:#fff}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #8b795c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #8b795c;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #fff;--bslib-color-bg: #977e60;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #977e60;color:#fff}.bg-gradient-red-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #9f6a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #9f6a7c;color:#fff}.bg-gradient-orange-blue{--bslib-color-fg: #fff;--bslib-color-bg: #ae703f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #ae703f;color:#fff}.bg-gradient-orange-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #c1526d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c1526d;color:#fff}.bg-gradient-orange-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c46659;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c46659;color:#fff}.bg-gradient-orange-pink{--bslib-color-fg: #fff;--bslib-color-bg: #f56444;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #f56444;color:#fff}.bg-gradient-orange-red{--bslib-color-fg: #fff;--bslib-color-bg: #f46a24;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #f46a24;color:#fff}.bg-gradient-orange-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #f98a13;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #f98a13;color:#fff}.bg-gradient-orange-green{--bslib-color-fg: #fff;--bslib-color-bg: #989744;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #989744;color:#fff}.bg-gradient-orange-teal{--bslib-color-fg: #fff;--bslib-color-bg: #a59c48;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a59c48;color:#fff}.bg-gradient-orange-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #ad8864;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #ad8864;color:#fff}.bg-gradient-yellow-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a8823e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #a8823e;color:#fff}.bg-gradient-yellow-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #bb646c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #bb646c;color:#fff}.bg-gradient-yellow-purple{--bslib-color-fg: #fff;--bslib-color-bg: #be7858;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #be7858;color:#fff}.bg-gradient-yellow-pink{--bslib-color-fg: #fff;--bslib-color-bg: #ef7643;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #ef7643;color:#fff}.bg-gradient-yellow-red{--bslib-color-fg: #fff;--bslib-color-bg: #ee7c23;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #ee7c23;color:#fff}.bg-gradient-yellow-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f79013;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f79013;color:#fff}.bg-gradient-yellow-green{--bslib-color-fg: #fff;--bslib-color-bg: #92a943;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #92a943;color:#fff}.bg-gradient-yellow-teal{--bslib-color-fg: #fff;--bslib-color-bg: #9fae47;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #9fae47;color:#fff}.bg-gradient-yellow-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a79a62;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a79a62;color:#fff}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #169587;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #169587;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #2977b5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #2977b5;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #2c8ba1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #2c8ba1;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #5d8a8c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #5d8a8c;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #5c8f6c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #5c8f6c;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #fff;--bslib-color-bg: #65a35c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #65a35c;color:#fff}.bg-gradient-green-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #61af5b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #61af5b;color:#fff}.bg-gradient-green-teal{--bslib-color-fg: #fff;--bslib-color-bg: #0dc190;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #0dc190;color:#fff}.bg-gradient-green-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #15aeac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bc8c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #15aeac;color:#fff}.bg-gradient-teal-blue{--bslib-color-fg: #fff;--bslib-color-bg: #299d8d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #299d8d;color:#fff}.bg-gradient-teal-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#fff}.bg-gradient-teal-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4093a8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4093a8;color:#fff}.bg-gradient-teal-pink{--bslib-color-fg: #fff;--bslib-color-bg: #709193;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #709193;color:#fff}.bg-gradient-teal-red{--bslib-color-fg: #fff;--bslib-color-bg: #709773;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #709773;color:#fff}.bg-gradient-teal-orange{--bslib-color-fg: #fff;--bslib-color-bg: #78ab63;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #78ab63;color:#fff}.bg-gradient-teal-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #74b762;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #74b762;color:#fff}.bg-gradient-teal-green{--bslib-color-fg: #fff;--bslib-color-bg: #13c493;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #13c493;color:#fff}.bg-gradient-teal-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #28b5b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #28b5b2;color:#fff}.bg-gradient-cyan-blue{--bslib-color-fg: #fff;--bslib-color-bg: #357fb6;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #375a7f var(--bg-gradient-end, 180%)) #357fb6;color:#fff}.bg-gradient-cyan-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4862e4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4862e4;color:#fff}.bg-gradient-cyan-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4c76d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4c76d1;color:#fff}.bg-gradient-cyan-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7c74bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #7c74bb;color:#fff}.bg-gradient-cyan-red{--bslib-color-fg: #fff;--bslib-color-bg: #7c7a9b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #7c7a9b;color:#fff}.bg-gradient-cyan-orange{--bslib-color-fg: #fff;--bslib-color-bg: #848e8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #848e8b;color:#fff}.bg-gradient-cyan-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #809a8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #809a8b;color:#fff}.bg-gradient-cyan-green{--bslib-color-fg: #fff;--bslib-color-bg: #1fa6bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #00bc8c var(--bg-gradient-end, 180%)) #1fa6bb;color:#fff}.bg-gradient-cyan-teal{--bslib-color-fg: #fff;--bslib-color-bg: #2cacc0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #2cacc0;color:#fff}.bslib-grid{display:grid !important;gap:var(--bslib-spacer, 1rem);height:var(--bslib-grid-height)}.bslib-grid.grid{grid-template-columns:repeat(var(--bs-columns, 12), minmax(0, 1fr));grid-template-rows:unset;grid-auto-rows:var(--bslib-grid--row-heights);--bslib-grid--row-heights--xs: unset;--bslib-grid--row-heights--sm: unset;--bslib-grid--row-heights--md: unset;--bslib-grid--row-heights--lg: unset;--bslib-grid--row-heights--xl: unset;--bslib-grid--row-heights--xxl: unset}.bslib-grid.grid.bslib-grid--row-heights--xs{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xs)}@media(min-width: 576px){.bslib-grid.grid.bslib-grid--row-heights--sm{--bslib-grid--row-heights: var(--bslib-grid--row-heights--sm)}}@media(min-width: 768px){.bslib-grid.grid.bslib-grid--row-heights--md{--bslib-grid--row-heights: var(--bslib-grid--row-heights--md)}}@media(min-width: 992px){.bslib-grid.grid.bslib-grid--row-heights--lg{--bslib-grid--row-heights: var(--bslib-grid--row-heights--lg)}}@media(min-width: 1200px){.bslib-grid.grid.bslib-grid--row-heights--xl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xl)}}@media(min-width: 1400px){.bslib-grid.grid.bslib-grid--row-heights--xxl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xxl)}}.bslib-grid>*>.shiny-input-container{width:100%}.bslib-grid-item{grid-column:auto/span 1}@media(max-width: 767.98px){.bslib-grid-item{grid-column:1/-1}}@media(max-width: 575.98px){.bslib-grid{grid-template-columns:1fr !important;height:var(--bslib-grid-height-mobile)}.bslib-grid.grid{height:unset !important;grid-auto-rows:var(--bslib-grid--row-heights--xs, auto)}}:root{--bslib-value-box-shadow: none;--bslib-value-box-border-width-auto-yes: var(--bslib-value-box-border-width-baseline);--bslib-value-box-border-width-auto-no: 0;--bslib-value-box-border-width-baseline: 1px}.bslib-value-box{border-width:var(--bslib-value-box-border-width-auto-no, var(--bslib-value-box-border-width-baseline));container-name:bslib-value-box;container-type:inline-size}.bslib-value-box.card{box-shadow:var(--bslib-value-box-shadow)}.bslib-value-box.border-auto{border-width:var(--bslib-value-box-border-width-auto-yes, var(--bslib-value-box-border-width-baseline))}.bslib-value-box.default{--bslib-value-box-bg-default: var(--bs-card-bg, #222);--bslib-value-box-border-color-default: var(--bs-card-border-color, rgba(0, 0, 0, 0.175));color:var(--bslib-value-box-color);background-color:var(--bslib-value-box-bg, var(--bslib-value-box-bg-default));border-color:var(--bslib-value-box-border-color, var(--bslib-value-box-border-color-default))}.bslib-value-box .value-box-grid{display:grid;grid-template-areas:"left right";align-items:center;overflow:hidden}.bslib-value-box .value-box-showcase{height:100%;max-height:var(---bslib-value-box-showcase-max-h, 100%)}.bslib-value-box .value-box-showcase,.bslib-value-box .value-box-showcase>.html-fill-item{width:100%}.bslib-value-box[data-full-screen=true] .value-box-showcase{max-height:var(---bslib-value-box-showcase-max-h-fs, 100%)}@media screen and (min-width: 575.98px){@container bslib-value-box (max-width: 300px){.bslib-value-box:not(.showcase-bottom) .value-box-grid{grid-template-columns:1fr !important;grid-template-rows:auto auto;grid-template-areas:"top" "bottom"}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-showcase{grid-area:top !important}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-area{grid-area:bottom !important;justify-content:end}}}.bslib-value-box .value-box-area{justify-content:center;padding:1.5rem 1rem;font-size:.9rem;font-weight:500}.bslib-value-box .value-box-area *{margin-bottom:0;margin-top:0}.bslib-value-box .value-box-title{font-size:1rem;margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.bslib-value-box .value-box-title:empty::after{content:" "}.bslib-value-box .value-box-value{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}@media(min-width: 1200px){.bslib-value-box .value-box-value{font-size:1.65rem}}.bslib-value-box .value-box-value:empty::after{content:" "}.bslib-value-box .value-box-showcase{align-items:center;justify-content:center;margin-top:auto;margin-bottom:auto;padding:1rem}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{opacity:.85;min-width:50px;max-width:125%}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{font-size:4rem}.bslib-value-box.showcase-top-right .value-box-grid{grid-template-columns:1fr var(---bslib-value-box-showcase-w, 50%)}.bslib-value-box.showcase-top-right .value-box-grid .value-box-showcase{grid-area:right;margin-left:auto;align-self:start;align-items:end;padding-left:0;padding-bottom:0}.bslib-value-box.showcase-top-right .value-box-grid .value-box-area{grid-area:left;align-self:end}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid{grid-template-columns:auto var(---bslib-value-box-showcase-w-fs, 1fr)}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid>div{align-self:center}.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-showcase{margin-top:0}@container bslib-value-box (max-width: 300px){.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-grid .value-box-showcase{padding-left:1rem}}.bslib-value-box.showcase-left-center .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w, 30%) auto}.bslib-value-box.showcase-left-center[data-full-screen=true] .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w-fs, 1fr) auto}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-showcase{grid-area:left}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-area{grid-area:right}.bslib-value-box.showcase-bottom .value-box-grid{grid-template-columns:1fr;grid-template-rows:1fr var(---bslib-value-box-showcase-h, auto);grid-template-areas:"top" "bottom";overflow:hidden}.bslib-value-box.showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.bslib-value-box.showcase-bottom .value-box-grid .value-box-area{grid-area:top}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid{grid-template-rows:1fr var(---bslib-value-box-showcase-h-fs, 2fr)}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid .value-box-showcase{padding:1rem}[data-bs-theme=dark] .bslib-value-box{--bslib-value-box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 50%)}:root{--bslib-page-sidebar-title-bg: #375a7f;--bslib-page-sidebar-title-color: #fff}.bslib-page-title{background-color:var(--bslib-page-sidebar-title-bg);color:var(--bslib-page-sidebar-title-color);font-size:1.25rem;font-weight:300;padding:var(--bslib-spacer, 1rem);padding-left:1.5rem;margin-bottom:0;border-bottom:1px solid #dee2e6}@media(min-width: 576px){.nav:not(.nav-hidden){display:flex !important;display:-webkit-flex !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column){float:none !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.bslib-nav-spacer{margin-left:auto !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.form-inline{margin-top:auto;margin-bottom:auto}.nav:not(.nav-hidden).nav-stacked{flex-direction:column;-webkit-flex-direction:column;height:100%}.nav:not(.nav-hidden).nav-stacked>.bslib-nav-spacer{margin-top:auto !important}}.bslib-card{overflow:auto}.bslib-card .card-body+.card-body{padding-top:0}.bslib-card .card-body{overflow:auto}.bslib-card .card-body p{margin-top:0}.bslib-card .card-body p:last-child{margin-bottom:0}.bslib-card .card-body{max-height:var(--bslib-card-body-max-height, none)}.bslib-card[data-full-screen=true]>.card-body{max-height:var(--bslib-card-body-max-height-full-screen, none)}.bslib-card .card-header .form-group{margin-bottom:0}.bslib-card .card-header .selectize-control{margin-bottom:0}.bslib-card .card-header .selectize-control .item{margin-right:1.15rem}.bslib-card .card-footer{margin-top:auto}.bslib-card .bslib-navs-card-title{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.bslib-card .bslib-navs-card-title .nav{margin-left:auto}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border=true]){border:none}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border-radius=true]){border-top-left-radius:0;border-top-right-radius:0}[data-full-screen=true]{position:fixed;inset:3.5rem 1rem 1rem;height:auto !important;max-height:none !important;width:auto !important;z-index:1070}.bslib-full-screen-enter{display:none;position:absolute;bottom:var(--bslib-full-screen-enter-bottom, 0.2rem);right:var(--bslib-full-screen-enter-right, 0);top:var(--bslib-full-screen-enter-top);left:var(--bslib-full-screen-enter-left);color:var(--bslib-color-fg, var(--bs-card-color));background-color:var(--bslib-color-bg, var(--bs-card-bg, var(--bs-body-bg)));border:var(--bs-card-border-width) solid var(--bslib-color-fg, var(--bs-card-border-color));box-shadow:0 2px 4px rgba(0,0,0,.15);margin:.2rem .4rem;padding:.55rem !important;font-size:.8rem;cursor:pointer;opacity:.7;z-index:1070}.bslib-full-screen-enter:hover{opacity:1}.card[data-full-screen=false]:hover>*>.bslib-full-screen-enter{display:block}.bslib-has-full-screen .card:hover>*>.bslib-full-screen-enter{display:none}@media(max-width: 575.98px){.bslib-full-screen-enter{display:none !important}}.bslib-full-screen-exit{position:relative;top:1.35rem;font-size:.9rem;cursor:pointer;text-decoration:none;display:flex;float:right;margin-right:2.15rem;align-items:center;color:rgba(var(--bs-body-bg-rgb), 0.8)}.bslib-full-screen-exit:hover{color:rgba(var(--bs-body-bg-rgb), 1)}.bslib-full-screen-exit svg{margin-left:.5rem;font-size:1.5rem}#bslib-full-screen-overlay{position:fixed;inset:0;background-color:rgba(var(--bs-body-color-rgb), 0.6);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:1069;animation:bslib-full-screen-overlay-enter 400ms cubic-bezier(0.6, 0.02, 0.65, 1) forwards}@keyframes bslib-full-screen-overlay-enter{0%{opacity:0}100%{opacity:1}}.bslib-sidebar-layout{--bslib-sidebar-transition-duration: 500ms;--bslib-sidebar-transition-easing-x: cubic-bezier(0.8, 0.78, 0.22, 1.07);--bslib-sidebar-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, rgba(0, 0, 0, 0.175));--bslib-sidebar-border-radius: var(--bs-border-radius);--bslib-sidebar-vert-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, rgba(0, 0, 0, 0.175));--bslib-sidebar-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.05);--bslib-sidebar-fg: var(--bs-emphasis-color, black);--bslib-sidebar-main-fg: var(--bs-card-color, var(--bs-body-color));--bslib-sidebar-main-bg: var(--bs-card-bg, var(--bs-body-bg));--bslib-sidebar-toggle-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.1);--bslib-sidebar-padding: calc(var(--bslib-spacer) * 1.5);--bslib-sidebar-icon-size: var(--bslib-spacer, 1rem);--bslib-sidebar-icon-button-size: calc(var(--bslib-sidebar-icon-size, 1rem) * 2);--bslib-sidebar-padding-icon: calc(var(--bslib-sidebar-icon-button-size, 2rem) * 1.5);--bslib-collapse-toggle-border-radius: var(--bs-border-radius, 0.25rem);--bslib-collapse-toggle-transform: 0deg;--bslib-sidebar-toggle-transition-easing: cubic-bezier(1, 0, 0, 1);--bslib-collapse-toggle-right-transform: 180deg;--bslib-sidebar-column-main: minmax(0, 1fr);display:grid !important;grid-template-columns:min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px)) var(--bslib-sidebar-column-main);position:relative;transition:grid-template-columns ease-in-out var(--bslib-sidebar-transition-duration);border:var(--bslib-sidebar-border);border-radius:var(--bslib-sidebar-border-radius)}@media(prefers-reduced-motion: reduce){.bslib-sidebar-layout{transition:none}}.bslib-sidebar-layout[data-bslib-sidebar-border=false]{border:none}.bslib-sidebar-layout[data-bslib-sidebar-border-radius=false]{border-radius:initial}.bslib-sidebar-layout>.main,.bslib-sidebar-layout>.sidebar{grid-row:1/2;border-radius:inherit;overflow:auto}.bslib-sidebar-layout>.main{grid-column:2/3;border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--bslib-sidebar-padding);transition:padding var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration);color:var(--bslib-sidebar-main-fg);background-color:var(--bslib-sidebar-main-bg)}.bslib-sidebar-layout>.sidebar{grid-column:1/2;width:100%;height:100%;border-right:var(--bslib-sidebar-vert-border);border-top-right-radius:0;border-bottom-right-radius:0;color:var(--bslib-sidebar-fg);background-color:var(--bslib-sidebar-bg);backdrop-filter:blur(5px)}.bslib-sidebar-layout>.sidebar>.sidebar-content{display:flex;flex-direction:column;gap:var(--bslib-spacer, 1rem);padding:var(--bslib-sidebar-padding);padding-top:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout>.sidebar>.sidebar-content>:last-child:not(.sidebar-title){margin-bottom:0}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion{margin-left:calc(-1*var(--bslib-sidebar-padding));margin-right:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:last-child{margin-bottom:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child){margin-bottom:1rem}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion .accordion-body{display:flex;flex-direction:column}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:first-child) .accordion-item:first-child{border-top:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child) .accordion-item:last-child{border-bottom:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content.has-accordion>.sidebar-title{border-bottom:none;padding-bottom:0}.bslib-sidebar-layout>.sidebar .shiny-input-container{width:100%}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar>.sidebar-content{padding-top:var(--bslib-sidebar-padding)}.bslib-sidebar-layout>.collapse-toggle{grid-row:1/2;grid-column:1/2;display:inline-flex;align-items:center;position:absolute;right:calc(var(--bslib-sidebar-icon-size));top:calc(var(--bslib-sidebar-icon-size, 1rem)/2);border:none;border-radius:var(--bslib-collapse-toggle-border-radius);height:var(--bslib-sidebar-icon-button-size, 2rem);width:var(--bslib-sidebar-icon-button-size, 2rem);display:flex;align-items:center;justify-content:center;padding:0;color:var(--bslib-sidebar-fg);background-color:unset;transition:color var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),top var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),right var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),left var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover{background-color:var(--bslib-sidebar-toggle-bg)}.bslib-sidebar-layout>.collapse-toggle>.collapse-icon{opacity:.8;width:var(--bslib-sidebar-icon-size);height:var(--bslib-sidebar-icon-size);transform:rotateY(var(--bslib-collapse-toggle-transform));transition:transform var(--bslib-sidebar-toggle-transition-easing) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover>.collapse-icon{opacity:1}.bslib-sidebar-layout .sidebar-title{font-size:1.25rem;line-height:1.25;margin-top:0;margin-bottom:1rem;padding-bottom:1rem;border-bottom:var(--bslib-sidebar-border)}.bslib-sidebar-layout.sidebar-right{grid-template-columns:var(--bslib-sidebar-column-main) min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px))}.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/2;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit}.bslib-sidebar-layout.sidebar-right>.sidebar{grid-column:2/3;border-right:none;border-left:var(--bslib-sidebar-vert-border);border-top-left-radius:0;border-bottom-left-radius:0}.bslib-sidebar-layout.sidebar-right>.collapse-toggle{grid-column:2/3;left:var(--bslib-sidebar-icon-size);right:unset;border:var(--bslib-collapse-toggle-border)}.bslib-sidebar-layout.sidebar-right>.collapse-toggle>.collapse-icon{transform:rotateY(var(--bslib-collapse-toggle-right-transform))}.bslib-sidebar-layout.sidebar-collapsed{--bslib-collapse-toggle-transform: 180deg;--bslib-collapse-toggle-right-transform: 0deg;--bslib-sidebar-vert-border: none;grid-template-columns:0 minmax(0, 1fr)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right{grid-template-columns:minmax(0, 1fr) 0}.bslib-sidebar-layout.sidebar-collapsed:not(.transitioning)>.sidebar>*{display:none}.bslib-sidebar-layout.sidebar-collapsed>.main{border-radius:inherit}.bslib-sidebar-layout.sidebar-collapsed:not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed>.collapse-toggle{color:var(--bslib-sidebar-main-fg);top:calc(var(--bslib-sidebar-overlap-counter, 0)*(var(--bslib-sidebar-icon-size) + var(--bslib-sidebar-padding)) + var(--bslib-sidebar-icon-size, 1rem)/2);right:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px))}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.collapse-toggle{left:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px));right:unset}@media(min-width: 576px){.bslib-sidebar-layout.transitioning>.sidebar>.sidebar-content{display:none}}@media(max-width: 575.98px){.bslib-sidebar-layout[data-bslib-sidebar-open=desktop]{--bslib-sidebar-js-init-collapsed: true}.bslib-sidebar-layout>.sidebar,.bslib-sidebar-layout.sidebar-right>.sidebar{border:none}.bslib-sidebar-layout>.main,.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/3}.bslib-sidebar-layout[data-bslib-sidebar-open=always]{display:block !important}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar{max-height:var(--bslib-sidebar-max-height-mobile);overflow-y:auto;border-top:var(--bslib-sidebar-vert-border)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]){grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.sidebar{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.collapse-toggle{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed.sidebar-right{grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always])>.main{opacity:0;transition:opacity var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed>.main{opacity:1}}.navbar+.container-fluid:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-sm:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-md:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-lg:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xl:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xxl:has(>.tab-content>.tab-pane.active.html-fill-container){padding-left:0;padding-right:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container{padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child){padding:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]){border-left:none;border-right:none;border-bottom:none}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]){border-radius:0}.navbar+div>.bslib-sidebar-layout{border-top:var(--bslib-sidebar-border)}html{height:100%}.bslib-page-fill{width:100%;height:100%;margin:0;padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}@media(max-width: 575.98px){.bslib-page-fill{height:var(--bslib-page-fill-mobile-height, auto)}}.accordion .accordion-header{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color);margin-bottom:0}@media(min-width: 1200px){.accordion .accordion-header{font-size:1.65rem}}.accordion .accordion-icon:not(:empty){margin-right:.75rem;display:flex}.accordion .accordion-button:not(.collapsed){box-shadow:none}.accordion .accordion-button:not(.collapsed):focus{box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.html-fill-container{display:flex;flex-direction:column;min-height:0;min-width:0}.html-fill-container>.html-fill-item{flex:1 1 auto;min-height:0;min-width:0}.html-fill-container>:not(.html-fill-item){flex:0 0 auto}.quarto-container{min-height:calc(100vh - 132px)}body.hypothesis-enabled #quarto-header{margin-right:16px}footer.footer .nav-footer,#quarto-header>nav{padding-left:1em;padding-right:1em}footer.footer div.nav-footer p:first-child{margin-top:0}footer.footer div.nav-footer p:last-child{margin-bottom:0}#quarto-content>*{padding-top:14px}#quarto-content>#quarto-sidebar-glass{padding-top:0px}@media(max-width: 991.98px){#quarto-content>*{padding-top:0}#quarto-content .subtitle{padding-top:14px}#quarto-content section:first-of-type h2:first-of-type,#quarto-content section:first-of-type .h2:first-of-type{margin-top:1rem}}.headroom-target,header.headroom{will-change:transform;transition:position 200ms linear;transition:all 200ms linear}header.headroom--pinned{transform:translateY(0%)}header.headroom--unpinned{transform:translateY(-100%)}.navbar-container{width:100%}.navbar-brand{overflow:hidden;text-overflow:ellipsis}.navbar-brand-container{max-width:calc(100% - 115px);min-width:0;display:flex;align-items:center}@media(min-width: 992px){.navbar-brand-container{margin-right:1em}}.navbar-brand.navbar-brand-logo{margin-right:4px;display:inline-flex}.navbar-toggler{flex-basis:content;flex-shrink:0}.navbar .navbar-brand-container{order:2}.navbar .navbar-toggler{order:1}.navbar .navbar-container>.navbar-nav{order:20}.navbar .navbar-container>.navbar-brand-container{margin-left:0 !important;margin-right:0 !important}.navbar .navbar-collapse{order:20}.navbar #quarto-search{order:4;margin-left:auto}.navbar .navbar-toggler{margin-right:.5em}.navbar-collapse .quarto-navbar-tools{margin-left:.5em}.navbar-logo{max-height:24px;width:auto;padding-right:4px}nav .nav-item:not(.compact){padding-top:1px}nav .nav-link i,nav .dropdown-item i{padding-right:1px}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.6rem;padding-right:.6rem}nav .nav-item.compact .nav-link{padding-left:.5rem;padding-right:.5rem;font-size:1.1rem}.navbar .quarto-navbar-tools{order:3}.navbar .quarto-navbar-tools div.dropdown{display:inline-block}.navbar .quarto-navbar-tools .quarto-navigation-tool{color:#dee2e6}.navbar .quarto-navbar-tools .quarto-navigation-tool:hover{color:#fafefd}.navbar-nav .dropdown-menu{min-width:220px;font-size:.9rem}.navbar .navbar-nav .nav-link.dropdown-toggle::after{opacity:.75;vertical-align:.175em}.navbar ul.dropdown-menu{padding-top:0;padding-bottom:0}.navbar .dropdown-header{text-transform:uppercase;font-size:.8rem;padding:0 .5rem}.navbar .dropdown-item{padding:.4rem .5rem}.navbar .dropdown-item>i.bi{margin-left:.1rem;margin-right:.25em}.sidebar #quarto-search{margin-top:-1px}.sidebar #quarto-search svg.aa-SubmitIcon{width:16px;height:16px}.sidebar-navigation a{color:inherit}.sidebar-title{margin-top:.25rem;padding-bottom:.5rem;font-size:1.3rem;line-height:1.6rem;visibility:visible}.sidebar-title>a{font-size:inherit;text-decoration:none}.sidebar-title .sidebar-tools-main{margin-top:-6px}@media(max-width: 991.98px){#quarto-sidebar div.sidebar-header{padding-top:.2em}}.sidebar-header-stacked .sidebar-title{margin-top:.6rem}.sidebar-logo{max-width:90%;padding-bottom:.5rem}.sidebar-logo-link{text-decoration:none}.sidebar-navigation li a{text-decoration:none}.sidebar-navigation .quarto-navigation-tool{opacity:.7;font-size:.875rem}#quarto-sidebar>nav>.sidebar-tools-main{margin-left:14px}.sidebar-tools-main{display:inline-flex;margin-left:0px;order:2}.sidebar-tools-main:not(.tools-wide){vertical-align:middle}.sidebar-navigation .quarto-navigation-tool.dropdown-toggle::after{display:none}.sidebar.sidebar-navigation>*{padding-top:1em}.sidebar-item{margin-bottom:.2em;line-height:1rem;margin-top:.4rem}.sidebar-section{padding-left:.5em;padding-bottom:.2em}.sidebar-item .sidebar-item-container{display:flex;justify-content:space-between;cursor:pointer}.sidebar-item-toggle:hover{cursor:pointer}.sidebar-item .sidebar-item-toggle .bi{font-size:.7rem;text-align:center}.sidebar-item .sidebar-item-toggle .bi-chevron-right::before{transition:transform 200ms ease}.sidebar-item .sidebar-item-toggle[aria-expanded=false] .bi-chevron-right::before{transform:none}.sidebar-item .sidebar-item-toggle[aria-expanded=true] .bi-chevron-right::before{transform:rotate(90deg)}.sidebar-item-text{width:100%}.sidebar-navigation .sidebar-divider{margin-left:0;margin-right:0;margin-top:.5rem;margin-bottom:.5rem}@media(max-width: 991.98px){.quarto-secondary-nav{display:block}.quarto-secondary-nav button.quarto-search-button{padding-right:0em;padding-left:2em}.quarto-secondary-nav button.quarto-btn-toggle{margin-left:-0.75rem;margin-right:.15rem}.quarto-secondary-nav nav.quarto-title-breadcrumbs{display:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs{display:flex;align-items:center;padding-right:1em;margin-left:-0.25em}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{text-decoration:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs ol.breadcrumb{margin-bottom:0}}@media(min-width: 992px){.quarto-secondary-nav{display:none}}.quarto-title-breadcrumbs .breadcrumb{margin-bottom:.5em;font-size:.9rem}.quarto-title-breadcrumbs .breadcrumb li:last-of-type a{color:#6c757d}.quarto-secondary-nav .quarto-btn-toggle{color:#adadad}.quarto-secondary-nav[aria-expanded=false] .quarto-btn-toggle .bi-chevron-right::before{transform:none}.quarto-secondary-nav[aria-expanded=true] .quarto-btn-toggle .bi-chevron-right::before{transform:rotate(90deg)}.quarto-secondary-nav .quarto-btn-toggle .bi-chevron-right::before{transition:transform 200ms ease}.quarto-secondary-nav{cursor:pointer}.no-decor{text-decoration:none}.quarto-secondary-nav-title{margin-top:.3em;color:#adadad;padding-top:4px}.quarto-secondary-nav nav.quarto-page-breadcrumbs{color:#adadad}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{color:#adadad}.quarto-secondary-nav nav.quarto-page-breadcrumbs a:hover{color:rgba(26,195,152,.8)}.quarto-secondary-nav nav.quarto-page-breadcrumbs .breadcrumb-item::before{color:#7a7a7a}.breadcrumb-item{line-height:1.2rem}div.sidebar-item-container{color:#adadad}div.sidebar-item-container:hover,div.sidebar-item-container:focus{color:rgba(26,195,152,.8)}div.sidebar-item-container.disabled{color:rgba(173,173,173,.75)}div.sidebar-item-container .active,div.sidebar-item-container .show>.nav-link,div.sidebar-item-container .sidebar-link>code{color:#1ac398}div.sidebar.sidebar-navigation.rollup.quarto-sidebar-toggle-contents,nav.sidebar.sidebar-navigation:not(.rollup){background-color:#222}.sidebar.sidebar-navigation:not(.rollup){border-right:1px solid #434343 !important}@media(max-width: 991.98px){.sidebar-navigation .sidebar-item a,.nav-page .nav-page-text,.sidebar-navigation{font-size:1rem}.sidebar-navigation ul.sidebar-section.depth1 .sidebar-section-item{font-size:1.1rem}.sidebar-logo{display:none}.sidebar.sidebar-navigation{position:static;border-bottom:1px solid #434343}.sidebar.sidebar-navigation.collapsing{position:fixed;z-index:1000}.sidebar.sidebar-navigation.show{position:fixed;z-index:1000}.sidebar.sidebar-navigation{min-height:100%}nav.quarto-secondary-nav{background-color:#222;border-bottom:1px solid #434343}.quarto-banner nav.quarto-secondary-nav{background-color:#375a7f;color:#dee2e6;border-top:1px solid #434343}.sidebar .sidebar-footer{visibility:visible;padding-top:1rem;position:inherit}.sidebar-tools-collapse{display:block}}#quarto-sidebar{transition:width .15s ease-in}#quarto-sidebar>*{padding-right:1em}@media(max-width: 991.98px){#quarto-sidebar .sidebar-menu-container{white-space:nowrap;min-width:225px}#quarto-sidebar.show{transition:width .15s ease-out}}@media(min-width: 992px){#quarto-sidebar{display:flex;flex-direction:column}.nav-page .nav-page-text,.sidebar-navigation .sidebar-section .sidebar-item{font-size:.875rem}.sidebar-navigation .sidebar-item{font-size:.925rem}.sidebar.sidebar-navigation{display:block;position:sticky}.sidebar-search{width:100%}.sidebar .sidebar-footer{visibility:visible}}@media(min-width: 992px){#quarto-sidebar-glass{display:none}}@media(max-width: 991.98px){#quarto-sidebar-glass{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,0);transition:background-color .15s ease-in;z-index:-1}#quarto-sidebar-glass.collapsing{z-index:1000}#quarto-sidebar-glass.show{transition:background-color .15s ease-out;background-color:rgba(102,102,102,.4);z-index:1000}}.sidebar .sidebar-footer{padding:.5rem 1rem;align-self:flex-end;color:#6c757d;width:100%}.quarto-page-breadcrumbs .breadcrumb-item+.breadcrumb-item,.quarto-page-breadcrumbs .breadcrumb-item{padding-right:.33em;padding-left:0}.quarto-page-breadcrumbs .breadcrumb-item::before{padding-right:.33em}.quarto-sidebar-footer{font-size:.875em}.sidebar-section .bi-chevron-right{vertical-align:middle}.sidebar-section .bi-chevron-right::before{font-size:.9em}.notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.btn:focus:not(:focus-visible){box-shadow:none}.page-navigation{display:flex;justify-content:space-between}.nav-page{padding-bottom:.75em}.nav-page .bi{font-size:1.8rem;vertical-align:middle}.nav-page .nav-page-text{padding-left:.25em;padding-right:.25em}.nav-page a{color:#6c757d;text-decoration:none;display:flex;align-items:center}.nav-page a:hover{color:#009670}.nav-footer .toc-actions{padding-bottom:.5em;padding-top:.5em}.nav-footer .toc-actions a,.nav-footer .toc-actions a:hover{text-decoration:none}.nav-footer .toc-actions ul{display:flex;list-style:none}.nav-footer .toc-actions ul :first-child{margin-left:auto}.nav-footer .toc-actions ul :last-child{margin-right:auto}.nav-footer .toc-actions ul li{padding-right:1.5em}.nav-footer .toc-actions ul li i.bi{padding-right:.4em}.nav-footer .toc-actions ul li:last-of-type{padding-right:0}.nav-footer{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:baseline;text-align:center;padding-top:.5rem;padding-bottom:.5rem;background-color:#222}body.nav-fixed{padding-top:82px}body .nav-footer{border-top:1px solid #434343}.nav-footer-contents{color:#6c757d;margin-top:.25rem}.nav-footer{min-height:3.5em;color:#8a8a8a}.nav-footer a{color:#8a8a8a}.nav-footer .nav-footer-left{font-size:.825em}.nav-footer .nav-footer-center{font-size:.825em}.nav-footer .nav-footer-right{font-size:.825em}.nav-footer-left .footer-items,.nav-footer-center .footer-items,.nav-footer-right .footer-items{display:inline-flex;padding-top:.3em;padding-bottom:.3em;margin-bottom:0em}.nav-footer-left .footer-items .nav-link,.nav-footer-center .footer-items .nav-link,.nav-footer-right .footer-items .nav-link{padding-left:.6em;padding-right:.6em}@media(min-width: 768px){.nav-footer-left{flex:1 1 0px;text-align:left}}@media(max-width: 575.98px){.nav-footer-left{margin-bottom:1em;flex:100%}}@media(min-width: 768px){.nav-footer-right{flex:1 1 0px;text-align:right}}@media(max-width: 575.98px){.nav-footer-right{margin-bottom:1em;flex:100%}}.nav-footer-center{text-align:center;min-height:3em}@media(min-width: 768px){.nav-footer-center{flex:1 1 0px}}.nav-footer-center .footer-items{justify-content:center}@media(max-width: 767.98px){.nav-footer-center{margin-bottom:1em;flex:100%}}@media(max-width: 767.98px){.nav-footer-center{margin-top:3em;order:10}}.navbar .quarto-reader-toggle.reader .quarto-reader-toggle-btn{background-color:#dee2e6;border-radius:3px}@media(max-width: 991.98px){.quarto-reader-toggle{display:none}}.quarto-reader-toggle.reader.quarto-navigation-tool .quarto-reader-toggle-btn{background-color:#adadad;border-radius:3px}.quarto-reader-toggle .quarto-reader-toggle-btn{display:inline-flex;padding-left:.2em;padding-right:.2em;margin-left:-0.2em;margin-right:-0.2em;text-align:center}.navbar .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}#quarto-back-to-top{display:none;position:fixed;bottom:50px;background-color:#222;border-radius:.25rem;box-shadow:0 .2rem .5rem #6c757d,0 0 .05rem #6c757d;color:#6c757d;text-decoration:none;font-size:.9em;text-align:center;left:50%;padding:.4rem .8rem;transform:translate(-50%, 0)}#quarto-announcement{padding:.5em;display:flex;justify-content:space-between;margin-bottom:0;font-size:.9em}#quarto-announcement .quarto-announcement-content{margin-right:auto}#quarto-announcement .quarto-announcement-content p{margin-bottom:0}#quarto-announcement .quarto-announcement-icon{margin-right:.5em;font-size:1.2em;margin-top:-0.15em}#quarto-announcement .quarto-announcement-action{cursor:pointer}.aa-DetachedSearchButtonQuery{display:none}.aa-DetachedOverlay ul.aa-List,#quarto-search-results ul.aa-List{list-style:none;padding-left:0}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{background-color:#222;position:absolute;z-index:2000}#quarto-search-results .aa-Panel{max-width:400px}#quarto-search input{font-size:.925rem}@media(min-width: 992px){.navbar #quarto-search{margin-left:.25rem;order:999}}.navbar.navbar-expand-sm #quarto-search,.navbar.navbar-expand-md #quarto-search{order:999}@media(min-width: 992px){.navbar .quarto-navbar-tools{order:900}}@media(min-width: 992px){.navbar .quarto-navbar-tools.tools-end{margin-left:auto !important}}@media(max-width: 991.98px){#quarto-sidebar .sidebar-search{display:none}}#quarto-sidebar .sidebar-search .aa-Autocomplete{width:100%}.navbar .aa-Autocomplete .aa-Form{width:180px}.navbar #quarto-search.type-overlay .aa-Autocomplete{width:40px}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form{background-color:inherit;border:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form:focus-within{box-shadow:none;outline:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper{display:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper:focus-within{display:inherit}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-Label svg,.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-LoadingIndicator svg{width:26px;height:26px;color:#dee2e6;opacity:1}.navbar #quarto-search.type-overlay .aa-Autocomplete svg.aa-SubmitIcon{width:26px;height:26px;color:#dee2e6;opacity:1}.aa-Autocomplete .aa-Form,.aa-DetachedFormContainer .aa-Form{align-items:center;background-color:#fff;border:1px solid #adb5bd;border-radius:.25rem;color:#2d2d2d;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-Autocomplete .aa-Form:focus-within,.aa-DetachedFormContainer .aa-Form:focus-within{box-shadow:rgba(55,90,127,.6) 0 0 0 1px;outline:currentColor none medium}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;order:1}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{cursor:initial;flex-shrink:0;padding:0;text-align:left}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg{color:#2d2d2d;opacity:.5}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton{appearance:none;background:none;border:0;margin:0}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapper,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper{order:3;position:relative;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input{appearance:none;background:none;border:0;color:#2d2d2d;font:inherit;height:calc(1.5em + .1rem + 2px);padding:0;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::placeholder,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::placeholder{color:#2d2d2d;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input:focus{border-color:none;box-shadow:none;outline:none}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix{align-items:center;display:flex;order:4}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton{align-items:center;background:none;border:0;color:#2d2d2d;opacity:.8;cursor:pointer;display:flex;margin:0;width:calc(1.5em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus{color:#2d2d2d;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg{width:calc(1.5em + 0.75rem + calc(1px * 2))}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton{border:none;align-items:center;background:none;color:#2d2d2d;opacity:.4;font-size:.7rem;cursor:pointer;display:none;margin:0;width:calc(1em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus{color:#2d2d2d;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden]{display:none}.aa-PanelLayout:empty{display:none}.quarto-search-no-results.no-query{display:none}.aa-Source:has(.no-query){display:none}#quarto-search-results .aa-Panel{border:solid #adb5bd 1px}#quarto-search-results .aa-SourceNoResults{width:398px}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{max-height:65vh;overflow-y:auto;font-size:.925rem}.aa-DetachedOverlay .aa-SourceNoResults,#quarto-search-results .aa-SourceNoResults{height:60px;display:flex;justify-content:center;align-items:center}.aa-DetachedOverlay .search-error,#quarto-search-results .search-error{padding-top:10px;padding-left:20px;padding-right:20px;cursor:default}.aa-DetachedOverlay .search-error .search-error-title,#quarto-search-results .search-error .search-error-title{font-size:1.1rem;margin-bottom:.5rem}.aa-DetachedOverlay .search-error .search-error-title .search-error-icon,#quarto-search-results .search-error .search-error-title .search-error-icon{margin-right:8px}.aa-DetachedOverlay .search-error .search-error-text,#quarto-search-results .search-error .search-error-text{font-weight:300}.aa-DetachedOverlay .search-result-text,#quarto-search-results .search-result-text{font-weight:300;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2rem;max-height:2.4rem}.aa-DetachedOverlay .aa-SourceHeader .search-result-header,#quarto-search-results .aa-SourceHeader .search-result-header{font-size:.875rem;background-color:#2f2f2f;padding-left:14px;padding-bottom:4px;padding-top:4px}.aa-DetachedOverlay .aa-SourceHeader .search-result-header-no-results,#quarto-search-results .aa-SourceHeader .search-result-header-no-results{display:none}.aa-DetachedOverlay .aa-SourceFooter .algolia-search-logo,#quarto-search-results .aa-SourceFooter .algolia-search-logo{width:110px;opacity:.85;margin:8px;float:right}.aa-DetachedOverlay .search-result-section,#quarto-search-results .search-result-section{font-size:.925em}.aa-DetachedOverlay a.search-result-link,#quarto-search-results a.search-result-link{color:inherit;text-decoration:none}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item,#quarto-search-results li.aa-Item[aria-selected=true] .search-item{background-color:#375a7f}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text-container{color:#fff;background-color:#375a7f}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=true] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-match.mark{color:#fff;background-color:#2b4663}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item,#quarto-search-results li.aa-Item[aria-selected=false] .search-item{background-color:#2d2d2d}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text-container{color:#fff}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=false] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-match.mark{color:inherit;background-color:#000}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container{background-color:#2d2d2d;color:#fff}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container{padding-top:0px}.aa-DetachedOverlay li.aa-Item .search-result-doc.document-selectable .search-result-text-container,#quarto-search-results li.aa-Item .search-result-doc.document-selectable .search-result-text-container{margin-top:-4px}.aa-DetachedOverlay .aa-Item,#quarto-search-results .aa-Item{cursor:pointer}.aa-DetachedOverlay .aa-Item .search-item,#quarto-search-results .aa-Item .search-item{border-left:none;border-right:none;border-top:none;background-color:#2d2d2d;border-color:#adb5bd;color:#fff}.aa-DetachedOverlay .aa-Item .search-item p,#quarto-search-results .aa-Item .search-item p{margin-top:0;margin-bottom:0}.aa-DetachedOverlay .aa-Item .search-item i.bi,#quarto-search-results .aa-Item .search-item i.bi{padding-left:8px;padding-right:8px;font-size:1.3em}.aa-DetachedOverlay .aa-Item .search-item .search-result-title,#quarto-search-results .aa-Item .search-item .search-result-title{margin-top:.3em;margin-bottom:0em}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs,#quarto-search-results .aa-Item .search-item .search-result-crumbs{white-space:nowrap;text-overflow:ellipsis;font-size:.8em;font-weight:300;margin-right:1em}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs:not(.search-result-crumbs-wrap),#quarto-search-results .aa-Item .search-item .search-result-crumbs:not(.search-result-crumbs-wrap){max-width:30%;margin-left:auto;margin-top:.5em;margin-bottom:.1rem}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs.search-result-crumbs-wrap,#quarto-search-results .aa-Item .search-item .search-result-crumbs.search-result-crumbs-wrap{flex-basis:100%;margin-top:0em;margin-bottom:.2em;margin-left:37px}.aa-DetachedOverlay .aa-Item .search-result-title-container,#quarto-search-results .aa-Item .search-result-title-container{font-size:1em;display:flex;flex-wrap:wrap;padding:6px 4px 6px 4px}.aa-DetachedOverlay .aa-Item .search-result-text-container,#quarto-search-results .aa-Item .search-result-text-container{padding-bottom:8px;padding-right:8px;margin-left:42px}.aa-DetachedOverlay .aa-Item .search-result-doc-section,.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-doc-section,#quarto-search-results .aa-Item .search-result-more{padding-top:8px;padding-bottom:8px;padding-left:44px}.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-more{font-size:.8em;font-weight:400}.aa-DetachedOverlay .aa-Item .search-result-doc,#quarto-search-results .aa-Item .search-result-doc{border-top:1px solid #adb5bd}.aa-DetachedSearchButton{background:none;border:none}.aa-DetachedSearchButton .aa-DetachedSearchButtonPlaceholder{display:none}.navbar .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#dee2e6}.sidebar-tools-collapse #quarto-search,.sidebar-tools-main #quarto-search{display:inline}.sidebar-tools-collapse #quarto-search .aa-Autocomplete,.sidebar-tools-main #quarto-search .aa-Autocomplete{display:inline}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton{padding-left:4px;padding-right:4px}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#adadad}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon{margin-top:-3px}.aa-DetachedContainer{background:rgba(34,34,34,.65);width:90%;bottom:0;box-shadow:rgba(173,181,189,.6) 0 0 0 1px;outline:currentColor none medium;display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:1101}.aa-DetachedContainer::after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#222;border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{background-color:#222;border-bottom:1px solid #adb5bd;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:.5em}.aa-DetachedCancelButton{background:none;font-size:.8em;border:0;border-radius:3px;color:#fff;cursor:pointer;margin:0 0 0 .5em;padding:0 .5em}.aa-DetachedCancelButton:hover,.aa-DetachedCancelButton:focus{box-shadow:rgba(55,90,127,.6) 0 0 0 1px;outline:currentColor none medium}.aa-DetachedContainer--modal{bottom:inherit;height:auto;margin:0 auto;position:absolute;top:100px;border-radius:6px;max-width:850px}@media(max-width: 575.98px){.aa-DetachedContainer--modal{width:100%;top:0px;border-radius:0px;border:none}}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:var(--aa-detached-modal-max-height);padding-bottom:var(--aa-spacing-half);position:static}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:rgba(255,255,255,.4);position:fixed;left:0;right:0;top:0;margin:0;padding:0;height:100vh;z-index:1100}.quarto-dashboard.nav-fixed.dashboard-sidebar #quarto-content.quarto-dashboard-content{padding:0em}.quarto-dashboard #quarto-content.quarto-dashboard-content{padding:1em}.quarto-dashboard #quarto-content.quarto-dashboard-content>*{padding-top:0}@media(min-width: 576px){.quarto-dashboard{height:100%}}.quarto-dashboard .card.valuebox.bslib-card.bg-primary{background-color:#375a7f !important}.quarto-dashboard .card.valuebox.bslib-card.bg-secondary{background-color:#434343 !important}.quarto-dashboard .card.valuebox.bslib-card.bg-success{background-color:#00bc8c !important}.quarto-dashboard .card.valuebox.bslib-card.bg-info{background-color:#3498db !important}.quarto-dashboard .card.valuebox.bslib-card.bg-warning{background-color:#f39c12 !important}.quarto-dashboard .card.valuebox.bslib-card.bg-danger{background-color:#e74c3c !important}.quarto-dashboard .card.valuebox.bslib-card.bg-light{background-color:#6f6f6f !important}.quarto-dashboard .card.valuebox.bslib-card.bg-dark{background-color:#2d2d2d !important}.quarto-dashboard.dashboard-fill{display:flex;flex-direction:column}.quarto-dashboard #quarto-appendix{display:none}.quarto-dashboard #quarto-header #quarto-dashboard-header{border-top:solid 1px #4673a3;border-bottom:solid 1px #4673a3}.quarto-dashboard #quarto-header #quarto-dashboard-header>nav{padding-left:1em;padding-right:1em}.quarto-dashboard #quarto-header #quarto-dashboard-header>nav .navbar-brand-container{padding-left:0}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-toggler{margin-right:0}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-toggler-icon{height:1em;width:1em;background-image:url('data:image/svg+xml,')}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-brand-container{padding-right:1em}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-title{font-size:1.1em}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-nav{font-size:.9em}.quarto-dashboard #quarto-dashboard-header .navbar{padding:0}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-container{padding-left:1em}.quarto-dashboard #quarto-dashboard-header .navbar.slim .navbar-brand-container .nav-link,.quarto-dashboard #quarto-dashboard-header .navbar.slim .navbar-nav .nav-link{padding:.7em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-color-scheme-toggle{order:9}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-toggler{margin-left:.5em;order:10}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-nav .nav-link{padding:.5em;height:100%;display:flex;align-items:center}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-nav .active{background-color:#436e9b}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-brand-container{padding:.5em .5em .5em 0;display:flex;flex-direction:row;margin-right:2em;align-items:center}@media(max-width: 767.98px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-brand-container{margin-right:auto}}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{align-self:stretch}@media(min-width: 768px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{order:8}}@media(max-width: 767.98px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{order:1000;padding-bottom:.5em}}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse .navbar-nav{align-self:stretch}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title{font-size:1.25em;line-height:1.1em;display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title .navbar-title-text{margin-right:.4em}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title a{text-decoration:none;color:inherit}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-subtitle,.quarto-dashboard #quarto-dashboard-header .navbar .navbar-author{font-size:.9rem;margin-right:.5em}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-author{margin-left:auto}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-logo{max-height:48px;min-height:30px;object-fit:cover;margin-right:1em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-links{order:9;padding-right:1em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-link-text{margin-left:.25em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-link{padding-right:0em;padding-left:.7em;text-decoration:none;color:#dee2e6}.quarto-dashboard .page-layout-custom .tab-content{padding:0;border:none}.quarto-dashboard-img-contain{height:100%;width:100%;object-fit:contain}@media(max-width: 575.98px){.quarto-dashboard .bslib-grid{grid-template-rows:minmax(1em, max-content) !important}.quarto-dashboard .sidebar-content{height:inherit}.quarto-dashboard .page-layout-custom{min-height:100vh}}.quarto-dashboard.dashboard-toolbar>.page-layout-custom,.quarto-dashboard.dashboard-sidebar>.page-layout-custom{padding:0}.quarto-dashboard .quarto-dashboard-content.quarto-dashboard-pages{padding:0}.quarto-dashboard .callout{margin-bottom:0;margin-top:0}.quarto-dashboard .html-fill-container figure{overflow:hidden}.quarto-dashboard bslib-tooltip .rounded-pill{border:solid #6c757d 1px}.quarto-dashboard bslib-tooltip .rounded-pill .svg{fill:#fff}.quarto-dashboard .tabset .dashboard-card-no-title .nav-tabs{margin-left:0;margin-right:auto}.quarto-dashboard .tabset .tab-content{border:none}.quarto-dashboard .tabset .card-header .nav-link[role=tab]{margin-top:-6px;padding-top:6px;padding-bottom:6px}.quarto-dashboard .card.valuebox,.quarto-dashboard .card.bslib-value-box{min-height:3rem}.quarto-dashboard .card.valuebox .card-body,.quarto-dashboard .card.bslib-value-box .card-body{padding:0}.quarto-dashboard .bslib-value-box .value-box-value{font-size:clamp(.1em,15cqw,5em)}.quarto-dashboard .bslib-value-box .value-box-showcase .bi{font-size:clamp(.1em,max(18cqw,5.2cqh),5em);text-align:center;height:1em}.quarto-dashboard .bslib-value-box .value-box-showcase .bi::before{vertical-align:1em}.quarto-dashboard .bslib-value-box .value-box-area{margin-top:auto;margin-bottom:auto}.quarto-dashboard .card figure.quarto-float{display:flex;flex-direction:column;align-items:center}.quarto-dashboard .dashboard-scrolling{padding:1em}.quarto-dashboard .full-height{height:100%}.quarto-dashboard .showcase-bottom .value-box-grid{display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"top" "bottom"}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-showcase i.bi{font-size:4rem}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-area{grid-area:top}.quarto-dashboard .tab-content{margin-bottom:0}.quarto-dashboard .bslib-card .bslib-navs-card-title{justify-content:stretch;align-items:end}.quarto-dashboard .card-header{display:flex;flex-wrap:wrap;justify-content:space-between}.quarto-dashboard .card-header .card-title{display:flex;flex-direction:column;justify-content:center;margin-bottom:0}.quarto-dashboard .tabset .card-toolbar{margin-bottom:1em}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout{border:none;gap:var(--bslib-spacer, 1rem)}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.main{padding:0}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.sidebar{border-radius:.25rem;border:1px solid rgba(0,0,0,.175)}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.collapse-toggle{display:none}@media(max-width: 767.98px){.quarto-dashboard .bslib-grid>.bslib-sidebar-layout{grid-template-columns:1fr;grid-template-rows:max-content 1fr}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.main{grid-column:1;grid-row:2}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout .sidebar{grid-column:1;grid-row:1}}.quarto-dashboard .sidebar-right .sidebar{padding-left:2.5em}.quarto-dashboard .sidebar-right .collapse-toggle{left:2px}.quarto-dashboard .quarto-dashboard .sidebar-right button.collapse-toggle:not(.transitioning){left:unset}.quarto-dashboard aside.sidebar{padding-left:1em;padding-right:1em;background-color:rgba(52,58,64,.25);color:#fff}.quarto-dashboard .bslib-sidebar-layout>div.main{padding:.7em}.quarto-dashboard .bslib-sidebar-layout button.collapse-toggle{margin-top:.3em}.quarto-dashboard .bslib-sidebar-layout .collapse-toggle{top:0}.quarto-dashboard .bslib-sidebar-layout.sidebar-collapsed:not(.transitioning):not(.sidebar-right) .collapse-toggle{left:2px}.quarto-dashboard .sidebar>section>.h3:first-of-type{margin-top:0em}.quarto-dashboard .sidebar .h3,.quarto-dashboard .sidebar .h4,.quarto-dashboard .sidebar .h5,.quarto-dashboard .sidebar .h6{margin-top:.5em}.quarto-dashboard .sidebar form{flex-direction:column;align-items:start;margin-bottom:1em}.quarto-dashboard .sidebar form div[class*=oi-][class$=-input]{flex-direction:column}.quarto-dashboard .sidebar form[class*=oi-][class$=-toggle]{flex-direction:row-reverse;align-items:center;justify-content:start}.quarto-dashboard .sidebar form input[type=range]{margin-top:.5em;margin-right:.8em;margin-left:1em}.quarto-dashboard .sidebar label{width:fit-content}.quarto-dashboard .sidebar .card-body{margin-bottom:2em}.quarto-dashboard .sidebar .shiny-input-container{margin-bottom:1em}.quarto-dashboard .sidebar .shiny-options-group{margin-top:0}.quarto-dashboard .sidebar .control-label{margin-bottom:.3em}.quarto-dashboard .card .card-body .quarto-layout-row{align-items:stretch}.quarto-dashboard .toolbar{font-size:.9em;display:flex;flex-direction:row;border-top:solid 1px silver;padding:1em;flex-wrap:wrap;background-color:rgba(52,58,64,.25)}.quarto-dashboard .toolbar .cell-output-display{display:flex}.quarto-dashboard .toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .toolbar>*:last-child{margin-right:0}.quarto-dashboard .toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .toolbar .shiny-input-container{padding-bottom:0;margin-bottom:0}.quarto-dashboard .toolbar .shiny-input-container>*{flex-shrink:0;flex-grow:0}.quarto-dashboard .toolbar .form-group.shiny-input-container:not([role=group])>label{margin-bottom:0}.quarto-dashboard .toolbar .shiny-input-container.no-baseline{align-items:start;padding-top:6px}.quarto-dashboard .toolbar .shiny-input-container{display:flex;align-items:baseline}.quarto-dashboard .toolbar .shiny-input-container label{padding-right:.4em}.quarto-dashboard .toolbar .shiny-input-container .bslib-input-switch{margin-top:6px}.quarto-dashboard .toolbar input[type=text]{line-height:1;width:inherit}.quarto-dashboard .toolbar .input-daterange{width:inherit}.quarto-dashboard .toolbar .input-daterange input[type=text]{height:2.4em;width:10em}.quarto-dashboard .toolbar .input-daterange .input-group-addon{height:auto;padding:0;margin-left:-5px !important;margin-right:-5px}.quarto-dashboard .toolbar .input-daterange .input-group-addon .input-group-text{padding-top:0;padding-bottom:0;height:100%}.quarto-dashboard .toolbar span.irs.irs--shiny{width:10em}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-line{top:9px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-min,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-max,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-from,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-to,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-single{top:20px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-bar{top:8px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-handle{top:0px}.quarto-dashboard .toolbar .shiny-input-checkboxgroup>label{margin-top:6px}.quarto-dashboard .toolbar .shiny-input-checkboxgroup>.shiny-options-group{margin-top:0;align-items:baseline}.quarto-dashboard .toolbar .shiny-input-radiogroup>label{margin-top:6px}.quarto-dashboard .toolbar .shiny-input-radiogroup>.shiny-options-group{align-items:baseline;margin-top:0}.quarto-dashboard .toolbar .shiny-input-radiogroup>.shiny-options-group>.radio{margin-right:.3em}.quarto-dashboard .toolbar .form-select{padding-top:.2em;padding-bottom:.2em}.quarto-dashboard .toolbar .shiny-input-select{min-width:6em}.quarto-dashboard .toolbar div.checkbox{margin-bottom:0px}.quarto-dashboard .toolbar>.checkbox:first-child{margin-top:6px}.quarto-dashboard .toolbar form{width:fit-content}.quarto-dashboard .toolbar form label{padding-top:.2em;padding-bottom:.2em;width:fit-content}.quarto-dashboard .toolbar form input[type=date]{width:fit-content}.quarto-dashboard .toolbar form input[type=color]{width:3em}.quarto-dashboard .toolbar form button{padding:.4em}.quarto-dashboard .toolbar form select{width:fit-content}.quarto-dashboard .toolbar>*{font-size:.9em;flex-grow:0}.quarto-dashboard .toolbar .shiny-input-container label{margin-bottom:1px}.quarto-dashboard .toolbar-bottom{margin-top:1em;margin-bottom:0 !important;order:2}.quarto-dashboard .quarto-dashboard-content>.dashboard-toolbar-container>.toolbar-content>.tab-content>.tab-pane>*:not(.bslib-sidebar-layout){padding:1em}.quarto-dashboard .quarto-dashboard-content>.dashboard-toolbar-container>.toolbar-content>*:not(.tab-content){padding:1em}.quarto-dashboard .quarto-dashboard-content>.tab-content>.dashboard-page>.dashboard-toolbar-container>.toolbar-content,.quarto-dashboard .quarto-dashboard-content>.tab-content>.dashboard-page:not(.dashboard-sidebar-container)>*:not(.dashboard-toolbar-container){padding:1em}.quarto-dashboard .toolbar-content{padding:0}.quarto-dashboard .quarto-dashboard-content.quarto-dashboard-pages .tab-pane>.dashboard-toolbar-container .toolbar{border-radius:0;margin-bottom:0}.quarto-dashboard .dashboard-toolbar-container.toolbar-toplevel .toolbar{border-bottom:1px solid rgba(0,0,0,.175)}.quarto-dashboard .dashboard-toolbar-container.toolbar-toplevel .toolbar-bottom{margin-top:0}.quarto-dashboard .dashboard-toolbar-container:not(.toolbar-toplevel) .toolbar{margin-bottom:1em;border-top:none;border-radius:.25rem;border:1px solid rgba(0,0,0,.175)}.quarto-dashboard .vega-embed.has-actions details{width:1.7em;height:2em;position:absolute !important;top:0;right:0}.quarto-dashboard .dashboard-toolbar-container{padding:0}.quarto-dashboard .card .card-header p:last-child,.quarto-dashboard .card .card-footer p:last-child{margin-bottom:0}.quarto-dashboard .card .card-body>.h4:first-child{margin-top:0}.quarto-dashboard .card .card-body{z-index:4}@media(max-width: 767.98px){.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_length,.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_info,.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_paginate{text-align:initial}.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_filter{text-align:right}.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_paginate ul.pagination{justify-content:initial}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;padding-top:0}.quarto-dashboard .card .card-body .itables .dataTables_wrapper table{flex-shrink:0}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons{margin-bottom:.5em;margin-left:auto;width:fit-content;float:right}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons.btn-group{background:#222;border:none}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons .btn-secondary{background-color:#222;background-image:none;border:solid #dee2e6 1px;padding:.2em .7em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons .btn span{font-size:.8em;color:#fff}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{margin-left:.5em;margin-bottom:.5em;padding-top:0}@media(min-width: 768px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{font-size:.875em}}@media(max-width: 767.98px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{font-size:.8em}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_filter{margin-bottom:.5em;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_filter input[type=search]{padding:1px 5px 1px 5px;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_length{flex-basis:1 1 50%;margin-bottom:.5em;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_length select{padding:.4em 3em .4em .5em;font-size:.875em;margin-left:.2em;margin-right:.2em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate{flex-shrink:0}@media(min-width: 768px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate{margin-left:auto}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate ul.pagination .paginate_button .page-link{font-size:.8em}.quarto-dashboard .card .card-footer{font-size:.9em}.quarto-dashboard .card .card-toolbar{display:flex;flex-grow:1;flex-direction:row;width:100%;flex-wrap:wrap}.quarto-dashboard .card .card-toolbar>*{font-size:.8em;flex-grow:0}.quarto-dashboard .card .card-toolbar>.card-title{font-size:1em;flex-grow:1;align-self:flex-start;margin-top:.1em}.quarto-dashboard .card .card-toolbar .cell-output-display{display:flex}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .card .card-toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card .card-toolbar>*:last-child{margin-right:0}.quarto-dashboard .card .card-toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .card .card-toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .card .card-toolbar form{width:fit-content}.quarto-dashboard .card .card-toolbar form label{padding-top:.2em;padding-bottom:.2em;width:fit-content}.quarto-dashboard .card .card-toolbar form input[type=date]{width:fit-content}.quarto-dashboard .card .card-toolbar form input[type=color]{width:3em}.quarto-dashboard .card .card-toolbar form button{padding:.4em}.quarto-dashboard .card .card-toolbar form select{width:fit-content}.quarto-dashboard .card .card-toolbar .cell-output-display{display:flex}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .card .card-toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card .card-toolbar>*:last-child{margin-right:0}.quarto-dashboard .card .card-toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .card .card-toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:0;margin-bottom:0}.quarto-dashboard .card .card-toolbar .shiny-input-container>*{flex-shrink:0;flex-grow:0}.quarto-dashboard .card .card-toolbar .form-group.shiny-input-container:not([role=group])>label{margin-bottom:0}.quarto-dashboard .card .card-toolbar .shiny-input-container.no-baseline{align-items:start;padding-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-container{display:flex;align-items:baseline}.quarto-dashboard .card .card-toolbar .shiny-input-container label{padding-right:.4em}.quarto-dashboard .card .card-toolbar .shiny-input-container .bslib-input-switch{margin-top:6px}.quarto-dashboard .card .card-toolbar input[type=text]{line-height:1;width:inherit}.quarto-dashboard .card .card-toolbar .input-daterange{width:inherit}.quarto-dashboard .card .card-toolbar .input-daterange input[type=text]{height:2.4em;width:10em}.quarto-dashboard .card .card-toolbar .input-daterange .input-group-addon{height:auto;padding:0;margin-left:-5px !important;margin-right:-5px}.quarto-dashboard .card .card-toolbar .input-daterange .input-group-addon .input-group-text{padding-top:0;padding-bottom:0;height:100%}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny{width:10em}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-line{top:9px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-min,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-max,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-from,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-to,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-single{top:20px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-bar{top:8px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-handle{top:0px}.quarto-dashboard .card .card-toolbar .shiny-input-checkboxgroup>label{margin-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-checkboxgroup>.shiny-options-group{margin-top:0;align-items:baseline}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>label{margin-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>.shiny-options-group{align-items:baseline;margin-top:0}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>.shiny-options-group>.radio{margin-right:.3em}.quarto-dashboard .card .card-toolbar .form-select{padding-top:.2em;padding-bottom:.2em}.quarto-dashboard .card .card-toolbar .shiny-input-select{min-width:6em}.quarto-dashboard .card .card-toolbar div.checkbox{margin-bottom:0px}.quarto-dashboard .card .card-toolbar>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card-body>table>thead{border-top:none}.quarto-dashboard .card-body>.table>:not(caption)>*>*{background-color:#2d2d2d}.tableFloatingHeaderOriginal{background-color:#2d2d2d;position:sticky !important;top:0 !important}.dashboard-data-table{margin-top:-1px}div.value-box-area span.observablehq--number{font-size:calc(clamp(.1em,15cqw,5em)*1.25);line-height:1.2;color:inherit;font-family:var(--bs-body-font-family)}.quarto-listing{padding-bottom:1em}.listing-pagination{padding-top:.5em}ul.pagination{float:right;padding-left:8px;padding-top:.5em}ul.pagination li{padding-right:.75em}ul.pagination li.disabled a,ul.pagination li.active a{color:#fff;text-decoration:none}ul.pagination li:last-of-type{padding-right:0}.listing-actions-group{display:flex}.listing-actions-group .form-select,.listing-actions-group .form-control{background-color:#222;color:#fff}.quarto-listing-filter{margin-bottom:1em;width:200px;margin-left:auto}.quarto-listing-sort{margin-bottom:1em;margin-right:auto;width:auto}.quarto-listing-sort .input-group-text{font-size:.8em}.input-group-text{border-right:none}.quarto-listing-sort select.form-select{font-size:.8em}.listing-no-matching{text-align:center;padding-top:2em;padding-bottom:3em;font-size:1em}#quarto-margin-sidebar .quarto-listing-category{padding-top:0;font-size:1rem}#quarto-margin-sidebar .quarto-listing-category-title{cursor:pointer;font-weight:600;font-size:1rem}.quarto-listing-category .category{cursor:pointer}.quarto-listing-category .category.active{font-weight:600}.quarto-listing-category.category-cloud{display:flex;flex-wrap:wrap;align-items:baseline}.quarto-listing-category.category-cloud .category{padding-right:5px}.quarto-listing-category.category-cloud .category-cloud-1{font-size:.75em}.quarto-listing-category.category-cloud .category-cloud-2{font-size:.95em}.quarto-listing-category.category-cloud .category-cloud-3{font-size:1.15em}.quarto-listing-category.category-cloud .category-cloud-4{font-size:1.35em}.quarto-listing-category.category-cloud .category-cloud-5{font-size:1.55em}.quarto-listing-category.category-cloud .category-cloud-6{font-size:1.75em}.quarto-listing-category.category-cloud .category-cloud-7{font-size:1.95em}.quarto-listing-category.category-cloud .category-cloud-8{font-size:2.15em}.quarto-listing-category.category-cloud .category-cloud-9{font-size:2.35em}.quarto-listing-category.category-cloud .category-cloud-10{font-size:2.55em}.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-1{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-2{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-3{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-3{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-4{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-4{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-5{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-5{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-6{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-6{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-7{grid-template-columns:repeat(7, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-7{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-7{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-8{grid-template-columns:repeat(8, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-8{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-8{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-9{grid-template-columns:repeat(9, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-9{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-9{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-10{grid-template-columns:repeat(10, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-10{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-10{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-11{grid-template-columns:repeat(11, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-11{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-11{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-12{grid-template-columns:repeat(12, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-12{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-12{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-grid{gap:1.5em}.quarto-grid-item.borderless{border:none}.quarto-grid-item.borderless .listing-categories .listing-category:last-of-type,.quarto-grid-item.borderless .listing-categories .listing-category:first-of-type{padding-left:0}.quarto-grid-item.borderless .listing-categories .listing-category{border:0}.quarto-grid-link{text-decoration:none;color:inherit}.quarto-grid-link:hover{text-decoration:none;color:inherit}.quarto-grid-item h5.title,.quarto-grid-item .title.h5{margin-top:0;margin-bottom:0}.quarto-grid-item .card-footer{display:flex;justify-content:space-between;font-size:.8em}.quarto-grid-item .card-footer p{margin-bottom:0}.quarto-grid-item p.card-img-top{margin-bottom:0}.quarto-grid-item p.card-img-top>img{object-fit:cover}.quarto-grid-item .card-other-values{margin-top:.5em;font-size:.8em}.quarto-grid-item .card-other-values tr{margin-bottom:.5em}.quarto-grid-item .card-other-values tr>td:first-of-type{font-weight:600;padding-right:1em;padding-left:1em;vertical-align:top}.quarto-grid-item div.post-contents{display:flex;flex-direction:column;text-decoration:none;height:100%}.quarto-grid-item .listing-item-img-placeholder{background-color:rgba(52,58,64,.25);flex-shrink:0}.quarto-grid-item .card-attribution{padding-top:1em;display:flex;gap:1em;text-transform:uppercase;color:#6c757d;font-weight:500;flex-grow:10;align-items:flex-end}.quarto-grid-item .description{padding-bottom:1em}.quarto-grid-item .card-attribution .date{align-self:flex-end}.quarto-grid-item .card-attribution.justify{justify-content:space-between}.quarto-grid-item .card-attribution.start{justify-content:flex-start}.quarto-grid-item .card-attribution.end{justify-content:flex-end}.quarto-grid-item .card-title{margin-bottom:.1em}.quarto-grid-item .card-subtitle{padding-top:.25em}.quarto-grid-item .card-text{font-size:.9em}.quarto-grid-item .listing-reading-time{padding-bottom:.25em}.quarto-grid-item .card-text-small{font-size:.8em}.quarto-grid-item .card-subtitle.subtitle{font-size:.9em;font-weight:600;padding-bottom:.5em}.quarto-grid-item .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}.quarto-grid-item .listing-categories .listing-category{color:#6c757d;border:solid #6c757d 1px;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}.quarto-grid-item.card-right{text-align:right}.quarto-grid-item.card-right .listing-categories{justify-content:flex-end}.quarto-grid-item.card-left{text-align:left}.quarto-grid-item.card-center{text-align:center}.quarto-grid-item.card-center .listing-description{text-align:justify}.quarto-grid-item.card-center .listing-categories{justify-content:center}table.quarto-listing-table td.image{padding:0px}table.quarto-listing-table td.image img{width:100%;max-width:50px;object-fit:contain}table.quarto-listing-table a{text-decoration:none;word-break:keep-all}table.quarto-listing-table th a{color:inherit}table.quarto-listing-table th a.asc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table th a.desc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table.table-hover td{cursor:pointer}.quarto-post.image-left{flex-direction:row}.quarto-post.image-right{flex-direction:row-reverse}@media(max-width: 767.98px){.quarto-post.image-right,.quarto-post.image-left{gap:0em;flex-direction:column}.quarto-post .metadata{padding-bottom:1em;order:2}.quarto-post .body{order:1}.quarto-post .thumbnail{order:3}}.list.quarto-listing-default div:last-of-type{border-bottom:none}@media(min-width: 992px){.quarto-listing-container-default{margin-right:2em}}div.quarto-post{display:flex;gap:2em;margin-bottom:1.5em;border-bottom:1px solid #dee2e6}@media(max-width: 767.98px){div.quarto-post{padding-bottom:1em}}div.quarto-post .metadata{flex-basis:20%;flex-grow:0;margin-top:.2em;flex-shrink:10}div.quarto-post .thumbnail{flex-basis:30%;flex-grow:0;flex-shrink:0}div.quarto-post .thumbnail img{margin-top:.4em;width:100%;object-fit:cover}div.quarto-post .body{flex-basis:45%;flex-grow:1;flex-shrink:0}div.quarto-post .body h3.listing-title,div.quarto-post .body .listing-title.h3{margin-top:0px;margin-bottom:0px;border-bottom:none}div.quarto-post .body .listing-subtitle{font-size:.875em;margin-bottom:.5em;margin-top:.2em}div.quarto-post .body .description{font-size:.9em}div.quarto-post .body pre code{white-space:pre-wrap}div.quarto-post a{color:#fff;text-decoration:none}div.quarto-post .metadata{display:flex;flex-direction:column;font-size:.8em;font-family:Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";flex-basis:33%}div.quarto-post .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}div.quarto-post .listing-categories .listing-category{color:#6c757d;border:solid #6c757d 1px;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}div.quarto-post .listing-description{margin-bottom:.5em}div.quarto-about-jolla{display:flex !important;flex-direction:column;align-items:center;margin-top:10%;padding-bottom:1em}div.quarto-about-jolla .about-image{object-fit:cover;margin-left:auto;margin-right:auto;margin-bottom:1.5em}div.quarto-about-jolla img.round{border-radius:50%}div.quarto-about-jolla img.rounded{border-radius:10px}div.quarto-about-jolla .quarto-title h1.title,div.quarto-about-jolla .quarto-title .title.h1{text-align:center}div.quarto-about-jolla .quarto-title .description{text-align:center}div.quarto-about-jolla h2,div.quarto-about-jolla .h2{border-bottom:none}div.quarto-about-jolla .about-sep{width:60%}div.quarto-about-jolla main{text-align:center}div.quarto-about-jolla .about-links{display:flex}@media(min-width: 992px){div.quarto-about-jolla .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-jolla .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-jolla .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-jolla .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-jolla .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-jolla .about-link:hover{color:#00bc8c}div.quarto-about-jolla .about-link i.bi{margin-right:.15em}div.quarto-about-solana{display:flex !important;flex-direction:column;padding-top:3em !important;padding-bottom:1em}div.quarto-about-solana .about-entity{display:flex !important;align-items:start;justify-content:space-between}@media(min-width: 992px){div.quarto-about-solana .about-entity{flex-direction:row}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity{flex-direction:column-reverse;align-items:center;text-align:center}}div.quarto-about-solana .about-entity .entity-contents{display:flex;flex-direction:column}@media(max-width: 767.98px){div.quarto-about-solana .about-entity .entity-contents{width:100%}}div.quarto-about-solana .about-entity .about-image{object-fit:cover}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-image{margin-bottom:1.5em}}div.quarto-about-solana .about-entity img.round{border-radius:50%}div.quarto-about-solana .about-entity img.rounded{border-radius:10px}div.quarto-about-solana .about-entity .about-links{display:flex;justify-content:left;padding-bottom:1.2em}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-solana .about-entity .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-solana .about-entity .about-link:hover{color:#00bc8c}div.quarto-about-solana .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-solana .about-contents{padding-right:1.5em;flex-basis:0;flex-grow:1}div.quarto-about-solana .about-contents main.content{margin-top:0}div.quarto-about-solana .about-contents h2,div.quarto-about-solana .about-contents .h2{border-bottom:none}div.quarto-about-trestles{display:flex !important;flex-direction:row;padding-top:3em !important;padding-bottom:1em}@media(max-width: 991.98px){div.quarto-about-trestles{flex-direction:column;padding-top:0em !important}}div.quarto-about-trestles .about-entity{display:flex !important;flex-direction:column;align-items:center;text-align:center;padding-right:1em}@media(min-width: 992px){div.quarto-about-trestles .about-entity{flex:0 0 42%}}div.quarto-about-trestles .about-entity .about-image{object-fit:cover;margin-bottom:1.5em}div.quarto-about-trestles .about-entity img.round{border-radius:50%}div.quarto-about-trestles .about-entity img.rounded{border-radius:10px}div.quarto-about-trestles .about-entity .about-links{display:flex;justify-content:center}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-trestles .about-entity .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-trestles .about-entity .about-link:hover{color:#00bc8c}div.quarto-about-trestles .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-trestles .about-contents{flex-basis:0;flex-grow:1}div.quarto-about-trestles .about-contents h2,div.quarto-about-trestles .about-contents .h2{border-bottom:none}@media(min-width: 992px){div.quarto-about-trestles .about-contents{border-left:solid 1px #dee2e6;padding-left:1.5em}}div.quarto-about-trestles .about-contents main.content{margin-top:0}div.quarto-about-marquee{padding-bottom:1em}div.quarto-about-marquee .about-contents{display:flex;flex-direction:column}div.quarto-about-marquee .about-image{max-height:550px;margin-bottom:1.5em;object-fit:cover}div.quarto-about-marquee img.round{border-radius:50%}div.quarto-about-marquee img.rounded{border-radius:10px}div.quarto-about-marquee h2,div.quarto-about-marquee .h2{border-bottom:none}div.quarto-about-marquee .about-links{display:flex;justify-content:center;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-marquee .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-marquee .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-marquee .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-marquee .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-marquee .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-marquee .about-link:hover{color:#00bc8c}div.quarto-about-marquee .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-marquee .about-link{border:none}}div.quarto-about-broadside{display:flex;flex-direction:column;padding-bottom:1em}div.quarto-about-broadside .about-main{display:flex !important;padding-top:0 !important}@media(min-width: 992px){div.quarto-about-broadside .about-main{flex-direction:row;align-items:flex-start}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main{flex-direction:column}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main .about-entity{flex-shrink:0;width:100%;height:450px;margin-bottom:1.5em;background-size:cover;background-repeat:no-repeat}}@media(min-width: 992px){div.quarto-about-broadside .about-main .about-entity{flex:0 10 50%;margin-right:1.5em;width:100%;height:100%;background-size:100%;background-repeat:no-repeat}}div.quarto-about-broadside .about-main .about-contents{padding-top:14px;flex:0 0 50%}div.quarto-about-broadside h2,div.quarto-about-broadside .h2{border-bottom:none}div.quarto-about-broadside .about-sep{margin-top:1.5em;width:60%;align-self:center}div.quarto-about-broadside .about-links{display:flex;justify-content:center;column-gap:20px;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-broadside .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-broadside .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-broadside .about-link{color:#fff;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-broadside .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-broadside .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-broadside .about-link:hover{color:#00bc8c}div.quarto-about-broadside .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-broadside .about-link{border:none}}.tippy-box[data-theme~=quarto]{background-color:#222;border:solid 1px #dee2e6;border-radius:.25rem;color:#fff;font-size:.875rem}.tippy-box[data-theme~=quarto]>.tippy-backdrop{background-color:#222}.tippy-box[data-theme~=quarto]>.tippy-arrow:after,.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{content:"";position:absolute;z-index:-1}.tippy-box[data-theme~=quarto]>.tippy-arrow:after{border-color:rgba(0,0,0,0);border-style:solid}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-6px}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-6px}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-6px}.tippy-box[data-placement^=left]>.tippy-arrow:before{right:-6px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:before{border-top-color:#222}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:after{border-top-color:#dee2e6;border-width:7px 7px 0;top:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow>svg{top:16px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow:after{top:17px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#222;bottom:16px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:#dee2e6;border-width:0 7px 7px;bottom:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:15px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow:after{bottom:17px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:before{border-left-color:#222}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:after{border-left-color:#dee2e6;border-width:7px 0 7px 7px;left:17px;top:1px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow>svg{left:11px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow:after{left:12px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:before{border-right-color:#222;right:16px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:#dee2e6}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow{fill:#fff}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px}.top-right{position:absolute;top:1em;right:1em}.visually-hidden{border:0;clip:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none !important}.zindex-bottom{z-index:-1 !important}figure.figure{display:block}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p,.quarto-figure-left>figure>div{text-align:left}.quarto-figure-center>figure>p,.quarto-figure-center>figure>div{text-align:center}.quarto-figure-right>figure>p,.quarto-figure-right>figure>div{text-align:right}.quarto-figure>figure>div.cell-annotation,.quarto-figure>figure>div code{text-align:left}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption.quarto-float-caption-bottom{margin-bottom:.5em}figure>figcaption.quarto-float-caption-top{margin-top:.5em}div[id^=tbl-]{position:relative}.quarto-figure>.anchorjs-link{position:absolute;top:.6em;right:.5em}div[id^=tbl-]>.anchorjs-link{position:absolute;top:.7em;right:.3em}.quarto-figure:hover>.anchorjs-link,div[id^=tbl-]:hover>.anchorjs-link,h2:hover>.anchorjs-link,.h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,.h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,.h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,.h5:hover>.anchorjs-link,h6:hover>.anchorjs-link,.h6:hover>.anchorjs-link,.reveal-anchorjs-link>.anchorjs-link{opacity:1}#title-block-header{margin-block-end:1rem;position:relative;margin-top:-1px}#title-block-header .abstract{margin-block-start:1rem}#title-block-header .abstract .abstract-title{font-weight:600}#title-block-header a{text-decoration:none}#title-block-header .author,#title-block-header .date,#title-block-header .doi{margin-block-end:.2rem}#title-block-header .quarto-title-block>div{display:flex}#title-block-header .quarto-title-block>div>h1,#title-block-header .quarto-title-block>div>.h1{flex-grow:1}#title-block-header .quarto-title-block>div>button{flex-shrink:0;height:2.25rem;margin-top:0}@media(min-width: 992px){#title-block-header .quarto-title-block>div>button{margin-top:5px}}tr.header>th>p:last-of-type{margin-bottom:0px}table,table.table{margin-top:.5rem;margin-bottom:.5rem}caption,.table-caption{padding-top:.5rem;padding-bottom:.5rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-top{margin-top:.5rem;margin-bottom:.25rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-bottom{padding-top:.25rem;margin-bottom:.5rem;text-align:center}.utterances{max-width:none;margin-left:-8px}iframe{margin-bottom:1em}details{margin-bottom:1em}details[show]{margin-bottom:0}details>summary{color:#6c757d}details>summary>p:only-child{display:inline}pre.sourceCode,code.sourceCode{position:relative}dd code:not(.sourceCode),p code:not(.sourceCode){white-space:pre-wrap}code{white-space:pre}@media print{code{white-space:pre-wrap}}pre>code{display:block}pre>code.sourceCode{white-space:pre}pre>code.sourceCode>span>a:first-child::before{text-decoration:none}pre.code-overflow-wrap>code.sourceCode{white-space:pre-wrap}pre.code-overflow-scroll>code.sourceCode{white-space:pre}code a:any-link{color:inherit;text-decoration:none}code a:hover{color:inherit;text-decoration:underline}ul.task-list{padding-left:1em}[data-tippy-root]{display:inline-block}.tippy-content .footnote-back{display:none}.footnote-back{margin-left:.2em}.tippy-content{overflow-x:auto}.quarto-embedded-source-code{display:none}.quarto-unresolved-ref{font-weight:600}.quarto-cover-image{max-width:35%;float:right;margin-left:30px}.cell-output-display .widget-subarea{margin-bottom:1em}.cell-output-display:not(.no-overflow-x),.knitsql-table:not(.no-overflow-x){overflow-x:auto}.panel-input{margin-bottom:1em}.panel-input>div,.panel-input>div>div{display:inline-block;vertical-align:top;padding-right:12px}.panel-input>p:last-child{margin-bottom:0}.layout-sidebar{margin-bottom:1em}.layout-sidebar .tab-content{border:none}.tab-content>.page-columns.active{display:grid}div.sourceCode>iframe{width:100%;height:300px;margin-bottom:-0.5em}a{text-underline-offset:3px}div.ansi-escaped-output{font-family:monospace;display:block}/*! * * ansi colors from IPython notebook's * * we also add `bright-[color]-` synonyms for the `-[color]-intense` classes since * that seems to be what ansi_up emits * -*/.ansi-black-fg{color:#3e424d}.ansi-black-bg{background-color:#3e424d}.ansi-black-intense-black,.ansi-bright-black-fg{color:#282c36}.ansi-black-intense-black,.ansi-bright-black-bg{background-color:#282c36}.ansi-red-fg{color:#e75c58}.ansi-red-bg{background-color:#e75c58}.ansi-red-intense-red,.ansi-bright-red-fg{color:#b22b31}.ansi-red-intense-red,.ansi-bright-red-bg{background-color:#b22b31}.ansi-green-fg{color:#00a250}.ansi-green-bg{background-color:#00a250}.ansi-green-intense-green,.ansi-bright-green-fg{color:#007427}.ansi-green-intense-green,.ansi-bright-green-bg{background-color:#007427}.ansi-yellow-fg{color:#ddb62b}.ansi-yellow-bg{background-color:#ddb62b}.ansi-yellow-intense-yellow,.ansi-bright-yellow-fg{color:#b27d12}.ansi-yellow-intense-yellow,.ansi-bright-yellow-bg{background-color:#b27d12}.ansi-blue-fg{color:#208ffb}.ansi-blue-bg{background-color:#208ffb}.ansi-blue-intense-blue,.ansi-bright-blue-fg{color:#0065ca}.ansi-blue-intense-blue,.ansi-bright-blue-bg{background-color:#0065ca}.ansi-magenta-fg{color:#d160c4}.ansi-magenta-bg{background-color:#d160c4}.ansi-magenta-intense-magenta,.ansi-bright-magenta-fg{color:#a03196}.ansi-magenta-intense-magenta,.ansi-bright-magenta-bg{background-color:#a03196}.ansi-cyan-fg{color:#60c6c8}.ansi-cyan-bg{background-color:#60c6c8}.ansi-cyan-intense-cyan,.ansi-bright-cyan-fg{color:#258f8f}.ansi-cyan-intense-cyan,.ansi-bright-cyan-bg{background-color:#258f8f}.ansi-white-fg{color:#c5c1b4}.ansi-white-bg{background-color:#c5c1b4}.ansi-white-intense-white,.ansi-bright-white-fg{color:#a1a6b2}.ansi-white-intense-white,.ansi-bright-white-bg{background-color:#a1a6b2}.ansi-default-inverse-fg{color:#fff}.ansi-default-inverse-bg{background-color:#000}.ansi-bold{font-weight:bold}.ansi-underline{text-decoration:underline}:root{--quarto-body-bg: #222;--quarto-body-color: #fff;--quarto-text-muted: #6c757d;--quarto-border-color: #434343;--quarto-border-width: 1px;--quarto-border-radius: 0.25rem}table.gt_table{color:var(--quarto-body-color);font-size:1em;width:100%;background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_column_spanner_outer{color:var(--quarto-body-color);background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_col_heading{color:var(--quarto-body-color);font-weight:bold;background-color:rgba(0,0,0,0)}table.gt_table thead.gt_col_headings{border-bottom:1px solid currentColor;border-top-width:inherit;border-top-color:var(--quarto-border-color)}table.gt_table thead.gt_col_headings:not(:first-child){border-top-width:1px;border-top-color:var(--quarto-border-color)}table.gt_table td.gt_row{border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-width:0px}table.gt_table tbody.gt_table_body{border-top-width:1px;border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-color:currentColor}div.columns{display:initial;gap:initial}div.column{display:inline-block;overflow-x:initial;vertical-align:top;width:50%}.code-annotation-tip-content{word-wrap:break-word}.code-annotation-container-hidden{display:none !important}dl.code-annotation-container-grid{display:grid;grid-template-columns:min-content auto}dl.code-annotation-container-grid dt{grid-column:1}dl.code-annotation-container-grid dd{grid-column:2}pre.sourceCode.code-annotation-code{padding-right:0}code.sourceCode .code-annotation-anchor{z-index:100;position:relative;float:right;background-color:rgba(0,0,0,0)}input[type=checkbox]{margin-right:.5ch}:root{--mermaid-bg-color: #222;--mermaid-edge-color: #434343;--mermaid-node-fg-color: #fff;--mermaid-fg-color: #fff;--mermaid-fg-color--lighter: white;--mermaid-fg-color--lightest: white;--mermaid-font-family: Lato, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--mermaid-label-bg-color: #222;--mermaid-label-fg-color: #375a7f;--mermaid-node-bg-color: rgba(55, 90, 127, 0.1);--mermaid-node-fg-color: #fff}@media print{:root{font-size:11pt}#quarto-sidebar,#TOC,.nav-page{display:none}.page-columns .content{grid-column-start:page-start}.fixed-top{position:relative}.panel-caption,.figure-caption,figcaption{color:#666}}.code-copy-button{position:absolute;top:0;right:0;border:0;margin-top:5px;margin-right:5px;background-color:rgba(0,0,0,0);z-index:3}.code-copy-button:focus{outline:none}.code-copy-button-tooltip{font-size:.75em}.code-copy-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button-checked:hover>.bi::before{background-image:url('data:image/svg+xml,')}main ol ol,main ul ul,main ol ul,main ul ol{margin-bottom:1em}ul>li:not(:has(>p))>ul,ol>li:not(:has(>p))>ul,ul>li:not(:has(>p))>ol,ol>li:not(:has(>p))>ol{margin-bottom:0}ul>li:not(:has(>p))>ul>li:has(>p),ol>li:not(:has(>p))>ul>li:has(>p),ul>li:not(:has(>p))>ol>li:has(>p),ol>li:not(:has(>p))>ol>li:has(>p){margin-top:1rem}body{margin:0}main.page-columns>header>h1.title,main.page-columns>header>.title.h1{margin-bottom:0}@media(min-width: 992px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] 35px [page-end-inset page-end] 5fr [screen-end-inset] 1.5em}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 3em [body-end] 50px [body-end-outset] minmax(0px, 250px) [page-end-inset] minmax(50px, 100px) [page-end] 1fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 100px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 150px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 991.98px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(100449px - 3em)) [body-content-end body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1.5em [body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 767.98px){body .page-columns,body.fullcontent:not(.floating):not(.docked) .page-columns,body.slimcontent:not(.floating):not(.docked) .page-columns,body.docked .page-columns,body.docked.slimcontent .page-columns,body.docked.fullcontent .page-columns,body.floating .page-columns,body.floating.slimcontent .page-columns,body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}nav[role=doc-toc]{display:none}}body,.page-row-navigation{grid-template-rows:[page-top] max-content [contents-top] max-content [contents-bottom] max-content [page-bottom]}.page-rows-contents{grid-template-rows:[content-top] minmax(max-content, 1fr) [content-bottom] minmax(60px, max-content) [page-bottom]}.page-full{grid-column:screen-start/screen-end !important}.page-columns>*{grid-column:body-content-start/body-content-end}.page-columns.column-page>*{grid-column:page-start/page-end}.page-columns.column-page-left .page-columns.page-full>*,.page-columns.column-page-left>*{grid-column:page-start/body-content-end}.page-columns.column-page-right .page-columns.page-full>*,.page-columns.column-page-right>*{grid-column:body-content-start/page-end}.page-rows{grid-auto-rows:auto}.header{grid-column:screen-start/screen-end;grid-row:page-top/contents-top}#quarto-content{padding:0;grid-column:screen-start/screen-end;grid-row:contents-top/contents-bottom}body.floating .sidebar.sidebar-navigation{grid-column:page-start/body-start;grid-row:content-top/page-bottom}body.docked .sidebar.sidebar-navigation{grid-column:screen-start/body-start;grid-row:content-top/page-bottom}.sidebar.toc-left{grid-column:page-start/body-start;grid-row:content-top/page-bottom}.sidebar.margin-sidebar{grid-column:body-end/page-end;grid-row:content-top/page-bottom}.page-columns .content{grid-column:body-content-start/body-content-end;grid-row:content-top/content-bottom;align-content:flex-start}.page-columns .page-navigation{grid-column:body-content-start/body-content-end;grid-row:content-bottom/page-bottom}.page-columns .footer{grid-column:screen-start/screen-end;grid-row:contents-bottom/page-bottom}.page-columns .column-body{grid-column:body-content-start/body-content-end}.page-columns .column-body-fullbleed{grid-column:body-start/body-end}.page-columns .column-body-outset{grid-column:body-start-outset/body-end-outset;z-index:998;opacity:.999}.page-columns .column-body-outset table{background:#222}.page-columns .column-body-outset-left{grid-column:body-start-outset/body-content-end;z-index:998;opacity:.999}.page-columns .column-body-outset-left table{background:#222}.page-columns .column-body-outset-right{grid-column:body-content-start/body-end-outset;z-index:998;opacity:.999}.page-columns .column-body-outset-right table{background:#222}.page-columns .column-page{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-page table{background:#222}.page-columns .column-page-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.page-columns .column-page-inset table{background:#222}.page-columns .column-page-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-page-inset-left table{background:#222}.page-columns .column-page-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;opacity:.999}.page-columns .column-page-inset-right figcaption table{background:#222}.page-columns .column-page-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-page-left table{background:#222}.page-columns .column-page-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.page-columns .column-page-right figcaption table{background:#222}#quarto-content.page-columns #quarto-margin-sidebar,#quarto-content.page-columns #quarto-sidebar{z-index:1}@media(max-width: 991.98px){#quarto-content.page-columns #quarto-margin-sidebar.collapse,#quarto-content.page-columns #quarto-sidebar.collapse,#quarto-content.page-columns #quarto-margin-sidebar.collapsing,#quarto-content.page-columns #quarto-sidebar.collapsing{z-index:1055}}#quarto-content.page-columns main.column-page,#quarto-content.page-columns main.column-page-right,#quarto-content.page-columns main.column-page-left{z-index:0}.page-columns .column-screen-inset{grid-column:screen-start-inset/screen-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset table{background:#222}.page-columns .column-screen-inset-left{grid-column:screen-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-inset-left table{background:#222}.page-columns .column-screen-inset-right{grid-column:body-content-start/screen-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset-right table{background:#222}.page-columns .column-screen{grid-column:screen-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#222}.page-columns .column-screen-left{grid-column:screen-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#222}.page-columns .column-screen-right{grid-column:body-content-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen-right table{background:#222}.page-columns .column-screen-inset-shaded{grid-column:screen-start/screen-end;padding:1em;background:#6f6f6f;z-index:998;opacity:.999;margin-bottom:1em}.zindex-content{z-index:998;opacity:.999}.zindex-modal{z-index:1055;opacity:.999}.zindex-over-content{z-index:999;opacity:.999}img.img-fluid.column-screen,img.img-fluid.column-screen-inset-shaded,img.img-fluid.column-screen-inset,img.img-fluid.column-screen-inset-left,img.img-fluid.column-screen-inset-right,img.img-fluid.column-screen-left,img.img-fluid.column-screen-right{width:100%}@media(min-width: 992px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-end/page-end !important;z-index:998}.column-sidebar{grid-column:page-start/body-start !important;z-index:998}.column-leftmargin{grid-column:screen-start-inset/body-start !important;z-index:998}.no-row-height{height:1em;overflow:visible}}@media(max-width: 991.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-end/page-end !important;z-index:998}.no-row-height{height:1em;overflow:visible}.page-columns.page-full{overflow:visible}.page-columns.toc-left .margin-caption,.page-columns.toc-left div.aside,.page-columns.toc-left aside:not(.footnotes):not(.sidebar),.page-columns.toc-left .column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.page-columns.toc-left .no-row-height{height:initial;overflow:initial}}@media(max-width: 767.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.no-row-height{height:initial;overflow:initial}#quarto-margin-sidebar{display:none}#quarto-sidebar-toc-left{display:none}.hidden-sm{display:none}}.panel-grid{display:grid;grid-template-rows:repeat(1, 1fr);grid-template-columns:repeat(24, 1fr);gap:1em}.panel-grid .g-col-1{grid-column:auto/span 1}.panel-grid .g-col-2{grid-column:auto/span 2}.panel-grid .g-col-3{grid-column:auto/span 3}.panel-grid .g-col-4{grid-column:auto/span 4}.panel-grid .g-col-5{grid-column:auto/span 5}.panel-grid .g-col-6{grid-column:auto/span 6}.panel-grid .g-col-7{grid-column:auto/span 7}.panel-grid .g-col-8{grid-column:auto/span 8}.panel-grid .g-col-9{grid-column:auto/span 9}.panel-grid .g-col-10{grid-column:auto/span 10}.panel-grid .g-col-11{grid-column:auto/span 11}.panel-grid .g-col-12{grid-column:auto/span 12}.panel-grid .g-col-13{grid-column:auto/span 13}.panel-grid .g-col-14{grid-column:auto/span 14}.panel-grid .g-col-15{grid-column:auto/span 15}.panel-grid .g-col-16{grid-column:auto/span 16}.panel-grid .g-col-17{grid-column:auto/span 17}.panel-grid .g-col-18{grid-column:auto/span 18}.panel-grid .g-col-19{grid-column:auto/span 19}.panel-grid .g-col-20{grid-column:auto/span 20}.panel-grid .g-col-21{grid-column:auto/span 21}.panel-grid .g-col-22{grid-column:auto/span 22}.panel-grid .g-col-23{grid-column:auto/span 23}.panel-grid .g-col-24{grid-column:auto/span 24}.panel-grid .g-start-1{grid-column-start:1}.panel-grid .g-start-2{grid-column-start:2}.panel-grid .g-start-3{grid-column-start:3}.panel-grid .g-start-4{grid-column-start:4}.panel-grid .g-start-5{grid-column-start:5}.panel-grid .g-start-6{grid-column-start:6}.panel-grid .g-start-7{grid-column-start:7}.panel-grid .g-start-8{grid-column-start:8}.panel-grid .g-start-9{grid-column-start:9}.panel-grid .g-start-10{grid-column-start:10}.panel-grid .g-start-11{grid-column-start:11}.panel-grid .g-start-12{grid-column-start:12}.panel-grid .g-start-13{grid-column-start:13}.panel-grid .g-start-14{grid-column-start:14}.panel-grid .g-start-15{grid-column-start:15}.panel-grid .g-start-16{grid-column-start:16}.panel-grid .g-start-17{grid-column-start:17}.panel-grid .g-start-18{grid-column-start:18}.panel-grid .g-start-19{grid-column-start:19}.panel-grid .g-start-20{grid-column-start:20}.panel-grid .g-start-21{grid-column-start:21}.panel-grid .g-start-22{grid-column-start:22}.panel-grid .g-start-23{grid-column-start:23}@media(min-width: 576px){.panel-grid .g-col-sm-1{grid-column:auto/span 1}.panel-grid .g-col-sm-2{grid-column:auto/span 2}.panel-grid .g-col-sm-3{grid-column:auto/span 3}.panel-grid .g-col-sm-4{grid-column:auto/span 4}.panel-grid .g-col-sm-5{grid-column:auto/span 5}.panel-grid .g-col-sm-6{grid-column:auto/span 6}.panel-grid .g-col-sm-7{grid-column:auto/span 7}.panel-grid .g-col-sm-8{grid-column:auto/span 8}.panel-grid .g-col-sm-9{grid-column:auto/span 9}.panel-grid .g-col-sm-10{grid-column:auto/span 10}.panel-grid .g-col-sm-11{grid-column:auto/span 11}.panel-grid .g-col-sm-12{grid-column:auto/span 12}.panel-grid .g-col-sm-13{grid-column:auto/span 13}.panel-grid .g-col-sm-14{grid-column:auto/span 14}.panel-grid .g-col-sm-15{grid-column:auto/span 15}.panel-grid .g-col-sm-16{grid-column:auto/span 16}.panel-grid .g-col-sm-17{grid-column:auto/span 17}.panel-grid .g-col-sm-18{grid-column:auto/span 18}.panel-grid .g-col-sm-19{grid-column:auto/span 19}.panel-grid .g-col-sm-20{grid-column:auto/span 20}.panel-grid .g-col-sm-21{grid-column:auto/span 21}.panel-grid .g-col-sm-22{grid-column:auto/span 22}.panel-grid .g-col-sm-23{grid-column:auto/span 23}.panel-grid .g-col-sm-24{grid-column:auto/span 24}.panel-grid .g-start-sm-1{grid-column-start:1}.panel-grid .g-start-sm-2{grid-column-start:2}.panel-grid .g-start-sm-3{grid-column-start:3}.panel-grid .g-start-sm-4{grid-column-start:4}.panel-grid .g-start-sm-5{grid-column-start:5}.panel-grid .g-start-sm-6{grid-column-start:6}.panel-grid .g-start-sm-7{grid-column-start:7}.panel-grid .g-start-sm-8{grid-column-start:8}.panel-grid .g-start-sm-9{grid-column-start:9}.panel-grid .g-start-sm-10{grid-column-start:10}.panel-grid .g-start-sm-11{grid-column-start:11}.panel-grid .g-start-sm-12{grid-column-start:12}.panel-grid .g-start-sm-13{grid-column-start:13}.panel-grid .g-start-sm-14{grid-column-start:14}.panel-grid .g-start-sm-15{grid-column-start:15}.panel-grid .g-start-sm-16{grid-column-start:16}.panel-grid .g-start-sm-17{grid-column-start:17}.panel-grid .g-start-sm-18{grid-column-start:18}.panel-grid .g-start-sm-19{grid-column-start:19}.panel-grid .g-start-sm-20{grid-column-start:20}.panel-grid .g-start-sm-21{grid-column-start:21}.panel-grid .g-start-sm-22{grid-column-start:22}.panel-grid .g-start-sm-23{grid-column-start:23}}@media(min-width: 768px){.panel-grid .g-col-md-1{grid-column:auto/span 1}.panel-grid .g-col-md-2{grid-column:auto/span 2}.panel-grid .g-col-md-3{grid-column:auto/span 3}.panel-grid .g-col-md-4{grid-column:auto/span 4}.panel-grid .g-col-md-5{grid-column:auto/span 5}.panel-grid .g-col-md-6{grid-column:auto/span 6}.panel-grid .g-col-md-7{grid-column:auto/span 7}.panel-grid .g-col-md-8{grid-column:auto/span 8}.panel-grid .g-col-md-9{grid-column:auto/span 9}.panel-grid .g-col-md-10{grid-column:auto/span 10}.panel-grid .g-col-md-11{grid-column:auto/span 11}.panel-grid .g-col-md-12{grid-column:auto/span 12}.panel-grid .g-col-md-13{grid-column:auto/span 13}.panel-grid .g-col-md-14{grid-column:auto/span 14}.panel-grid .g-col-md-15{grid-column:auto/span 15}.panel-grid .g-col-md-16{grid-column:auto/span 16}.panel-grid .g-col-md-17{grid-column:auto/span 17}.panel-grid .g-col-md-18{grid-column:auto/span 18}.panel-grid .g-col-md-19{grid-column:auto/span 19}.panel-grid .g-col-md-20{grid-column:auto/span 20}.panel-grid .g-col-md-21{grid-column:auto/span 21}.panel-grid .g-col-md-22{grid-column:auto/span 22}.panel-grid .g-col-md-23{grid-column:auto/span 23}.panel-grid .g-col-md-24{grid-column:auto/span 24}.panel-grid .g-start-md-1{grid-column-start:1}.panel-grid .g-start-md-2{grid-column-start:2}.panel-grid .g-start-md-3{grid-column-start:3}.panel-grid .g-start-md-4{grid-column-start:4}.panel-grid .g-start-md-5{grid-column-start:5}.panel-grid .g-start-md-6{grid-column-start:6}.panel-grid .g-start-md-7{grid-column-start:7}.panel-grid .g-start-md-8{grid-column-start:8}.panel-grid .g-start-md-9{grid-column-start:9}.panel-grid .g-start-md-10{grid-column-start:10}.panel-grid .g-start-md-11{grid-column-start:11}.panel-grid .g-start-md-12{grid-column-start:12}.panel-grid .g-start-md-13{grid-column-start:13}.panel-grid .g-start-md-14{grid-column-start:14}.panel-grid .g-start-md-15{grid-column-start:15}.panel-grid .g-start-md-16{grid-column-start:16}.panel-grid .g-start-md-17{grid-column-start:17}.panel-grid .g-start-md-18{grid-column-start:18}.panel-grid .g-start-md-19{grid-column-start:19}.panel-grid .g-start-md-20{grid-column-start:20}.panel-grid .g-start-md-21{grid-column-start:21}.panel-grid .g-start-md-22{grid-column-start:22}.panel-grid .g-start-md-23{grid-column-start:23}}@media(min-width: 992px){.panel-grid .g-col-lg-1{grid-column:auto/span 1}.panel-grid .g-col-lg-2{grid-column:auto/span 2}.panel-grid .g-col-lg-3{grid-column:auto/span 3}.panel-grid .g-col-lg-4{grid-column:auto/span 4}.panel-grid .g-col-lg-5{grid-column:auto/span 5}.panel-grid .g-col-lg-6{grid-column:auto/span 6}.panel-grid .g-col-lg-7{grid-column:auto/span 7}.panel-grid .g-col-lg-8{grid-column:auto/span 8}.panel-grid .g-col-lg-9{grid-column:auto/span 9}.panel-grid .g-col-lg-10{grid-column:auto/span 10}.panel-grid .g-col-lg-11{grid-column:auto/span 11}.panel-grid .g-col-lg-12{grid-column:auto/span 12}.panel-grid .g-col-lg-13{grid-column:auto/span 13}.panel-grid .g-col-lg-14{grid-column:auto/span 14}.panel-grid .g-col-lg-15{grid-column:auto/span 15}.panel-grid .g-col-lg-16{grid-column:auto/span 16}.panel-grid .g-col-lg-17{grid-column:auto/span 17}.panel-grid .g-col-lg-18{grid-column:auto/span 18}.panel-grid .g-col-lg-19{grid-column:auto/span 19}.panel-grid .g-col-lg-20{grid-column:auto/span 20}.panel-grid .g-col-lg-21{grid-column:auto/span 21}.panel-grid .g-col-lg-22{grid-column:auto/span 22}.panel-grid .g-col-lg-23{grid-column:auto/span 23}.panel-grid .g-col-lg-24{grid-column:auto/span 24}.panel-grid .g-start-lg-1{grid-column-start:1}.panel-grid .g-start-lg-2{grid-column-start:2}.panel-grid .g-start-lg-3{grid-column-start:3}.panel-grid .g-start-lg-4{grid-column-start:4}.panel-grid .g-start-lg-5{grid-column-start:5}.panel-grid .g-start-lg-6{grid-column-start:6}.panel-grid .g-start-lg-7{grid-column-start:7}.panel-grid .g-start-lg-8{grid-column-start:8}.panel-grid .g-start-lg-9{grid-column-start:9}.panel-grid .g-start-lg-10{grid-column-start:10}.panel-grid .g-start-lg-11{grid-column-start:11}.panel-grid .g-start-lg-12{grid-column-start:12}.panel-grid .g-start-lg-13{grid-column-start:13}.panel-grid .g-start-lg-14{grid-column-start:14}.panel-grid .g-start-lg-15{grid-column-start:15}.panel-grid .g-start-lg-16{grid-column-start:16}.panel-grid .g-start-lg-17{grid-column-start:17}.panel-grid .g-start-lg-18{grid-column-start:18}.panel-grid .g-start-lg-19{grid-column-start:19}.panel-grid .g-start-lg-20{grid-column-start:20}.panel-grid .g-start-lg-21{grid-column-start:21}.panel-grid .g-start-lg-22{grid-column-start:22}.panel-grid .g-start-lg-23{grid-column-start:23}}@media(min-width: 1200px){.panel-grid .g-col-xl-1{grid-column:auto/span 1}.panel-grid .g-col-xl-2{grid-column:auto/span 2}.panel-grid .g-col-xl-3{grid-column:auto/span 3}.panel-grid .g-col-xl-4{grid-column:auto/span 4}.panel-grid .g-col-xl-5{grid-column:auto/span 5}.panel-grid .g-col-xl-6{grid-column:auto/span 6}.panel-grid .g-col-xl-7{grid-column:auto/span 7}.panel-grid .g-col-xl-8{grid-column:auto/span 8}.panel-grid .g-col-xl-9{grid-column:auto/span 9}.panel-grid .g-col-xl-10{grid-column:auto/span 10}.panel-grid .g-col-xl-11{grid-column:auto/span 11}.panel-grid .g-col-xl-12{grid-column:auto/span 12}.panel-grid .g-col-xl-13{grid-column:auto/span 13}.panel-grid .g-col-xl-14{grid-column:auto/span 14}.panel-grid .g-col-xl-15{grid-column:auto/span 15}.panel-grid .g-col-xl-16{grid-column:auto/span 16}.panel-grid .g-col-xl-17{grid-column:auto/span 17}.panel-grid .g-col-xl-18{grid-column:auto/span 18}.panel-grid .g-col-xl-19{grid-column:auto/span 19}.panel-grid .g-col-xl-20{grid-column:auto/span 20}.panel-grid .g-col-xl-21{grid-column:auto/span 21}.panel-grid .g-col-xl-22{grid-column:auto/span 22}.panel-grid .g-col-xl-23{grid-column:auto/span 23}.panel-grid .g-col-xl-24{grid-column:auto/span 24}.panel-grid .g-start-xl-1{grid-column-start:1}.panel-grid .g-start-xl-2{grid-column-start:2}.panel-grid .g-start-xl-3{grid-column-start:3}.panel-grid .g-start-xl-4{grid-column-start:4}.panel-grid .g-start-xl-5{grid-column-start:5}.panel-grid .g-start-xl-6{grid-column-start:6}.panel-grid .g-start-xl-7{grid-column-start:7}.panel-grid .g-start-xl-8{grid-column-start:8}.panel-grid .g-start-xl-9{grid-column-start:9}.panel-grid .g-start-xl-10{grid-column-start:10}.panel-grid .g-start-xl-11{grid-column-start:11}.panel-grid .g-start-xl-12{grid-column-start:12}.panel-grid .g-start-xl-13{grid-column-start:13}.panel-grid .g-start-xl-14{grid-column-start:14}.panel-grid .g-start-xl-15{grid-column-start:15}.panel-grid .g-start-xl-16{grid-column-start:16}.panel-grid .g-start-xl-17{grid-column-start:17}.panel-grid .g-start-xl-18{grid-column-start:18}.panel-grid .g-start-xl-19{grid-column-start:19}.panel-grid .g-start-xl-20{grid-column-start:20}.panel-grid .g-start-xl-21{grid-column-start:21}.panel-grid .g-start-xl-22{grid-column-start:22}.panel-grid .g-start-xl-23{grid-column-start:23}}@media(min-width: 1400px){.panel-grid .g-col-xxl-1{grid-column:auto/span 1}.panel-grid .g-col-xxl-2{grid-column:auto/span 2}.panel-grid .g-col-xxl-3{grid-column:auto/span 3}.panel-grid .g-col-xxl-4{grid-column:auto/span 4}.panel-grid .g-col-xxl-5{grid-column:auto/span 5}.panel-grid .g-col-xxl-6{grid-column:auto/span 6}.panel-grid .g-col-xxl-7{grid-column:auto/span 7}.panel-grid .g-col-xxl-8{grid-column:auto/span 8}.panel-grid .g-col-xxl-9{grid-column:auto/span 9}.panel-grid .g-col-xxl-10{grid-column:auto/span 10}.panel-grid .g-col-xxl-11{grid-column:auto/span 11}.panel-grid .g-col-xxl-12{grid-column:auto/span 12}.panel-grid .g-col-xxl-13{grid-column:auto/span 13}.panel-grid .g-col-xxl-14{grid-column:auto/span 14}.panel-grid .g-col-xxl-15{grid-column:auto/span 15}.panel-grid .g-col-xxl-16{grid-column:auto/span 16}.panel-grid .g-col-xxl-17{grid-column:auto/span 17}.panel-grid .g-col-xxl-18{grid-column:auto/span 18}.panel-grid .g-col-xxl-19{grid-column:auto/span 19}.panel-grid .g-col-xxl-20{grid-column:auto/span 20}.panel-grid .g-col-xxl-21{grid-column:auto/span 21}.panel-grid .g-col-xxl-22{grid-column:auto/span 22}.panel-grid .g-col-xxl-23{grid-column:auto/span 23}.panel-grid .g-col-xxl-24{grid-column:auto/span 24}.panel-grid .g-start-xxl-1{grid-column-start:1}.panel-grid .g-start-xxl-2{grid-column-start:2}.panel-grid .g-start-xxl-3{grid-column-start:3}.panel-grid .g-start-xxl-4{grid-column-start:4}.panel-grid .g-start-xxl-5{grid-column-start:5}.panel-grid .g-start-xxl-6{grid-column-start:6}.panel-grid .g-start-xxl-7{grid-column-start:7}.panel-grid .g-start-xxl-8{grid-column-start:8}.panel-grid .g-start-xxl-9{grid-column-start:9}.panel-grid .g-start-xxl-10{grid-column-start:10}.panel-grid .g-start-xxl-11{grid-column-start:11}.panel-grid .g-start-xxl-12{grid-column-start:12}.panel-grid .g-start-xxl-13{grid-column-start:13}.panel-grid .g-start-xxl-14{grid-column-start:14}.panel-grid .g-start-xxl-15{grid-column-start:15}.panel-grid .g-start-xxl-16{grid-column-start:16}.panel-grid .g-start-xxl-17{grid-column-start:17}.panel-grid .g-start-xxl-18{grid-column-start:18}.panel-grid .g-start-xxl-19{grid-column-start:19}.panel-grid .g-start-xxl-20{grid-column-start:20}.panel-grid .g-start-xxl-21{grid-column-start:21}.panel-grid .g-start-xxl-22{grid-column-start:22}.panel-grid .g-start-xxl-23{grid-column-start:23}}main{margin-top:1em;margin-bottom:1em}h1,.h1,h2,.h2{color:inherit;margin-top:2rem;margin-bottom:1rem;font-weight:600}h1.title,.title.h1{margin-top:0}main.content>section:first-of-type>h2:first-child,main.content>section:first-of-type>.h2:first-child{margin-top:0}h2,.h2{border-bottom:1px solid #434343;padding-bottom:.5rem}h3,.h3{font-weight:600}h3,.h3,h4,.h4{opacity:.9;margin-top:1.5rem}h5,.h5,h6,.h6{opacity:.9}.header-section-number{color:#bfbfbf}.nav-link.active .header-section-number{color:inherit}mark,.mark{padding:0em}.panel-caption,.figure-caption,.subfigure-caption,.table-caption,figcaption,caption{font-size:.9rem;color:#bfbfbf}.quarto-layout-cell[data-ref-parent] caption{color:#bfbfbf}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#bfbfbf;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse):first-child{padding-bottom:.5em;display:block}.column-margin.column-container>*:not(.collapse):not(:first-child){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.nav-tabs .nav-item{margin-top:1px;cursor:pointer}.tab-content{margin-top:0px;border-left:#434343 1px solid;border-right:#434343 1px solid;border-bottom:#434343 1px solid;margin-left:0;padding:1em;margin-bottom:1em}@media(max-width: 767.98px){.layout-sidebar{margin-left:0;margin-right:0}}.panel-sidebar,.panel-sidebar .form-control,.panel-input,.panel-input .form-control,.selectize-dropdown{font-size:.9rem}.panel-sidebar .form-control,.panel-input .form-control{padding-top:.1rem}.tab-pane div.sourceCode{margin-top:0px}.tab-pane>p{padding-top:0}.tab-pane>p:nth-child(1){padding-top:0}.tab-pane>p:last-child{margin-bottom:0}.tab-pane>pre:last-child{margin-bottom:0}.tab-content>.tab-pane:not(.active){display:none !important}div.sourceCode{background-color:rgba(67,67,67,.65);border:1px solid rgba(67,67,67,.65);border-radius:.25rem}pre.sourceCode{background-color:rgba(0,0,0,0)}pre.sourceCode{border-left:3px;border-left-style:solid;border-left-color:#1482fa;padding-left:.6em;border-right:none;border-top:none;border-bottom:none;font-size:.875em;overflow:visible !important;padding:.4em}.callout pre.sourceCode{padding-left:0}div.sourceCode{overflow-y:hidden}.callout div.sourceCode{margin-left:initial}.blockquote{font-size:inherit;padding-left:1rem;padding-right:1.5rem;color:#bfbfbf}.blockquote h1:first-child,.blockquote .h1:first-child,.blockquote h2:first-child,.blockquote .h2:first-child,.blockquote h3:first-child,.blockquote .h3:first-child,.blockquote h4:first-child,.blockquote .h4:first-child,.blockquote h5:first-child,.blockquote .h5:first-child{margin-top:0}pre{background-color:initial;padding:initial;border:initial}p pre code:not(.sourceCode),li pre code:not(.sourceCode),pre code:not(.sourceCode){background-color:initial}p code:not(.sourceCode),li code:not(.sourceCode),td code:not(.sourceCode){background-color:#f8f9fa;padding:.2em}nav p code:not(.sourceCode),nav li code:not(.sourceCode),nav td code:not(.sourceCode){background-color:rgba(0,0,0,0);padding:0}td code:not(.sourceCode){white-space:pre-wrap}#quarto-embedded-source-code-modal>.modal-dialog{max-width:1000px;padding-left:1.75rem;padding-right:1.75rem}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body{padding:0}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body div.sourceCode{margin:0;padding:.2rem .2rem;border-radius:0px;border:none}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-header{padding:.7rem}.code-tools-button{font-size:1rem;padding:.15rem .15rem;margin-left:5px;color:#6c757d;background-color:rgba(0,0,0,0);transition:initial;cursor:pointer}.code-tools-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.sidebar{will-change:top;transition:top 200ms linear;position:sticky;overflow-y:auto;padding-top:1.2em;max-height:100vh}.sidebar.toc-left,.sidebar.margin-sidebar{top:0px;padding-top:1em}.sidebar.quarto-banner-title-block-sidebar>*{padding-top:1.65em}figure .quarto-notebook-link{margin-top:.5em}.quarto-notebook-link{font-size:.75em;color:#6c757d;margin-bottom:1em;text-decoration:none;display:block}.quarto-notebook-link:hover{text-decoration:underline;color:#00bc8c}.quarto-notebook-link::before{display:inline-block;height:.75rem;width:.75rem;margin-bottom:0em;margin-right:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}.toc-actions i.bi,.quarto-code-links i.bi,.quarto-other-links i.bi,.quarto-alternate-notebooks i.bi,.quarto-alternate-formats i.bi{margin-right:.4em;font-size:.8rem}.quarto-other-links-text-target .quarto-code-links i.bi,.quarto-other-links-text-target .quarto-other-links i.bi{margin-right:.2em}.quarto-other-formats-text-target .quarto-alternate-formats i.bi{margin-right:.1em}.toc-actions i.bi.empty,.quarto-code-links i.bi.empty,.quarto-other-links i.bi.empty,.quarto-alternate-notebooks i.bi.empty,.quarto-alternate-formats i.bi.empty{padding-left:1em}.quarto-notebook h2,.quarto-notebook .h2{border-bottom:none}.quarto-notebook .cell-container{display:flex}.quarto-notebook .cell-container .cell{flex-grow:4}.quarto-notebook .cell-container .cell-decorator{padding-top:1.5em;padding-right:1em;text-align:right}.quarto-notebook .cell-container.code-fold .cell-decorator{padding-top:3em}.quarto-notebook .cell-code code{white-space:pre-wrap}.quarto-notebook .cell .cell-output-stderr pre code,.quarto-notebook .cell .cell-output-stdout pre code{white-space:pre-wrap;overflow-wrap:anywhere}.toc-actions,.quarto-alternate-formats,.quarto-other-links,.quarto-code-links,.quarto-alternate-notebooks{padding-left:0em}.sidebar .toc-actions a,.sidebar .quarto-alternate-formats a,.sidebar .quarto-other-links a,.sidebar .quarto-code-links a,.sidebar .quarto-alternate-notebooks a,.sidebar nav[role=doc-toc] a{text-decoration:none}.sidebar .toc-actions a:hover,.sidebar .quarto-other-links a:hover,.sidebar .quarto-code-links a:hover,.sidebar .quarto-alternate-formats a:hover,.sidebar .quarto-alternate-notebooks a:hover{color:#00bc8c}.sidebar .toc-actions h2,.sidebar .toc-actions .h2,.sidebar .quarto-code-links h2,.sidebar .quarto-code-links .h2,.sidebar .quarto-other-links h2,.sidebar .quarto-other-links .h2,.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2,.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-weight:500;margin-bottom:.2rem;margin-top:.3rem;font-family:inherit;border-bottom:0;padding-bottom:0;padding-top:0px}.sidebar .toc-actions>h2,.sidebar .toc-actions>.h2,.sidebar .quarto-code-links>h2,.sidebar .quarto-code-links>.h2,.sidebar .quarto-other-links>h2,.sidebar .quarto-other-links>.h2,.sidebar .quarto-alternate-notebooks>h2,.sidebar .quarto-alternate-notebooks>.h2,.sidebar .quarto-alternate-formats>h2,.sidebar .quarto-alternate-formats>.h2{font-size:.8rem}.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-size:.875rem}.sidebar nav[role=doc-toc]>ul a{border-left:1px solid #ebebeb;padding-left:.6rem}.sidebar .toc-actions h2>ul a,.sidebar .toc-actions .h2>ul a,.sidebar .quarto-code-links h2>ul a,.sidebar .quarto-code-links .h2>ul a,.sidebar .quarto-other-links h2>ul a,.sidebar .quarto-other-links .h2>ul a,.sidebar .quarto-alternate-notebooks h2>ul a,.sidebar .quarto-alternate-notebooks .h2>ul a,.sidebar .quarto-alternate-formats h2>ul a,.sidebar .quarto-alternate-formats .h2>ul a{border-left:none;padding-left:.6rem}.sidebar .toc-actions ul a:empty,.sidebar .quarto-code-links ul a:empty,.sidebar .quarto-other-links ul a:empty,.sidebar .quarto-alternate-notebooks ul a:empty,.sidebar .quarto-alternate-formats ul a:empty,.sidebar nav[role=doc-toc]>ul a:empty{display:none}.sidebar .toc-actions ul,.sidebar .quarto-code-links ul,.sidebar .quarto-other-links ul,.sidebar .quarto-alternate-notebooks ul,.sidebar .quarto-alternate-formats ul{padding-left:0;list-style:none}.sidebar nav[role=doc-toc] ul{list-style:none;padding-left:0;list-style:none}.sidebar nav[role=doc-toc]>ul{margin-left:.45em}.quarto-margin-sidebar nav[role=doc-toc]{padding-left:.5em}.sidebar .toc-actions>ul,.sidebar .quarto-code-links>ul,.sidebar .quarto-other-links>ul,.sidebar .quarto-alternate-notebooks>ul,.sidebar .quarto-alternate-formats>ul{font-size:.8rem}.sidebar nav[role=doc-toc]>ul{font-size:.875rem}.sidebar .toc-actions ul li a,.sidebar .quarto-code-links ul li a,.sidebar .quarto-other-links ul li a,.sidebar .quarto-alternate-notebooks ul li a,.sidebar .quarto-alternate-formats ul li a,.sidebar nav[role=doc-toc]>ul li a{line-height:1.1rem;padding-bottom:.2rem;padding-top:.2rem;color:inherit}.sidebar nav[role=doc-toc] ul>li>ul>li>a{padding-left:1.2em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>a{padding-left:2.4em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>a{padding-left:3.6em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:4.8em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:6em}.sidebar nav[role=doc-toc] ul>li>a.active,.sidebar nav[role=doc-toc] ul>li>ul>li>a.active{border-left:1px solid #00bc8c;color:#00bc8c !important}.sidebar nav[role=doc-toc] ul>li>a:hover,.sidebar nav[role=doc-toc] ul>li>ul>li>a:hover{color:#00bc8c !important}kbd,.kbd{color:#fff;background-color:#f8f9fa;border:1px solid;border-radius:5px;border-color:#434343}.quarto-appendix-contents div.hanging-indent{margin-left:0em}.quarto-appendix-contents div.hanging-indent div.csl-entry{margin-left:1em;text-indent:-1em}.citation a,.footnote-ref{text-decoration:none}.footnotes ol{padding-left:1em}.tippy-content>*{margin-bottom:.7em}.tippy-content>*:last-child{margin-bottom:0}@media(min-width: 992px){.callout:not(.no-icon){margin-left:calc(calc(-0.4em + -5px) + -1px)}.callout{margin-left:calc(-0.4em + -5px)}div.sourceCode{margin-left:calc(calc(-0.6em + -3px) + 2px)}}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:.25rem;overflow-wrap:break-word}.callout .callout-title-container{overflow-wrap:anywhere}.callout.callout-style-simple{padding:.4em .7em;border-left:5px solid;border-right:1px solid #434343;border-top:1px solid #434343;border-bottom:1px solid #434343}.callout.callout-style-default{border-left:5px solid;border-right:1px solid #434343;border-top:1px solid #434343;border-bottom:1px solid #434343}.callout .callout-body-container{flex-grow:1}.callout.callout-style-simple .callout-body{font-size:.9rem;font-weight:400}.callout.callout-style-default .callout-body{font-size:.9rem;font-weight:400}.callout:not(.no-icon).callout-titled.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-titled>.callout-header{padding-top:.2em;margin-bottom:-0.2em}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:.9rem;padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body{padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body>:first-child{padding-top:.5rem;margin-top:0}.callout>div.callout-header[data-bs-toggle=collapse]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded=false],.callout.callout-style-default .callout-header[aria-expanded=true]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-titled .callout-body>:last-child:not(.sourceCode),.callout.callout-titled .callout-body>div>:last-child:not(.sourceCode){padding-bottom:.5rem;margin-bottom:0}.callout:not(.callout-titled) .callout-body>:first-child,.callout:not(.callout-titled) .callout-body>div>:first-child{margin-top:.25rem}.callout:not(.callout-titled) .callout-body>:last-child,.callout:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:.2rem}.callout.callout-style-simple .callout-icon::before,.callout.callout-style-simple .callout-toggle::before{height:1rem;width:1rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.callout.callout-style-default .callout-icon::before,.callout.callout-style-default .callout-toggle::before{height:.9rem;width:.9rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:.9rem .9rem}.callout.callout-style-default .callout-toggle::before{margin-top:5px}.callout .callout-btn-toggle .callout-toggle::before{transition:transform .2s linear}.callout .callout-header[aria-expanded=false] .callout-toggle::before{transform:rotate(-90deg)}.callout .callout-header[aria-expanded=true] .callout-toggle::before{transform:none}.callout.callout-style-simple:not(.no-icon) div.callout-icon-container{padding-top:.2em;padding-right:.55em}.callout.callout-style-default:not(.no-icon) div.callout-icon-container{padding-top:.1em;padding-right:.35em}.callout.callout-style-default:not(.no-icon) div.callout-title-container{margin-top:-1px}.callout.callout-style-default.callout-caution:not(.no-icon) div.callout-icon-container{padding-top:.3em;padding-right:.35em}.callout>.callout-body>.callout-icon-container>.no-icon,.callout>.callout-header>.callout-icon-container>.no-icon{display:none}div.callout.callout{border-left-color:#6c757d}div.callout.callout-style-default>.callout-header{background-color:#6c757d}div.callout-note.callout{border-left-color:#375a7f}div.callout-note.callout-style-default>.callout-header{background-color:#111b26}div.callout-note:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-tip.callout{border-left-color:#00bc8c}div.callout-tip.callout-style-default>.callout-header{background-color:#00382a}div.callout-tip:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-warning.callout{border-left-color:#f39c12}div.callout-warning.callout-style-default>.callout-header{background-color:#492f05}div.callout-warning:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-caution.callout{border-left-color:#fd7e14}div.callout-caution.callout-style-default>.callout-header{background-color:#4c2606}div.callout-caution:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-important.callout{border-left-color:#e74c3c}div.callout-important.callout-style-default>.callout-header{background-color:#451712}div.callout-important:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important .callout-toggle::before{background-image:url('data:image/svg+xml,')}.quarto-toggle-container{display:flex;align-items:center}.quarto-reader-toggle .bi::before,.quarto-color-scheme-toggle .bi::before{display:inline-block;height:1rem;width:1rem;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.sidebar-navigation{padding-left:20px}.navbar{background-color:#375a7f;color:#dee2e6}.navbar .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.quarto-sidebar-toggle{border-color:#dee2e6;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-style:solid;border-width:1px;overflow:hidden;border-top-width:0px;padding-top:0px !important}.quarto-sidebar-toggle-title{cursor:pointer;padding-bottom:2px;margin-left:.25em;text-align:center;font-weight:400;font-size:.775em}#quarto-content .quarto-sidebar-toggle{background:#272727}#quarto-content .quarto-sidebar-toggle-title{color:#fff}.quarto-sidebar-toggle-icon{color:#dee2e6;margin-right:.5em;float:right;transition:transform .2s ease}.quarto-sidebar-toggle-icon::before{padding-top:5px}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-icon{transform:rotate(-180deg)}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-title{border-bottom:solid #dee2e6 1px}.quarto-sidebar-toggle-contents{background-color:#222;padding-right:10px;padding-left:10px;margin-top:0px !important;transition:max-height .5s ease}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-contents{padding-top:1em;padding-bottom:10px}@media(max-width: 767.98px){.sidebar-menu-container{padding-bottom:5em}}.quarto-sidebar-toggle:not(.expanded) .quarto-sidebar-toggle-contents{padding-top:0px !important;padding-bottom:0px}nav[role=doc-toc]{z-index:1020}#quarto-sidebar>*,nav[role=doc-toc]>*{transition:opacity .1s ease,border .1s ease}#quarto-sidebar.slow>*,nav[role=doc-toc].slow>*{transition:opacity .4s ease,border .4s ease}.quarto-color-scheme-toggle:not(.alternate).top-right .bi::before{background-image:url('data:image/svg+xml,')}.quarto-color-scheme-toggle.alternate.top-right .bi::before{background-image:url('data:image/svg+xml,')}#quarto-appendix.default{border-top:1px solid #dee2e6}#quarto-appendix.default{background-color:#222;padding-top:1.5em;margin-top:2em;z-index:998}#quarto-appendix.default .quarto-appendix-heading{margin-top:0;line-height:1.4em;font-weight:600;opacity:.9;border-bottom:none;margin-bottom:0}#quarto-appendix.default .footnotes ol,#quarto-appendix.default .footnotes ol li>p:last-of-type,#quarto-appendix.default .quarto-appendix-contents>p:last-of-type{margin-bottom:0}#quarto-appendix.default .footnotes ol{margin-left:.5em}#quarto-appendix.default .quarto-appendix-secondary-label{margin-bottom:.4em}#quarto-appendix.default .quarto-appendix-bibtex{font-size:.7em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-bibtex code.sourceCode{white-space:pre-wrap}#quarto-appendix.default .quarto-appendix-citeas{font-size:.9em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-heading{font-size:1em !important}#quarto-appendix.default *[role=doc-endnotes]>ol,#quarto-appendix.default .quarto-appendix-contents>*:not(h2):not(.h2){font-size:.9em}#quarto-appendix.default section{padding-bottom:1.5em}#quarto-appendix.default section *[role=doc-endnotes],#quarto-appendix.default section>*:not(a){opacity:.9;word-wrap:break-word}.btn.btn-quarto,div.cell-output-display .btn-quarto{--bs-btn-color: #d9d9d9;--bs-btn-bg: #434343;--bs-btn-border-color: #434343;--bs-btn-hover-color: #d9d9d9;--bs-btn-hover-bg: #5f5f5f;--bs-btn-hover-border-color: #565656;--bs-btn-focus-shadow-rgb: 90, 90, 90;--bs-btn-active-color: #fff;--bs-btn-active-bg: dimgray;--bs-btn-active-border-color: #565656;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #434343;--bs-btn-disabled-border-color: #434343}nav.quarto-secondary-nav.color-navbar{background-color:#375a7f;color:#dee2e6}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:#dee2e6}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner{margin-bottom:0;padding-bottom:1em}body.nav-sidebar #title-block-header{margin-block-end:0}}p.subtitle{margin-top:.25em;margin-bottom:.5em}code a:any-link{color:inherit;text-decoration-color:#6c757d}/*! dark */div.observablehq table thead tr th{background-color:var(--bs-body-bg)}input,button,select,optgroup,textarea{background-color:var(--bs-body-bg)}.code-annotated .code-copy-button{margin-right:1.25em;margin-top:0;padding-bottom:0;padding-top:3px}.code-annotation-gutter-bg{background-color:#222}.code-annotation-gutter{background-color:rgba(67,67,67,.65)}.code-annotation-gutter,.code-annotation-gutter-bg{height:100%;width:calc(20px + .5em);position:absolute;top:0;right:0}dl.code-annotation-container-grid dt{margin-right:1em;margin-top:.25rem}dl.code-annotation-container-grid dt{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:#e6e6e6;border:solid #e6e6e6 1px;border-radius:50%;height:22px;width:22px;line-height:22px;font-size:11px;text-align:center;vertical-align:middle;text-decoration:none}dl.code-annotation-container-grid dt[data-target-cell]{cursor:pointer}dl.code-annotation-container-grid dt[data-target-cell].code-annotation-active{color:#222;border:solid #aaa 1px;background-color:#aaa}pre.code-annotation-code{padding-top:0;padding-bottom:0}pre.code-annotation-code code{z-index:3}#code-annotation-line-highlight-gutter{width:100%;border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}#code-annotation-line-highlight{margin-left:-4em;width:calc(100% + 4em);border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}code.sourceCode .code-annotation-anchor.code-annotation-active{background-color:var(--quarto-hl-normal-color, #aaaaaa);border:solid var(--quarto-hl-normal-color, #aaaaaa) 1px;color:#434343;font-weight:bolder}code.sourceCode .code-annotation-anchor{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:var(--quarto-hl-co-color);border:solid var(--quarto-hl-co-color) 1px;border-radius:50%;height:18px;width:18px;font-size:9px;margin-top:2px}code.sourceCode button.code-annotation-anchor{padding:2px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none}code.sourceCode a.code-annotation-anchor{line-height:18px;text-align:center;vertical-align:middle;cursor:default;text-decoration:none}@media print{.page-columns .column-screen-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset table{background:#222}.page-columns .column-screen-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-inset-left table{background:#222}.page-columns .column-screen-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset-right table{background:#222}.page-columns .column-screen{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#222}.page-columns .column-screen-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#222}.page-columns .column-screen-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen-right table{background:#222}.page-columns .column-screen-inset-shaded{grid-column:page-start-inset/page-end-inset;padding:1em;background:#6f6f6f;z-index:998;opacity:.999;margin-bottom:1em}}.quarto-video{margin-bottom:1em}.table{border-top:1px solid #fff;border-bottom:1px solid #fff}.table>thead{border-top-width:0;border-bottom:1px solid #fff}.table a{word-break:break-word}.table>:not(caption)>*>*{background-color:unset;color:unset}#quarto-document-content .crosstalk-input .checkbox input[type=checkbox],#quarto-document-content .crosstalk-input .checkbox-inline input[type=checkbox]{position:unset;margin-top:unset;margin-left:unset}#quarto-document-content .row{margin-left:unset;margin-right:unset}.quarto-xref{white-space:nowrap}#quarto-draft-alert{margin-top:0px;margin-bottom:0px;padding:.3em;text-align:center;font-size:.9em}#quarto-draft-alert i{margin-right:.3em}a.external:after{content:"";background-image:url('data:image/svg+xml,');background-size:contain;background-repeat:no-repeat;background-position:center center;margin-left:.2em;padding-right:.75em}div.sourceCode code a.external:after{content:none}a.external:after:hover{cursor:pointer}.quarto-ext-icon{display:inline-block;font-size:.75em;padding-left:.3em}.code-with-filename .code-with-filename-file{margin-bottom:0;padding-bottom:2px;padding-top:2px;padding-left:.7em;border:var(--quarto-border-width) solid var(--quarto-border-color);border-radius:var(--quarto-border-radius);border-bottom:0;border-bottom-left-radius:0%;border-bottom-right-radius:0%}.code-with-filename div.sourceCode,.reveal .code-with-filename div.sourceCode{margin-top:0;border-top-left-radius:0%;border-top-right-radius:0%}.code-with-filename .code-with-filename-file pre{margin-bottom:0}.code-with-filename .code-with-filename-file{background-color:rgba(219,219,219,.8)}.quarto-dark .code-with-filename .code-with-filename-file{background-color:#555}.code-with-filename .code-with-filename-file strong{font-weight:400}.blockquote-footer{color:#595959}.form-floating>label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label{color:#595959}.nav-tabs .nav-link,.nav-tabs .nav-link.active,.nav-tabs .nav-link.active:focus,.nav-tabs .nav-link.active:hover,.nav-tabs .nav-item.open .nav-link,.nav-tabs .nav-item.open .nav-link:focus,.nav-tabs .nav-item.open .nav-link:hover,.nav-pills .nav-link,.nav-pills .nav-link.active,.nav-pills .nav-link.active:focus,.nav-pills .nav-link.active:hover,.nav-pills .nav-item.open .nav-link,.nav-pills .nav-item.open .nav-link:focus,.nav-pills .nav-item.open .nav-link:hover{color:#fff}.breadcrumb a{color:#fff}.pagination a:hover{text-decoration:none}.alert{color:#fff;border:none}.alert a,.alert .alert-link{color:#fff;text-decoration:underline}.alert-default{background-color:#434343}.alert-primary{background-color:#375a7f}.alert-secondary{background-color:#434343}.alert-success{background-color:#00bc8c}.alert-info{background-color:#3498db}.alert-warning{background-color:#f39c12}.alert-danger{background-color:#e74c3c}.alert-light{background-color:#6f6f6f}.alert-dark{background-color:#2d2d2d}.tooltip{--bs-tooltip-bg: var(--bs-tertiary-bg);--bs-tooltip-color: var(--bs-emphasis-color)} +*/.ansi-black-fg{color:#3e424d}.ansi-black-bg{background-color:#3e424d}.ansi-black-intense-black,.ansi-bright-black-fg{color:#282c36}.ansi-black-intense-black,.ansi-bright-black-bg{background-color:#282c36}.ansi-red-fg{color:#e75c58}.ansi-red-bg{background-color:#e75c58}.ansi-red-intense-red,.ansi-bright-red-fg{color:#b22b31}.ansi-red-intense-red,.ansi-bright-red-bg{background-color:#b22b31}.ansi-green-fg{color:#00a250}.ansi-green-bg{background-color:#00a250}.ansi-green-intense-green,.ansi-bright-green-fg{color:#007427}.ansi-green-intense-green,.ansi-bright-green-bg{background-color:#007427}.ansi-yellow-fg{color:#ddb62b}.ansi-yellow-bg{background-color:#ddb62b}.ansi-yellow-intense-yellow,.ansi-bright-yellow-fg{color:#b27d12}.ansi-yellow-intense-yellow,.ansi-bright-yellow-bg{background-color:#b27d12}.ansi-blue-fg{color:#208ffb}.ansi-blue-bg{background-color:#208ffb}.ansi-blue-intense-blue,.ansi-bright-blue-fg{color:#0065ca}.ansi-blue-intense-blue,.ansi-bright-blue-bg{background-color:#0065ca}.ansi-magenta-fg{color:#d160c4}.ansi-magenta-bg{background-color:#d160c4}.ansi-magenta-intense-magenta,.ansi-bright-magenta-fg{color:#a03196}.ansi-magenta-intense-magenta,.ansi-bright-magenta-bg{background-color:#a03196}.ansi-cyan-fg{color:#60c6c8}.ansi-cyan-bg{background-color:#60c6c8}.ansi-cyan-intense-cyan,.ansi-bright-cyan-fg{color:#258f8f}.ansi-cyan-intense-cyan,.ansi-bright-cyan-bg{background-color:#258f8f}.ansi-white-fg{color:#c5c1b4}.ansi-white-bg{background-color:#c5c1b4}.ansi-white-intense-white,.ansi-bright-white-fg{color:#a1a6b2}.ansi-white-intense-white,.ansi-bright-white-bg{background-color:#a1a6b2}.ansi-default-inverse-fg{color:#fff}.ansi-default-inverse-bg{background-color:#000}.ansi-bold{font-weight:bold}.ansi-underline{text-decoration:underline}:root{--quarto-body-bg: #222;--quarto-body-color: #fff;--quarto-text-muted: #6c757d;--quarto-border-color: #434343;--quarto-border-width: 1px;--quarto-border-radius: 0.25rem}table.gt_table{color:var(--quarto-body-color);font-size:1em;width:100%;background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_column_spanner_outer{color:var(--quarto-body-color);background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_col_heading{color:var(--quarto-body-color);font-weight:bold;background-color:rgba(0,0,0,0)}table.gt_table thead.gt_col_headings{border-bottom:1px solid currentColor;border-top-width:inherit;border-top-color:var(--quarto-border-color)}table.gt_table thead.gt_col_headings:not(:first-child){border-top-width:1px;border-top-color:var(--quarto-border-color)}table.gt_table td.gt_row{border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-width:0px}table.gt_table tbody.gt_table_body{border-top-width:1px;border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-color:currentColor}div.columns{display:initial;gap:initial}div.column{display:inline-block;overflow-x:initial;vertical-align:top;width:50%}.code-annotation-tip-content{word-wrap:break-word}.code-annotation-container-hidden{display:none !important}dl.code-annotation-container-grid{display:grid;grid-template-columns:min-content auto}dl.code-annotation-container-grid dt{grid-column:1}dl.code-annotation-container-grid dd{grid-column:2}pre.sourceCode.code-annotation-code{padding-right:0}code.sourceCode .code-annotation-anchor{z-index:100;position:relative;float:right;background-color:rgba(0,0,0,0)}input[type=checkbox]{margin-right:.5ch}:root{--mermaid-bg-color: #222;--mermaid-edge-color: #434343;--mermaid-node-fg-color: #fff;--mermaid-fg-color: #fff;--mermaid-fg-color--lighter: white;--mermaid-fg-color--lightest: white;--mermaid-font-family: Lato, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--mermaid-label-bg-color: #222;--mermaid-label-fg-color: #375a7f;--mermaid-node-bg-color: rgba(55, 90, 127, 0.1);--mermaid-node-fg-color: #fff}@media print{:root{font-size:11pt}#quarto-sidebar,#TOC,.nav-page{display:none}.page-columns .content{grid-column-start:page-start}.fixed-top{position:relative}.panel-caption,.figure-caption,figcaption{color:#666}}.code-copy-button{position:absolute;top:0;right:0;border:0;margin-top:5px;margin-right:5px;background-color:rgba(0,0,0,0);z-index:3}.code-copy-button:focus{outline:none}.code-copy-button-tooltip{font-size:.75em}.code-copy-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button-checked:hover>.bi::before{background-image:url('data:image/svg+xml,')}main ol ol,main ul ul,main ol ul,main ul ol{margin-bottom:1em}ul>li:not(:has(>p))>ul,ol>li:not(:has(>p))>ul,ul>li:not(:has(>p))>ol,ol>li:not(:has(>p))>ol{margin-bottom:0}ul>li:not(:has(>p))>ul>li:has(>p),ol>li:not(:has(>p))>ul>li:has(>p),ul>li:not(:has(>p))>ol>li:has(>p),ol>li:not(:has(>p))>ol>li:has(>p){margin-top:1rem}body{margin:0}main.page-columns>header>h1.title,main.page-columns>header>.title.h1{margin-bottom:0}@media(min-width: 992px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] 35px [page-end-inset page-end] 5fr [screen-end-inset] 1.5em}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 3em [body-end] 50px [body-end-outset] minmax(0px, 250px) [page-end-inset] minmax(50px, 100px) [page-end] 1fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 100px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 150px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 991.98px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(100449px - 3em)) [body-content-end body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1.5em [body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 767.98px){body .page-columns,body.fullcontent:not(.floating):not(.docked) .page-columns,body.slimcontent:not(.floating):not(.docked) .page-columns,body.docked .page-columns,body.docked.slimcontent .page-columns,body.docked.fullcontent .page-columns,body.floating .page-columns,body.floating.slimcontent .page-columns,body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}nav[role=doc-toc]{display:none}}body,.page-row-navigation{grid-template-rows:[page-top] max-content [contents-top] max-content [contents-bottom] max-content [page-bottom]}.page-rows-contents{grid-template-rows:[content-top] minmax(max-content, 1fr) [content-bottom] minmax(60px, max-content) [page-bottom]}.page-full{grid-column:screen-start/screen-end !important}.page-columns>*{grid-column:body-content-start/body-content-end}.page-columns.column-page>*{grid-column:page-start/page-end}.page-columns.column-page-left .page-columns.page-full>*,.page-columns.column-page-left>*{grid-column:page-start/body-content-end}.page-columns.column-page-right .page-columns.page-full>*,.page-columns.column-page-right>*{grid-column:body-content-start/page-end}.page-rows{grid-auto-rows:auto}.header{grid-column:screen-start/screen-end;grid-row:page-top/contents-top}#quarto-content{padding:0;grid-column:screen-start/screen-end;grid-row:contents-top/contents-bottom}body.floating .sidebar.sidebar-navigation{grid-column:page-start/body-start;grid-row:content-top/page-bottom}body.docked .sidebar.sidebar-navigation{grid-column:screen-start/body-start;grid-row:content-top/page-bottom}.sidebar.toc-left{grid-column:page-start/body-start;grid-row:content-top/page-bottom}.sidebar.margin-sidebar{grid-column:body-end/page-end;grid-row:content-top/page-bottom}.page-columns .content{grid-column:body-content-start/body-content-end;grid-row:content-top/content-bottom;align-content:flex-start}.page-columns .page-navigation{grid-column:body-content-start/body-content-end;grid-row:content-bottom/page-bottom}.page-columns .footer{grid-column:screen-start/screen-end;grid-row:contents-bottom/page-bottom}.page-columns .column-body{grid-column:body-content-start/body-content-end}.page-columns .column-body-fullbleed{grid-column:body-start/body-end}.page-columns .column-body-outset{grid-column:body-start-outset/body-end-outset;z-index:998;opacity:.999}.page-columns .column-body-outset table{background:#222}.page-columns .column-body-outset-left{grid-column:body-start-outset/body-content-end;z-index:998;opacity:.999}.page-columns .column-body-outset-left table{background:#222}.page-columns .column-body-outset-right{grid-column:body-content-start/body-end-outset;z-index:998;opacity:.999}.page-columns .column-body-outset-right table{background:#222}.page-columns .column-page{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-page table{background:#222}.page-columns .column-page-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.page-columns .column-page-inset table{background:#222}.page-columns .column-page-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-page-inset-left table{background:#222}.page-columns .column-page-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;opacity:.999}.page-columns .column-page-inset-right figcaption table{background:#222}.page-columns .column-page-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-page-left table{background:#222}.page-columns .column-page-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.page-columns .column-page-right figcaption table{background:#222}#quarto-content.page-columns #quarto-margin-sidebar,#quarto-content.page-columns #quarto-sidebar{z-index:1}@media(max-width: 991.98px){#quarto-content.page-columns #quarto-margin-sidebar.collapse,#quarto-content.page-columns #quarto-sidebar.collapse,#quarto-content.page-columns #quarto-margin-sidebar.collapsing,#quarto-content.page-columns #quarto-sidebar.collapsing{z-index:1055}}#quarto-content.page-columns main.column-page,#quarto-content.page-columns main.column-page-right,#quarto-content.page-columns main.column-page-left{z-index:0}.page-columns .column-screen-inset{grid-column:screen-start-inset/screen-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset table{background:#222}.page-columns .column-screen-inset-left{grid-column:screen-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-inset-left table{background:#222}.page-columns .column-screen-inset-right{grid-column:body-content-start/screen-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset-right table{background:#222}.page-columns .column-screen{grid-column:screen-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#222}.page-columns .column-screen-left{grid-column:screen-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#222}.page-columns .column-screen-right{grid-column:body-content-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen-right table{background:#222}.page-columns .column-screen-inset-shaded{grid-column:screen-start/screen-end;padding:1em;background:#6f6f6f;z-index:998;opacity:.999;margin-bottom:1em}.zindex-content{z-index:998;opacity:.999}.zindex-modal{z-index:1055;opacity:.999}.zindex-over-content{z-index:999;opacity:.999}img.img-fluid.column-screen,img.img-fluid.column-screen-inset-shaded,img.img-fluid.column-screen-inset,img.img-fluid.column-screen-inset-left,img.img-fluid.column-screen-inset-right,img.img-fluid.column-screen-left,img.img-fluid.column-screen-right{width:100%}@media(min-width: 992px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-end/page-end !important;z-index:998}.column-sidebar{grid-column:page-start/body-start !important;z-index:998}.column-leftmargin{grid-column:screen-start-inset/body-start !important;z-index:998}.no-row-height{height:1em;overflow:visible}}@media(max-width: 991.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-end/page-end !important;z-index:998}.no-row-height{height:1em;overflow:visible}.page-columns.page-full{overflow:visible}.page-columns.toc-left .margin-caption,.page-columns.toc-left div.aside,.page-columns.toc-left aside:not(.footnotes):not(.sidebar),.page-columns.toc-left .column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.page-columns.toc-left .no-row-height{height:initial;overflow:initial}}@media(max-width: 767.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.no-row-height{height:initial;overflow:initial}#quarto-margin-sidebar{display:none}#quarto-sidebar-toc-left{display:none}.hidden-sm{display:none}}.panel-grid{display:grid;grid-template-rows:repeat(1, 1fr);grid-template-columns:repeat(24, 1fr);gap:1em}.panel-grid .g-col-1{grid-column:auto/span 1}.panel-grid .g-col-2{grid-column:auto/span 2}.panel-grid .g-col-3{grid-column:auto/span 3}.panel-grid .g-col-4{grid-column:auto/span 4}.panel-grid .g-col-5{grid-column:auto/span 5}.panel-grid .g-col-6{grid-column:auto/span 6}.panel-grid .g-col-7{grid-column:auto/span 7}.panel-grid .g-col-8{grid-column:auto/span 8}.panel-grid .g-col-9{grid-column:auto/span 9}.panel-grid .g-col-10{grid-column:auto/span 10}.panel-grid .g-col-11{grid-column:auto/span 11}.panel-grid .g-col-12{grid-column:auto/span 12}.panel-grid .g-col-13{grid-column:auto/span 13}.panel-grid .g-col-14{grid-column:auto/span 14}.panel-grid .g-col-15{grid-column:auto/span 15}.panel-grid .g-col-16{grid-column:auto/span 16}.panel-grid .g-col-17{grid-column:auto/span 17}.panel-grid .g-col-18{grid-column:auto/span 18}.panel-grid .g-col-19{grid-column:auto/span 19}.panel-grid .g-col-20{grid-column:auto/span 20}.panel-grid .g-col-21{grid-column:auto/span 21}.panel-grid .g-col-22{grid-column:auto/span 22}.panel-grid .g-col-23{grid-column:auto/span 23}.panel-grid .g-col-24{grid-column:auto/span 24}.panel-grid .g-start-1{grid-column-start:1}.panel-grid .g-start-2{grid-column-start:2}.panel-grid .g-start-3{grid-column-start:3}.panel-grid .g-start-4{grid-column-start:4}.panel-grid .g-start-5{grid-column-start:5}.panel-grid .g-start-6{grid-column-start:6}.panel-grid .g-start-7{grid-column-start:7}.panel-grid .g-start-8{grid-column-start:8}.panel-grid .g-start-9{grid-column-start:9}.panel-grid .g-start-10{grid-column-start:10}.panel-grid .g-start-11{grid-column-start:11}.panel-grid .g-start-12{grid-column-start:12}.panel-grid .g-start-13{grid-column-start:13}.panel-grid .g-start-14{grid-column-start:14}.panel-grid .g-start-15{grid-column-start:15}.panel-grid .g-start-16{grid-column-start:16}.panel-grid .g-start-17{grid-column-start:17}.panel-grid .g-start-18{grid-column-start:18}.panel-grid .g-start-19{grid-column-start:19}.panel-grid .g-start-20{grid-column-start:20}.panel-grid .g-start-21{grid-column-start:21}.panel-grid .g-start-22{grid-column-start:22}.panel-grid .g-start-23{grid-column-start:23}@media(min-width: 576px){.panel-grid .g-col-sm-1{grid-column:auto/span 1}.panel-grid .g-col-sm-2{grid-column:auto/span 2}.panel-grid .g-col-sm-3{grid-column:auto/span 3}.panel-grid .g-col-sm-4{grid-column:auto/span 4}.panel-grid .g-col-sm-5{grid-column:auto/span 5}.panel-grid .g-col-sm-6{grid-column:auto/span 6}.panel-grid .g-col-sm-7{grid-column:auto/span 7}.panel-grid .g-col-sm-8{grid-column:auto/span 8}.panel-grid .g-col-sm-9{grid-column:auto/span 9}.panel-grid .g-col-sm-10{grid-column:auto/span 10}.panel-grid .g-col-sm-11{grid-column:auto/span 11}.panel-grid .g-col-sm-12{grid-column:auto/span 12}.panel-grid .g-col-sm-13{grid-column:auto/span 13}.panel-grid .g-col-sm-14{grid-column:auto/span 14}.panel-grid .g-col-sm-15{grid-column:auto/span 15}.panel-grid .g-col-sm-16{grid-column:auto/span 16}.panel-grid .g-col-sm-17{grid-column:auto/span 17}.panel-grid .g-col-sm-18{grid-column:auto/span 18}.panel-grid .g-col-sm-19{grid-column:auto/span 19}.panel-grid .g-col-sm-20{grid-column:auto/span 20}.panel-grid .g-col-sm-21{grid-column:auto/span 21}.panel-grid .g-col-sm-22{grid-column:auto/span 22}.panel-grid .g-col-sm-23{grid-column:auto/span 23}.panel-grid .g-col-sm-24{grid-column:auto/span 24}.panel-grid .g-start-sm-1{grid-column-start:1}.panel-grid .g-start-sm-2{grid-column-start:2}.panel-grid .g-start-sm-3{grid-column-start:3}.panel-grid .g-start-sm-4{grid-column-start:4}.panel-grid .g-start-sm-5{grid-column-start:5}.panel-grid .g-start-sm-6{grid-column-start:6}.panel-grid .g-start-sm-7{grid-column-start:7}.panel-grid .g-start-sm-8{grid-column-start:8}.panel-grid .g-start-sm-9{grid-column-start:9}.panel-grid .g-start-sm-10{grid-column-start:10}.panel-grid .g-start-sm-11{grid-column-start:11}.panel-grid .g-start-sm-12{grid-column-start:12}.panel-grid .g-start-sm-13{grid-column-start:13}.panel-grid .g-start-sm-14{grid-column-start:14}.panel-grid .g-start-sm-15{grid-column-start:15}.panel-grid .g-start-sm-16{grid-column-start:16}.panel-grid .g-start-sm-17{grid-column-start:17}.panel-grid .g-start-sm-18{grid-column-start:18}.panel-grid .g-start-sm-19{grid-column-start:19}.panel-grid .g-start-sm-20{grid-column-start:20}.panel-grid .g-start-sm-21{grid-column-start:21}.panel-grid .g-start-sm-22{grid-column-start:22}.panel-grid .g-start-sm-23{grid-column-start:23}}@media(min-width: 768px){.panel-grid .g-col-md-1{grid-column:auto/span 1}.panel-grid .g-col-md-2{grid-column:auto/span 2}.panel-grid .g-col-md-3{grid-column:auto/span 3}.panel-grid .g-col-md-4{grid-column:auto/span 4}.panel-grid .g-col-md-5{grid-column:auto/span 5}.panel-grid .g-col-md-6{grid-column:auto/span 6}.panel-grid .g-col-md-7{grid-column:auto/span 7}.panel-grid .g-col-md-8{grid-column:auto/span 8}.panel-grid .g-col-md-9{grid-column:auto/span 9}.panel-grid .g-col-md-10{grid-column:auto/span 10}.panel-grid .g-col-md-11{grid-column:auto/span 11}.panel-grid .g-col-md-12{grid-column:auto/span 12}.panel-grid .g-col-md-13{grid-column:auto/span 13}.panel-grid .g-col-md-14{grid-column:auto/span 14}.panel-grid .g-col-md-15{grid-column:auto/span 15}.panel-grid .g-col-md-16{grid-column:auto/span 16}.panel-grid .g-col-md-17{grid-column:auto/span 17}.panel-grid .g-col-md-18{grid-column:auto/span 18}.panel-grid .g-col-md-19{grid-column:auto/span 19}.panel-grid .g-col-md-20{grid-column:auto/span 20}.panel-grid .g-col-md-21{grid-column:auto/span 21}.panel-grid .g-col-md-22{grid-column:auto/span 22}.panel-grid .g-col-md-23{grid-column:auto/span 23}.panel-grid .g-col-md-24{grid-column:auto/span 24}.panel-grid .g-start-md-1{grid-column-start:1}.panel-grid .g-start-md-2{grid-column-start:2}.panel-grid .g-start-md-3{grid-column-start:3}.panel-grid .g-start-md-4{grid-column-start:4}.panel-grid .g-start-md-5{grid-column-start:5}.panel-grid .g-start-md-6{grid-column-start:6}.panel-grid .g-start-md-7{grid-column-start:7}.panel-grid .g-start-md-8{grid-column-start:8}.panel-grid .g-start-md-9{grid-column-start:9}.panel-grid .g-start-md-10{grid-column-start:10}.panel-grid .g-start-md-11{grid-column-start:11}.panel-grid .g-start-md-12{grid-column-start:12}.panel-grid .g-start-md-13{grid-column-start:13}.panel-grid .g-start-md-14{grid-column-start:14}.panel-grid .g-start-md-15{grid-column-start:15}.panel-grid .g-start-md-16{grid-column-start:16}.panel-grid .g-start-md-17{grid-column-start:17}.panel-grid .g-start-md-18{grid-column-start:18}.panel-grid .g-start-md-19{grid-column-start:19}.panel-grid .g-start-md-20{grid-column-start:20}.panel-grid .g-start-md-21{grid-column-start:21}.panel-grid .g-start-md-22{grid-column-start:22}.panel-grid .g-start-md-23{grid-column-start:23}}@media(min-width: 992px){.panel-grid .g-col-lg-1{grid-column:auto/span 1}.panel-grid .g-col-lg-2{grid-column:auto/span 2}.panel-grid .g-col-lg-3{grid-column:auto/span 3}.panel-grid .g-col-lg-4{grid-column:auto/span 4}.panel-grid .g-col-lg-5{grid-column:auto/span 5}.panel-grid .g-col-lg-6{grid-column:auto/span 6}.panel-grid .g-col-lg-7{grid-column:auto/span 7}.panel-grid .g-col-lg-8{grid-column:auto/span 8}.panel-grid .g-col-lg-9{grid-column:auto/span 9}.panel-grid .g-col-lg-10{grid-column:auto/span 10}.panel-grid .g-col-lg-11{grid-column:auto/span 11}.panel-grid .g-col-lg-12{grid-column:auto/span 12}.panel-grid .g-col-lg-13{grid-column:auto/span 13}.panel-grid .g-col-lg-14{grid-column:auto/span 14}.panel-grid .g-col-lg-15{grid-column:auto/span 15}.panel-grid .g-col-lg-16{grid-column:auto/span 16}.panel-grid .g-col-lg-17{grid-column:auto/span 17}.panel-grid .g-col-lg-18{grid-column:auto/span 18}.panel-grid .g-col-lg-19{grid-column:auto/span 19}.panel-grid .g-col-lg-20{grid-column:auto/span 20}.panel-grid .g-col-lg-21{grid-column:auto/span 21}.panel-grid .g-col-lg-22{grid-column:auto/span 22}.panel-grid .g-col-lg-23{grid-column:auto/span 23}.panel-grid .g-col-lg-24{grid-column:auto/span 24}.panel-grid .g-start-lg-1{grid-column-start:1}.panel-grid .g-start-lg-2{grid-column-start:2}.panel-grid .g-start-lg-3{grid-column-start:3}.panel-grid .g-start-lg-4{grid-column-start:4}.panel-grid .g-start-lg-5{grid-column-start:5}.panel-grid .g-start-lg-6{grid-column-start:6}.panel-grid .g-start-lg-7{grid-column-start:7}.panel-grid .g-start-lg-8{grid-column-start:8}.panel-grid .g-start-lg-9{grid-column-start:9}.panel-grid .g-start-lg-10{grid-column-start:10}.panel-grid .g-start-lg-11{grid-column-start:11}.panel-grid .g-start-lg-12{grid-column-start:12}.panel-grid .g-start-lg-13{grid-column-start:13}.panel-grid .g-start-lg-14{grid-column-start:14}.panel-grid .g-start-lg-15{grid-column-start:15}.panel-grid .g-start-lg-16{grid-column-start:16}.panel-grid .g-start-lg-17{grid-column-start:17}.panel-grid .g-start-lg-18{grid-column-start:18}.panel-grid .g-start-lg-19{grid-column-start:19}.panel-grid .g-start-lg-20{grid-column-start:20}.panel-grid .g-start-lg-21{grid-column-start:21}.panel-grid .g-start-lg-22{grid-column-start:22}.panel-grid .g-start-lg-23{grid-column-start:23}}@media(min-width: 1200px){.panel-grid .g-col-xl-1{grid-column:auto/span 1}.panel-grid .g-col-xl-2{grid-column:auto/span 2}.panel-grid .g-col-xl-3{grid-column:auto/span 3}.panel-grid .g-col-xl-4{grid-column:auto/span 4}.panel-grid .g-col-xl-5{grid-column:auto/span 5}.panel-grid .g-col-xl-6{grid-column:auto/span 6}.panel-grid .g-col-xl-7{grid-column:auto/span 7}.panel-grid .g-col-xl-8{grid-column:auto/span 8}.panel-grid .g-col-xl-9{grid-column:auto/span 9}.panel-grid .g-col-xl-10{grid-column:auto/span 10}.panel-grid .g-col-xl-11{grid-column:auto/span 11}.panel-grid .g-col-xl-12{grid-column:auto/span 12}.panel-grid .g-col-xl-13{grid-column:auto/span 13}.panel-grid .g-col-xl-14{grid-column:auto/span 14}.panel-grid .g-col-xl-15{grid-column:auto/span 15}.panel-grid .g-col-xl-16{grid-column:auto/span 16}.panel-grid .g-col-xl-17{grid-column:auto/span 17}.panel-grid .g-col-xl-18{grid-column:auto/span 18}.panel-grid .g-col-xl-19{grid-column:auto/span 19}.panel-grid .g-col-xl-20{grid-column:auto/span 20}.panel-grid .g-col-xl-21{grid-column:auto/span 21}.panel-grid .g-col-xl-22{grid-column:auto/span 22}.panel-grid .g-col-xl-23{grid-column:auto/span 23}.panel-grid .g-col-xl-24{grid-column:auto/span 24}.panel-grid .g-start-xl-1{grid-column-start:1}.panel-grid .g-start-xl-2{grid-column-start:2}.panel-grid .g-start-xl-3{grid-column-start:3}.panel-grid .g-start-xl-4{grid-column-start:4}.panel-grid .g-start-xl-5{grid-column-start:5}.panel-grid .g-start-xl-6{grid-column-start:6}.panel-grid .g-start-xl-7{grid-column-start:7}.panel-grid .g-start-xl-8{grid-column-start:8}.panel-grid .g-start-xl-9{grid-column-start:9}.panel-grid .g-start-xl-10{grid-column-start:10}.panel-grid .g-start-xl-11{grid-column-start:11}.panel-grid .g-start-xl-12{grid-column-start:12}.panel-grid .g-start-xl-13{grid-column-start:13}.panel-grid .g-start-xl-14{grid-column-start:14}.panel-grid .g-start-xl-15{grid-column-start:15}.panel-grid .g-start-xl-16{grid-column-start:16}.panel-grid .g-start-xl-17{grid-column-start:17}.panel-grid .g-start-xl-18{grid-column-start:18}.panel-grid .g-start-xl-19{grid-column-start:19}.panel-grid .g-start-xl-20{grid-column-start:20}.panel-grid .g-start-xl-21{grid-column-start:21}.panel-grid .g-start-xl-22{grid-column-start:22}.panel-grid .g-start-xl-23{grid-column-start:23}}@media(min-width: 1400px){.panel-grid .g-col-xxl-1{grid-column:auto/span 1}.panel-grid .g-col-xxl-2{grid-column:auto/span 2}.panel-grid .g-col-xxl-3{grid-column:auto/span 3}.panel-grid .g-col-xxl-4{grid-column:auto/span 4}.panel-grid .g-col-xxl-5{grid-column:auto/span 5}.panel-grid .g-col-xxl-6{grid-column:auto/span 6}.panel-grid .g-col-xxl-7{grid-column:auto/span 7}.panel-grid .g-col-xxl-8{grid-column:auto/span 8}.panel-grid .g-col-xxl-9{grid-column:auto/span 9}.panel-grid .g-col-xxl-10{grid-column:auto/span 10}.panel-grid .g-col-xxl-11{grid-column:auto/span 11}.panel-grid .g-col-xxl-12{grid-column:auto/span 12}.panel-grid .g-col-xxl-13{grid-column:auto/span 13}.panel-grid .g-col-xxl-14{grid-column:auto/span 14}.panel-grid .g-col-xxl-15{grid-column:auto/span 15}.panel-grid .g-col-xxl-16{grid-column:auto/span 16}.panel-grid .g-col-xxl-17{grid-column:auto/span 17}.panel-grid .g-col-xxl-18{grid-column:auto/span 18}.panel-grid .g-col-xxl-19{grid-column:auto/span 19}.panel-grid .g-col-xxl-20{grid-column:auto/span 20}.panel-grid .g-col-xxl-21{grid-column:auto/span 21}.panel-grid .g-col-xxl-22{grid-column:auto/span 22}.panel-grid .g-col-xxl-23{grid-column:auto/span 23}.panel-grid .g-col-xxl-24{grid-column:auto/span 24}.panel-grid .g-start-xxl-1{grid-column-start:1}.panel-grid .g-start-xxl-2{grid-column-start:2}.panel-grid .g-start-xxl-3{grid-column-start:3}.panel-grid .g-start-xxl-4{grid-column-start:4}.panel-grid .g-start-xxl-5{grid-column-start:5}.panel-grid .g-start-xxl-6{grid-column-start:6}.panel-grid .g-start-xxl-7{grid-column-start:7}.panel-grid .g-start-xxl-8{grid-column-start:8}.panel-grid .g-start-xxl-9{grid-column-start:9}.panel-grid .g-start-xxl-10{grid-column-start:10}.panel-grid .g-start-xxl-11{grid-column-start:11}.panel-grid .g-start-xxl-12{grid-column-start:12}.panel-grid .g-start-xxl-13{grid-column-start:13}.panel-grid .g-start-xxl-14{grid-column-start:14}.panel-grid .g-start-xxl-15{grid-column-start:15}.panel-grid .g-start-xxl-16{grid-column-start:16}.panel-grid .g-start-xxl-17{grid-column-start:17}.panel-grid .g-start-xxl-18{grid-column-start:18}.panel-grid .g-start-xxl-19{grid-column-start:19}.panel-grid .g-start-xxl-20{grid-column-start:20}.panel-grid .g-start-xxl-21{grid-column-start:21}.panel-grid .g-start-xxl-22{grid-column-start:22}.panel-grid .g-start-xxl-23{grid-column-start:23}}main{margin-top:1em;margin-bottom:1em}h1,.h1,h2,.h2{color:inherit;margin-top:2rem;margin-bottom:1rem;font-weight:600}h1.title,.title.h1{margin-top:0}main.content>section:first-of-type>h2:first-child,main.content>section:first-of-type>.h2:first-child{margin-top:0}h2,.h2{border-bottom:1px solid #434343;padding-bottom:.5rem}h3,.h3{font-weight:600}h3,.h3,h4,.h4{opacity:.9;margin-top:1.5rem}h5,.h5,h6,.h6{opacity:.9}.header-section-number{color:#bfbfbf}.nav-link.active .header-section-number{color:inherit}mark,.mark{padding:0em}.panel-caption,.figure-caption,.subfigure-caption,.table-caption,figcaption,caption{font-size:.9rem;color:#bfbfbf}.quarto-layout-cell[data-ref-parent] caption{color:#bfbfbf}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#bfbfbf;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse):first-child{padding-bottom:.5em;display:block}.column-margin.column-container>*:not(.collapse):not(:first-child){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.nav-tabs .nav-item{margin-top:1px;cursor:pointer}.tab-content{margin-top:0px;border-left:#434343 1px solid;border-right:#434343 1px solid;border-bottom:#434343 1px solid;margin-left:0;padding:1em;margin-bottom:1em}@media(max-width: 767.98px){.layout-sidebar{margin-left:0;margin-right:0}}.panel-sidebar,.panel-sidebar .form-control,.panel-input,.panel-input .form-control,.selectize-dropdown{font-size:.9rem}.panel-sidebar .form-control,.panel-input .form-control{padding-top:.1rem}.tab-pane div.sourceCode{margin-top:0px}.tab-pane>p{padding-top:0}.tab-pane>p:nth-child(1){padding-top:0}.tab-pane>p:last-child{margin-bottom:0}.tab-pane>pre:last-child{margin-bottom:0}.tab-content>.tab-pane:not(.active){display:none !important}div.sourceCode{background-color:rgba(67,67,67,.65);border:1px solid rgba(67,67,67,.65);border-radius:.25rem}pre.sourceCode{background-color:rgba(0,0,0,0)}pre.sourceCode{border-left:3px;border-left-style:solid;border-left-color:#1482fa;padding-left:.6em;border-right:none;border-top:none;border-bottom:none;font-size:.875em;overflow:visible !important;padding:.4em}.callout pre.sourceCode{padding-left:0}div.sourceCode{overflow-y:hidden}.callout div.sourceCode{margin-left:initial}.blockquote{font-size:inherit;padding-left:1rem;padding-right:1.5rem;color:#bfbfbf}.blockquote h1:first-child,.blockquote .h1:first-child,.blockquote h2:first-child,.blockquote .h2:first-child,.blockquote h3:first-child,.blockquote .h3:first-child,.blockquote h4:first-child,.blockquote .h4:first-child,.blockquote h5:first-child,.blockquote .h5:first-child{margin-top:0}pre{background-color:initial;padding:initial;border:initial}p pre code:not(.sourceCode),li pre code:not(.sourceCode),pre code:not(.sourceCode){background-color:initial}p code:not(.sourceCode),li code:not(.sourceCode),td code:not(.sourceCode){background-color:#f8f9fa;padding:.2em}nav p code:not(.sourceCode),nav li code:not(.sourceCode),nav td code:not(.sourceCode){background-color:rgba(0,0,0,0);padding:0}td code:not(.sourceCode){white-space:pre-wrap}#quarto-embedded-source-code-modal>.modal-dialog{max-width:1000px;padding-left:1.75rem;padding-right:1.75rem}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body{padding:0}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body div.sourceCode{margin:0;padding:.2rem .2rem;border-radius:0px;border:none}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-header{padding:.7rem}.code-tools-button{font-size:1rem;padding:.15rem .15rem;margin-left:5px;color:#6c757d;background-color:rgba(0,0,0,0);transition:initial;cursor:pointer}.code-tools-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.sidebar{will-change:top;transition:top 200ms linear;position:sticky;overflow-y:auto;padding-top:1.2em;max-height:100vh}.sidebar.toc-left,.sidebar.margin-sidebar{top:0px;padding-top:1em}.sidebar.quarto-banner-title-block-sidebar>*{padding-top:1.65em}figure .quarto-notebook-link{margin-top:.5em}.quarto-notebook-link{font-size:.75em;color:#6c757d;margin-bottom:1em;text-decoration:none;display:block}.quarto-notebook-link:hover{text-decoration:underline;color:#00bc8c}.quarto-notebook-link::before{display:inline-block;height:.75rem;width:.75rem;margin-bottom:0em;margin-right:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}.toc-actions i.bi,.quarto-code-links i.bi,.quarto-other-links i.bi,.quarto-alternate-notebooks i.bi,.quarto-alternate-formats i.bi{margin-right:.4em;font-size:.8rem}.quarto-other-links-text-target .quarto-code-links i.bi,.quarto-other-links-text-target .quarto-other-links i.bi{margin-right:.2em}.quarto-other-formats-text-target .quarto-alternate-formats i.bi{margin-right:.1em}.toc-actions i.bi.empty,.quarto-code-links i.bi.empty,.quarto-other-links i.bi.empty,.quarto-alternate-notebooks i.bi.empty,.quarto-alternate-formats i.bi.empty{padding-left:1em}.quarto-notebook h2,.quarto-notebook .h2{border-bottom:none}.quarto-notebook .cell-container{display:flex}.quarto-notebook .cell-container .cell{flex-grow:4}.quarto-notebook .cell-container .cell-decorator{padding-top:1.5em;padding-right:1em;text-align:right}.quarto-notebook .cell-container.code-fold .cell-decorator{padding-top:3em}.quarto-notebook .cell-code code{white-space:pre-wrap}.quarto-notebook .cell .cell-output-stderr pre code,.quarto-notebook .cell .cell-output-stdout pre code{white-space:pre-wrap;overflow-wrap:anywhere}.toc-actions,.quarto-alternate-formats,.quarto-other-links,.quarto-code-links,.quarto-alternate-notebooks{padding-left:0em}.sidebar .toc-actions a,.sidebar .quarto-alternate-formats a,.sidebar .quarto-other-links a,.sidebar .quarto-code-links a,.sidebar .quarto-alternate-notebooks a,.sidebar nav[role=doc-toc] a{text-decoration:none}.sidebar .toc-actions a:hover,.sidebar .quarto-other-links a:hover,.sidebar .quarto-code-links a:hover,.sidebar .quarto-alternate-formats a:hover,.sidebar .quarto-alternate-notebooks a:hover{color:#00bc8c}.sidebar .toc-actions h2,.sidebar .toc-actions .h2,.sidebar .quarto-code-links h2,.sidebar .quarto-code-links .h2,.sidebar .quarto-other-links h2,.sidebar .quarto-other-links .h2,.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2,.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-weight:500;margin-bottom:.2rem;margin-top:.3rem;font-family:inherit;border-bottom:0;padding-bottom:0;padding-top:0px}.sidebar .toc-actions>h2,.sidebar .toc-actions>.h2,.sidebar .quarto-code-links>h2,.sidebar .quarto-code-links>.h2,.sidebar .quarto-other-links>h2,.sidebar .quarto-other-links>.h2,.sidebar .quarto-alternate-notebooks>h2,.sidebar .quarto-alternate-notebooks>.h2,.sidebar .quarto-alternate-formats>h2,.sidebar .quarto-alternate-formats>.h2{font-size:.8rem}.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-size:.875rem}.sidebar nav[role=doc-toc]>ul a{border-left:1px solid #ebebeb;padding-left:.6rem}.sidebar .toc-actions h2>ul a,.sidebar .toc-actions .h2>ul a,.sidebar .quarto-code-links h2>ul a,.sidebar .quarto-code-links .h2>ul a,.sidebar .quarto-other-links h2>ul a,.sidebar .quarto-other-links .h2>ul a,.sidebar .quarto-alternate-notebooks h2>ul a,.sidebar .quarto-alternate-notebooks .h2>ul a,.sidebar .quarto-alternate-formats h2>ul a,.sidebar .quarto-alternate-formats .h2>ul a{border-left:none;padding-left:.6rem}.sidebar .toc-actions ul a:empty,.sidebar .quarto-code-links ul a:empty,.sidebar .quarto-other-links ul a:empty,.sidebar .quarto-alternate-notebooks ul a:empty,.sidebar .quarto-alternate-formats ul a:empty,.sidebar nav[role=doc-toc]>ul a:empty{display:none}.sidebar .toc-actions ul,.sidebar .quarto-code-links ul,.sidebar .quarto-other-links ul,.sidebar .quarto-alternate-notebooks ul,.sidebar .quarto-alternate-formats ul{padding-left:0;list-style:none}.sidebar nav[role=doc-toc] ul{list-style:none;padding-left:0;list-style:none}.sidebar nav[role=doc-toc]>ul{margin-left:.45em}.quarto-margin-sidebar nav[role=doc-toc]{padding-left:.5em}.sidebar .toc-actions>ul,.sidebar .quarto-code-links>ul,.sidebar .quarto-other-links>ul,.sidebar .quarto-alternate-notebooks>ul,.sidebar .quarto-alternate-formats>ul{font-size:.8rem}.sidebar nav[role=doc-toc]>ul{font-size:.875rem}.sidebar .toc-actions ul li a,.sidebar .quarto-code-links ul li a,.sidebar .quarto-other-links ul li a,.sidebar .quarto-alternate-notebooks ul li a,.sidebar .quarto-alternate-formats ul li a,.sidebar nav[role=doc-toc]>ul li a{line-height:1.1rem;padding-bottom:.2rem;padding-top:.2rem;color:inherit}.sidebar nav[role=doc-toc] ul>li>ul>li>a{padding-left:1.2em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>a{padding-left:2.4em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>a{padding-left:3.6em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:4.8em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:6em}.sidebar nav[role=doc-toc] ul>li>a.active,.sidebar nav[role=doc-toc] ul>li>ul>li>a.active{border-left:1px solid #00bc8c;color:#00bc8c !important}.sidebar nav[role=doc-toc] ul>li>a:hover,.sidebar nav[role=doc-toc] ul>li>ul>li>a:hover{color:#00bc8c !important}kbd,.kbd{color:#fff;background-color:#f8f9fa;border:1px solid;border-radius:5px;border-color:#434343}.quarto-appendix-contents div.hanging-indent{margin-left:0em}.quarto-appendix-contents div.hanging-indent div.csl-entry{margin-left:1em;text-indent:-1em}.citation a,.footnote-ref{text-decoration:none}.footnotes ol{padding-left:1em}.tippy-content>*{margin-bottom:.7em}.tippy-content>*:last-child{margin-bottom:0}@media(min-width: 992px){.callout:not(.no-icon){margin-left:calc(calc(-0.4em + -5px) + -1px)}.callout{margin-left:calc(-0.4em + -5px)}div.sourceCode{margin-left:calc(calc(-0.6em + -3px) + 2px)}}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:.25rem;overflow-wrap:break-word}.callout .callout-title-container{overflow-wrap:anywhere}.callout.callout-style-simple{padding:.4em .7em;border-left:5px solid;border-right:1px solid #434343;border-top:1px solid #434343;border-bottom:1px solid #434343}.callout.callout-style-default{border-left:5px solid;border-right:1px solid #434343;border-top:1px solid #434343;border-bottom:1px solid #434343}.callout .callout-body-container{flex-grow:1}.callout.callout-style-simple .callout-body{font-size:.9rem;font-weight:400}.callout.callout-style-default .callout-body{font-size:.9rem;font-weight:400}.callout:not(.no-icon).callout-titled.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-titled>.callout-header{padding-top:.2em;margin-bottom:-0.2em}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:.9rem;padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body{padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body>:first-child{padding-top:.5rem;margin-top:0}.callout>div.callout-header[data-bs-toggle=collapse]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded=false],.callout.callout-style-default .callout-header[aria-expanded=true]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-titled .callout-body>:last-child:not(.sourceCode),.callout.callout-titled .callout-body>div>:last-child:not(.sourceCode){padding-bottom:.5rem;margin-bottom:0}.callout:not(.callout-titled) .callout-body>:first-child,.callout:not(.callout-titled) .callout-body>div>:first-child{margin-top:.25rem}.callout:not(.callout-titled) .callout-body>:last-child,.callout:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:.2rem}.callout.callout-style-simple .callout-icon::before,.callout.callout-style-simple .callout-toggle::before{height:1rem;width:1rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.callout.callout-style-default .callout-icon::before,.callout.callout-style-default .callout-toggle::before{height:.9rem;width:.9rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:.9rem .9rem}.callout.callout-style-default .callout-toggle::before{margin-top:5px}.callout .callout-btn-toggle .callout-toggle::before{transition:transform .2s linear}.callout .callout-header[aria-expanded=false] .callout-toggle::before{transform:rotate(-90deg)}.callout .callout-header[aria-expanded=true] .callout-toggle::before{transform:none}.callout.callout-style-simple:not(.no-icon) div.callout-icon-container{padding-top:.2em;padding-right:.55em}.callout.callout-style-default:not(.no-icon) div.callout-icon-container{padding-top:.1em;padding-right:.35em}.callout.callout-style-default:not(.no-icon) div.callout-title-container{margin-top:-1px}.callout.callout-style-default.callout-caution:not(.no-icon) div.callout-icon-container{padding-top:.3em;padding-right:.35em}.callout>.callout-body>.callout-icon-container>.no-icon,.callout>.callout-header>.callout-icon-container>.no-icon{display:none}div.callout.callout{border-left-color:#6c757d}div.callout.callout-style-default>.callout-header{background-color:#6c757d}div.callout-note.callout{border-left-color:#375a7f}div.callout-note.callout-style-default>.callout-header{background-color:#111b26}div.callout-note:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-tip.callout{border-left-color:#00bc8c}div.callout-tip.callout-style-default>.callout-header{background-color:#00382a}div.callout-tip:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-warning.callout{border-left-color:#f39c12}div.callout-warning.callout-style-default>.callout-header{background-color:#492f05}div.callout-warning:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-caution.callout{border-left-color:#fd7e14}div.callout-caution.callout-style-default>.callout-header{background-color:#4c2606}div.callout-caution:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-important.callout{border-left-color:#e74c3c}div.callout-important.callout-style-default>.callout-header{background-color:#451712}div.callout-important:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important .callout-toggle::before{background-image:url('data:image/svg+xml,')}.quarto-toggle-container{display:flex;align-items:center}.quarto-reader-toggle .bi::before,.quarto-color-scheme-toggle .bi::before{display:inline-block;height:1rem;width:1rem;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.sidebar-navigation{padding-left:20px}.navbar{background-color:#375a7f;color:#dee2e6}.navbar .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.quarto-sidebar-toggle{border-color:#dee2e6;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-style:solid;border-width:1px;overflow:hidden;border-top-width:0px;padding-top:0px !important}.quarto-sidebar-toggle-title{cursor:pointer;padding-bottom:2px;margin-left:.25em;text-align:center;font-weight:400;font-size:.775em}#quarto-content .quarto-sidebar-toggle{background:#272727}#quarto-content .quarto-sidebar-toggle-title{color:#fff}.quarto-sidebar-toggle-icon{color:#dee2e6;margin-right:.5em;float:right;transition:transform .2s ease}.quarto-sidebar-toggle-icon::before{padding-top:5px}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-icon{transform:rotate(-180deg)}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-title{border-bottom:solid #dee2e6 1px}.quarto-sidebar-toggle-contents{background-color:#222;padding-right:10px;padding-left:10px;margin-top:0px !important;transition:max-height .5s ease}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-contents{padding-top:1em;padding-bottom:10px}@media(max-width: 767.98px){.sidebar-menu-container{padding-bottom:5em}}.quarto-sidebar-toggle:not(.expanded) .quarto-sidebar-toggle-contents{padding-top:0px !important;padding-bottom:0px}nav[role=doc-toc]{z-index:1020}#quarto-sidebar>*,nav[role=doc-toc]>*{transition:opacity .1s ease,border .1s ease}#quarto-sidebar.slow>*,nav[role=doc-toc].slow>*{transition:opacity .4s ease,border .4s ease}.quarto-color-scheme-toggle:not(.alternate).top-right .bi::before{background-image:url('data:image/svg+xml,')}.quarto-color-scheme-toggle.alternate.top-right .bi::before{background-image:url('data:image/svg+xml,')}#quarto-appendix.default{border-top:1px solid #dee2e6}#quarto-appendix.default{background-color:#222;padding-top:1.5em;margin-top:2em;z-index:998}#quarto-appendix.default .quarto-appendix-heading{margin-top:0;line-height:1.4em;font-weight:600;opacity:.9;border-bottom:none;margin-bottom:0}#quarto-appendix.default .footnotes ol,#quarto-appendix.default .footnotes ol li>p:last-of-type,#quarto-appendix.default .quarto-appendix-contents>p:last-of-type{margin-bottom:0}#quarto-appendix.default .footnotes ol{margin-left:.5em}#quarto-appendix.default .quarto-appendix-secondary-label{margin-bottom:.4em}#quarto-appendix.default .quarto-appendix-bibtex{font-size:.7em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-bibtex code.sourceCode{white-space:pre-wrap}#quarto-appendix.default .quarto-appendix-citeas{font-size:.9em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-heading{font-size:1em !important}#quarto-appendix.default *[role=doc-endnotes]>ol,#quarto-appendix.default .quarto-appendix-contents>*:not(h2):not(.h2){font-size:.9em}#quarto-appendix.default section{padding-bottom:1.5em}#quarto-appendix.default section *[role=doc-endnotes],#quarto-appendix.default section>*:not(a){opacity:.9;word-wrap:break-word}.btn.btn-quarto,div.cell-output-display .btn-quarto{--bs-btn-color: #d9d9d9;--bs-btn-bg: #434343;--bs-btn-border-color: #434343;--bs-btn-hover-color: #d9d9d9;--bs-btn-hover-bg: #5f5f5f;--bs-btn-hover-border-color: #565656;--bs-btn-focus-shadow-rgb: 90, 90, 90;--bs-btn-active-color: #fff;--bs-btn-active-bg: dimgray;--bs-btn-active-border-color: #565656;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #434343;--bs-btn-disabled-border-color: #434343}nav.quarto-secondary-nav.color-navbar{background-color:#375a7f;color:#dee2e6}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:#dee2e6}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner{margin-bottom:0;padding-bottom:1em}body.nav-sidebar #title-block-header{margin-block-end:0}}p.subtitle{margin-top:.25em;margin-bottom:.5em}code a:any-link{color:inherit;text-decoration-color:#6c757d}/*! dark */div.observablehq table thead tr th{background-color:var(--bs-body-bg)}input,button,select,optgroup,textarea{background-color:var(--bs-body-bg)}.code-annotated .code-copy-button{margin-right:1.25em;margin-top:0;padding-bottom:0;padding-top:3px}.code-annotation-gutter-bg{background-color:#222}.code-annotation-gutter{background-color:rgba(67,67,67,.65)}.code-annotation-gutter,.code-annotation-gutter-bg{height:100%;width:calc(20px + .5em);position:absolute;top:0;right:0}dl.code-annotation-container-grid dt{margin-right:1em;margin-top:.25rem}dl.code-annotation-container-grid dt{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:#e6e6e6;border:solid #e6e6e6 1px;border-radius:50%;height:22px;width:22px;line-height:22px;font-size:11px;text-align:center;vertical-align:middle;text-decoration:none}dl.code-annotation-container-grid dt[data-target-cell]{cursor:pointer}dl.code-annotation-container-grid dt[data-target-cell].code-annotation-active{color:#222;border:solid #aaa 1px;background-color:#aaa}pre.code-annotation-code{padding-top:0;padding-bottom:0}pre.code-annotation-code code{z-index:3}#code-annotation-line-highlight-gutter{width:100%;border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}#code-annotation-line-highlight{margin-left:-4em;width:calc(100% + 4em);border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}code.sourceCode .code-annotation-anchor.code-annotation-active{background-color:var(--quarto-hl-normal-color, #aaaaaa);border:solid var(--quarto-hl-normal-color, #aaaaaa) 1px;color:#434343;font-weight:bolder}code.sourceCode .code-annotation-anchor{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:var(--quarto-hl-co-color);border:solid var(--quarto-hl-co-color) 1px;border-radius:50%;height:18px;width:18px;font-size:9px;margin-top:2px}code.sourceCode button.code-annotation-anchor{padding:2px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none}code.sourceCode a.code-annotation-anchor{line-height:18px;text-align:center;vertical-align:middle;cursor:default;text-decoration:none}@media print{.page-columns .column-screen-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset table{background:#222}.page-columns .column-screen-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-inset-left table{background:#222}.page-columns .column-screen-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset-right table{background:#222}.page-columns .column-screen{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#222}.page-columns .column-screen-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#222}.page-columns .column-screen-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen-right table{background:#222}.page-columns .column-screen-inset-shaded{grid-column:page-start-inset/page-end-inset;padding:1em;background:#6f6f6f;z-index:998;opacity:.999;margin-bottom:1em}}.quarto-video{margin-bottom:1em}.table{border-top:1px solid #fff;border-bottom:1px solid #fff}.table>thead{border-top-width:0;border-bottom:1px solid #fff}.table a{word-break:break-word}.table>:not(caption)>*>*{background-color:unset;color:unset}#quarto-document-content .crosstalk-input .checkbox input[type=checkbox],#quarto-document-content .crosstalk-input .checkbox-inline input[type=checkbox]{position:unset;margin-top:unset;margin-left:unset}#quarto-document-content .row{margin-left:unset;margin-right:unset}.quarto-xref{white-space:nowrap}#quarto-draft-alert{margin-top:0px;margin-bottom:0px;padding:.3em;text-align:center;font-size:.9em}#quarto-draft-alert i{margin-right:.3em}a.external:after{content:"";background-image:url('data:image/svg+xml,');background-size:contain;background-repeat:no-repeat;background-position:center center;margin-left:.2em;padding-right:.75em}div.sourceCode code a.external:after{content:none}a.external:after:hover{cursor:pointer}.quarto-ext-icon{display:inline-block;font-size:.75em;padding-left:.3em}.code-with-filename .code-with-filename-file{margin-bottom:0;padding-bottom:2px;padding-top:2px;padding-left:.7em;border:var(--quarto-border-width) solid var(--quarto-border-color);border-radius:var(--quarto-border-radius);border-bottom:0;border-bottom-left-radius:0%;border-bottom-right-radius:0%}.code-with-filename div.sourceCode,.reveal .code-with-filename div.sourceCode{margin-top:0;border-top-left-radius:0%;border-top-right-radius:0%}.code-with-filename .code-with-filename-file pre{margin-bottom:0}.code-with-filename .code-with-filename-file{background-color:rgba(219,219,219,.8)}.quarto-dark .code-with-filename .code-with-filename-file{background-color:#555}.code-with-filename .code-with-filename-file strong{font-weight:400}.blockquote-footer{color:#595959}.form-floating>label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label{color:#595959}.nav-tabs .nav-link,.nav-tabs .nav-link.active,.nav-tabs .nav-link.active:focus,.nav-tabs .nav-link.active:hover,.nav-tabs .nav-item.open .nav-link,.nav-tabs .nav-item.open .nav-link:focus,.nav-tabs .nav-item.open .nav-link:hover,.nav-pills .nav-link,.nav-pills .nav-link.active,.nav-pills .nav-link.active:focus,.nav-pills .nav-link.active:hover,.nav-pills .nav-item.open .nav-link,.nav-pills .nav-item.open .nav-link:focus,.nav-pills .nav-item.open .nav-link:hover{color:#fff}.breadcrumb a{color:#fff}.pagination a:hover{text-decoration:none}.alert{color:#fff;border:none}.alert a,.alert .alert-link{color:#fff;text-decoration:underline}.alert-default{background-color:#434343}.alert-primary{background-color:#375a7f}.alert-secondary{background-color:#434343}.alert-success{background-color:#00bc8c}.alert-info{background-color:#3498db}.alert-warning{background-color:#f39c12}.alert-danger{background-color:#e74c3c}.alert-light{background-color:#6f6f6f}.alert-dark{background-color:#2d2d2d}.tooltip{--bs-tooltip-bg: var(--bs-tertiary-bg);--bs-tooltip-color: var(--bs-emphasis-color)}.quarto-title-banner{margin-bottom:1em;color:#dee2e6;background:#375a7f}.quarto-title-banner a{color:#dee2e6}.quarto-title-banner h1,.quarto-title-banner .h1,.quarto-title-banner h2,.quarto-title-banner .h2{color:#dee2e6}.quarto-title-banner .code-tools-button{color:#a4afba}.quarto-title-banner .code-tools-button:hover{color:#dee2e6}.quarto-title-banner .code-tools-button>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .quarto-title .title{font-weight:600}.quarto-title-banner .quarto-categories{margin-top:.75em}@media(min-width: 992px){.quarto-title-banner{padding-top:2.5em;padding-bottom:2.5em}}@media(max-width: 991.98px){.quarto-title-banner{padding-top:1em;padding-bottom:1em}}@media(max-width: 767.98px){body.hypothesis-enabled #title-block-header>*{padding-right:20px}}main.quarto-banner-title-block>section:first-child>h2,main.quarto-banner-title-block>section:first-child>.h2,main.quarto-banner-title-block>section:first-child>h3,main.quarto-banner-title-block>section:first-child>.h3,main.quarto-banner-title-block>section:first-child>h4,main.quarto-banner-title-block>section:first-child>.h4{margin-top:0}.quarto-title .quarto-categories{display:flex;flex-wrap:wrap;row-gap:.5em;column-gap:.4em;padding-bottom:.5em;margin-top:.75em}.quarto-title .quarto-categories .quarto-category{padding:.25em .75em;font-size:.65em;text-transform:uppercase;border:solid 1px;border-radius:.25rem;opacity:.6}.quarto-title .quarto-categories .quarto-category a{color:inherit}.quarto-title-meta-container{display:grid;grid-template-columns:1fr auto}.quarto-title-meta-column-end{display:flex;flex-direction:column;padding-left:1em}.quarto-title-meta-column-end a .bi{margin-right:.3em}#title-block-header.quarto-title-block.default .quarto-title-meta{display:grid;grid-template-columns:repeat(2, 1fr);grid-column-gap:1em}#title-block-header.quarto-title-block.default .quarto-title .title{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-author-orcid img{margin-top:-0.2em;height:.8em;width:.8em}#title-block-header.quarto-title-block.default .quarto-title-author-email{opacity:.7}#title-block-header.quarto-title-block.default .quarto-description p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p,#title-block-header.quarto-title-block.default .quarto-title-authors p,#title-block-header.quarto-title-block.default .quarto-title-affiliations p{margin-bottom:.1em}#title-block-header.quarto-title-block.default .quarto-title-meta-heading{text-transform:uppercase;margin-top:1em;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-contents{font-size:.9em}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p.affiliation:last-of-type{margin-bottom:.1em}#title-block-header.quarto-title-block.default p.affiliation{margin-bottom:.1em}#title-block-header.quarto-title-block.default .keywords,#title-block-header.quarto-title-block.default .description,#title-block-header.quarto-title-block.default .abstract{margin-top:0}#title-block-header.quarto-title-block.default .keywords>p,#title-block-header.quarto-title-block.default .description>p,#title-block-header.quarto-title-block.default .abstract>p{font-size:.9em}#title-block-header.quarto-title-block.default .keywords>p:last-of-type,#title-block-header.quarto-title-block.default .description>p:last-of-type,#title-block-header.quarto-title-block.default .abstract>p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .keywords .block-title,#title-block-header.quarto-title-block.default .description .block-title,#title-block-header.quarto-title-block.default .abstract .block-title{margin-top:1em;text-transform:uppercase;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-author{display:grid;grid-template-columns:minmax(max-content, 1fr) 1fr;grid-column-gap:1em}.quarto-title-tools-only{display:flex;justify-content:right} diff --git a/development/site_libs/bootstrap/bootstrap.min.css b/development/site_libs/bootstrap/bootstrap.min.css index b7f8863fc..4cc097658 100644 --- a/development/site_libs/bootstrap/bootstrap.min.css +++ b/development/site_libs/bootstrap/bootstrap.min.css @@ -2,11 +2,11 @@ * Bootstrap v5.3.1 (https://getbootstrap.com/) * Copyright 2011-2023 The Bootstrap Authors * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */@import"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400&display=swap";:root,[data-bs-theme=light]{--bs-blue: #2c3e50;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #e83e8c;--bs-red: #e74c3c;--bs-orange: #fd7e14;--bs-yellow: #f39c12;--bs-green: #18bc9c;--bs-teal: #20c997;--bs-cyan: #3498db;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #ecf0f1;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #7b8a8b;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-default: #6c757d;--bs-primary: #2c3e50;--bs-secondary: #6c757d;--bs-success: #18bc9c;--bs-info: #3498db;--bs-warning: #f39c12;--bs-danger: #e74c3c;--bs-light: #ecf0f1;--bs-dark: #7b8a8b;--bs-default-rgb: 108, 117, 125;--bs-primary-rgb: 44, 62, 80;--bs-secondary-rgb: 108, 117, 125;--bs-success-rgb: 24, 188, 156;--bs-info-rgb: 52, 152, 219;--bs-warning-rgb: 243, 156, 18;--bs-danger-rgb: 231, 76, 60;--bs-light-rgb: 236, 240, 241;--bs-dark-rgb: 123, 138, 139;--bs-primary-text-emphasis: #121920;--bs-secondary-text-emphasis: #2b2f32;--bs-success-text-emphasis: #0a4b3e;--bs-info-text-emphasis: #153d58;--bs-warning-text-emphasis: #613e07;--bs-danger-text-emphasis: #5c1e18;--bs-light-text-emphasis: #7b8a8b;--bs-dark-text-emphasis: #7b8a8b;--bs-primary-bg-subtle: #d5d8dc;--bs-secondary-bg-subtle: #e2e3e5;--bs-success-bg-subtle: #d1f2eb;--bs-info-bg-subtle: #d6eaf8;--bs-warning-bg-subtle: #fdebd0;--bs-danger-bg-subtle: #fadbd8;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #abb2b9;--bs-secondary-border-subtle: #c4c8cb;--bs-success-border-subtle: #a3e4d7;--bs-info-border-subtle: #aed6f1;--bs-warning-border-subtle: #fad7a0;--bs-danger-border-subtle: #f5b7b1;--bs-light-border-subtle: #ecf0f1;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-root-font-size: 17px;--bs-body-font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg: #fff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb: 33, 37, 41;--bs-secondary-bg: #ecf0f1;--bs-secondary-bg-rgb: 236, 240, 241;--bs-tertiary-color: rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb: 33, 37, 41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #18bc9c;--bs-link-color-rgb: 24, 188, 156;--bs-link-decoration: underline;--bs-link-hover-color: #13967d;--bs-link-hover-color-rgb: 19, 150, 125;--bs-code-color: #7d12ba;--bs-highlight-bg: #fdebd0;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, 0.175);--bs-border-radius: 0.25rem;--bs-border-radius-sm: 0.2em;--bs-border-radius-lg: 0.5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width: 0.25rem;--bs-focus-ring-opacity: 0.25;--bs-focus-ring-color: rgba(44, 62, 80, 0.25);--bs-form-valid-color: #18bc9c;--bs-form-valid-border-color: #18bc9c;--bs-form-invalid-color: #e74c3c;--bs-form-invalid-border-color: #e74c3c}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43, 48, 53;--bs-primary-text-emphasis: #808b96;--bs-secondary-text-emphasis: #a7acb1;--bs-success-text-emphasis: #74d7c4;--bs-info-text-emphasis: #85c1e9;--bs-warning-text-emphasis: #f8c471;--bs-danger-text-emphasis: #f1948a;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #090c10;--bs-secondary-bg-subtle: #161719;--bs-success-bg-subtle: #05261f;--bs-info-bg-subtle: #0a1e2c;--bs-warning-bg-subtle: #311f04;--bs-danger-bg-subtle: #2e0f0c;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #1a2530;--bs-secondary-border-subtle: #41464b;--bs-success-border-subtle: #0e715e;--bs-info-border-subtle: #1f5b83;--bs-warning-border-subtle: #925e0b;--bs-danger-border-subtle: #8b2e24;--bs-light-border-subtle: #7b8a8b;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #808b96;--bs-link-hover-color: #99a2ab;--bs-link-color-rgb: 128, 139, 150;--bs-link-hover-color-rgb: 153, 162, 171;--bs-code-color: white;--bs-border-color: #7b8a8b;--bs-border-color-translucent: rgba(255, 255, 255, 0.15);--bs-form-valid-color: #74d7c4;--bs-form-valid-border-color: #74d7c4;--bs-form-invalid-color: #f1948a;--bs-form-invalid-border-color: #f1948a}*,*::before,*::after{box-sizing:border-box}:root{font-size:var(--bs-root-font-size)}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h1,.h1{font-size:2rem}}h2,.h2{font-size:calc(1.29rem + 0.48vw)}@media(min-width: 1200px){h2,.h2{font-size:1.65rem}}h3,.h3{font-size:calc(1.27rem + 0.24vw)}@media(min-width: 1200px){h3,.h3{font-size:1.45rem}}h4,.h4{font-size:1.25rem}h5,.h5{font-size:1.1rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #ecf0f1}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:0.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em;color:#000;background-color:#f8f9fa;padding:.5rem;border:1px solid var(--bs-border-color, #dee2e6);border-radius:.25rem}pre code{background-color:rgba(0,0,0,0);font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:var(--bs-code-color);background-color:#f8f9fa;border-radius:.25rem;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#fff;background-color:#212529;border-radius:.2em}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:rgba(33,37,41,.75);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:rgba(33,37,41,.75)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media(min-width: 576px){.container-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media(min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: #212529;--bs-table-bg: #fff;--bs-table-border-color: #dee2e6;--bs-table-accent-bg: transparent;--bs-table-striped-color: #212529;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: #212529;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: #212529;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(1px*2) solid #9ba5ae}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #fff;--bs-table-bg: #2c3e50;--bs-table-border-color: #415162;--bs-table-striped-bg: #374859;--bs-table-striped-color: #fff;--bs-table-active-bg: #415162;--bs-table-active-color: #fff;--bs-table-hover-bg: #3c4c5d;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #fff;--bs-table-bg: #6c757d;--bs-table-border-color: #7b838a;--bs-table-striped-bg: #737c84;--bs-table-striped-color: #fff;--bs-table-active-bg: #7b838a;--bs-table-active-color: #fff;--bs-table-hover-bg: #777f87;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #fff;--bs-table-bg: #18bc9c;--bs-table-border-color: #2fc3a6;--bs-table-striped-bg: #24bfa1;--bs-table-striped-color: #fff;--bs-table-active-bg: #2fc3a6;--bs-table-active-color: #fff;--bs-table-hover-bg: #29c1a3;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #fff;--bs-table-bg: #3498db;--bs-table-border-color: #48a2df;--bs-table-striped-bg: #3e9ddd;--bs-table-striped-color: #fff;--bs-table-active-bg: #48a2df;--bs-table-active-color: #fff;--bs-table-hover-bg: #43a0de;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #fff;--bs-table-bg: #f39c12;--bs-table-border-color: #f4a62a;--bs-table-striped-bg: #f4a11e;--bs-table-striped-color: #fff;--bs-table-active-bg: #f4a62a;--bs-table-active-color: #000;--bs-table-hover-bg: #f4a324;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #fff;--bs-table-bg: #e74c3c;--bs-table-border-color: #e95e50;--bs-table-striped-bg: #e85546;--bs-table-striped-color: #fff;--bs-table-active-bg: #e95e50;--bs-table-active-color: #fff;--bs-table-hover-bg: #e9594b;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #ecf0f1;--bs-table-border-color: #d4d8d9;--bs-table-striped-bg: #e0e4e5;--bs-table-striped-color: #000;--bs-table-active-bg: #d4d8d9;--bs-table-active-color: #000;--bs-table-hover-bg: #dadedf;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #7b8a8b;--bs-table-border-color: #889697;--bs-table-striped-bg: #829091;--bs-table-striped-color: #fff;--bs-table-active-bg: #889697;--bs-table-active-color: #fff;--bs-table-hover-bg: #859394;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(0.375rem + 1px);padding-bottom:calc(0.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:rgba(33,37,41,.75)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fff;background-clip:padding-box;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#969fa8;outline:0;box-shadow:0 0 0 .25rem rgba(44,62,80,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:rgba(33,37,41,.75);opacity:1}.form-control:disabled{background-color:#ecf0f1;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#212529;background-color:#f8f9fa;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#ecf0f1}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2));padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + calc(1px * 2))}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2))}.form-control-color{width:3rem;height:calc(1.5em + 0.75rem + calc(1px * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:.25rem}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:.25rem}.form-control-color.form-control-sm{height:calc(1.5em + 0.5rem + calc(1px * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(1px * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fff;background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#969fa8;outline:0;box-shadow:0 0 0 .25rem rgba(44,62,80,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#ecf0f1}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem;border-radius:.2em}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.5rem}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-reverse{padding-right:0;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:0;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{--bs-form-check-bg: #fff;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid #dee2e6;print-color-adjust:exact}.form-check-input[type=checkbox],.shiny-input-container .checkbox input[type=checkbox],.shiny-input-container .checkbox-inline input[type=checkbox],.shiny-input-container .radio input[type=checkbox],.shiny-input-container .radio-inline input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio],.shiny-input-container .checkbox input[type=radio],.shiny-input-container .checkbox-inline input[type=radio],.shiny-input-container .radio input[type=radio],.shiny-input-container .radio-inline input[type=radio]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#969fa8;outline:0;box-shadow:0 0 0 .25rem rgba(44,62,80,.25)}.form-check-input:checked,.shiny-input-container .checkbox input:checked,.shiny-input-container .checkbox-inline input:checked,.shiny-input-container .radio input:checked,.shiny-input-container .radio-inline input:checked{background-color:#2c3e50;border-color:#2c3e50}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate,.shiny-input-container .checkbox input[type=checkbox]:indeterminate,.shiny-input-container .checkbox-inline input[type=checkbox]:indeterminate,.shiny-input-container .radio input[type=checkbox]:indeterminate,.shiny-input-container .radio-inline input[type=checkbox]:indeterminate{background-color:#2c3e50;border-color:#2c3e50;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{cursor:default;opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23969fa8'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:rgba(0,0,0,0)}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(44,62,80,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(44,62,80,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#2c3e50;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#c0c5cb}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#f8f9fa;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#2c3e50;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#c0c5cb}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#f8f9fa;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:rgba(33,37,41,.75)}.form-range:disabled::-moz-range-thumb{background-color:rgba(33,37,41,.75)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(1px * 2));min-height:calc(3.5rem + calc(1px * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:1px solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:#fff;border-radius:.25rem}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:1px 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:#ecf0f1}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:.25rem}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(1px*-1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#18bc9c}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:#18bc9c;border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#18bc9c;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2318bc9c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#18bc9c;box-shadow:0 0 0 .25rem rgba(24,188,156,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#18bc9c}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2318bc9c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#18bc9c;box-shadow:0 0 0 .25rem rgba(24,188,156,.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#18bc9c}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#18bc9c}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(24,188,156,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#18bc9c}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#e74c3c}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:#e74c3c;border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#e74c3c;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e74c3c' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#e74c3c;box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#e74c3c}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e74c3c' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#e74c3c;box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#e74c3c}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#e74c3c}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#e74c3c}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: 0.75rem;--bs-btn-padding-y: 0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: #212529;--bs-btn-bg: transparent;--bs-btn-border-width: 1px;--bs-btn-border-color: transparent;--bs-btn-border-radius: 0.25rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity: 0.65;--bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-default{--bs-btn-color: #fff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5c636a;--bs-btn-hover-border-color: #565e64;--bs-btn-focus-shadow-rgb: 130, 138, 145;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565e64;--bs-btn-active-border-color: #51585e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #2c3e50;--bs-btn-border-color: #2c3e50;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #253544;--bs-btn-hover-border-color: #233240;--bs-btn-focus-shadow-rgb: 76, 91, 106;--bs-btn-active-color: #fff;--bs-btn-active-bg: #233240;--bs-btn-active-border-color: #212f3c;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #2c3e50;--bs-btn-disabled-border-color: #2c3e50}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5c636a;--bs-btn-hover-border-color: #565e64;--bs-btn-focus-shadow-rgb: 130, 138, 145;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565e64;--bs-btn-active-border-color: #51585e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #18bc9c;--bs-btn-border-color: #18bc9c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #14a085;--bs-btn-hover-border-color: #13967d;--bs-btn-focus-shadow-rgb: 59, 198, 171;--bs-btn-active-color: #fff;--bs-btn-active-bg: #13967d;--bs-btn-active-border-color: #128d75;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #18bc9c;--bs-btn-disabled-border-color: #18bc9c}.btn-info{--bs-btn-color: #fff;--bs-btn-bg: #3498db;--bs-btn-border-color: #3498db;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #2c81ba;--bs-btn-hover-border-color: #2a7aaf;--bs-btn-focus-shadow-rgb: 82, 167, 224;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2a7aaf;--bs-btn-active-border-color: #2772a4;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #3498db;--bs-btn-disabled-border-color: #3498db}.btn-warning{--bs-btn-color: #fff;--bs-btn-bg: #f39c12;--bs-btn-border-color: #f39c12;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #cf850f;--bs-btn-hover-border-color: #c27d0e;--bs-btn-focus-shadow-rgb: 245, 171, 54;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c27d0e;--bs-btn-active-border-color: #b6750e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #f39c12;--bs-btn-disabled-border-color: #f39c12}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #e74c3c;--bs-btn-border-color: #e74c3c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c44133;--bs-btn-hover-border-color: #b93d30;--bs-btn-focus-shadow-rgb: 235, 103, 89;--bs-btn-active-color: #fff;--bs-btn-active-bg: #b93d30;--bs-btn-active-border-color: #ad392d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #e74c3c;--bs-btn-disabled-border-color: #e74c3c}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #ecf0f1;--bs-btn-border-color: #ecf0f1;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #c9cccd;--bs-btn-hover-border-color: #bdc0c1;--bs-btn-focus-shadow-rgb: 201, 204, 205;--bs-btn-active-color: #000;--bs-btn-active-bg: #bdc0c1;--bs-btn-active-border-color: #b1b4b5;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ecf0f1;--bs-btn-disabled-border-color: #ecf0f1}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #7b8a8b;--bs-btn-border-color: #7b8a8b;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #8f9c9c;--bs-btn-hover-border-color: #889697;--bs-btn-focus-shadow-rgb: 143, 156, 156;--bs-btn-active-color: #fff;--bs-btn-active-bg: #95a1a2;--bs-btn-active-border-color: #889697;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #7b8a8b;--bs-btn-disabled-border-color: #7b8a8b}.btn-outline-default{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108, 117, 125;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-primary{--bs-btn-color: #2c3e50;--bs-btn-border-color: #2c3e50;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #2c3e50;--bs-btn-hover-border-color: #2c3e50;--bs-btn-focus-shadow-rgb: 44, 62, 80;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2c3e50;--bs-btn-active-border-color: #2c3e50;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #2c3e50;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #2c3e50;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108, 117, 125;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #18bc9c;--bs-btn-border-color: #18bc9c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #18bc9c;--bs-btn-hover-border-color: #18bc9c;--bs-btn-focus-shadow-rgb: 24, 188, 156;--bs-btn-active-color: #fff;--bs-btn-active-bg: #18bc9c;--bs-btn-active-border-color: #18bc9c;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #18bc9c;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #18bc9c;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #3498db;--bs-btn-border-color: #3498db;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #3498db;--bs-btn-hover-border-color: #3498db;--bs-btn-focus-shadow-rgb: 52, 152, 219;--bs-btn-active-color: #fff;--bs-btn-active-bg: #3498db;--bs-btn-active-border-color: #3498db;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #3498db;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #3498db;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #f39c12;--bs-btn-border-color: #f39c12;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #f39c12;--bs-btn-hover-border-color: #f39c12;--bs-btn-focus-shadow-rgb: 243, 156, 18;--bs-btn-active-color: #fff;--bs-btn-active-bg: #f39c12;--bs-btn-active-border-color: #f39c12;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #f39c12;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f39c12;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #e74c3c;--bs-btn-border-color: #e74c3c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #e74c3c;--bs-btn-hover-border-color: #e74c3c;--bs-btn-focus-shadow-rgb: 231, 76, 60;--bs-btn-active-color: #fff;--bs-btn-active-bg: #e74c3c;--bs-btn-active-border-color: #e74c3c;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #e74c3c;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #e74c3c;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #ecf0f1;--bs-btn-border-color: #ecf0f1;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ecf0f1;--bs-btn-hover-border-color: #ecf0f1;--bs-btn-focus-shadow-rgb: 236, 240, 241;--bs-btn-active-color: #000;--bs-btn-active-bg: #ecf0f1;--bs-btn-active-border-color: #ecf0f1;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ecf0f1;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ecf0f1;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #7b8a8b;--bs-btn-border-color: #7b8a8b;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #7b8a8b;--bs-btn-hover-border-color: #7b8a8b;--bs-btn-focus-shadow-rgb: 123, 138, 139;--bs-btn-active-color: #fff;--bs-btn-active-bg: #7b8a8b;--bs-btn-active-border-color: #7b8a8b;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #7b8a8b;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #7b8a8b;--bs-btn-bg: transparent;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: #18bc9c;--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: #13967d;--bs-btn-hover-border-color: transparent;--bs-btn-active-color: #13967d;--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 59, 198, 171;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: 0.5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius: 0.5rem}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: 0.25rem;--bs-btn-padding-x: 0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius: 0.2em}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: 0.5rem;--bs-dropdown-spacer: 0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color: #212529;--bs-dropdown-bg: #fff;--bs-dropdown-border-color: rgba(0, 0, 0, 0.175);--bs-dropdown-border-radius: 0.25rem;--bs-dropdown-border-width: 1px;--bs-dropdown-inner-border-radius: calc(0.25rem - 1px);--bs-dropdown-divider-bg: rgba(0, 0, 0, 0.175);--bs-dropdown-divider-margin-y: 0.5rem;--bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-dropdown-link-color: #7b8a8b;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-link-hover-bg: #2c3e50;--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #2c3e50;--bs-dropdown-link-disabled-color: rgba(33, 37, 41, 0.5);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: 0.25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: 0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:0.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: rgba(0, 0, 0, 0.175);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: rgba(0, 0, 0, 0.175);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #2c3e50;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:.25rem}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(1px*-1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(1px*-1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 2rem;--bs-nav-link-padding-y: 0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: #18bc9c;--bs-nav-link-hover-color: #13967d;--bs-nav-link-disabled-color: #6c757d;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(44,62,80,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: 1px;--bs-nav-tabs-border-color: #ecf0f1;--bs-nav-tabs-border-radius: 0.25rem;--bs-nav-tabs-link-hover-border-color: #ecf0f1 #ecf0f1 #ecf0f1;--bs-nav-tabs-link-active-color: #000;--bs-nav-tabs-link-active-bg: #fff;--bs-nav-tabs-link-active-border-color: #dee2e6 #dee2e6 #fff;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1*var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid rgba(0,0,0,0);border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1*var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: 0.25rem;--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #2c3e50}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: 0.125rem;--bs-nav-underline-link-active-color: #000;gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid rgba(0,0,0,0)}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: 1rem;--bs-navbar-color: #ccd1d5;--bs-navbar-hover-color: rgba(140, 222, 206, 0.8);--bs-navbar-disabled-color: rgba(204, 209, 213, 0.75);--bs-navbar-active-color: #8cdece;--bs-navbar-brand-padding-y: 0.3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: #ccd1d5;--bs-navbar-brand-hover-color: #8cdece;--bs-navbar-nav-link-padding-x: 0.5rem;--bs-navbar-toggler-padding-y: 0.25;--bs-navbar-toggler-padding-x: 0;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23ccd1d5' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(204, 209, 213, 0);--bs-navbar-toggler-border-radius: 0.25rem;--bs-navbar-toggler-focus-width: 0.25rem;--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: 0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:rgba(0,0,0,0);border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: #ccd1d5;--bs-navbar-hover-color: rgba(140, 222, 206, 0.8);--bs-navbar-disabled-color: rgba(204, 209, 213, 0.75);--bs-navbar-active-color: #8cdece;--bs-navbar-brand-color: #ccd1d5;--bs-navbar-brand-hover-color: #8cdece;--bs-navbar-toggler-border-color: rgba(204, 209, 213, 0);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23ccd1d5' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23ccd1d5' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: 0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: 1px;--bs-card-border-color: rgba(0, 0, 0, 0.175);--bs-card-border-radius: 0.25rem;--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(0.25rem - 1px);--bs-card-cap-padding-y: 0.5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(52, 58, 64, 0.25);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: #fff;--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: 0.75rem;position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-0.5*var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-bottom:calc(-1*var(--bs-card-cap-padding-y));margin-left:calc(-0.5*var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-left:calc(-0.5*var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media(min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: #212529;--bs-accordion-bg: #fff;--bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;--bs-accordion-border-color: #dee2e6;--bs-accordion-border-width: 1px;--bs-accordion-border-radius: 0.25rem;--bs-accordion-inner-border-radius: calc(0.25rem - 1px);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #212529;--bs-accordion-btn-bg: #fff;--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23121920'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #969fa8;--bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(44, 62, 80, 0.25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #121920;--bs-accordion-active-bg: #d5d8dc}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1*var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23808b96'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23808b96'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0.75rem;--bs-breadcrumb-padding-y: 0.375rem;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: 0.25rem;--bs-breadcrumb-divider-color: rgba(33, 37, 41, 0.75);--bs-breadcrumb-item-padding-x: 0.5rem;--bs-breadcrumb-item-active-color: rgba(33, 37, 41, 0.75);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: 0.75rem;--bs-pagination-padding-y: 0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color: #fff;--bs-pagination-bg: #18bc9c;--bs-pagination-border-width: 0;--bs-pagination-border-color: transparent;--bs-pagination-border-radius: 0.25rem;--bs-pagination-hover-color: #fff;--bs-pagination-hover-bg: #0f7864;--bs-pagination-hover-border-color: transparent;--bs-pagination-focus-color: #13967d;--bs-pagination-focus-bg: #ecf0f1;--bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(44, 62, 80, 0.25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0f7864;--bs-pagination-active-border-color: transparent;--bs-pagination-disabled-color: #ecf0f1;--bs-pagination-disabled-bg: #3be6c4;--bs-pagination-disabled-border-color: transparent;display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(0*-1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: 0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius: 0.5rem}.pagination-sm{--bs-pagination-padding-x: 0.5rem;--bs-pagination-padding-y: 0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius: 0.2em}.badge{--bs-badge-padding-x: 0.65em;--bs-badge-padding-y: 0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: 0.25rem;display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: 1px solid var(--bs-alert-border-color);--bs-alert-border-radius: 0.25rem;--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{--bs-alert-color: var(--bs-default-text-emphasis);--bs-alert-bg: var(--bs-default-bg-subtle);--bs-alert-border-color: var(--bs-default-border-subtle);--bs-alert-link-color: var(--bs-default-text-emphasis)}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg: #ecf0f1;--bs-progress-border-radius: 0.25rem;--bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #2c3e50;--bs-progress-bar-transition: width 0.6s ease;display:flex;display:-webkit-flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: #212529;--bs-list-group-bg: #fff;--bs-list-group-border-color: #dee2e6;--bs-list-group-border-width: 1px;--bs-list-group-border-radius: 0.25rem;--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: 0.5rem;--bs-list-group-action-color: rgba(33, 37, 41, 0.75);--bs-list-group-action-hover-color: #000;--bs-list-group-action-hover-bg: #ecf0f1;--bs-list-group-action-active-color: #212529;--bs-list-group-action-active-bg: #ecf0f1;--bs-list-group-disabled-color: rgba(33, 37, 41, 0.75);--bs-list-group-disabled-bg: #ecf0f1;--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #2c3e50;--bs-list-group-active-border-color: #2c3e50;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1*var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{--bs-list-group-color: var(--bs-default-text-emphasis);--bs-list-group-bg: var(--bs-default-bg-subtle);--bs-list-group-border-color: var(--bs-default-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-default-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-default-border-subtle);--bs-list-group-active-color: var(--bs-default-bg-subtle);--bs-list-group-active-bg: var(--bs-default-text-emphasis);--bs-list-group-active-border-color: var(--bs-default-text-emphasis)}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #fff;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: 0.4;--bs-btn-close-hover-opacity: 1;--bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(44, 62, 80, 0.25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: 0.25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:rgba(0,0,0,0) var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: 0.75rem;--bs-toast-padding-y: 0.5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg: rgba(255, 255, 255, 0.85);--bs-toast-border-width: 1px;--bs-toast-border-color: rgba(0, 0, 0, 0.175);--bs-toast-border-radius: 0.25rem;--bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-toast-header-color: rgba(33, 37, 41, 0.75);--bs-toast-header-bg: rgba(255, 255, 255, 0.85);--bs-toast-header-border-color: rgba(0, 0, 0, 0.175);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-0.5*var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: 0.5rem;--bs-modal-color: ;--bs-modal-bg: #fff;--bs-modal-border-color: rgba(0, 0, 0, 0.175);--bs-modal-border-width: 1px;--bs-modal-border-radius: 0.5rem;--bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius: calc(0.5rem - 1px);--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: #dee2e6;--bs-modal-header-border-width: 1px;--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: 0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: #dee2e6;--bs-modal-footer-border-width: 1px;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin)*2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - var(--bs-modal-margin)*2)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: 0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y)*.5) calc(var(--bs-modal-header-padding-x)*.5);margin:calc(-0.5*var(--bs-modal-header-padding-y)) calc(-0.5*var(--bs-modal-header-padding-x)) calc(-0.5*var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap)*.5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap)*.5)}@media(min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media(min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media(min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: 0.5rem;--bs-tooltip-padding-y: 0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color: #fff;--bs-tooltip-bg: #000;--bs-tooltip-border-radius: 0.25rem;--bs-tooltip-opacity: 0.9;--bs-tooltip-arrow-width: 0.8rem;--bs-tooltip-arrow-height: 0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) 0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size:0.875rem;--bs-popover-bg: #fff;--bs-popover-border-width: 1px;--bs-popover-border-color: rgba(0, 0, 0, 0.175);--bs-popover-border-radius: 0.5rem;--bs-popover-inner-border-radius: calc(0.5rem - 1px);--bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: 0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: #ecf0f1;--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: #212529;--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: 0.5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{border-width:0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-0.5*var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) 0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-border-width: 0.25em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:rgba(0,0,0,0)}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: 0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: #212529;--bs-offcanvas-bg: #fff;--bs-offcanvas-border-width: 1px;--bs-offcanvas-border-color: rgba(0, 0, 0, 0.175);--bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-offcanvas-transition: transform 0.3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media(max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 575.98px)and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media(min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 767.98px)and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media(min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 991.98px)and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media(min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 1199.98px)and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media(min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 1399.98px)and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media(min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y)*.5) calc(var(--bs-offcanvas-padding-x)*.5);margin-top:calc(-0.5*var(--bs-offcanvas-padding-y));margin-right:calc(-0.5*var(--bs-offcanvas-padding-x));margin-bottom:calc(-0.5*var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-default{color:#fff !important;background-color:RGBA(var(--bs-default-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#fff !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#fff !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-default{color:RGBA(var(--bs-default-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-default-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-default:hover,.link-default:focus{color:RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(35, 50, 64, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(35, 50, 64, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(19, 150, 125, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(19, 150, 125, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(42, 122, 175, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(42, 122, 175, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(194, 125, 14, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(194, 125, 14, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(185, 61, 48, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(185, 61, 48, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(240, 243, 244, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(240, 243, 244, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(98, 110, 111, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(98, 110, 111, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;-webkit-flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media(prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-inline-grid{display:inline-grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.focus-ring-default{--bs-focus-ring-color: rgba(var(--bs-default-rgb), var(--bs-focus-ring-opacity))}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-start-0{border-left:0 !important}.border-default{--bs-border-opacity: 1;border-color:rgba(var(--bs-default-rgb), var(--bs-border-opacity)) !important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.border-opacity-10{--bs-border-opacity: 0.1}.border-opacity-25{--bs-border-opacity: 0.25}.border-opacity-50{--bs-border-opacity: 0.5}.border-opacity-75{--bs-border-opacity: 0.75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.325rem + 0.9vw) !important}.fs-2{font-size:calc(1.29rem + 0.48vw) !important}.fs-3{font-size:calc(1.27rem + 0.24vw) !important}.fs-4{font-size:1.25rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: 0.25}.text-opacity-50{--bs-text-opacity: 0.5}.text-opacity-75{--bs-text-opacity: 0.75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity: 0.1}.link-opacity-10-hover:hover{--bs-link-opacity: 0.1}.link-opacity-25{--bs-link-opacity: 0.25}.link-opacity-25-hover:hover{--bs-link-opacity: 0.25}.link-opacity-50{--bs-link-opacity: 0.5}.link-opacity-50-hover:hover{--bs-link-opacity: 0.5}.link-opacity-75{--bs-link-opacity: 0.75}.link-opacity-75-hover:hover{--bs-link-opacity: 0.75}.link-opacity-100{--bs-link-opacity: 1}.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-default{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-default-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10{--bs-link-underline-opacity: 0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: 0.1}.link-underline-opacity-25{--bs-link-underline-opacity: 0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: 0.25}.link-underline-opacity-50{--bs-link-underline-opacity: 0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: 0.5}.link-underline-opacity-75{--bs-link-underline-opacity: 0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: 0.75}.link-underline-opacity-100{--bs-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-opacity-10{--bs-bg-opacity: 0.1}.bg-opacity-25{--bs-bg-opacity: 0.25}.bg-opacity-50{--bs-bg-opacity: 0.5}.bg-opacity-75{--bs-bg-opacity: 0.75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:var(--bs-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--bs-border-radius-sm) !important}.rounded-2{border-radius:var(--bs-border-radius) !important}.rounded-3{border-radius:var(--bs-border-radius-lg) !important}.rounded-4{border-radius:var(--bs-border-radius-xl) !important}.rounded-5{border-radius:var(--bs-border-radius-xxl) !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--bs-border-radius-pill) !important}.rounded-top{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-inline-grid{display:inline-grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-inline-grid{display:inline-grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-inline-grid{display:inline-grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-inline-grid{display:inline-grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-inline-grid{display:inline-grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#fff}.bg-primary{color:#fff}.bg-secondary{color:#fff}.bg-success{color:#fff}.bg-info{color:#fff}.bg-warning{color:#fff}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.65rem !important}.fs-3{font-size:1.45rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-inline-grid{display:inline-grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}.bg-blue{--bslib-color-bg: #2c3e50;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #2c3e50;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #6f42c1;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #6f42c1;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #e83e8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #e83e8c;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #e74c3c;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #fd7e14;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #fd7e14;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #f39c12;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #18bc9c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #18bc9c;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #3498db;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #3498db;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #6c757d}.bg-default{--bslib-color-bg: #6c757d;--bslib-color-fg: #fff}.text-primary{--bslib-color-fg: #2c3e50}.bg-primary{--bslib-color-bg: #2c3e50;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #6c757d}.bg-secondary{--bslib-color-bg: #6c757d;--bslib-color-fg: #fff}.text-success{--bslib-color-fg: #18bc9c}.bg-success{--bslib-color-bg: #18bc9c;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #3498db}.bg-info{--bslib-color-bg: #3498db;--bslib-color-fg: #fff}.text-warning{--bslib-color-fg: #f39c12}.bg-warning{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff}.text-danger{--bslib-color-fg: #e74c3c}.bg-danger{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #ecf0f1}.bg-light{--bslib-color-bg: #ecf0f1;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #7b8a8b}.bg-dark{--bslib-color-bg: #7b8a8b;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #432c91;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #432c91;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #47407d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #47407d;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #773e68;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #773e68;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #774448;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #774448;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #805838;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #805838;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #7c6437;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #7c6437;color:#fff}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #24706e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #24706e;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #fff;--bslib-color-bg: #27766c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #27766c;color:#fff}.bg-gradient-blue-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #2f6288;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #2f6288;color:#fff}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #4f22b1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #4f22b1;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #6a24de;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #6a24de;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9a22c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9a22c9;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #9a28a9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9a28a9;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a23c99;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a23c99;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #9e4898;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #9e4898;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #4755d0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #4755d0;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5246e9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5246e9;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #544094;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #544094;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #6b2ed5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #6b2ed5;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9f40ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9f40ac;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #9f468c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9f468c;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a85a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a85a7c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a4667b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #a4667b;color:#fff}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #4c73b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #4c73b2;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4f78b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4f78b0;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5764cb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5764cb;color:#fff}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #9d3e74;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #9d3e74;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b42cb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b42cb5;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b840a1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b840a1;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #e8446c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #e8446c;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0585c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0585c;color:#fff}.bg-gradient-pink-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec645b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec645b;color:#fff}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #957092;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #957092;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #fff;--bslib-color-bg: #987690;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #987690;color:#fff}.bg-gradient-pink-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a062ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a062ac;color:#fff}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #9c4644;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #9c4644;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b33485;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b33485;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b74871;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b74871;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #e7465c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #e7465c;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0602c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0602c;color:#fff}.bg-gradient-red-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec6c2b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec6c2b;color:#fff}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #947962;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #947962;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #fff;--bslib-color-bg: #977e60;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #977e60;color:#fff}.bg-gradient-red-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #9f6a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #9f6a7c;color:#fff}.bg-gradient-orange-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a9642c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #a9642c;color:#fff}.bg-gradient-orange-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #c1526d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c1526d;color:#fff}.bg-gradient-orange-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c46659;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c46659;color:#fff}.bg-gradient-orange-pink{--bslib-color-fg: #fff;--bslib-color-bg: #f56444;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #f56444;color:#fff}.bg-gradient-orange-red{--bslib-color-fg: #fff;--bslib-color-bg: #f46a24;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #f46a24;color:#fff}.bg-gradient-orange-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #f98a13;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #f98a13;color:#fff}.bg-gradient-orange-green{--bslib-color-fg: #fff;--bslib-color-bg: #a1974a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #a1974a;color:#fff}.bg-gradient-orange-teal{--bslib-color-fg: #fff;--bslib-color-bg: #a59c48;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a59c48;color:#fff}.bg-gradient-orange-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #ad8864;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #ad8864;color:#fff}.bg-gradient-yellow-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a3762b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #a3762b;color:#fff}.bg-gradient-yellow-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #bb646c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #bb646c;color:#fff}.bg-gradient-yellow-purple{--bslib-color-fg: #fff;--bslib-color-bg: #be7858;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #be7858;color:#fff}.bg-gradient-yellow-pink{--bslib-color-fg: #fff;--bslib-color-bg: #ef7643;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #ef7643;color:#fff}.bg-gradient-yellow-red{--bslib-color-fg: #fff;--bslib-color-bg: #ee7c23;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #ee7c23;color:#fff}.bg-gradient-yellow-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f79013;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f79013;color:#fff}.bg-gradient-yellow-green{--bslib-color-fg: #fff;--bslib-color-bg: #9ba949;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #9ba949;color:#fff}.bg-gradient-yellow-teal{--bslib-color-fg: #fff;--bslib-color-bg: #9fae47;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #9fae47;color:#fff}.bg-gradient-yellow-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a79a62;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a79a62;color:#fff}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #208a7e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #208a7e;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3777be;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3777be;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #3b8bab;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3b8bab;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #6b8a96;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #6b8a96;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #6b8f76;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #6b8f76;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #fff;--bslib-color-bg: #74a366;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #74a366;color:#fff}.bg-gradient-green-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #70af65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #70af65;color:#fff}.bg-gradient-green-teal{--bslib-color-fg: #fff;--bslib-color-bg: #1bc19a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1bc19a;color:#fff}.bg-gradient-green-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #23aeb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #23aeb5;color:#fff}.bg-gradient-teal-blue{--bslib-color-fg: #fff;--bslib-color-bg: #25917b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #25917b;color:#fff}.bg-gradient-teal-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#fff}.bg-gradient-teal-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4093a8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4093a8;color:#fff}.bg-gradient-teal-pink{--bslib-color-fg: #fff;--bslib-color-bg: #709193;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #709193;color:#fff}.bg-gradient-teal-red{--bslib-color-fg: #fff;--bslib-color-bg: #709773;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #709773;color:#fff}.bg-gradient-teal-orange{--bslib-color-fg: #fff;--bslib-color-bg: #78ab63;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #78ab63;color:#fff}.bg-gradient-teal-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #74b762;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #74b762;color:#fff}.bg-gradient-teal-green{--bslib-color-fg: #fff;--bslib-color-bg: #1dc499;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #1dc499;color:#fff}.bg-gradient-teal-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #28b5b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #28b5b2;color:#fff}.bg-gradient-cyan-blue{--bslib-color-fg: #fff;--bslib-color-bg: #3174a3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #3174a3;color:#fff}.bg-gradient-cyan-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4862e4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4862e4;color:#fff}.bg-gradient-cyan-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4c76d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4c76d1;color:#fff}.bg-gradient-cyan-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7c74bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #7c74bb;color:#fff}.bg-gradient-cyan-red{--bslib-color-fg: #fff;--bslib-color-bg: #7c7a9b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #7c7a9b;color:#fff}.bg-gradient-cyan-orange{--bslib-color-fg: #fff;--bslib-color-bg: #848e8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #848e8b;color:#fff}.bg-gradient-cyan-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #809a8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #809a8b;color:#fff}.bg-gradient-cyan-green{--bslib-color-fg: #fff;--bslib-color-bg: #29a6c2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #29a6c2;color:#fff}.bg-gradient-cyan-teal{--bslib-color-fg: #fff;--bslib-color-bg: #2cacc0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #2cacc0;color:#fff}.bg-blue{--bslib-color-bg: #2c3e50;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #2c3e50;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #6f42c1;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #6f42c1;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #e83e8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #e83e8c;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #e74c3c;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #fd7e14;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #fd7e14;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #f39c12;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #18bc9c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #18bc9c;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #3498db;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #3498db;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #6c757d}.bg-default{--bslib-color-bg: #6c757d;--bslib-color-fg: #fff}.text-primary{--bslib-color-fg: #2c3e50}.bg-primary{--bslib-color-bg: #2c3e50;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #6c757d}.bg-secondary{--bslib-color-bg: #6c757d;--bslib-color-fg: #fff}.text-success{--bslib-color-fg: #18bc9c}.bg-success{--bslib-color-bg: #18bc9c;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #3498db}.bg-info{--bslib-color-bg: #3498db;--bslib-color-fg: #fff}.text-warning{--bslib-color-fg: #f39c12}.bg-warning{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff}.text-danger{--bslib-color-fg: #e74c3c}.bg-danger{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #ecf0f1}.bg-light{--bslib-color-bg: #ecf0f1;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #7b8a8b}.bg-dark{--bslib-color-bg: #7b8a8b;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #432c91;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #432c91;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #47407d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #47407d;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #773e68;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #773e68;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #774448;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #774448;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #805838;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #805838;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #7c6437;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #7c6437;color:#fff}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #24706e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #24706e;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #fff;--bslib-color-bg: #27766c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #27766c;color:#fff}.bg-gradient-blue-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #2f6288;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #2f6288;color:#fff}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #4f22b1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #4f22b1;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #6a24de;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #6a24de;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9a22c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9a22c9;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #9a28a9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9a28a9;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a23c99;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a23c99;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #9e4898;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #9e4898;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #4755d0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #4755d0;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5246e9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5246e9;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #544094;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #544094;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #6b2ed5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #6b2ed5;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9f40ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9f40ac;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #9f468c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9f468c;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a85a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a85a7c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a4667b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #a4667b;color:#fff}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #4c73b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #4c73b2;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4f78b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4f78b0;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5764cb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5764cb;color:#fff}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #9d3e74;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #9d3e74;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b42cb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b42cb5;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b840a1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b840a1;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #e8446c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #e8446c;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0585c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0585c;color:#fff}.bg-gradient-pink-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec645b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec645b;color:#fff}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #957092;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #957092;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #fff;--bslib-color-bg: #987690;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #987690;color:#fff}.bg-gradient-pink-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a062ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a062ac;color:#fff}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #9c4644;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #9c4644;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b33485;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b33485;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b74871;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b74871;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #e7465c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #e7465c;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0602c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0602c;color:#fff}.bg-gradient-red-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec6c2b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec6c2b;color:#fff}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #947962;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #947962;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #fff;--bslib-color-bg: #977e60;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #977e60;color:#fff}.bg-gradient-red-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #9f6a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #9f6a7c;color:#fff}.bg-gradient-orange-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a9642c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #a9642c;color:#fff}.bg-gradient-orange-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #c1526d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c1526d;color:#fff}.bg-gradient-orange-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c46659;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c46659;color:#fff}.bg-gradient-orange-pink{--bslib-color-fg: #fff;--bslib-color-bg: #f56444;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #f56444;color:#fff}.bg-gradient-orange-red{--bslib-color-fg: #fff;--bslib-color-bg: #f46a24;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #f46a24;color:#fff}.bg-gradient-orange-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #f98a13;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #f98a13;color:#fff}.bg-gradient-orange-green{--bslib-color-fg: #fff;--bslib-color-bg: #a1974a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #a1974a;color:#fff}.bg-gradient-orange-teal{--bslib-color-fg: #fff;--bslib-color-bg: #a59c48;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a59c48;color:#fff}.bg-gradient-orange-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #ad8864;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #ad8864;color:#fff}.bg-gradient-yellow-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a3762b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #a3762b;color:#fff}.bg-gradient-yellow-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #bb646c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #bb646c;color:#fff}.bg-gradient-yellow-purple{--bslib-color-fg: #fff;--bslib-color-bg: #be7858;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #be7858;color:#fff}.bg-gradient-yellow-pink{--bslib-color-fg: #fff;--bslib-color-bg: #ef7643;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #ef7643;color:#fff}.bg-gradient-yellow-red{--bslib-color-fg: #fff;--bslib-color-bg: #ee7c23;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #ee7c23;color:#fff}.bg-gradient-yellow-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f79013;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f79013;color:#fff}.bg-gradient-yellow-green{--bslib-color-fg: #fff;--bslib-color-bg: #9ba949;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #9ba949;color:#fff}.bg-gradient-yellow-teal{--bslib-color-fg: #fff;--bslib-color-bg: #9fae47;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #9fae47;color:#fff}.bg-gradient-yellow-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a79a62;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a79a62;color:#fff}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #208a7e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #208a7e;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3777be;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3777be;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #3b8bab;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3b8bab;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #6b8a96;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #6b8a96;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #6b8f76;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #6b8f76;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #fff;--bslib-color-bg: #74a366;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #74a366;color:#fff}.bg-gradient-green-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #70af65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #70af65;color:#fff}.bg-gradient-green-teal{--bslib-color-fg: #fff;--bslib-color-bg: #1bc19a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1bc19a;color:#fff}.bg-gradient-green-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #23aeb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #23aeb5;color:#fff}.bg-gradient-teal-blue{--bslib-color-fg: #fff;--bslib-color-bg: #25917b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #25917b;color:#fff}.bg-gradient-teal-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#fff}.bg-gradient-teal-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4093a8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4093a8;color:#fff}.bg-gradient-teal-pink{--bslib-color-fg: #fff;--bslib-color-bg: #709193;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #709193;color:#fff}.bg-gradient-teal-red{--bslib-color-fg: #fff;--bslib-color-bg: #709773;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #709773;color:#fff}.bg-gradient-teal-orange{--bslib-color-fg: #fff;--bslib-color-bg: #78ab63;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #78ab63;color:#fff}.bg-gradient-teal-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #74b762;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #74b762;color:#fff}.bg-gradient-teal-green{--bslib-color-fg: #fff;--bslib-color-bg: #1dc499;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #1dc499;color:#fff}.bg-gradient-teal-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #28b5b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #28b5b2;color:#fff}.bg-gradient-cyan-blue{--bslib-color-fg: #fff;--bslib-color-bg: #3174a3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #3174a3;color:#fff}.bg-gradient-cyan-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4862e4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4862e4;color:#fff}.bg-gradient-cyan-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4c76d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4c76d1;color:#fff}.bg-gradient-cyan-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7c74bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #7c74bb;color:#fff}.bg-gradient-cyan-red{--bslib-color-fg: #fff;--bslib-color-bg: #7c7a9b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #7c7a9b;color:#fff}.bg-gradient-cyan-orange{--bslib-color-fg: #fff;--bslib-color-bg: #848e8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #848e8b;color:#fff}.bg-gradient-cyan-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #809a8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #809a8b;color:#fff}.bg-gradient-cyan-green{--bslib-color-fg: #fff;--bslib-color-bg: #29a6c2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #29a6c2;color:#fff}.bg-gradient-cyan-teal{--bslib-color-fg: #fff;--bslib-color-bg: #2cacc0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #2cacc0;color:#fff}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}html{height:100%}.bslib-page-fill{width:100%;height:100%;margin:0;padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}@media(max-width: 575.98px){.bslib-page-fill{height:var(--bslib-page-fill-mobile-height, auto)}}.bslib-grid{display:grid !important;gap:var(--bslib-spacer, 1rem);height:var(--bslib-grid-height)}.bslib-grid.grid{grid-template-columns:repeat(var(--bs-columns, 12), minmax(0, 1fr));grid-template-rows:unset;grid-auto-rows:var(--bslib-grid--row-heights);--bslib-grid--row-heights--xs: unset;--bslib-grid--row-heights--sm: unset;--bslib-grid--row-heights--md: unset;--bslib-grid--row-heights--lg: unset;--bslib-grid--row-heights--xl: unset;--bslib-grid--row-heights--xxl: unset}.bslib-grid.grid.bslib-grid--row-heights--xs{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xs)}@media(min-width: 576px){.bslib-grid.grid.bslib-grid--row-heights--sm{--bslib-grid--row-heights: var(--bslib-grid--row-heights--sm)}}@media(min-width: 768px){.bslib-grid.grid.bslib-grid--row-heights--md{--bslib-grid--row-heights: var(--bslib-grid--row-heights--md)}}@media(min-width: 992px){.bslib-grid.grid.bslib-grid--row-heights--lg{--bslib-grid--row-heights: var(--bslib-grid--row-heights--lg)}}@media(min-width: 1200px){.bslib-grid.grid.bslib-grid--row-heights--xl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xl)}}@media(min-width: 1400px){.bslib-grid.grid.bslib-grid--row-heights--xxl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xxl)}}.bslib-grid>*>.shiny-input-container{width:100%}.bslib-grid-item{grid-column:auto/span 1}@media(max-width: 767.98px){.bslib-grid-item{grid-column:1/-1}}@media(max-width: 575.98px){.bslib-grid{grid-template-columns:1fr !important;height:var(--bslib-grid-height-mobile)}.bslib-grid.grid{height:unset !important;grid-auto-rows:var(--bslib-grid--row-heights--xs, auto)}}.navbar+.container-fluid:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-sm:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-md:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-lg:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xl:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xxl:has(>.tab-content>.tab-pane.active.html-fill-container){padding-left:0;padding-right:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container{padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child){padding:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]){border-left:none;border-right:none;border-bottom:none}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]){border-radius:0}.navbar+div>.bslib-sidebar-layout{border-top:var(--bslib-sidebar-border)}.bslib-card{overflow:auto}.bslib-card .card-body+.card-body{padding-top:0}.bslib-card .card-body{overflow:auto}.bslib-card .card-body p{margin-top:0}.bslib-card .card-body p:last-child{margin-bottom:0}.bslib-card .card-body{max-height:var(--bslib-card-body-max-height, none)}.bslib-card[data-full-screen=true]>.card-body{max-height:var(--bslib-card-body-max-height-full-screen, none)}.bslib-card .card-header .form-group{margin-bottom:0}.bslib-card .card-header .selectize-control{margin-bottom:0}.bslib-card .card-header .selectize-control .item{margin-right:1.15rem}.bslib-card .card-footer{margin-top:auto}.bslib-card .bslib-navs-card-title{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.bslib-card .bslib-navs-card-title .nav{margin-left:auto}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border=true]){border:none}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border-radius=true]){border-top-left-radius:0;border-top-right-radius:0}[data-full-screen=true]{position:fixed;inset:3.5rem 1rem 1rem;height:auto !important;max-height:none !important;width:auto !important;z-index:1070}.bslib-full-screen-enter{display:none;position:absolute;bottom:var(--bslib-full-screen-enter-bottom, 0.2rem);right:var(--bslib-full-screen-enter-right, 0);top:var(--bslib-full-screen-enter-top);left:var(--bslib-full-screen-enter-left);color:var(--bslib-color-fg, var(--bs-card-color));background-color:var(--bslib-color-bg, var(--bs-card-bg, var(--bs-body-bg)));border:var(--bs-card-border-width) solid var(--bslib-color-fg, var(--bs-card-border-color));box-shadow:0 2px 4px rgba(0,0,0,.15);margin:.2rem .4rem;padding:.55rem !important;font-size:.8rem;cursor:pointer;opacity:.7;z-index:1070}.bslib-full-screen-enter:hover{opacity:1}.card[data-full-screen=false]:hover>*>.bslib-full-screen-enter{display:block}.bslib-has-full-screen .card:hover>*>.bslib-full-screen-enter{display:none}@media(max-width: 575.98px){.bslib-full-screen-enter{display:none !important}}.bslib-full-screen-exit{position:relative;top:1.35rem;font-size:.9rem;cursor:pointer;text-decoration:none;display:flex;float:right;margin-right:2.15rem;align-items:center;color:rgba(var(--bs-body-bg-rgb), 0.8)}.bslib-full-screen-exit:hover{color:rgba(var(--bs-body-bg-rgb), 1)}.bslib-full-screen-exit svg{margin-left:.5rem;font-size:1.5rem}#bslib-full-screen-overlay{position:fixed;inset:0;background-color:rgba(var(--bs-body-color-rgb), 0.6);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:1069;animation:bslib-full-screen-overlay-enter 400ms cubic-bezier(0.6, 0.02, 0.65, 1) forwards}@keyframes bslib-full-screen-overlay-enter{0%{opacity:0}100%{opacity:1}}.accordion .accordion-header{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color);margin-bottom:0}@media(min-width: 1200px){.accordion .accordion-header{font-size:1.65rem}}.accordion .accordion-icon:not(:empty){margin-right:.75rem;display:flex}.accordion .accordion-button:not(.collapsed){box-shadow:none}.accordion .accordion-button:not(.collapsed):focus{box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.bslib-sidebar-layout{--bslib-sidebar-transition-duration: 500ms;--bslib-sidebar-transition-easing-x: cubic-bezier(0.8, 0.78, 0.22, 1.07);--bslib-sidebar-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, rgba(0, 0, 0, 0.175));--bslib-sidebar-border-radius: var(--bs-border-radius);--bslib-sidebar-vert-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, rgba(0, 0, 0, 0.175));--bslib-sidebar-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.05);--bslib-sidebar-fg: var(--bs-emphasis-color, black);--bslib-sidebar-main-fg: var(--bs-card-color, var(--bs-body-color));--bslib-sidebar-main-bg: var(--bs-card-bg, var(--bs-body-bg));--bslib-sidebar-toggle-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.1);--bslib-sidebar-padding: calc(var(--bslib-spacer) * 1.5);--bslib-sidebar-icon-size: var(--bslib-spacer, 1rem);--bslib-sidebar-icon-button-size: calc(var(--bslib-sidebar-icon-size, 1rem) * 2);--bslib-sidebar-padding-icon: calc(var(--bslib-sidebar-icon-button-size, 2rem) * 1.5);--bslib-collapse-toggle-border-radius: var(--bs-border-radius, 0.25rem);--bslib-collapse-toggle-transform: 0deg;--bslib-sidebar-toggle-transition-easing: cubic-bezier(1, 0, 0, 1);--bslib-collapse-toggle-right-transform: 180deg;--bslib-sidebar-column-main: minmax(0, 1fr);display:grid !important;grid-template-columns:min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px)) var(--bslib-sidebar-column-main);position:relative;transition:grid-template-columns ease-in-out var(--bslib-sidebar-transition-duration);border:var(--bslib-sidebar-border);border-radius:var(--bslib-sidebar-border-radius)}@media(prefers-reduced-motion: reduce){.bslib-sidebar-layout{transition:none}}.bslib-sidebar-layout[data-bslib-sidebar-border=false]{border:none}.bslib-sidebar-layout[data-bslib-sidebar-border-radius=false]{border-radius:initial}.bslib-sidebar-layout>.main,.bslib-sidebar-layout>.sidebar{grid-row:1/2;border-radius:inherit;overflow:auto}.bslib-sidebar-layout>.main{grid-column:2/3;border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--bslib-sidebar-padding);transition:padding var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration);color:var(--bslib-sidebar-main-fg);background-color:var(--bslib-sidebar-main-bg)}.bslib-sidebar-layout>.sidebar{grid-column:1/2;width:100%;height:100%;border-right:var(--bslib-sidebar-vert-border);border-top-right-radius:0;border-bottom-right-radius:0;color:var(--bslib-sidebar-fg);background-color:var(--bslib-sidebar-bg);backdrop-filter:blur(5px)}.bslib-sidebar-layout>.sidebar>.sidebar-content{display:flex;flex-direction:column;gap:var(--bslib-spacer, 1rem);padding:var(--bslib-sidebar-padding);padding-top:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout>.sidebar>.sidebar-content>:last-child:not(.sidebar-title){margin-bottom:0}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion{margin-left:calc(-1*var(--bslib-sidebar-padding));margin-right:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:last-child{margin-bottom:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child){margin-bottom:1rem}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion .accordion-body{display:flex;flex-direction:column}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:first-child) .accordion-item:first-child{border-top:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child) .accordion-item:last-child{border-bottom:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content.has-accordion>.sidebar-title{border-bottom:none;padding-bottom:0}.bslib-sidebar-layout>.sidebar .shiny-input-container{width:100%}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar>.sidebar-content{padding-top:var(--bslib-sidebar-padding)}.bslib-sidebar-layout>.collapse-toggle{grid-row:1/2;grid-column:1/2;display:inline-flex;align-items:center;position:absolute;right:calc(var(--bslib-sidebar-icon-size));top:calc(var(--bslib-sidebar-icon-size, 1rem)/2);border:none;border-radius:var(--bslib-collapse-toggle-border-radius);height:var(--bslib-sidebar-icon-button-size, 2rem);width:var(--bslib-sidebar-icon-button-size, 2rem);display:flex;align-items:center;justify-content:center;padding:0;color:var(--bslib-sidebar-fg);background-color:unset;transition:color var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),top var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),right var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),left var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover{background-color:var(--bslib-sidebar-toggle-bg)}.bslib-sidebar-layout>.collapse-toggle>.collapse-icon{opacity:.8;width:var(--bslib-sidebar-icon-size);height:var(--bslib-sidebar-icon-size);transform:rotateY(var(--bslib-collapse-toggle-transform));transition:transform var(--bslib-sidebar-toggle-transition-easing) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover>.collapse-icon{opacity:1}.bslib-sidebar-layout .sidebar-title{font-size:1.25rem;line-height:1.25;margin-top:0;margin-bottom:1rem;padding-bottom:1rem;border-bottom:var(--bslib-sidebar-border)}.bslib-sidebar-layout.sidebar-right{grid-template-columns:var(--bslib-sidebar-column-main) min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px))}.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/2;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit}.bslib-sidebar-layout.sidebar-right>.sidebar{grid-column:2/3;border-right:none;border-left:var(--bslib-sidebar-vert-border);border-top-left-radius:0;border-bottom-left-radius:0}.bslib-sidebar-layout.sidebar-right>.collapse-toggle{grid-column:2/3;left:var(--bslib-sidebar-icon-size);right:unset;border:var(--bslib-collapse-toggle-border)}.bslib-sidebar-layout.sidebar-right>.collapse-toggle>.collapse-icon{transform:rotateY(var(--bslib-collapse-toggle-right-transform))}.bslib-sidebar-layout.sidebar-collapsed{--bslib-collapse-toggle-transform: 180deg;--bslib-collapse-toggle-right-transform: 0deg;--bslib-sidebar-vert-border: none;grid-template-columns:0 minmax(0, 1fr)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right{grid-template-columns:minmax(0, 1fr) 0}.bslib-sidebar-layout.sidebar-collapsed:not(.transitioning)>.sidebar>*{display:none}.bslib-sidebar-layout.sidebar-collapsed>.main{border-radius:inherit}.bslib-sidebar-layout.sidebar-collapsed:not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed>.collapse-toggle{color:var(--bslib-sidebar-main-fg);top:calc(var(--bslib-sidebar-overlap-counter, 0)*(var(--bslib-sidebar-icon-size) + var(--bslib-sidebar-padding)) + var(--bslib-sidebar-icon-size, 1rem)/2);right:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px))}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.collapse-toggle{left:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px));right:unset}@media(min-width: 576px){.bslib-sidebar-layout.transitioning>.sidebar>.sidebar-content{display:none}}@media(max-width: 575.98px){.bslib-sidebar-layout[data-bslib-sidebar-open=desktop]{--bslib-sidebar-js-init-collapsed: true}.bslib-sidebar-layout>.sidebar,.bslib-sidebar-layout.sidebar-right>.sidebar{border:none}.bslib-sidebar-layout>.main,.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/3}.bslib-sidebar-layout[data-bslib-sidebar-open=always]{display:block !important}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar{max-height:var(--bslib-sidebar-max-height-mobile);overflow-y:auto;border-top:var(--bslib-sidebar-vert-border)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]){grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.sidebar{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.collapse-toggle{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed.sidebar-right{grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always])>.main{opacity:0;transition:opacity var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed>.main{opacity:1}}:root{--bslib-value-box-shadow: none;--bslib-value-box-border-width-auto-yes: var(--bslib-value-box-border-width-baseline);--bslib-value-box-border-width-auto-no: 0;--bslib-value-box-border-width-baseline: 1px}.bslib-value-box{border-width:var(--bslib-value-box-border-width-auto-no, var(--bslib-value-box-border-width-baseline));container-name:bslib-value-box;container-type:inline-size}.bslib-value-box.card{box-shadow:var(--bslib-value-box-shadow)}.bslib-value-box.border-auto{border-width:var(--bslib-value-box-border-width-auto-yes, var(--bslib-value-box-border-width-baseline))}.bslib-value-box.default{--bslib-value-box-bg-default: var(--bs-card-bg, #fff);--bslib-value-box-border-color-default: var(--bs-card-border-color, rgba(0, 0, 0, 0.175));color:var(--bslib-value-box-color);background-color:var(--bslib-value-box-bg, var(--bslib-value-box-bg-default));border-color:var(--bslib-value-box-border-color, var(--bslib-value-box-border-color-default))}.bslib-value-box .value-box-grid{display:grid;grid-template-areas:"left right";align-items:center;overflow:hidden}.bslib-value-box .value-box-showcase{height:100%;max-height:var(---bslib-value-box-showcase-max-h, 100%)}.bslib-value-box .value-box-showcase,.bslib-value-box .value-box-showcase>.html-fill-item{width:100%}.bslib-value-box[data-full-screen=true] .value-box-showcase{max-height:var(---bslib-value-box-showcase-max-h-fs, 100%)}@media screen and (min-width: 575.98px){@container bslib-value-box (max-width: 300px){.bslib-value-box:not(.showcase-bottom) .value-box-grid{grid-template-columns:1fr !important;grid-template-rows:auto auto;grid-template-areas:"top" "bottom"}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-showcase{grid-area:top !important}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-area{grid-area:bottom !important;justify-content:end}}}.bslib-value-box .value-box-area{justify-content:center;padding:1.5rem 1rem;font-size:.9rem;font-weight:500}.bslib-value-box .value-box-area *{margin-bottom:0;margin-top:0}.bslib-value-box .value-box-title{font-size:1rem;margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.bslib-value-box .value-box-title:empty::after{content:" "}.bslib-value-box .value-box-value{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}@media(min-width: 1200px){.bslib-value-box .value-box-value{font-size:1.65rem}}.bslib-value-box .value-box-value:empty::after{content:" "}.bslib-value-box .value-box-showcase{align-items:center;justify-content:center;margin-top:auto;margin-bottom:auto;padding:1rem}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{opacity:.85;min-width:50px;max-width:125%}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{font-size:4rem}.bslib-value-box.showcase-top-right .value-box-grid{grid-template-columns:1fr var(---bslib-value-box-showcase-w, 50%)}.bslib-value-box.showcase-top-right .value-box-grid .value-box-showcase{grid-area:right;margin-left:auto;align-self:start;align-items:end;padding-left:0;padding-bottom:0}.bslib-value-box.showcase-top-right .value-box-grid .value-box-area{grid-area:left;align-self:end}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid{grid-template-columns:auto var(---bslib-value-box-showcase-w-fs, 1fr)}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid>div{align-self:center}.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-showcase{margin-top:0}@container bslib-value-box (max-width: 300px){.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-grid .value-box-showcase{padding-left:1rem}}.bslib-value-box.showcase-left-center .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w, 30%) auto}.bslib-value-box.showcase-left-center[data-full-screen=true] .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w-fs, 1fr) auto}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-showcase{grid-area:left}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-area{grid-area:right}.bslib-value-box.showcase-bottom .value-box-grid{grid-template-columns:1fr;grid-template-rows:1fr var(---bslib-value-box-showcase-h, auto);grid-template-areas:"top" "bottom";overflow:hidden}.bslib-value-box.showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.bslib-value-box.showcase-bottom .value-box-grid .value-box-area{grid-area:top}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid{grid-template-rows:1fr var(---bslib-value-box-showcase-h-fs, 2fr)}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid .value-box-showcase{padding:1rem}[data-bs-theme=dark] .bslib-value-box{--bslib-value-box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 50%)}:root{--bslib-page-sidebar-title-bg: #2c3e50;--bslib-page-sidebar-title-color: #fff}.bslib-page-title{background-color:var(--bslib-page-sidebar-title-bg);color:var(--bslib-page-sidebar-title-color);font-size:1.25rem;font-weight:300;padding:var(--bslib-spacer, 1rem);padding-left:1.5rem;margin-bottom:0;border-bottom:1px solid #dee2e6}@media(min-width: 576px){.nav:not(.nav-hidden){display:flex !important;display:-webkit-flex !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column){float:none !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.bslib-nav-spacer{margin-left:auto !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.form-inline{margin-top:auto;margin-bottom:auto}.nav:not(.nav-hidden).nav-stacked{flex-direction:column;-webkit-flex-direction:column;height:100%}.nav:not(.nav-hidden).nav-stacked>.bslib-nav-spacer{margin-top:auto !important}}.html-fill-container{display:flex;flex-direction:column;min-height:0;min-width:0}.html-fill-container>.html-fill-item{flex:1 1 auto;min-height:0;min-width:0}.html-fill-container>:not(.html-fill-item){flex:0 0 auto}.quarto-container{min-height:calc(100vh - 132px)}body.hypothesis-enabled #quarto-header{margin-right:16px}footer.footer .nav-footer,#quarto-header>nav{padding-left:1em;padding-right:1em}footer.footer div.nav-footer p:first-child{margin-top:0}footer.footer div.nav-footer p:last-child{margin-bottom:0}#quarto-content>*{padding-top:14px}#quarto-content>#quarto-sidebar-glass{padding-top:0px}@media(max-width: 991.98px){#quarto-content>*{padding-top:0}#quarto-content .subtitle{padding-top:14px}#quarto-content section:first-of-type h2:first-of-type,#quarto-content section:first-of-type .h2:first-of-type{margin-top:1rem}}.headroom-target,header.headroom{will-change:transform;transition:position 200ms linear;transition:all 200ms linear}header.headroom--pinned{transform:translateY(0%)}header.headroom--unpinned{transform:translateY(-100%)}.navbar-container{width:100%}.navbar-brand{overflow:hidden;text-overflow:ellipsis}.navbar-brand-container{max-width:calc(100% - 115px);min-width:0;display:flex;align-items:center}@media(min-width: 992px){.navbar-brand-container{margin-right:1em}}.navbar-brand.navbar-brand-logo{margin-right:4px;display:inline-flex}.navbar-toggler{flex-basis:content;flex-shrink:0}.navbar .navbar-brand-container{order:2}.navbar .navbar-toggler{order:1}.navbar .navbar-container>.navbar-nav{order:20}.navbar .navbar-container>.navbar-brand-container{margin-left:0 !important;margin-right:0 !important}.navbar .navbar-collapse{order:20}.navbar #quarto-search{order:4;margin-left:auto}.navbar .navbar-toggler{margin-right:.5em}.navbar-collapse .quarto-navbar-tools{margin-left:.5em}.navbar-logo{max-height:24px;width:auto;padding-right:4px}nav .nav-item:not(.compact){padding-top:1px}nav .nav-link i,nav .dropdown-item i{padding-right:1px}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.6rem;padding-right:.6rem}nav .nav-item.compact .nav-link{padding-left:.5rem;padding-right:.5rem;font-size:1.1rem}.navbar .quarto-navbar-tools{order:3}.navbar .quarto-navbar-tools div.dropdown{display:inline-block}.navbar .quarto-navbar-tools .quarto-navigation-tool{color:#ccd1d5}.navbar .quarto-navbar-tools .quarto-navigation-tool:hover{color:#8cdece}.navbar-nav .dropdown-menu{min-width:220px;font-size:.9rem}.navbar .navbar-nav .nav-link.dropdown-toggle::after{opacity:.75;vertical-align:.175em}.navbar ul.dropdown-menu{padding-top:0;padding-bottom:0}.navbar .dropdown-header{text-transform:uppercase;font-size:.8rem;padding:0 .5rem}.navbar .dropdown-item{padding:.4rem .5rem}.navbar .dropdown-item>i.bi{margin-left:.1rem;margin-right:.25em}.sidebar #quarto-search{margin-top:-1px}.sidebar #quarto-search svg.aa-SubmitIcon{width:16px;height:16px}.sidebar-navigation a{color:inherit}.sidebar-title{margin-top:.25rem;padding-bottom:.5rem;font-size:1.3rem;line-height:1.6rem;visibility:visible}.sidebar-title>a{font-size:inherit;text-decoration:none}.sidebar-title .sidebar-tools-main{margin-top:-6px}@media(max-width: 991.98px){#quarto-sidebar div.sidebar-header{padding-top:.2em}}.sidebar-header-stacked .sidebar-title{margin-top:.6rem}.sidebar-logo{max-width:90%;padding-bottom:.5rem}.sidebar-logo-link{text-decoration:none}.sidebar-navigation li a{text-decoration:none}.sidebar-navigation .quarto-navigation-tool{opacity:.7;font-size:.875rem}#quarto-sidebar>nav>.sidebar-tools-main{margin-left:14px}.sidebar-tools-main{display:inline-flex;margin-left:0px;order:2}.sidebar-tools-main:not(.tools-wide){vertical-align:middle}.sidebar-navigation .quarto-navigation-tool.dropdown-toggle::after{display:none}.sidebar.sidebar-navigation>*{padding-top:1em}.sidebar-item{margin-bottom:.2em;line-height:1rem;margin-top:.4rem}.sidebar-section{padding-left:.5em;padding-bottom:.2em}.sidebar-item .sidebar-item-container{display:flex;justify-content:space-between;cursor:pointer}.sidebar-item-toggle:hover{cursor:pointer}.sidebar-item .sidebar-item-toggle .bi{font-size:.7rem;text-align:center}.sidebar-item .sidebar-item-toggle .bi-chevron-right::before{transition:transform 200ms ease}.sidebar-item .sidebar-item-toggle[aria-expanded=false] .bi-chevron-right::before{transform:none}.sidebar-item .sidebar-item-toggle[aria-expanded=true] .bi-chevron-right::before{transform:rotate(90deg)}.sidebar-item-text{width:100%}.sidebar-navigation .sidebar-divider{margin-left:0;margin-right:0;margin-top:.5rem;margin-bottom:.5rem}@media(max-width: 991.98px){.quarto-secondary-nav{display:block}.quarto-secondary-nav button.quarto-search-button{padding-right:0em;padding-left:2em}.quarto-secondary-nav button.quarto-btn-toggle{margin-left:-0.75rem;margin-right:.15rem}.quarto-secondary-nav nav.quarto-title-breadcrumbs{display:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs{display:flex;align-items:center;padding-right:1em;margin-left:-0.25em}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{text-decoration:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs ol.breadcrumb{margin-bottom:0}}@media(min-width: 992px){.quarto-secondary-nav{display:none}}.quarto-title-breadcrumbs .breadcrumb{margin-bottom:.5em;font-size:.9rem}.quarto-title-breadcrumbs .breadcrumb li:last-of-type a{color:#6c757d}.quarto-secondary-nav .quarto-btn-toggle{color:#595959}.quarto-secondary-nav[aria-expanded=false] .quarto-btn-toggle .bi-chevron-right::before{transform:none}.quarto-secondary-nav[aria-expanded=true] .quarto-btn-toggle .bi-chevron-right::before{transform:rotate(90deg)}.quarto-secondary-nav .quarto-btn-toggle .bi-chevron-right::before{transition:transform 200ms ease}.quarto-secondary-nav{cursor:pointer}.no-decor{text-decoration:none}.quarto-secondary-nav-title{margin-top:.3em;color:#595959;padding-top:4px}.quarto-secondary-nav nav.quarto-page-breadcrumbs{color:#595959}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{color:#595959}.quarto-secondary-nav nav.quarto-page-breadcrumbs a:hover{color:rgba(13,100,83,.8)}.quarto-secondary-nav nav.quarto-page-breadcrumbs .breadcrumb-item::before{color:#8c8c8c}.breadcrumb-item{line-height:1.2rem}div.sidebar-item-container{color:#595959}div.sidebar-item-container:hover,div.sidebar-item-container:focus{color:rgba(13,100,83,.8)}div.sidebar-item-container.disabled{color:rgba(89,89,89,.75)}div.sidebar-item-container .active,div.sidebar-item-container .show>.nav-link,div.sidebar-item-container .sidebar-link>code{color:#0d6453}div.sidebar.sidebar-navigation.rollup.quarto-sidebar-toggle-contents,nav.sidebar.sidebar-navigation:not(.rollup){background-color:#fff}.sidebar.sidebar-navigation:not(.rollup){border-right:1px solid #dee2e6 !important}@media(max-width: 991.98px){.sidebar-navigation .sidebar-item a,.nav-page .nav-page-text,.sidebar-navigation{font-size:1rem}.sidebar-navigation ul.sidebar-section.depth1 .sidebar-section-item{font-size:1.1rem}.sidebar-logo{display:none}.sidebar.sidebar-navigation{position:static;border-bottom:1px solid #dee2e6}.sidebar.sidebar-navigation.collapsing{position:fixed;z-index:1000}.sidebar.sidebar-navigation.show{position:fixed;z-index:1000}.sidebar.sidebar-navigation{min-height:100%}nav.quarto-secondary-nav{background-color:#fff;border-bottom:1px solid #dee2e6}.quarto-banner nav.quarto-secondary-nav{background-color:#2c3e50;color:#ccd1d5;border-top:1px solid #dee2e6}.sidebar .sidebar-footer{visibility:visible;padding-top:1rem;position:inherit}.sidebar-tools-collapse{display:block}}#quarto-sidebar{transition:width .15s ease-in}#quarto-sidebar>*{padding-right:1em}@media(max-width: 991.98px){#quarto-sidebar .sidebar-menu-container{white-space:nowrap;min-width:225px}#quarto-sidebar.show{transition:width .15s ease-out}}@media(min-width: 992px){#quarto-sidebar{display:flex;flex-direction:column}.nav-page .nav-page-text,.sidebar-navigation .sidebar-section .sidebar-item{font-size:.875rem}.sidebar-navigation .sidebar-item{font-size:.925rem}.sidebar.sidebar-navigation{display:block;position:sticky}.sidebar-search{width:100%}.sidebar .sidebar-footer{visibility:visible}}@media(min-width: 992px){#quarto-sidebar-glass{display:none}}@media(max-width: 991.98px){#quarto-sidebar-glass{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,0);transition:background-color .15s ease-in;z-index:-1}#quarto-sidebar-glass.collapsing{z-index:1000}#quarto-sidebar-glass.show{transition:background-color .15s ease-out;background-color:rgba(102,102,102,.4);z-index:1000}}.sidebar .sidebar-footer{padding:.5rem 1rem;align-self:flex-end;color:#6c757d;width:100%}.quarto-page-breadcrumbs .breadcrumb-item+.breadcrumb-item,.quarto-page-breadcrumbs .breadcrumb-item{padding-right:.33em;padding-left:0}.quarto-page-breadcrumbs .breadcrumb-item::before{padding-right:.33em}.quarto-sidebar-footer{font-size:.875em}.sidebar-section .bi-chevron-right{vertical-align:middle}.sidebar-section .bi-chevron-right::before{font-size:.9em}.notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.btn:focus:not(:focus-visible){box-shadow:none}.page-navigation{display:flex;justify-content:space-between}.nav-page{padding-bottom:.75em}.nav-page .bi{font-size:1.8rem;vertical-align:middle}.nav-page .nav-page-text{padding-left:.25em;padding-right:.25em}.nav-page a{color:#6c757d;text-decoration:none;display:flex;align-items:center}.nav-page a:hover{color:#13967d}.nav-footer .toc-actions{padding-bottom:.5em;padding-top:.5em}.nav-footer .toc-actions a,.nav-footer .toc-actions a:hover{text-decoration:none}.nav-footer .toc-actions ul{display:flex;list-style:none}.nav-footer .toc-actions ul :first-child{margin-left:auto}.nav-footer .toc-actions ul :last-child{margin-right:auto}.nav-footer .toc-actions ul li{padding-right:1.5em}.nav-footer .toc-actions ul li i.bi{padding-right:.4em}.nav-footer .toc-actions ul li:last-of-type{padding-right:0}.nav-footer{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:baseline;text-align:center;padding-top:.5rem;padding-bottom:.5rem;background-color:#fff}body.nav-fixed{padding-top:82px}body .nav-footer{border-top:1px solid #dee2e6}.nav-footer-contents{color:#6c757d;margin-top:.25rem}.nav-footer{min-height:3.5em;color:#757575}.nav-footer a{color:#757575}.nav-footer .nav-footer-left{font-size:.825em}.nav-footer .nav-footer-center{font-size:.825em}.nav-footer .nav-footer-right{font-size:.825em}.nav-footer-left .footer-items,.nav-footer-center .footer-items,.nav-footer-right .footer-items{display:inline-flex;padding-top:.3em;padding-bottom:.3em;margin-bottom:0em}.nav-footer-left .footer-items .nav-link,.nav-footer-center .footer-items .nav-link,.nav-footer-right .footer-items .nav-link{padding-left:.6em;padding-right:.6em}@media(min-width: 768px){.nav-footer-left{flex:1 1 0px;text-align:left}}@media(max-width: 575.98px){.nav-footer-left{margin-bottom:1em;flex:100%}}@media(min-width: 768px){.nav-footer-right{flex:1 1 0px;text-align:right}}@media(max-width: 575.98px){.nav-footer-right{margin-bottom:1em;flex:100%}}.nav-footer-center{text-align:center;min-height:3em}@media(min-width: 768px){.nav-footer-center{flex:1 1 0px}}.nav-footer-center .footer-items{justify-content:center}@media(max-width: 767.98px){.nav-footer-center{margin-bottom:1em;flex:100%}}@media(max-width: 767.98px){.nav-footer-center{margin-top:3em;order:10}}.navbar .quarto-reader-toggle.reader .quarto-reader-toggle-btn{background-color:#ccd1d5;border-radius:3px}@media(max-width: 991.98px){.quarto-reader-toggle{display:none}}.quarto-reader-toggle.reader.quarto-navigation-tool .quarto-reader-toggle-btn{background-color:#595959;border-radius:3px}.quarto-reader-toggle .quarto-reader-toggle-btn{display:inline-flex;padding-left:.2em;padding-right:.2em;margin-left:-0.2em;margin-right:-0.2em;text-align:center}.navbar .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}#quarto-back-to-top{display:none;position:fixed;bottom:50px;background-color:#fff;border-radius:.25rem;box-shadow:0 .2rem .5rem #6c757d,0 0 .05rem #6c757d;color:#6c757d;text-decoration:none;font-size:.9em;text-align:center;left:50%;padding:.4rem .8rem;transform:translate(-50%, 0)}#quarto-announcement{padding:.5em;display:flex;justify-content:space-between;margin-bottom:0;font-size:.9em}#quarto-announcement .quarto-announcement-content{margin-right:auto}#quarto-announcement .quarto-announcement-content p{margin-bottom:0}#quarto-announcement .quarto-announcement-icon{margin-right:.5em;font-size:1.2em;margin-top:-0.15em}#quarto-announcement .quarto-announcement-action{cursor:pointer}.aa-DetachedSearchButtonQuery{display:none}.aa-DetachedOverlay ul.aa-List,#quarto-search-results ul.aa-List{list-style:none;padding-left:0}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{background-color:#fff;position:absolute;z-index:2000}#quarto-search-results .aa-Panel{max-width:400px}#quarto-search input{font-size:.925rem}@media(min-width: 992px){.navbar #quarto-search{margin-left:.25rem;order:999}}.navbar.navbar-expand-sm #quarto-search,.navbar.navbar-expand-md #quarto-search{order:999}@media(min-width: 992px){.navbar .quarto-navbar-tools{order:900}}@media(min-width: 992px){.navbar .quarto-navbar-tools.tools-end{margin-left:auto !important}}@media(max-width: 991.98px){#quarto-sidebar .sidebar-search{display:none}}#quarto-sidebar .sidebar-search .aa-Autocomplete{width:100%}.navbar .aa-Autocomplete .aa-Form{width:180px}.navbar #quarto-search.type-overlay .aa-Autocomplete{width:40px}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form{background-color:inherit;border:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form:focus-within{box-shadow:none;outline:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper{display:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper:focus-within{display:inherit}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-Label svg,.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-LoadingIndicator svg{width:26px;height:26px;color:#ccd1d5;opacity:1}.navbar #quarto-search.type-overlay .aa-Autocomplete svg.aa-SubmitIcon{width:26px;height:26px;color:#ccd1d5;opacity:1}.aa-Autocomplete .aa-Form,.aa-DetachedFormContainer .aa-Form{align-items:center;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;color:#212529;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-Autocomplete .aa-Form:focus-within,.aa-DetachedFormContainer .aa-Form:focus-within{box-shadow:rgba(44,62,80,.6) 0 0 0 1px;outline:currentColor none medium}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;order:1}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{cursor:initial;flex-shrink:0;padding:0;text-align:left}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg{color:#212529;opacity:.5}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton{appearance:none;background:none;border:0;margin:0}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapper,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper{order:3;position:relative;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input{appearance:none;background:none;border:0;color:#212529;font:inherit;height:calc(1.5em + .1rem + 2px);padding:0;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::placeholder,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::placeholder{color:#212529;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input:focus{border-color:none;box-shadow:none;outline:none}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix{align-items:center;display:flex;order:4}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton{align-items:center;background:none;border:0;color:#212529;opacity:.8;cursor:pointer;display:flex;margin:0;width:calc(1.5em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus{color:#212529;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg{width:calc(1.5em + 0.75rem + calc(1px * 2))}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton{border:none;align-items:center;background:none;color:#212529;opacity:.4;font-size:.7rem;cursor:pointer;display:none;margin:0;width:calc(1em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus{color:#212529;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden]{display:none}.aa-PanelLayout:empty{display:none}.quarto-search-no-results.no-query{display:none}.aa-Source:has(.no-query){display:none}#quarto-search-results .aa-Panel{border:solid #dee2e6 1px}#quarto-search-results .aa-SourceNoResults{width:398px}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{max-height:65vh;overflow-y:auto;font-size:.925rem}.aa-DetachedOverlay .aa-SourceNoResults,#quarto-search-results .aa-SourceNoResults{height:60px;display:flex;justify-content:center;align-items:center}.aa-DetachedOverlay .search-error,#quarto-search-results .search-error{padding-top:10px;padding-left:20px;padding-right:20px;cursor:default}.aa-DetachedOverlay .search-error .search-error-title,#quarto-search-results .search-error .search-error-title{font-size:1.1rem;margin-bottom:.5rem}.aa-DetachedOverlay .search-error .search-error-title .search-error-icon,#quarto-search-results .search-error .search-error-title .search-error-icon{margin-right:8px}.aa-DetachedOverlay .search-error .search-error-text,#quarto-search-results .search-error .search-error-text{font-weight:300}.aa-DetachedOverlay .search-result-text,#quarto-search-results .search-result-text{font-weight:300;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2rem;max-height:2.4rem}.aa-DetachedOverlay .aa-SourceHeader .search-result-header,#quarto-search-results .aa-SourceHeader .search-result-header{font-size:.875rem;background-color:#f2f2f2;padding-left:14px;padding-bottom:4px;padding-top:4px}.aa-DetachedOverlay .aa-SourceHeader .search-result-header-no-results,#quarto-search-results .aa-SourceHeader .search-result-header-no-results{display:none}.aa-DetachedOverlay .aa-SourceFooter .algolia-search-logo,#quarto-search-results .aa-SourceFooter .algolia-search-logo{width:110px;opacity:.85;margin:8px;float:right}.aa-DetachedOverlay .search-result-section,#quarto-search-results .search-result-section{font-size:.925em}.aa-DetachedOverlay a.search-result-link,#quarto-search-results a.search-result-link{color:inherit;text-decoration:none}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item,#quarto-search-results li.aa-Item[aria-selected=true] .search-item{background-color:#2c3e50}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text-container{color:#fff;background-color:#2c3e50}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=true] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-match.mark{color:#fff;background-color:#3a526a}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item,#quarto-search-results li.aa-Item[aria-selected=false] .search-item{background-color:#fff}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text-container{color:#212529}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=false] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-match.mark{color:inherit;background-color:#90a9c2}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container{background-color:#fff;color:#212529}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container{padding-top:0px}.aa-DetachedOverlay li.aa-Item .search-result-doc.document-selectable .search-result-text-container,#quarto-search-results li.aa-Item .search-result-doc.document-selectable .search-result-text-container{margin-top:-4px}.aa-DetachedOverlay .aa-Item,#quarto-search-results .aa-Item{cursor:pointer}.aa-DetachedOverlay .aa-Item .search-item,#quarto-search-results .aa-Item .search-item{border-left:none;border-right:none;border-top:none;background-color:#fff;border-color:#dee2e6;color:#212529}.aa-DetachedOverlay .aa-Item .search-item p,#quarto-search-results .aa-Item .search-item p{margin-top:0;margin-bottom:0}.aa-DetachedOverlay .aa-Item .search-item i.bi,#quarto-search-results .aa-Item .search-item i.bi{padding-left:8px;padding-right:8px;font-size:1.3em}.aa-DetachedOverlay .aa-Item .search-item .search-result-title,#quarto-search-results .aa-Item .search-item .search-result-title{margin-top:.3em;margin-bottom:0em}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs,#quarto-search-results .aa-Item .search-item .search-result-crumbs{white-space:nowrap;text-overflow:ellipsis;font-size:.8em;font-weight:300;margin-right:1em}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs:not(.search-result-crumbs-wrap),#quarto-search-results .aa-Item .search-item .search-result-crumbs:not(.search-result-crumbs-wrap){max-width:30%;margin-left:auto;margin-top:.5em;margin-bottom:.1rem}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs.search-result-crumbs-wrap,#quarto-search-results .aa-Item .search-item .search-result-crumbs.search-result-crumbs-wrap{flex-basis:100%;margin-top:0em;margin-bottom:.2em;margin-left:37px}.aa-DetachedOverlay .aa-Item .search-result-title-container,#quarto-search-results .aa-Item .search-result-title-container{font-size:1em;display:flex;flex-wrap:wrap;padding:6px 4px 6px 4px}.aa-DetachedOverlay .aa-Item .search-result-text-container,#quarto-search-results .aa-Item .search-result-text-container{padding-bottom:8px;padding-right:8px;margin-left:42px}.aa-DetachedOverlay .aa-Item .search-result-doc-section,.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-doc-section,#quarto-search-results .aa-Item .search-result-more{padding-top:8px;padding-bottom:8px;padding-left:44px}.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-more{font-size:.8em;font-weight:400}.aa-DetachedOverlay .aa-Item .search-result-doc,#quarto-search-results .aa-Item .search-result-doc{border-top:1px solid #dee2e6}.aa-DetachedSearchButton{background:none;border:none}.aa-DetachedSearchButton .aa-DetachedSearchButtonPlaceholder{display:none}.navbar .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#ccd1d5}.sidebar-tools-collapse #quarto-search,.sidebar-tools-main #quarto-search{display:inline}.sidebar-tools-collapse #quarto-search .aa-Autocomplete,.sidebar-tools-main #quarto-search .aa-Autocomplete{display:inline}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton{padding-left:4px;padding-right:4px}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#595959}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon{margin-top:-3px}.aa-DetachedContainer{background:rgba(255,255,255,.65);width:90%;bottom:0;box-shadow:rgba(222,226,230,.6) 0 0 0 1px;outline:currentColor none medium;display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:1101}.aa-DetachedContainer::after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{background-color:#fff;border-bottom:1px solid #dee2e6;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:.5em}.aa-DetachedCancelButton{background:none;font-size:.8em;border:0;border-radius:3px;color:#212529;cursor:pointer;margin:0 0 0 .5em;padding:0 .5em}.aa-DetachedCancelButton:hover,.aa-DetachedCancelButton:focus{box-shadow:rgba(44,62,80,.6) 0 0 0 1px;outline:currentColor none medium}.aa-DetachedContainer--modal{bottom:inherit;height:auto;margin:0 auto;position:absolute;top:100px;border-radius:6px;max-width:850px}@media(max-width: 575.98px){.aa-DetachedContainer--modal{width:100%;top:0px;border-radius:0px;border:none}}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:var(--aa-detached-modal-max-height);padding-bottom:var(--aa-spacing-half);position:static}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:rgba(33,37,41,.4);position:fixed;left:0;right:0;top:0;margin:0;padding:0;height:100vh;z-index:1100}.quarto-dashboard.nav-fixed.dashboard-sidebar #quarto-content.quarto-dashboard-content{padding:0em}.quarto-dashboard #quarto-content.quarto-dashboard-content{padding:1em}.quarto-dashboard #quarto-content.quarto-dashboard-content>*{padding-top:0}@media(min-width: 576px){.quarto-dashboard{height:100%}}.quarto-dashboard .card.valuebox.bslib-card.bg-primary{background-color:rgba(39,128,227,.7) !important}.quarto-dashboard .card.valuebox.bslib-card.bg-secondary{background-color:#6c757d !important}.quarto-dashboard .card.valuebox.bslib-card.bg-success{background-color:rgba(63,182,24,.7) !important}.quarto-dashboard .card.valuebox.bslib-card.bg-info{background-color:rgba(153,84,187,.7) !important}.quarto-dashboard .card.valuebox.bslib-card.bg-warning{background-color:rgba(255,117,24,.7) !important}.quarto-dashboard .card.valuebox.bslib-card.bg-danger{background-color:rgba(255,0,57,.7) !important}.quarto-dashboard .card.valuebox.bslib-card.bg-light{background-color:#ecf0f1 !important}.quarto-dashboard .card.valuebox.bslib-card.bg-dark{background-color:#7b8a8b !important}.quarto-dashboard.dashboard-fill{display:flex;flex-direction:column}.quarto-dashboard #quarto-appendix{display:none}.quarto-dashboard #quarto-header #quarto-dashboard-header{border-top:solid 1px #3e5871;border-bottom:solid 1px #3e5871}.quarto-dashboard #quarto-header #quarto-dashboard-header>nav{padding-left:1em;padding-right:1em}.quarto-dashboard #quarto-header #quarto-dashboard-header>nav .navbar-brand-container{padding-left:0}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-toggler{margin-right:0}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-toggler-icon{height:1em;width:1em;background-image:url('data:image/svg+xml,')}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-brand-container{padding-right:1em}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-title{font-size:1.1em}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-nav{font-size:.9em}.quarto-dashboard #quarto-dashboard-header .navbar{padding:0}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-container{padding-left:1em}.quarto-dashboard #quarto-dashboard-header .navbar.slim .navbar-brand-container .nav-link,.quarto-dashboard #quarto-dashboard-header .navbar.slim .navbar-nav .nav-link{padding:.7em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-color-scheme-toggle{order:9}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-toggler{margin-left:.5em;order:10}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-nav .nav-link{padding:.5em;height:100%;display:flex;align-items:center}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-nav .active{background-color:#3a526a}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-brand-container{padding:.5em .5em .5em 0;display:flex;flex-direction:row;margin-right:2em;align-items:center}@media(max-width: 767.98px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-brand-container{margin-right:auto}}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{align-self:stretch}@media(min-width: 768px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{order:8}}@media(max-width: 767.98px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{order:1000;padding-bottom:.5em}}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse .navbar-nav{align-self:stretch}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title{font-size:1.25em;line-height:1.1em;display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title .navbar-title-text{margin-right:.4em}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title a{text-decoration:none;color:inherit}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-subtitle,.quarto-dashboard #quarto-dashboard-header .navbar .navbar-author{font-size:.9rem;margin-right:.5em}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-author{margin-left:auto}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-logo{max-height:48px;min-height:30px;object-fit:cover;margin-right:1em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-links{order:9;padding-right:1em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-link-text{margin-left:.25em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-link{padding-right:0em;padding-left:.7em;text-decoration:none;color:#ccd1d5}.quarto-dashboard .page-layout-custom .tab-content{padding:0;border:none}.quarto-dashboard-img-contain{height:100%;width:100%;object-fit:contain}@media(max-width: 575.98px){.quarto-dashboard .bslib-grid{grid-template-rows:minmax(1em, max-content) !important}.quarto-dashboard .sidebar-content{height:inherit}.quarto-dashboard .page-layout-custom{min-height:100vh}}.quarto-dashboard.dashboard-toolbar>.page-layout-custom,.quarto-dashboard.dashboard-sidebar>.page-layout-custom{padding:0}.quarto-dashboard .quarto-dashboard-content.quarto-dashboard-pages{padding:0}.quarto-dashboard .callout{margin-bottom:0;margin-top:0}.quarto-dashboard .html-fill-container figure{overflow:hidden}.quarto-dashboard bslib-tooltip .rounded-pill{border:solid #6c757d 1px}.quarto-dashboard bslib-tooltip .rounded-pill .svg{fill:#212529}.quarto-dashboard .tabset .dashboard-card-no-title .nav-tabs{margin-left:0;margin-right:auto}.quarto-dashboard .tabset .tab-content{border:none}.quarto-dashboard .tabset .card-header .nav-link[role=tab]{margin-top:-6px;padding-top:6px;padding-bottom:6px}.quarto-dashboard .card.valuebox,.quarto-dashboard .card.bslib-value-box{min-height:3rem}.quarto-dashboard .card.valuebox .card-body,.quarto-dashboard .card.bslib-value-box .card-body{padding:0}.quarto-dashboard .bslib-value-box .value-box-value{font-size:clamp(.1em,15cqw,5em)}.quarto-dashboard .bslib-value-box .value-box-showcase .bi{font-size:clamp(.1em,max(18cqw,5.2cqh),5em);text-align:center;height:1em}.quarto-dashboard .bslib-value-box .value-box-showcase .bi::before{vertical-align:1em}.quarto-dashboard .bslib-value-box .value-box-area{margin-top:auto;margin-bottom:auto}.quarto-dashboard .card figure.quarto-float{display:flex;flex-direction:column;align-items:center}.quarto-dashboard .dashboard-scrolling{padding:1em}.quarto-dashboard .full-height{height:100%}.quarto-dashboard .showcase-bottom .value-box-grid{display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"top" "bottom"}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-showcase i.bi{font-size:4rem}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-area{grid-area:top}.quarto-dashboard .tab-content{margin-bottom:0}.quarto-dashboard .bslib-card .bslib-navs-card-title{justify-content:stretch;align-items:end}.quarto-dashboard .card-header{display:flex;flex-wrap:wrap;justify-content:space-between}.quarto-dashboard .card-header .card-title{display:flex;flex-direction:column;justify-content:center;margin-bottom:0}.quarto-dashboard .tabset .card-toolbar{margin-bottom:1em}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout{border:none;gap:var(--bslib-spacer, 1rem)}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.main{padding:0}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.sidebar{border-radius:.25rem;border:1px solid rgba(0,0,0,.175)}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.collapse-toggle{display:none}@media(max-width: 767.98px){.quarto-dashboard .bslib-grid>.bslib-sidebar-layout{grid-template-columns:1fr;grid-template-rows:max-content 1fr}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.main{grid-column:1;grid-row:2}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout .sidebar{grid-column:1;grid-row:1}}.quarto-dashboard .sidebar-right .sidebar{padding-left:2.5em}.quarto-dashboard .sidebar-right .collapse-toggle{left:2px}.quarto-dashboard .quarto-dashboard .sidebar-right button.collapse-toggle:not(.transitioning){left:unset}.quarto-dashboard aside.sidebar{padding-left:1em;padding-right:1em;background-color:rgba(52,58,64,.25);color:#212529}.quarto-dashboard .bslib-sidebar-layout>div.main{padding:.7em}.quarto-dashboard .bslib-sidebar-layout button.collapse-toggle{margin-top:.3em}.quarto-dashboard .bslib-sidebar-layout .collapse-toggle{top:0}.quarto-dashboard .bslib-sidebar-layout.sidebar-collapsed:not(.transitioning):not(.sidebar-right) .collapse-toggle{left:2px}.quarto-dashboard .sidebar>section>.h3:first-of-type{margin-top:0em}.quarto-dashboard .sidebar .h3,.quarto-dashboard .sidebar .h4,.quarto-dashboard .sidebar .h5,.quarto-dashboard .sidebar .h6{margin-top:.5em}.quarto-dashboard .sidebar form{flex-direction:column;align-items:start;margin-bottom:1em}.quarto-dashboard .sidebar form div[class*=oi-][class$=-input]{flex-direction:column}.quarto-dashboard .sidebar form[class*=oi-][class$=-toggle]{flex-direction:row-reverse;align-items:center;justify-content:start}.quarto-dashboard .sidebar form input[type=range]{margin-top:.5em;margin-right:.8em;margin-left:1em}.quarto-dashboard .sidebar label{width:fit-content}.quarto-dashboard .sidebar .card-body{margin-bottom:2em}.quarto-dashboard .sidebar .shiny-input-container{margin-bottom:1em}.quarto-dashboard .sidebar .shiny-options-group{margin-top:0}.quarto-dashboard .sidebar .control-label{margin-bottom:.3em}.quarto-dashboard .card .card-body .quarto-layout-row{align-items:stretch}.quarto-dashboard .toolbar{font-size:.9em;display:flex;flex-direction:row;border-top:solid 1px #c7c9cd;padding:1em;flex-wrap:wrap;background-color:rgba(52,58,64,.25)}.quarto-dashboard .toolbar .cell-output-display{display:flex}.quarto-dashboard .toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .toolbar>*:last-child{margin-right:0}.quarto-dashboard .toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .toolbar .shiny-input-container{padding-bottom:0;margin-bottom:0}.quarto-dashboard .toolbar .shiny-input-container>*{flex-shrink:0;flex-grow:0}.quarto-dashboard .toolbar .form-group.shiny-input-container:not([role=group])>label{margin-bottom:0}.quarto-dashboard .toolbar .shiny-input-container.no-baseline{align-items:start;padding-top:6px}.quarto-dashboard .toolbar .shiny-input-container{display:flex;align-items:baseline}.quarto-dashboard .toolbar .shiny-input-container label{padding-right:.4em}.quarto-dashboard .toolbar .shiny-input-container .bslib-input-switch{margin-top:6px}.quarto-dashboard .toolbar input[type=text]{line-height:1;width:inherit}.quarto-dashboard .toolbar .input-daterange{width:inherit}.quarto-dashboard .toolbar .input-daterange input[type=text]{height:2.4em;width:10em}.quarto-dashboard .toolbar .input-daterange .input-group-addon{height:auto;padding:0;margin-left:-5px !important;margin-right:-5px}.quarto-dashboard .toolbar .input-daterange .input-group-addon .input-group-text{padding-top:0;padding-bottom:0;height:100%}.quarto-dashboard .toolbar span.irs.irs--shiny{width:10em}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-line{top:9px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-min,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-max,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-from,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-to,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-single{top:20px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-bar{top:8px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-handle{top:0px}.quarto-dashboard .toolbar .shiny-input-checkboxgroup>label{margin-top:6px}.quarto-dashboard .toolbar .shiny-input-checkboxgroup>.shiny-options-group{margin-top:0;align-items:baseline}.quarto-dashboard .toolbar .shiny-input-radiogroup>label{margin-top:6px}.quarto-dashboard .toolbar .shiny-input-radiogroup>.shiny-options-group{align-items:baseline;margin-top:0}.quarto-dashboard .toolbar .shiny-input-radiogroup>.shiny-options-group>.radio{margin-right:.3em}.quarto-dashboard .toolbar .form-select{padding-top:.2em;padding-bottom:.2em}.quarto-dashboard .toolbar .shiny-input-select{min-width:6em}.quarto-dashboard .toolbar div.checkbox{margin-bottom:0px}.quarto-dashboard .toolbar>.checkbox:first-child{margin-top:6px}.quarto-dashboard .toolbar form{width:fit-content}.quarto-dashboard .toolbar form label{padding-top:.2em;padding-bottom:.2em;width:fit-content}.quarto-dashboard .toolbar form input[type=date]{width:fit-content}.quarto-dashboard .toolbar form input[type=color]{width:3em}.quarto-dashboard .toolbar form button{padding:.4em}.quarto-dashboard .toolbar form select{width:fit-content}.quarto-dashboard .toolbar>*{font-size:.9em;flex-grow:0}.quarto-dashboard .toolbar .shiny-input-container label{margin-bottom:1px}.quarto-dashboard .toolbar-bottom{margin-top:1em;margin-bottom:0 !important;order:2}.quarto-dashboard .quarto-dashboard-content>.dashboard-toolbar-container>.toolbar-content>.tab-content>.tab-pane>*:not(.bslib-sidebar-layout){padding:1em}.quarto-dashboard .quarto-dashboard-content>.dashboard-toolbar-container>.toolbar-content>*:not(.tab-content){padding:1em}.quarto-dashboard .quarto-dashboard-content>.tab-content>.dashboard-page>.dashboard-toolbar-container>.toolbar-content,.quarto-dashboard .quarto-dashboard-content>.tab-content>.dashboard-page:not(.dashboard-sidebar-container)>*:not(.dashboard-toolbar-container){padding:1em}.quarto-dashboard .toolbar-content{padding:0}.quarto-dashboard .quarto-dashboard-content.quarto-dashboard-pages .tab-pane>.dashboard-toolbar-container .toolbar{border-radius:0;margin-bottom:0}.quarto-dashboard .dashboard-toolbar-container.toolbar-toplevel .toolbar{border-bottom:1px solid rgba(0,0,0,.175)}.quarto-dashboard .dashboard-toolbar-container.toolbar-toplevel .toolbar-bottom{margin-top:0}.quarto-dashboard .dashboard-toolbar-container:not(.toolbar-toplevel) .toolbar{margin-bottom:1em;border-top:none;border-radius:.25rem;border:1px solid rgba(0,0,0,.175)}.quarto-dashboard .vega-embed.has-actions details{width:1.7em;height:2em;position:absolute !important;top:0;right:0}.quarto-dashboard .dashboard-toolbar-container{padding:0}.quarto-dashboard .card .card-header p:last-child,.quarto-dashboard .card .card-footer p:last-child{margin-bottom:0}.quarto-dashboard .card .card-body>.h4:first-child{margin-top:0}.quarto-dashboard .card .card-body{z-index:4}@media(max-width: 767.98px){.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_length,.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_info,.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_paginate{text-align:initial}.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_filter{text-align:right}.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_paginate ul.pagination{justify-content:initial}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;padding-top:0}.quarto-dashboard .card .card-body .itables .dataTables_wrapper table{flex-shrink:0}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons{margin-bottom:.5em;margin-left:auto;width:fit-content;float:right}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons.btn-group{background:#fff;border:none}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons .btn-secondary{background-color:#fff;background-image:none;border:solid #dee2e6 1px;padding:.2em .7em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons .btn span{font-size:.8em;color:#212529}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{margin-left:.5em;margin-bottom:.5em;padding-top:0}@media(min-width: 768px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{font-size:.875em}}@media(max-width: 767.98px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{font-size:.8em}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_filter{margin-bottom:.5em;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_filter input[type=search]{padding:1px 5px 1px 5px;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_length{flex-basis:1 1 50%;margin-bottom:.5em;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_length select{padding:.4em 3em .4em .5em;font-size:.875em;margin-left:.2em;margin-right:.2em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate{flex-shrink:0}@media(min-width: 768px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate{margin-left:auto}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate ul.pagination .paginate_button .page-link{font-size:.8em}.quarto-dashboard .card .card-footer{font-size:.9em}.quarto-dashboard .card .card-toolbar{display:flex;flex-grow:1;flex-direction:row;width:100%;flex-wrap:wrap}.quarto-dashboard .card .card-toolbar>*{font-size:.8em;flex-grow:0}.quarto-dashboard .card .card-toolbar>.card-title{font-size:1em;flex-grow:1;align-self:flex-start;margin-top:.1em}.quarto-dashboard .card .card-toolbar .cell-output-display{display:flex}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .card .card-toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card .card-toolbar>*:last-child{margin-right:0}.quarto-dashboard .card .card-toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .card .card-toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .card .card-toolbar form{width:fit-content}.quarto-dashboard .card .card-toolbar form label{padding-top:.2em;padding-bottom:.2em;width:fit-content}.quarto-dashboard .card .card-toolbar form input[type=date]{width:fit-content}.quarto-dashboard .card .card-toolbar form input[type=color]{width:3em}.quarto-dashboard .card .card-toolbar form button{padding:.4em}.quarto-dashboard .card .card-toolbar form select{width:fit-content}.quarto-dashboard .card .card-toolbar .cell-output-display{display:flex}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .card .card-toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card .card-toolbar>*:last-child{margin-right:0}.quarto-dashboard .card .card-toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .card .card-toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:0;margin-bottom:0}.quarto-dashboard .card .card-toolbar .shiny-input-container>*{flex-shrink:0;flex-grow:0}.quarto-dashboard .card .card-toolbar .form-group.shiny-input-container:not([role=group])>label{margin-bottom:0}.quarto-dashboard .card .card-toolbar .shiny-input-container.no-baseline{align-items:start;padding-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-container{display:flex;align-items:baseline}.quarto-dashboard .card .card-toolbar .shiny-input-container label{padding-right:.4em}.quarto-dashboard .card .card-toolbar .shiny-input-container .bslib-input-switch{margin-top:6px}.quarto-dashboard .card .card-toolbar input[type=text]{line-height:1;width:inherit}.quarto-dashboard .card .card-toolbar .input-daterange{width:inherit}.quarto-dashboard .card .card-toolbar .input-daterange input[type=text]{height:2.4em;width:10em}.quarto-dashboard .card .card-toolbar .input-daterange .input-group-addon{height:auto;padding:0;margin-left:-5px !important;margin-right:-5px}.quarto-dashboard .card .card-toolbar .input-daterange .input-group-addon .input-group-text{padding-top:0;padding-bottom:0;height:100%}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny{width:10em}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-line{top:9px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-min,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-max,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-from,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-to,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-single{top:20px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-bar{top:8px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-handle{top:0px}.quarto-dashboard .card .card-toolbar .shiny-input-checkboxgroup>label{margin-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-checkboxgroup>.shiny-options-group{margin-top:0;align-items:baseline}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>label{margin-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>.shiny-options-group{align-items:baseline;margin-top:0}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>.shiny-options-group>.radio{margin-right:.3em}.quarto-dashboard .card .card-toolbar .form-select{padding-top:.2em;padding-bottom:.2em}.quarto-dashboard .card .card-toolbar .shiny-input-select{min-width:6em}.quarto-dashboard .card .card-toolbar div.checkbox{margin-bottom:0px}.quarto-dashboard .card .card-toolbar>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card-body>table>thead{border-top:none}.quarto-dashboard .card-body>.table>:not(caption)>*>*{background-color:#fff}.tableFloatingHeaderOriginal{background-color:#fff;position:sticky !important;top:0 !important}.dashboard-data-table{margin-top:-1px}div.value-box-area span.observablehq--number{font-size:calc(clamp(.1em,15cqw,5em)*1.25);line-height:1.2;color:inherit;font-family:var(--bs-body-font-family)}.quarto-listing{padding-bottom:1em}.listing-pagination{padding-top:.5em}ul.pagination{float:right;padding-left:8px;padding-top:.5em}ul.pagination li{padding-right:.75em}ul.pagination li.disabled a,ul.pagination li.active a{color:#fff;text-decoration:none}ul.pagination li:last-of-type{padding-right:0}.listing-actions-group{display:flex}.quarto-listing-filter{margin-bottom:1em;width:200px;margin-left:auto}.quarto-listing-sort{margin-bottom:1em;margin-right:auto;width:auto}.quarto-listing-sort .input-group-text{font-size:.8em}.input-group-text{border-right:none}.quarto-listing-sort select.form-select{font-size:.8em}.listing-no-matching{text-align:center;padding-top:2em;padding-bottom:3em;font-size:1em}#quarto-margin-sidebar .quarto-listing-category{padding-top:0;font-size:1rem}#quarto-margin-sidebar .quarto-listing-category-title{cursor:pointer;font-weight:600;font-size:1rem}.quarto-listing-category .category{cursor:pointer}.quarto-listing-category .category.active{font-weight:600}.quarto-listing-category.category-cloud{display:flex;flex-wrap:wrap;align-items:baseline}.quarto-listing-category.category-cloud .category{padding-right:5px}.quarto-listing-category.category-cloud .category-cloud-1{font-size:.75em}.quarto-listing-category.category-cloud .category-cloud-2{font-size:.95em}.quarto-listing-category.category-cloud .category-cloud-3{font-size:1.15em}.quarto-listing-category.category-cloud .category-cloud-4{font-size:1.35em}.quarto-listing-category.category-cloud .category-cloud-5{font-size:1.55em}.quarto-listing-category.category-cloud .category-cloud-6{font-size:1.75em}.quarto-listing-category.category-cloud .category-cloud-7{font-size:1.95em}.quarto-listing-category.category-cloud .category-cloud-8{font-size:2.15em}.quarto-listing-category.category-cloud .category-cloud-9{font-size:2.35em}.quarto-listing-category.category-cloud .category-cloud-10{font-size:2.55em}.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-1{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-2{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-3{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-3{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-4{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-4{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-5{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-5{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-6{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-6{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-7{grid-template-columns:repeat(7, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-7{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-7{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-8{grid-template-columns:repeat(8, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-8{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-8{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-9{grid-template-columns:repeat(9, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-9{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-9{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-10{grid-template-columns:repeat(10, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-10{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-10{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-11{grid-template-columns:repeat(11, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-11{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-11{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-12{grid-template-columns:repeat(12, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-12{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-12{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-grid{gap:1.5em}.quarto-grid-item.borderless{border:none}.quarto-grid-item.borderless .listing-categories .listing-category:last-of-type,.quarto-grid-item.borderless .listing-categories .listing-category:first-of-type{padding-left:0}.quarto-grid-item.borderless .listing-categories .listing-category{border:0}.quarto-grid-link{text-decoration:none;color:inherit}.quarto-grid-link:hover{text-decoration:none;color:inherit}.quarto-grid-item h5.title,.quarto-grid-item .title.h5{margin-top:0;margin-bottom:0}.quarto-grid-item .card-footer{display:flex;justify-content:space-between;font-size:.8em}.quarto-grid-item .card-footer p{margin-bottom:0}.quarto-grid-item p.card-img-top{margin-bottom:0}.quarto-grid-item p.card-img-top>img{object-fit:cover}.quarto-grid-item .card-other-values{margin-top:.5em;font-size:.8em}.quarto-grid-item .card-other-values tr{margin-bottom:.5em}.quarto-grid-item .card-other-values tr>td:first-of-type{font-weight:600;padding-right:1em;padding-left:1em;vertical-align:top}.quarto-grid-item div.post-contents{display:flex;flex-direction:column;text-decoration:none;height:100%}.quarto-grid-item .listing-item-img-placeholder{background-color:rgba(52,58,64,.25);flex-shrink:0}.quarto-grid-item .card-attribution{padding-top:1em;display:flex;gap:1em;text-transform:uppercase;color:#6c757d;font-weight:500;flex-grow:10;align-items:flex-end}.quarto-grid-item .description{padding-bottom:1em}.quarto-grid-item .card-attribution .date{align-self:flex-end}.quarto-grid-item .card-attribution.justify{justify-content:space-between}.quarto-grid-item .card-attribution.start{justify-content:flex-start}.quarto-grid-item .card-attribution.end{justify-content:flex-end}.quarto-grid-item .card-title{margin-bottom:.1em}.quarto-grid-item .card-subtitle{padding-top:.25em}.quarto-grid-item .card-text{font-size:.9em}.quarto-grid-item .listing-reading-time{padding-bottom:.25em}.quarto-grid-item .card-text-small{font-size:.8em}.quarto-grid-item .card-subtitle.subtitle{font-size:.9em;font-weight:600;padding-bottom:.5em}.quarto-grid-item .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}.quarto-grid-item .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}.quarto-grid-item.card-right{text-align:right}.quarto-grid-item.card-right .listing-categories{justify-content:flex-end}.quarto-grid-item.card-left{text-align:left}.quarto-grid-item.card-center{text-align:center}.quarto-grid-item.card-center .listing-description{text-align:justify}.quarto-grid-item.card-center .listing-categories{justify-content:center}table.quarto-listing-table td.image{padding:0px}table.quarto-listing-table td.image img{width:100%;max-width:50px;object-fit:contain}table.quarto-listing-table a{text-decoration:none;word-break:keep-all}table.quarto-listing-table th a{color:inherit}table.quarto-listing-table th a.asc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table th a.desc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table.table-hover td{cursor:pointer}.quarto-post.image-left{flex-direction:row}.quarto-post.image-right{flex-direction:row-reverse}@media(max-width: 767.98px){.quarto-post.image-right,.quarto-post.image-left{gap:0em;flex-direction:column}.quarto-post .metadata{padding-bottom:1em;order:2}.quarto-post .body{order:1}.quarto-post .thumbnail{order:3}}.list.quarto-listing-default div:last-of-type{border-bottom:none}@media(min-width: 992px){.quarto-listing-container-default{margin-right:2em}}div.quarto-post{display:flex;gap:2em;margin-bottom:1.5em;border-bottom:1px solid #dee2e6}@media(max-width: 767.98px){div.quarto-post{padding-bottom:1em}}div.quarto-post .metadata{flex-basis:20%;flex-grow:0;margin-top:.2em;flex-shrink:10}div.quarto-post .thumbnail{flex-basis:30%;flex-grow:0;flex-shrink:0}div.quarto-post .thumbnail img{margin-top:.4em;width:100%;object-fit:cover}div.quarto-post .body{flex-basis:45%;flex-grow:1;flex-shrink:0}div.quarto-post .body h3.listing-title,div.quarto-post .body .listing-title.h3{margin-top:0px;margin-bottom:0px;border-bottom:none}div.quarto-post .body .listing-subtitle{font-size:.875em;margin-bottom:.5em;margin-top:.2em}div.quarto-post .body .description{font-size:.9em}div.quarto-post .body pre code{white-space:pre-wrap}div.quarto-post a{color:#212529;text-decoration:none}div.quarto-post .metadata{display:flex;flex-direction:column;font-size:.8em;font-family:Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";flex-basis:33%}div.quarto-post .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}div.quarto-post .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}div.quarto-post .listing-description{margin-bottom:.5em}div.quarto-about-jolla{display:flex !important;flex-direction:column;align-items:center;margin-top:10%;padding-bottom:1em}div.quarto-about-jolla .about-image{object-fit:cover;margin-left:auto;margin-right:auto;margin-bottom:1.5em}div.quarto-about-jolla img.round{border-radius:50%}div.quarto-about-jolla img.rounded{border-radius:10px}div.quarto-about-jolla .quarto-title h1.title,div.quarto-about-jolla .quarto-title .title.h1{text-align:center}div.quarto-about-jolla .quarto-title .description{text-align:center}div.quarto-about-jolla h2,div.quarto-about-jolla .h2{border-bottom:none}div.quarto-about-jolla .about-sep{width:60%}div.quarto-about-jolla main{text-align:center}div.quarto-about-jolla .about-links{display:flex}@media(min-width: 992px){div.quarto-about-jolla .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-jolla .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-jolla .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-jolla .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-jolla .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-jolla .about-link:hover{color:#18bc9c}div.quarto-about-jolla .about-link i.bi{margin-right:.15em}div.quarto-about-solana{display:flex !important;flex-direction:column;padding-top:3em !important;padding-bottom:1em}div.quarto-about-solana .about-entity{display:flex !important;align-items:start;justify-content:space-between}@media(min-width: 992px){div.quarto-about-solana .about-entity{flex-direction:row}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity{flex-direction:column-reverse;align-items:center;text-align:center}}div.quarto-about-solana .about-entity .entity-contents{display:flex;flex-direction:column}@media(max-width: 767.98px){div.quarto-about-solana .about-entity .entity-contents{width:100%}}div.quarto-about-solana .about-entity .about-image{object-fit:cover}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-image{margin-bottom:1.5em}}div.quarto-about-solana .about-entity img.round{border-radius:50%}div.quarto-about-solana .about-entity img.rounded{border-radius:10px}div.quarto-about-solana .about-entity .about-links{display:flex;justify-content:left;padding-bottom:1.2em}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-solana .about-entity .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-solana .about-entity .about-link:hover{color:#18bc9c}div.quarto-about-solana .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-solana .about-contents{padding-right:1.5em;flex-basis:0;flex-grow:1}div.quarto-about-solana .about-contents main.content{margin-top:0}div.quarto-about-solana .about-contents h2,div.quarto-about-solana .about-contents .h2{border-bottom:none}div.quarto-about-trestles{display:flex !important;flex-direction:row;padding-top:3em !important;padding-bottom:1em}@media(max-width: 991.98px){div.quarto-about-trestles{flex-direction:column;padding-top:0em !important}}div.quarto-about-trestles .about-entity{display:flex !important;flex-direction:column;align-items:center;text-align:center;padding-right:1em}@media(min-width: 992px){div.quarto-about-trestles .about-entity{flex:0 0 42%}}div.quarto-about-trestles .about-entity .about-image{object-fit:cover;margin-bottom:1.5em}div.quarto-about-trestles .about-entity img.round{border-radius:50%}div.quarto-about-trestles .about-entity img.rounded{border-radius:10px}div.quarto-about-trestles .about-entity .about-links{display:flex;justify-content:center}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-trestles .about-entity .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-trestles .about-entity .about-link:hover{color:#18bc9c}div.quarto-about-trestles .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-trestles .about-contents{flex-basis:0;flex-grow:1}div.quarto-about-trestles .about-contents h2,div.quarto-about-trestles .about-contents .h2{border-bottom:none}@media(min-width: 992px){div.quarto-about-trestles .about-contents{border-left:solid 1px #dee2e6;padding-left:1.5em}}div.quarto-about-trestles .about-contents main.content{margin-top:0}div.quarto-about-marquee{padding-bottom:1em}div.quarto-about-marquee .about-contents{display:flex;flex-direction:column}div.quarto-about-marquee .about-image{max-height:550px;margin-bottom:1.5em;object-fit:cover}div.quarto-about-marquee img.round{border-radius:50%}div.quarto-about-marquee img.rounded{border-radius:10px}div.quarto-about-marquee h2,div.quarto-about-marquee .h2{border-bottom:none}div.quarto-about-marquee .about-links{display:flex;justify-content:center;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-marquee .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-marquee .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-marquee .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-marquee .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-marquee .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-marquee .about-link:hover{color:#18bc9c}div.quarto-about-marquee .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-marquee .about-link{border:none}}div.quarto-about-broadside{display:flex;flex-direction:column;padding-bottom:1em}div.quarto-about-broadside .about-main{display:flex !important;padding-top:0 !important}@media(min-width: 992px){div.quarto-about-broadside .about-main{flex-direction:row;align-items:flex-start}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main{flex-direction:column}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main .about-entity{flex-shrink:0;width:100%;height:450px;margin-bottom:1.5em;background-size:cover;background-repeat:no-repeat}}@media(min-width: 992px){div.quarto-about-broadside .about-main .about-entity{flex:0 10 50%;margin-right:1.5em;width:100%;height:100%;background-size:100%;background-repeat:no-repeat}}div.quarto-about-broadside .about-main .about-contents{padding-top:14px;flex:0 0 50%}div.quarto-about-broadside h2,div.quarto-about-broadside .h2{border-bottom:none}div.quarto-about-broadside .about-sep{margin-top:1.5em;width:60%;align-self:center}div.quarto-about-broadside .about-links{display:flex;justify-content:center;column-gap:20px;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-broadside .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-broadside .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-broadside .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-broadside .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-broadside .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-broadside .about-link:hover{color:#18bc9c}div.quarto-about-broadside .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-broadside .about-link{border:none}}.tippy-box[data-theme~=quarto]{background-color:#fff;border:solid 1px #dee2e6;border-radius:.25rem;color:#212529;font-size:.875rem}.tippy-box[data-theme~=quarto]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=quarto]>.tippy-arrow:after,.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{content:"";position:absolute;z-index:-1}.tippy-box[data-theme~=quarto]>.tippy-arrow:after{border-color:rgba(0,0,0,0);border-style:solid}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-6px}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-6px}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-6px}.tippy-box[data-placement^=left]>.tippy-arrow:before{right:-6px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:after{border-top-color:#dee2e6;border-width:7px 7px 0;top:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow>svg{top:16px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow:after{top:17px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff;bottom:16px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:#dee2e6;border-width:0 7px 7px;bottom:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:15px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow:after{bottom:17px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:after{border-left-color:#dee2e6;border-width:7px 0 7px 7px;left:17px;top:1px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow>svg{left:11px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow:after{left:12px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff;right:16px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:#dee2e6}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow{fill:#212529}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px}.top-right{position:absolute;top:1em;right:1em}.visually-hidden{border:0;clip:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none !important}.zindex-bottom{z-index:-1 !important}figure.figure{display:block}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p,.quarto-figure-left>figure>div{text-align:left}.quarto-figure-center>figure>p,.quarto-figure-center>figure>div{text-align:center}.quarto-figure-right>figure>p,.quarto-figure-right>figure>div{text-align:right}.quarto-figure>figure>div.cell-annotation,.quarto-figure>figure>div code{text-align:left}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption.quarto-float-caption-bottom{margin-bottom:.5em}figure>figcaption.quarto-float-caption-top{margin-top:.5em}div[id^=tbl-]{position:relative}.quarto-figure>.anchorjs-link{position:absolute;top:.6em;right:.5em}div[id^=tbl-]>.anchorjs-link{position:absolute;top:.7em;right:.3em}.quarto-figure:hover>.anchorjs-link,div[id^=tbl-]:hover>.anchorjs-link,h2:hover>.anchorjs-link,.h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,.h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,.h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,.h5:hover>.anchorjs-link,h6:hover>.anchorjs-link,.h6:hover>.anchorjs-link,.reveal-anchorjs-link>.anchorjs-link{opacity:1}#title-block-header{margin-block-end:1rem;position:relative;margin-top:-1px}#title-block-header .abstract{margin-block-start:1rem}#title-block-header .abstract .abstract-title{font-weight:600}#title-block-header a{text-decoration:none}#title-block-header .author,#title-block-header .date,#title-block-header .doi{margin-block-end:.2rem}#title-block-header .quarto-title-block>div{display:flex}#title-block-header .quarto-title-block>div>h1,#title-block-header .quarto-title-block>div>.h1{flex-grow:1}#title-block-header .quarto-title-block>div>button{flex-shrink:0;height:2.25rem;margin-top:0}@media(min-width: 992px){#title-block-header .quarto-title-block>div>button{margin-top:5px}}tr.header>th>p:last-of-type{margin-bottom:0px}table,table.table{margin-top:.5rem;margin-bottom:.5rem}caption,.table-caption{padding-top:.5rem;padding-bottom:.5rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-top{margin-top:.5rem;margin-bottom:.25rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-bottom{padding-top:.25rem;margin-bottom:.5rem;text-align:center}.utterances{max-width:none;margin-left:-8px}iframe{margin-bottom:1em}details{margin-bottom:1em}details[show]{margin-bottom:0}details>summary{color:#6c757d}details>summary>p:only-child{display:inline}pre.sourceCode,code.sourceCode{position:relative}dd code:not(.sourceCode),p code:not(.sourceCode){white-space:pre-wrap}code{white-space:pre}@media print{code{white-space:pre-wrap}}pre>code{display:block}pre>code.sourceCode{white-space:pre}pre>code.sourceCode>span>a:first-child::before{text-decoration:none}pre.code-overflow-wrap>code.sourceCode{white-space:pre-wrap}pre.code-overflow-scroll>code.sourceCode{white-space:pre}code a:any-link{color:inherit;text-decoration:none}code a:hover{color:inherit;text-decoration:underline}ul.task-list{padding-left:1em}[data-tippy-root]{display:inline-block}.tippy-content .footnote-back{display:none}.footnote-back{margin-left:.2em}.tippy-content{overflow-x:auto}.quarto-embedded-source-code{display:none}.quarto-unresolved-ref{font-weight:600}.quarto-cover-image{max-width:35%;float:right;margin-left:30px}.cell-output-display .widget-subarea{margin-bottom:1em}.cell-output-display:not(.no-overflow-x),.knitsql-table:not(.no-overflow-x){overflow-x:auto}.panel-input{margin-bottom:1em}.panel-input>div,.panel-input>div>div{display:inline-block;vertical-align:top;padding-right:12px}.panel-input>p:last-child{margin-bottom:0}.layout-sidebar{margin-bottom:1em}.layout-sidebar .tab-content{border:none}.tab-content>.page-columns.active{display:grid}div.sourceCode>iframe{width:100%;height:300px;margin-bottom:-0.5em}a{text-underline-offset:3px}div.ansi-escaped-output{font-family:monospace;display:block}/*! + */@import"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400&display=swap";:root,[data-bs-theme=light]{--bs-blue: #2c3e50;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #e83e8c;--bs-red: #e74c3c;--bs-orange: #fd7e14;--bs-yellow: #f39c12;--bs-green: #18bc9c;--bs-teal: #20c997;--bs-cyan: #3498db;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #ecf0f1;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #7b8a8b;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-default: #6c757d;--bs-primary: #2c3e50;--bs-secondary: #6c757d;--bs-success: #18bc9c;--bs-info: #3498db;--bs-warning: #f39c12;--bs-danger: #e74c3c;--bs-light: #ecf0f1;--bs-dark: #7b8a8b;--bs-default-rgb: 108, 117, 125;--bs-primary-rgb: 44, 62, 80;--bs-secondary-rgb: 108, 117, 125;--bs-success-rgb: 24, 188, 156;--bs-info-rgb: 52, 152, 219;--bs-warning-rgb: 243, 156, 18;--bs-danger-rgb: 231, 76, 60;--bs-light-rgb: 236, 240, 241;--bs-dark-rgb: 123, 138, 139;--bs-primary-text-emphasis: #121920;--bs-secondary-text-emphasis: #2b2f32;--bs-success-text-emphasis: #0a4b3e;--bs-info-text-emphasis: #153d58;--bs-warning-text-emphasis: #613e07;--bs-danger-text-emphasis: #5c1e18;--bs-light-text-emphasis: #7b8a8b;--bs-dark-text-emphasis: #7b8a8b;--bs-primary-bg-subtle: #d5d8dc;--bs-secondary-bg-subtle: #e2e3e5;--bs-success-bg-subtle: #d1f2eb;--bs-info-bg-subtle: #d6eaf8;--bs-warning-bg-subtle: #fdebd0;--bs-danger-bg-subtle: #fadbd8;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #abb2b9;--bs-secondary-border-subtle: #c4c8cb;--bs-success-border-subtle: #a3e4d7;--bs-info-border-subtle: #aed6f1;--bs-warning-border-subtle: #fad7a0;--bs-danger-border-subtle: #f5b7b1;--bs-light-border-subtle: #ecf0f1;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-root-font-size: 17px;--bs-body-font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg: #fff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb: 33, 37, 41;--bs-secondary-bg: #ecf0f1;--bs-secondary-bg-rgb: 236, 240, 241;--bs-tertiary-color: rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb: 33, 37, 41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #18bc9c;--bs-link-color-rgb: 24, 188, 156;--bs-link-decoration: underline;--bs-link-hover-color: #13967d;--bs-link-hover-color-rgb: 19, 150, 125;--bs-code-color: #7d12ba;--bs-highlight-bg: #fdebd0;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, 0.175);--bs-border-radius: 0.25rem;--bs-border-radius-sm: 0.2em;--bs-border-radius-lg: 0.5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width: 0.25rem;--bs-focus-ring-opacity: 0.25;--bs-focus-ring-color: rgba(44, 62, 80, 0.25);--bs-form-valid-color: #18bc9c;--bs-form-valid-border-color: #18bc9c;--bs-form-invalid-color: #e74c3c;--bs-form-invalid-border-color: #e74c3c}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43, 48, 53;--bs-primary-text-emphasis: #808b96;--bs-secondary-text-emphasis: #a7acb1;--bs-success-text-emphasis: #74d7c4;--bs-info-text-emphasis: #85c1e9;--bs-warning-text-emphasis: #f8c471;--bs-danger-text-emphasis: #f1948a;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #090c10;--bs-secondary-bg-subtle: #161719;--bs-success-bg-subtle: #05261f;--bs-info-bg-subtle: #0a1e2c;--bs-warning-bg-subtle: #311f04;--bs-danger-bg-subtle: #2e0f0c;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #1a2530;--bs-secondary-border-subtle: #41464b;--bs-success-border-subtle: #0e715e;--bs-info-border-subtle: #1f5b83;--bs-warning-border-subtle: #925e0b;--bs-danger-border-subtle: #8b2e24;--bs-light-border-subtle: #7b8a8b;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #808b96;--bs-link-hover-color: #99a2ab;--bs-link-color-rgb: 128, 139, 150;--bs-link-hover-color-rgb: 153, 162, 171;--bs-code-color: white;--bs-border-color: #7b8a8b;--bs-border-color-translucent: rgba(255, 255, 255, 0.15);--bs-form-valid-color: #74d7c4;--bs-form-valid-border-color: #74d7c4;--bs-form-invalid-color: #f1948a;--bs-form-invalid-border-color: #f1948a}*,*::before,*::after{box-sizing:border-box}:root{font-size:var(--bs-root-font-size)}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h1,.h1{font-size:2rem}}h2,.h2{font-size:calc(1.29rem + 0.48vw)}@media(min-width: 1200px){h2,.h2{font-size:1.65rem}}h3,.h3{font-size:calc(1.27rem + 0.24vw)}@media(min-width: 1200px){h3,.h3{font-size:1.45rem}}h4,.h4{font-size:1.25rem}h5,.h5{font-size:1.1rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #ecf0f1}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:0.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em;color:#000;background-color:#f8f9fa;padding:.5rem;border:1px solid var(--bs-border-color, #dee2e6);border-radius:.25rem}pre code{background-color:rgba(0,0,0,0);font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:var(--bs-code-color);background-color:#f8f9fa;border-radius:.25rem;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#fff;background-color:#212529;border-radius:.2em}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:rgba(33,37,41,.75);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:rgba(33,37,41,.75)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media(min-width: 576px){.container-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media(min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: #212529;--bs-table-bg: #fff;--bs-table-border-color: #dee2e6;--bs-table-accent-bg: transparent;--bs-table-striped-color: #212529;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: #212529;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: #212529;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(1px*2) solid #9ba5ae}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #fff;--bs-table-bg: #2c3e50;--bs-table-border-color: #415162;--bs-table-striped-bg: #374859;--bs-table-striped-color: #fff;--bs-table-active-bg: #415162;--bs-table-active-color: #fff;--bs-table-hover-bg: #3c4c5d;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #fff;--bs-table-bg: #6c757d;--bs-table-border-color: #7b838a;--bs-table-striped-bg: #737c84;--bs-table-striped-color: #fff;--bs-table-active-bg: #7b838a;--bs-table-active-color: #fff;--bs-table-hover-bg: #777f87;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #fff;--bs-table-bg: #18bc9c;--bs-table-border-color: #2fc3a6;--bs-table-striped-bg: #24bfa1;--bs-table-striped-color: #fff;--bs-table-active-bg: #2fc3a6;--bs-table-active-color: #fff;--bs-table-hover-bg: #29c1a3;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #fff;--bs-table-bg: #3498db;--bs-table-border-color: #48a2df;--bs-table-striped-bg: #3e9ddd;--bs-table-striped-color: #fff;--bs-table-active-bg: #48a2df;--bs-table-active-color: #fff;--bs-table-hover-bg: #43a0de;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #fff;--bs-table-bg: #f39c12;--bs-table-border-color: #f4a62a;--bs-table-striped-bg: #f4a11e;--bs-table-striped-color: #fff;--bs-table-active-bg: #f4a62a;--bs-table-active-color: #000;--bs-table-hover-bg: #f4a324;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #fff;--bs-table-bg: #e74c3c;--bs-table-border-color: #e95e50;--bs-table-striped-bg: #e85546;--bs-table-striped-color: #fff;--bs-table-active-bg: #e95e50;--bs-table-active-color: #fff;--bs-table-hover-bg: #e9594b;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #ecf0f1;--bs-table-border-color: #d4d8d9;--bs-table-striped-bg: #e0e4e5;--bs-table-striped-color: #000;--bs-table-active-bg: #d4d8d9;--bs-table-active-color: #000;--bs-table-hover-bg: #dadedf;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #7b8a8b;--bs-table-border-color: #889697;--bs-table-striped-bg: #829091;--bs-table-striped-color: #fff;--bs-table-active-bg: #889697;--bs-table-active-color: #fff;--bs-table-hover-bg: #859394;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(0.375rem + 1px);padding-bottom:calc(0.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:rgba(33,37,41,.75)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fff;background-clip:padding-box;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#969fa8;outline:0;box-shadow:0 0 0 .25rem rgba(44,62,80,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:rgba(33,37,41,.75);opacity:1}.form-control:disabled{background-color:#ecf0f1;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#212529;background-color:#f8f9fa;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#ecf0f1}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2));padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + calc(1px * 2))}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2))}.form-control-color{width:3rem;height:calc(1.5em + 0.75rem + calc(1px * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:.25rem}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:.25rem}.form-control-color.form-control-sm{height:calc(1.5em + 0.5rem + calc(1px * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(1px * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fff;background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#969fa8;outline:0;box-shadow:0 0 0 .25rem rgba(44,62,80,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#ecf0f1}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem;border-radius:.2em}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.5rem}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-reverse{padding-right:0;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:0;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{--bs-form-check-bg: #fff;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid #dee2e6;print-color-adjust:exact}.form-check-input[type=checkbox],.shiny-input-container .checkbox input[type=checkbox],.shiny-input-container .checkbox-inline input[type=checkbox],.shiny-input-container .radio input[type=checkbox],.shiny-input-container .radio-inline input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio],.shiny-input-container .checkbox input[type=radio],.shiny-input-container .checkbox-inline input[type=radio],.shiny-input-container .radio input[type=radio],.shiny-input-container .radio-inline input[type=radio]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#969fa8;outline:0;box-shadow:0 0 0 .25rem rgba(44,62,80,.25)}.form-check-input:checked,.shiny-input-container .checkbox input:checked,.shiny-input-container .checkbox-inline input:checked,.shiny-input-container .radio input:checked,.shiny-input-container .radio-inline input:checked{background-color:#2c3e50;border-color:#2c3e50}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate,.shiny-input-container .checkbox input[type=checkbox]:indeterminate,.shiny-input-container .checkbox-inline input[type=checkbox]:indeterminate,.shiny-input-container .radio input[type=checkbox]:indeterminate,.shiny-input-container .radio-inline input[type=checkbox]:indeterminate{background-color:#2c3e50;border-color:#2c3e50;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{cursor:default;opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23969fa8'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:rgba(0,0,0,0)}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(44,62,80,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(44,62,80,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#2c3e50;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#c0c5cb}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#f8f9fa;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#2c3e50;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#c0c5cb}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#f8f9fa;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:rgba(33,37,41,.75)}.form-range:disabled::-moz-range-thumb{background-color:rgba(33,37,41,.75)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(1px * 2));min-height:calc(3.5rem + calc(1px * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:1px solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:#fff;border-radius:.25rem}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:1px 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:#ecf0f1}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:.25rem}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(1px*-1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#18bc9c}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:#18bc9c;border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#18bc9c;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2318bc9c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#18bc9c;box-shadow:0 0 0 .25rem rgba(24,188,156,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#18bc9c}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2318bc9c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#18bc9c;box-shadow:0 0 0 .25rem rgba(24,188,156,.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#18bc9c}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#18bc9c}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(24,188,156,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#18bc9c}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#e74c3c}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:#e74c3c;border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#e74c3c;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e74c3c' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#e74c3c;box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#e74c3c}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e74c3c' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#e74c3c;box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#e74c3c}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#e74c3c}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#e74c3c}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: 0.75rem;--bs-btn-padding-y: 0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: #212529;--bs-btn-bg: transparent;--bs-btn-border-width: 1px;--bs-btn-border-color: transparent;--bs-btn-border-radius: 0.25rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity: 0.65;--bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-default{--bs-btn-color: #fff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5c636a;--bs-btn-hover-border-color: #565e64;--bs-btn-focus-shadow-rgb: 130, 138, 145;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565e64;--bs-btn-active-border-color: #51585e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #2c3e50;--bs-btn-border-color: #2c3e50;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #253544;--bs-btn-hover-border-color: #233240;--bs-btn-focus-shadow-rgb: 76, 91, 106;--bs-btn-active-color: #fff;--bs-btn-active-bg: #233240;--bs-btn-active-border-color: #212f3c;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #2c3e50;--bs-btn-disabled-border-color: #2c3e50}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5c636a;--bs-btn-hover-border-color: #565e64;--bs-btn-focus-shadow-rgb: 130, 138, 145;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565e64;--bs-btn-active-border-color: #51585e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #18bc9c;--bs-btn-border-color: #18bc9c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #14a085;--bs-btn-hover-border-color: #13967d;--bs-btn-focus-shadow-rgb: 59, 198, 171;--bs-btn-active-color: #fff;--bs-btn-active-bg: #13967d;--bs-btn-active-border-color: #128d75;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #18bc9c;--bs-btn-disabled-border-color: #18bc9c}.btn-info{--bs-btn-color: #fff;--bs-btn-bg: #3498db;--bs-btn-border-color: #3498db;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #2c81ba;--bs-btn-hover-border-color: #2a7aaf;--bs-btn-focus-shadow-rgb: 82, 167, 224;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2a7aaf;--bs-btn-active-border-color: #2772a4;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #3498db;--bs-btn-disabled-border-color: #3498db}.btn-warning{--bs-btn-color: #fff;--bs-btn-bg: #f39c12;--bs-btn-border-color: #f39c12;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #cf850f;--bs-btn-hover-border-color: #c27d0e;--bs-btn-focus-shadow-rgb: 245, 171, 54;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c27d0e;--bs-btn-active-border-color: #b6750e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #f39c12;--bs-btn-disabled-border-color: #f39c12}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #e74c3c;--bs-btn-border-color: #e74c3c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c44133;--bs-btn-hover-border-color: #b93d30;--bs-btn-focus-shadow-rgb: 235, 103, 89;--bs-btn-active-color: #fff;--bs-btn-active-bg: #b93d30;--bs-btn-active-border-color: #ad392d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #e74c3c;--bs-btn-disabled-border-color: #e74c3c}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #ecf0f1;--bs-btn-border-color: #ecf0f1;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #c9cccd;--bs-btn-hover-border-color: #bdc0c1;--bs-btn-focus-shadow-rgb: 201, 204, 205;--bs-btn-active-color: #000;--bs-btn-active-bg: #bdc0c1;--bs-btn-active-border-color: #b1b4b5;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ecf0f1;--bs-btn-disabled-border-color: #ecf0f1}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #7b8a8b;--bs-btn-border-color: #7b8a8b;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #8f9c9c;--bs-btn-hover-border-color: #889697;--bs-btn-focus-shadow-rgb: 143, 156, 156;--bs-btn-active-color: #fff;--bs-btn-active-bg: #95a1a2;--bs-btn-active-border-color: #889697;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #7b8a8b;--bs-btn-disabled-border-color: #7b8a8b}.btn-outline-default{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108, 117, 125;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-primary{--bs-btn-color: #2c3e50;--bs-btn-border-color: #2c3e50;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #2c3e50;--bs-btn-hover-border-color: #2c3e50;--bs-btn-focus-shadow-rgb: 44, 62, 80;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2c3e50;--bs-btn-active-border-color: #2c3e50;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #2c3e50;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #2c3e50;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108, 117, 125;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #18bc9c;--bs-btn-border-color: #18bc9c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #18bc9c;--bs-btn-hover-border-color: #18bc9c;--bs-btn-focus-shadow-rgb: 24, 188, 156;--bs-btn-active-color: #fff;--bs-btn-active-bg: #18bc9c;--bs-btn-active-border-color: #18bc9c;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #18bc9c;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #18bc9c;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #3498db;--bs-btn-border-color: #3498db;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #3498db;--bs-btn-hover-border-color: #3498db;--bs-btn-focus-shadow-rgb: 52, 152, 219;--bs-btn-active-color: #fff;--bs-btn-active-bg: #3498db;--bs-btn-active-border-color: #3498db;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #3498db;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #3498db;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #f39c12;--bs-btn-border-color: #f39c12;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #f39c12;--bs-btn-hover-border-color: #f39c12;--bs-btn-focus-shadow-rgb: 243, 156, 18;--bs-btn-active-color: #fff;--bs-btn-active-bg: #f39c12;--bs-btn-active-border-color: #f39c12;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #f39c12;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f39c12;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #e74c3c;--bs-btn-border-color: #e74c3c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #e74c3c;--bs-btn-hover-border-color: #e74c3c;--bs-btn-focus-shadow-rgb: 231, 76, 60;--bs-btn-active-color: #fff;--bs-btn-active-bg: #e74c3c;--bs-btn-active-border-color: #e74c3c;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #e74c3c;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #e74c3c;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #ecf0f1;--bs-btn-border-color: #ecf0f1;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ecf0f1;--bs-btn-hover-border-color: #ecf0f1;--bs-btn-focus-shadow-rgb: 236, 240, 241;--bs-btn-active-color: #000;--bs-btn-active-bg: #ecf0f1;--bs-btn-active-border-color: #ecf0f1;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ecf0f1;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ecf0f1;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #7b8a8b;--bs-btn-border-color: #7b8a8b;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #7b8a8b;--bs-btn-hover-border-color: #7b8a8b;--bs-btn-focus-shadow-rgb: 123, 138, 139;--bs-btn-active-color: #fff;--bs-btn-active-bg: #7b8a8b;--bs-btn-active-border-color: #7b8a8b;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #7b8a8b;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #7b8a8b;--bs-btn-bg: transparent;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: #18bc9c;--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: #13967d;--bs-btn-hover-border-color: transparent;--bs-btn-active-color: #13967d;--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 59, 198, 171;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: 0.5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius: 0.5rem}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: 0.25rem;--bs-btn-padding-x: 0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius: 0.2em}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: 0.5rem;--bs-dropdown-spacer: 0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color: #212529;--bs-dropdown-bg: #fff;--bs-dropdown-border-color: rgba(0, 0, 0, 0.175);--bs-dropdown-border-radius: 0.25rem;--bs-dropdown-border-width: 1px;--bs-dropdown-inner-border-radius: calc(0.25rem - 1px);--bs-dropdown-divider-bg: rgba(0, 0, 0, 0.175);--bs-dropdown-divider-margin-y: 0.5rem;--bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-dropdown-link-color: #7b8a8b;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-link-hover-bg: #2c3e50;--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #2c3e50;--bs-dropdown-link-disabled-color: rgba(33, 37, 41, 0.5);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: 0.25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: 0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:0.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: rgba(0, 0, 0, 0.175);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: rgba(0, 0, 0, 0.175);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #2c3e50;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:.25rem}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(1px*-1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(1px*-1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 2rem;--bs-nav-link-padding-y: 0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: #18bc9c;--bs-nav-link-hover-color: #13967d;--bs-nav-link-disabled-color: #6c757d;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(44,62,80,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: 1px;--bs-nav-tabs-border-color: #ecf0f1;--bs-nav-tabs-border-radius: 0.25rem;--bs-nav-tabs-link-hover-border-color: #ecf0f1 #ecf0f1 #ecf0f1;--bs-nav-tabs-link-active-color: #000;--bs-nav-tabs-link-active-bg: #fff;--bs-nav-tabs-link-active-border-color: #dee2e6 #dee2e6 #fff;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1*var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid rgba(0,0,0,0);border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1*var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: 0.25rem;--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #2c3e50}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: 0.125rem;--bs-nav-underline-link-active-color: #000;gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid rgba(0,0,0,0)}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: 1rem;--bs-navbar-color: #ccd1d5;--bs-navbar-hover-color: rgba(140, 222, 206, 0.8);--bs-navbar-disabled-color: rgba(204, 209, 213, 0.75);--bs-navbar-active-color: #8cdece;--bs-navbar-brand-padding-y: 0.3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: #ccd1d5;--bs-navbar-brand-hover-color: #8cdece;--bs-navbar-nav-link-padding-x: 0.5rem;--bs-navbar-toggler-padding-y: 0.25;--bs-navbar-toggler-padding-x: 0;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23ccd1d5' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(204, 209, 213, 0);--bs-navbar-toggler-border-radius: 0.25rem;--bs-navbar-toggler-focus-width: 0.25rem;--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: 0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:rgba(0,0,0,0);border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: #ccd1d5;--bs-navbar-hover-color: rgba(140, 222, 206, 0.8);--bs-navbar-disabled-color: rgba(204, 209, 213, 0.75);--bs-navbar-active-color: #8cdece;--bs-navbar-brand-color: #ccd1d5;--bs-navbar-brand-hover-color: #8cdece;--bs-navbar-toggler-border-color: rgba(204, 209, 213, 0);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23ccd1d5' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23ccd1d5' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: 0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: 1px;--bs-card-border-color: rgba(0, 0, 0, 0.175);--bs-card-border-radius: 0.25rem;--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(0.25rem - 1px);--bs-card-cap-padding-y: 0.5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(52, 58, 64, 0.25);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: #fff;--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: 0.75rem;position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-0.5*var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-bottom:calc(-1*var(--bs-card-cap-padding-y));margin-left:calc(-0.5*var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-left:calc(-0.5*var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media(min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: #212529;--bs-accordion-bg: #fff;--bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;--bs-accordion-border-color: #dee2e6;--bs-accordion-border-width: 1px;--bs-accordion-border-radius: 0.25rem;--bs-accordion-inner-border-radius: calc(0.25rem - 1px);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #212529;--bs-accordion-btn-bg: #fff;--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23121920'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #969fa8;--bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(44, 62, 80, 0.25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #121920;--bs-accordion-active-bg: #d5d8dc}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1*var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23808b96'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23808b96'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0.75rem;--bs-breadcrumb-padding-y: 0.375rem;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: 0.25rem;--bs-breadcrumb-divider-color: rgba(33, 37, 41, 0.75);--bs-breadcrumb-item-padding-x: 0.5rem;--bs-breadcrumb-item-active-color: rgba(33, 37, 41, 0.75);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: 0.75rem;--bs-pagination-padding-y: 0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color: #fff;--bs-pagination-bg: #18bc9c;--bs-pagination-border-width: 0;--bs-pagination-border-color: transparent;--bs-pagination-border-radius: 0.25rem;--bs-pagination-hover-color: #fff;--bs-pagination-hover-bg: #0f7864;--bs-pagination-hover-border-color: transparent;--bs-pagination-focus-color: #13967d;--bs-pagination-focus-bg: #ecf0f1;--bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(44, 62, 80, 0.25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0f7864;--bs-pagination-active-border-color: transparent;--bs-pagination-disabled-color: #ecf0f1;--bs-pagination-disabled-bg: #3be6c4;--bs-pagination-disabled-border-color: transparent;display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(0*-1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: 0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius: 0.5rem}.pagination-sm{--bs-pagination-padding-x: 0.5rem;--bs-pagination-padding-y: 0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius: 0.2em}.badge{--bs-badge-padding-x: 0.65em;--bs-badge-padding-y: 0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: 0.25rem;display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: 1px solid var(--bs-alert-border-color);--bs-alert-border-radius: 0.25rem;--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{--bs-alert-color: var(--bs-default-text-emphasis);--bs-alert-bg: var(--bs-default-bg-subtle);--bs-alert-border-color: var(--bs-default-border-subtle);--bs-alert-link-color: var(--bs-default-text-emphasis)}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg: #ecf0f1;--bs-progress-border-radius: 0.25rem;--bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #2c3e50;--bs-progress-bar-transition: width 0.6s ease;display:flex;display:-webkit-flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: #212529;--bs-list-group-bg: #fff;--bs-list-group-border-color: #dee2e6;--bs-list-group-border-width: 1px;--bs-list-group-border-radius: 0.25rem;--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: 0.5rem;--bs-list-group-action-color: rgba(33, 37, 41, 0.75);--bs-list-group-action-hover-color: #000;--bs-list-group-action-hover-bg: #ecf0f1;--bs-list-group-action-active-color: #212529;--bs-list-group-action-active-bg: #ecf0f1;--bs-list-group-disabled-color: rgba(33, 37, 41, 0.75);--bs-list-group-disabled-bg: #ecf0f1;--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #2c3e50;--bs-list-group-active-border-color: #2c3e50;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1*var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{--bs-list-group-color: var(--bs-default-text-emphasis);--bs-list-group-bg: var(--bs-default-bg-subtle);--bs-list-group-border-color: var(--bs-default-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-default-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-default-border-subtle);--bs-list-group-active-color: var(--bs-default-bg-subtle);--bs-list-group-active-bg: var(--bs-default-text-emphasis);--bs-list-group-active-border-color: var(--bs-default-text-emphasis)}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #fff;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: 0.4;--bs-btn-close-hover-opacity: 1;--bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(44, 62, 80, 0.25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: 0.25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:rgba(0,0,0,0) var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: 0.75rem;--bs-toast-padding-y: 0.5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg: rgba(255, 255, 255, 0.85);--bs-toast-border-width: 1px;--bs-toast-border-color: rgba(0, 0, 0, 0.175);--bs-toast-border-radius: 0.25rem;--bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-toast-header-color: rgba(33, 37, 41, 0.75);--bs-toast-header-bg: rgba(255, 255, 255, 0.85);--bs-toast-header-border-color: rgba(0, 0, 0, 0.175);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-0.5*var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: 0.5rem;--bs-modal-color: ;--bs-modal-bg: #fff;--bs-modal-border-color: rgba(0, 0, 0, 0.175);--bs-modal-border-width: 1px;--bs-modal-border-radius: 0.5rem;--bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius: calc(0.5rem - 1px);--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: #dee2e6;--bs-modal-header-border-width: 1px;--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: 0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: #dee2e6;--bs-modal-footer-border-width: 1px;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin)*2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - var(--bs-modal-margin)*2)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: 0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y)*.5) calc(var(--bs-modal-header-padding-x)*.5);margin:calc(-0.5*var(--bs-modal-header-padding-y)) calc(-0.5*var(--bs-modal-header-padding-x)) calc(-0.5*var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap)*.5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap)*.5)}@media(min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media(min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media(min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: 0.5rem;--bs-tooltip-padding-y: 0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color: #fff;--bs-tooltip-bg: #000;--bs-tooltip-border-radius: 0.25rem;--bs-tooltip-opacity: 0.9;--bs-tooltip-arrow-width: 0.8rem;--bs-tooltip-arrow-height: 0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) 0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size:0.875rem;--bs-popover-bg: #fff;--bs-popover-border-width: 1px;--bs-popover-border-color: rgba(0, 0, 0, 0.175);--bs-popover-border-radius: 0.5rem;--bs-popover-inner-border-radius: calc(0.5rem - 1px);--bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: 0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: #ecf0f1;--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: #212529;--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: 0.5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{border-width:0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-0.5*var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) 0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-border-width: 0.25em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:rgba(0,0,0,0)}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: 0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: #212529;--bs-offcanvas-bg: #fff;--bs-offcanvas-border-width: 1px;--bs-offcanvas-border-color: rgba(0, 0, 0, 0.175);--bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-offcanvas-transition: transform 0.3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media(max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 575.98px)and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media(min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 767.98px)and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media(min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 991.98px)and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media(min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 1199.98px)and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media(min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 1399.98px)and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media(min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y)*.5) calc(var(--bs-offcanvas-padding-x)*.5);margin-top:calc(-0.5*var(--bs-offcanvas-padding-y));margin-right:calc(-0.5*var(--bs-offcanvas-padding-x));margin-bottom:calc(-0.5*var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-default{color:#fff !important;background-color:RGBA(var(--bs-default-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#fff !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#fff !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-default{color:RGBA(var(--bs-default-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-default-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-default:hover,.link-default:focus{color:RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(35, 50, 64, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(35, 50, 64, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(19, 150, 125, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(19, 150, 125, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(42, 122, 175, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(42, 122, 175, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(194, 125, 14, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(194, 125, 14, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(185, 61, 48, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(185, 61, 48, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(240, 243, 244, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(240, 243, 244, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(98, 110, 111, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(98, 110, 111, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;-webkit-flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media(prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-inline-grid{display:inline-grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.focus-ring-default{--bs-focus-ring-color: rgba(var(--bs-default-rgb), var(--bs-focus-ring-opacity))}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-start-0{border-left:0 !important}.border-default{--bs-border-opacity: 1;border-color:rgba(var(--bs-default-rgb), var(--bs-border-opacity)) !important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.border-opacity-10{--bs-border-opacity: 0.1}.border-opacity-25{--bs-border-opacity: 0.25}.border-opacity-50{--bs-border-opacity: 0.5}.border-opacity-75{--bs-border-opacity: 0.75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.325rem + 0.9vw) !important}.fs-2{font-size:calc(1.29rem + 0.48vw) !important}.fs-3{font-size:calc(1.27rem + 0.24vw) !important}.fs-4{font-size:1.25rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: 0.25}.text-opacity-50{--bs-text-opacity: 0.5}.text-opacity-75{--bs-text-opacity: 0.75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity: 0.1}.link-opacity-10-hover:hover{--bs-link-opacity: 0.1}.link-opacity-25{--bs-link-opacity: 0.25}.link-opacity-25-hover:hover{--bs-link-opacity: 0.25}.link-opacity-50{--bs-link-opacity: 0.5}.link-opacity-50-hover:hover{--bs-link-opacity: 0.5}.link-opacity-75{--bs-link-opacity: 0.75}.link-opacity-75-hover:hover{--bs-link-opacity: 0.75}.link-opacity-100{--bs-link-opacity: 1}.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-default{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-default-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10{--bs-link-underline-opacity: 0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: 0.1}.link-underline-opacity-25{--bs-link-underline-opacity: 0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: 0.25}.link-underline-opacity-50{--bs-link-underline-opacity: 0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: 0.5}.link-underline-opacity-75{--bs-link-underline-opacity: 0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: 0.75}.link-underline-opacity-100{--bs-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-opacity-10{--bs-bg-opacity: 0.1}.bg-opacity-25{--bs-bg-opacity: 0.25}.bg-opacity-50{--bs-bg-opacity: 0.5}.bg-opacity-75{--bs-bg-opacity: 0.75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:var(--bs-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--bs-border-radius-sm) !important}.rounded-2{border-radius:var(--bs-border-radius) !important}.rounded-3{border-radius:var(--bs-border-radius-lg) !important}.rounded-4{border-radius:var(--bs-border-radius-xl) !important}.rounded-5{border-radius:var(--bs-border-radius-xxl) !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--bs-border-radius-pill) !important}.rounded-top{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-inline-grid{display:inline-grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-inline-grid{display:inline-grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-inline-grid{display:inline-grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-inline-grid{display:inline-grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-inline-grid{display:inline-grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#fff}.bg-primary{color:#fff}.bg-secondary{color:#fff}.bg-success{color:#fff}.bg-info{color:#fff}.bg-warning{color:#fff}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.65rem !important}.fs-3{font-size:1.45rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-inline-grid{display:inline-grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.bg-blue{--bslib-color-bg: #2c3e50;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #2c3e50;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #6f42c1;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #6f42c1;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #e83e8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #e83e8c;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #e74c3c;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #fd7e14;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #fd7e14;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #f39c12;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #18bc9c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #18bc9c;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #3498db;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #3498db;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #6c757d}.bg-default{--bslib-color-bg: #6c757d;--bslib-color-fg: #fff}.text-primary{--bslib-color-fg: #2c3e50}.bg-primary{--bslib-color-bg: #2c3e50;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #6c757d}.bg-secondary{--bslib-color-bg: #6c757d;--bslib-color-fg: #fff}.text-success{--bslib-color-fg: #18bc9c}.bg-success{--bslib-color-bg: #18bc9c;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #3498db}.bg-info{--bslib-color-bg: #3498db;--bslib-color-fg: #fff}.text-warning{--bslib-color-fg: #f39c12}.bg-warning{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff}.text-danger{--bslib-color-fg: #e74c3c}.bg-danger{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #ecf0f1}.bg-light{--bslib-color-bg: #ecf0f1;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #7b8a8b}.bg-dark{--bslib-color-bg: #7b8a8b;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #432c91;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #432c91;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #47407d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #47407d;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #773e68;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #773e68;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #774448;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #774448;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #805838;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #805838;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #7c6437;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #7c6437;color:#fff}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #24706e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #24706e;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #fff;--bslib-color-bg: #27766c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #27766c;color:#fff}.bg-gradient-blue-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #2f6288;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #2f6288;color:#fff}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #4f22b1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #4f22b1;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #6a24de;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #6a24de;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9a22c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9a22c9;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #9a28a9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9a28a9;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a23c99;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a23c99;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #9e4898;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #9e4898;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #4755d0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #4755d0;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5246e9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5246e9;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #544094;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #544094;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #6b2ed5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #6b2ed5;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9f40ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9f40ac;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #9f468c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9f468c;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a85a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a85a7c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a4667b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #a4667b;color:#fff}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #4c73b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #4c73b2;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4f78b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4f78b0;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5764cb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5764cb;color:#fff}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #9d3e74;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #9d3e74;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b42cb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b42cb5;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b840a1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b840a1;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #e8446c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #e8446c;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0585c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0585c;color:#fff}.bg-gradient-pink-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec645b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec645b;color:#fff}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #957092;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #957092;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #fff;--bslib-color-bg: #987690;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #987690;color:#fff}.bg-gradient-pink-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a062ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a062ac;color:#fff}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #9c4644;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #9c4644;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b33485;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b33485;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b74871;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b74871;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #e7465c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #e7465c;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0602c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0602c;color:#fff}.bg-gradient-red-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec6c2b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec6c2b;color:#fff}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #947962;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #947962;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #fff;--bslib-color-bg: #977e60;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #977e60;color:#fff}.bg-gradient-red-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #9f6a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #9f6a7c;color:#fff}.bg-gradient-orange-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a9642c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #a9642c;color:#fff}.bg-gradient-orange-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #c1526d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c1526d;color:#fff}.bg-gradient-orange-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c46659;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c46659;color:#fff}.bg-gradient-orange-pink{--bslib-color-fg: #fff;--bslib-color-bg: #f56444;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #f56444;color:#fff}.bg-gradient-orange-red{--bslib-color-fg: #fff;--bslib-color-bg: #f46a24;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #f46a24;color:#fff}.bg-gradient-orange-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #f98a13;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #f98a13;color:#fff}.bg-gradient-orange-green{--bslib-color-fg: #fff;--bslib-color-bg: #a1974a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #a1974a;color:#fff}.bg-gradient-orange-teal{--bslib-color-fg: #fff;--bslib-color-bg: #a59c48;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a59c48;color:#fff}.bg-gradient-orange-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #ad8864;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #ad8864;color:#fff}.bg-gradient-yellow-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a3762b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #a3762b;color:#fff}.bg-gradient-yellow-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #bb646c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #bb646c;color:#fff}.bg-gradient-yellow-purple{--bslib-color-fg: #fff;--bslib-color-bg: #be7858;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #be7858;color:#fff}.bg-gradient-yellow-pink{--bslib-color-fg: #fff;--bslib-color-bg: #ef7643;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #ef7643;color:#fff}.bg-gradient-yellow-red{--bslib-color-fg: #fff;--bslib-color-bg: #ee7c23;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #ee7c23;color:#fff}.bg-gradient-yellow-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f79013;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f79013;color:#fff}.bg-gradient-yellow-green{--bslib-color-fg: #fff;--bslib-color-bg: #9ba949;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #9ba949;color:#fff}.bg-gradient-yellow-teal{--bslib-color-fg: #fff;--bslib-color-bg: #9fae47;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #9fae47;color:#fff}.bg-gradient-yellow-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a79a62;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a79a62;color:#fff}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #208a7e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #208a7e;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3777be;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3777be;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #3b8bab;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3b8bab;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #6b8a96;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #6b8a96;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #6b8f76;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #6b8f76;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #fff;--bslib-color-bg: #74a366;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #74a366;color:#fff}.bg-gradient-green-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #70af65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #70af65;color:#fff}.bg-gradient-green-teal{--bslib-color-fg: #fff;--bslib-color-bg: #1bc19a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1bc19a;color:#fff}.bg-gradient-green-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #23aeb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #23aeb5;color:#fff}.bg-gradient-teal-blue{--bslib-color-fg: #fff;--bslib-color-bg: #25917b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #25917b;color:#fff}.bg-gradient-teal-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#fff}.bg-gradient-teal-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4093a8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4093a8;color:#fff}.bg-gradient-teal-pink{--bslib-color-fg: #fff;--bslib-color-bg: #709193;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #709193;color:#fff}.bg-gradient-teal-red{--bslib-color-fg: #fff;--bslib-color-bg: #709773;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #709773;color:#fff}.bg-gradient-teal-orange{--bslib-color-fg: #fff;--bslib-color-bg: #78ab63;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #78ab63;color:#fff}.bg-gradient-teal-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #74b762;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #74b762;color:#fff}.bg-gradient-teal-green{--bslib-color-fg: #fff;--bslib-color-bg: #1dc499;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #1dc499;color:#fff}.bg-gradient-teal-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #28b5b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #28b5b2;color:#fff}.bg-gradient-cyan-blue{--bslib-color-fg: #fff;--bslib-color-bg: #3174a3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #3174a3;color:#fff}.bg-gradient-cyan-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4862e4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4862e4;color:#fff}.bg-gradient-cyan-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4c76d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4c76d1;color:#fff}.bg-gradient-cyan-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7c74bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #7c74bb;color:#fff}.bg-gradient-cyan-red{--bslib-color-fg: #fff;--bslib-color-bg: #7c7a9b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #7c7a9b;color:#fff}.bg-gradient-cyan-orange{--bslib-color-fg: #fff;--bslib-color-bg: #848e8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #848e8b;color:#fff}.bg-gradient-cyan-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #809a8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #809a8b;color:#fff}.bg-gradient-cyan-green{--bslib-color-fg: #fff;--bslib-color-bg: #29a6c2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #29a6c2;color:#fff}.bg-gradient-cyan-teal{--bslib-color-fg: #fff;--bslib-color-bg: #2cacc0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #2cacc0;color:#fff}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}.bg-blue{--bslib-color-bg: #2c3e50;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #2c3e50;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #6f42c1;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #6f42c1;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #e83e8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #e83e8c;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #e74c3c;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #fd7e14;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #fd7e14;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #f39c12;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #18bc9c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #18bc9c;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #3498db;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #3498db;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #6c757d}.bg-default{--bslib-color-bg: #6c757d;--bslib-color-fg: #fff}.text-primary{--bslib-color-fg: #2c3e50}.bg-primary{--bslib-color-bg: #2c3e50;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #6c757d}.bg-secondary{--bslib-color-bg: #6c757d;--bslib-color-fg: #fff}.text-success{--bslib-color-fg: #18bc9c}.bg-success{--bslib-color-bg: #18bc9c;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #3498db}.bg-info{--bslib-color-bg: #3498db;--bslib-color-fg: #fff}.text-warning{--bslib-color-fg: #f39c12}.bg-warning{--bslib-color-bg: #f39c12;--bslib-color-fg: #fff}.text-danger{--bslib-color-fg: #e74c3c}.bg-danger{--bslib-color-bg: #e74c3c;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #ecf0f1}.bg-light{--bslib-color-bg: #ecf0f1;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #7b8a8b}.bg-dark{--bslib-color-bg: #7b8a8b;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #432c91;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #432c91;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #47407d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #47407d;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #773e68;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #773e68;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #774448;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #774448;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #805838;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #805838;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #7c6437;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #7c6437;color:#fff}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #24706e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #24706e;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #fff;--bslib-color-bg: #27766c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #27766c;color:#fff}.bg-gradient-blue-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #2f6288;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2c3e50 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #2f6288;color:#fff}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #4f22b1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #4f22b1;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #6a24de;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #6a24de;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9a22c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9a22c9;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #9a28a9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9a28a9;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a23c99;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a23c99;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #9e4898;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #9e4898;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #4755d0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #4755d0;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5246e9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5246e9;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #544094;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #544094;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #6b2ed5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #6b2ed5;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9f40ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9f40ac;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #9f468c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #9f468c;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a85a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #a85a7c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a4667b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #a4667b;color:#fff}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #4c73b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #4c73b2;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4f78b0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4f78b0;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5764cb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6f42c1 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #5764cb;color:#fff}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #9d3e74;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #9d3e74;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b42cb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b42cb5;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b840a1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b840a1;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #e8446c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #e8446c;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0585c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0585c;color:#fff}.bg-gradient-pink-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec645b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec645b;color:#fff}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #957092;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #957092;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #fff;--bslib-color-bg: #987690;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #987690;color:#fff}.bg-gradient-pink-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a062ac;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a062ac;color:#fff}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #9c4644;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #9c4644;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b33485;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b33485;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b74871;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #b74871;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #e7465c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #e7465c;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f0602c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f0602c;color:#fff}.bg-gradient-red-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ec6c2b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #ec6c2b;color:#fff}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #947962;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #947962;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #fff;--bslib-color-bg: #977e60;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #977e60;color:#fff}.bg-gradient-red-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #9f6a7c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e74c3c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #9f6a7c;color:#fff}.bg-gradient-orange-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a9642c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #a9642c;color:#fff}.bg-gradient-orange-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #c1526d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c1526d;color:#fff}.bg-gradient-orange-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c46659;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #c46659;color:#fff}.bg-gradient-orange-pink{--bslib-color-fg: #fff;--bslib-color-bg: #f56444;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #f56444;color:#fff}.bg-gradient-orange-red{--bslib-color-fg: #fff;--bslib-color-bg: #f46a24;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #f46a24;color:#fff}.bg-gradient-orange-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #f98a13;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #f98a13;color:#fff}.bg-gradient-orange-green{--bslib-color-fg: #fff;--bslib-color-bg: #a1974a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #a1974a;color:#fff}.bg-gradient-orange-teal{--bslib-color-fg: #fff;--bslib-color-bg: #a59c48;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a59c48;color:#fff}.bg-gradient-orange-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #ad8864;background:linear-gradient(var(--bg-gradient-deg, 140deg), #fd7e14 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #ad8864;color:#fff}.bg-gradient-yellow-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a3762b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #a3762b;color:#fff}.bg-gradient-yellow-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #bb646c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #bb646c;color:#fff}.bg-gradient-yellow-purple{--bslib-color-fg: #fff;--bslib-color-bg: #be7858;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #be7858;color:#fff}.bg-gradient-yellow-pink{--bslib-color-fg: #fff;--bslib-color-bg: #ef7643;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #ef7643;color:#fff}.bg-gradient-yellow-red{--bslib-color-fg: #fff;--bslib-color-bg: #ee7c23;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #ee7c23;color:#fff}.bg-gradient-yellow-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f79013;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #f79013;color:#fff}.bg-gradient-yellow-green{--bslib-color-fg: #fff;--bslib-color-bg: #9ba949;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #9ba949;color:#fff}.bg-gradient-yellow-teal{--bslib-color-fg: #fff;--bslib-color-bg: #9fae47;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #9fae47;color:#fff}.bg-gradient-yellow-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #a79a62;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f39c12 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #a79a62;color:#fff}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #208a7e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #208a7e;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3777be;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3777be;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #3b8bab;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #3b8bab;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #6b8a96;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #6b8a96;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #6b8f76;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #6b8f76;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #fff;--bslib-color-bg: #74a366;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #74a366;color:#fff}.bg-gradient-green-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #70af65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #70af65;color:#fff}.bg-gradient-green-teal{--bslib-color-fg: #fff;--bslib-color-bg: #1bc19a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #1bc19a;color:#fff}.bg-gradient-green-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #23aeb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #18bc9c var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #23aeb5;color:#fff}.bg-gradient-teal-blue{--bslib-color-fg: #fff;--bslib-color-bg: #25917b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #25917b;color:#fff}.bg-gradient-teal-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#fff}.bg-gradient-teal-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4093a8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4093a8;color:#fff}.bg-gradient-teal-pink{--bslib-color-fg: #fff;--bslib-color-bg: #709193;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #709193;color:#fff}.bg-gradient-teal-red{--bslib-color-fg: #fff;--bslib-color-bg: #709773;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #709773;color:#fff}.bg-gradient-teal-orange{--bslib-color-fg: #fff;--bslib-color-bg: #78ab63;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #78ab63;color:#fff}.bg-gradient-teal-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #74b762;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #74b762;color:#fff}.bg-gradient-teal-green{--bslib-color-fg: #fff;--bslib-color-bg: #1dc499;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #1dc499;color:#fff}.bg-gradient-teal-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #28b5b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #3498db var(--bg-gradient-end, 180%)) #28b5b2;color:#fff}.bg-gradient-cyan-blue{--bslib-color-fg: #fff;--bslib-color-bg: #3174a3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #2c3e50 var(--bg-gradient-end, 180%)) #3174a3;color:#fff}.bg-gradient-cyan-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4862e4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4862e4;color:#fff}.bg-gradient-cyan-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4c76d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #6f42c1 var(--bg-gradient-end, 180%)) #4c76d1;color:#fff}.bg-gradient-cyan-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7c74bb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #7c74bb;color:#fff}.bg-gradient-cyan-red{--bslib-color-fg: #fff;--bslib-color-bg: #7c7a9b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #e74c3c var(--bg-gradient-end, 180%)) #7c7a9b;color:#fff}.bg-gradient-cyan-orange{--bslib-color-fg: #fff;--bslib-color-bg: #848e8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #fd7e14 var(--bg-gradient-end, 180%)) #848e8b;color:#fff}.bg-gradient-cyan-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #809a8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #f39c12 var(--bg-gradient-end, 180%)) #809a8b;color:#fff}.bg-gradient-cyan-green{--bslib-color-fg: #fff;--bslib-color-bg: #29a6c2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #18bc9c var(--bg-gradient-end, 180%)) #29a6c2;color:#fff}.bg-gradient-cyan-teal{--bslib-color-fg: #fff;--bslib-color-bg: #2cacc0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3498db var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #2cacc0;color:#fff}.bslib-grid{display:grid !important;gap:var(--bslib-spacer, 1rem);height:var(--bslib-grid-height)}.bslib-grid.grid{grid-template-columns:repeat(var(--bs-columns, 12), minmax(0, 1fr));grid-template-rows:unset;grid-auto-rows:var(--bslib-grid--row-heights);--bslib-grid--row-heights--xs: unset;--bslib-grid--row-heights--sm: unset;--bslib-grid--row-heights--md: unset;--bslib-grid--row-heights--lg: unset;--bslib-grid--row-heights--xl: unset;--bslib-grid--row-heights--xxl: unset}.bslib-grid.grid.bslib-grid--row-heights--xs{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xs)}@media(min-width: 576px){.bslib-grid.grid.bslib-grid--row-heights--sm{--bslib-grid--row-heights: var(--bslib-grid--row-heights--sm)}}@media(min-width: 768px){.bslib-grid.grid.bslib-grid--row-heights--md{--bslib-grid--row-heights: var(--bslib-grid--row-heights--md)}}@media(min-width: 992px){.bslib-grid.grid.bslib-grid--row-heights--lg{--bslib-grid--row-heights: var(--bslib-grid--row-heights--lg)}}@media(min-width: 1200px){.bslib-grid.grid.bslib-grid--row-heights--xl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xl)}}@media(min-width: 1400px){.bslib-grid.grid.bslib-grid--row-heights--xxl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xxl)}}.bslib-grid>*>.shiny-input-container{width:100%}.bslib-grid-item{grid-column:auto/span 1}@media(max-width: 767.98px){.bslib-grid-item{grid-column:1/-1}}@media(max-width: 575.98px){.bslib-grid{grid-template-columns:1fr !important;height:var(--bslib-grid-height-mobile)}.bslib-grid.grid{height:unset !important;grid-auto-rows:var(--bslib-grid--row-heights--xs, auto)}}:root{--bslib-value-box-shadow: none;--bslib-value-box-border-width-auto-yes: var(--bslib-value-box-border-width-baseline);--bslib-value-box-border-width-auto-no: 0;--bslib-value-box-border-width-baseline: 1px}.bslib-value-box{border-width:var(--bslib-value-box-border-width-auto-no, var(--bslib-value-box-border-width-baseline));container-name:bslib-value-box;container-type:inline-size}.bslib-value-box.card{box-shadow:var(--bslib-value-box-shadow)}.bslib-value-box.border-auto{border-width:var(--bslib-value-box-border-width-auto-yes, var(--bslib-value-box-border-width-baseline))}.bslib-value-box.default{--bslib-value-box-bg-default: var(--bs-card-bg, #fff);--bslib-value-box-border-color-default: var(--bs-card-border-color, rgba(0, 0, 0, 0.175));color:var(--bslib-value-box-color);background-color:var(--bslib-value-box-bg, var(--bslib-value-box-bg-default));border-color:var(--bslib-value-box-border-color, var(--bslib-value-box-border-color-default))}.bslib-value-box .value-box-grid{display:grid;grid-template-areas:"left right";align-items:center;overflow:hidden}.bslib-value-box .value-box-showcase{height:100%;max-height:var(---bslib-value-box-showcase-max-h, 100%)}.bslib-value-box .value-box-showcase,.bslib-value-box .value-box-showcase>.html-fill-item{width:100%}.bslib-value-box[data-full-screen=true] .value-box-showcase{max-height:var(---bslib-value-box-showcase-max-h-fs, 100%)}@media screen and (min-width: 575.98px){@container bslib-value-box (max-width: 300px){.bslib-value-box:not(.showcase-bottom) .value-box-grid{grid-template-columns:1fr !important;grid-template-rows:auto auto;grid-template-areas:"top" "bottom"}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-showcase{grid-area:top !important}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-area{grid-area:bottom !important;justify-content:end}}}.bslib-value-box .value-box-area{justify-content:center;padding:1.5rem 1rem;font-size:.9rem;font-weight:500}.bslib-value-box .value-box-area *{margin-bottom:0;margin-top:0}.bslib-value-box .value-box-title{font-size:1rem;margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.bslib-value-box .value-box-title:empty::after{content:" "}.bslib-value-box .value-box-value{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}@media(min-width: 1200px){.bslib-value-box .value-box-value{font-size:1.65rem}}.bslib-value-box .value-box-value:empty::after{content:" "}.bslib-value-box .value-box-showcase{align-items:center;justify-content:center;margin-top:auto;margin-bottom:auto;padding:1rem}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{opacity:.85;min-width:50px;max-width:125%}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{font-size:4rem}.bslib-value-box.showcase-top-right .value-box-grid{grid-template-columns:1fr var(---bslib-value-box-showcase-w, 50%)}.bslib-value-box.showcase-top-right .value-box-grid .value-box-showcase{grid-area:right;margin-left:auto;align-self:start;align-items:end;padding-left:0;padding-bottom:0}.bslib-value-box.showcase-top-right .value-box-grid .value-box-area{grid-area:left;align-self:end}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid{grid-template-columns:auto var(---bslib-value-box-showcase-w-fs, 1fr)}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid>div{align-self:center}.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-showcase{margin-top:0}@container bslib-value-box (max-width: 300px){.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-grid .value-box-showcase{padding-left:1rem}}.bslib-value-box.showcase-left-center .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w, 30%) auto}.bslib-value-box.showcase-left-center[data-full-screen=true] .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w-fs, 1fr) auto}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-showcase{grid-area:left}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-area{grid-area:right}.bslib-value-box.showcase-bottom .value-box-grid{grid-template-columns:1fr;grid-template-rows:1fr var(---bslib-value-box-showcase-h, auto);grid-template-areas:"top" "bottom";overflow:hidden}.bslib-value-box.showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.bslib-value-box.showcase-bottom .value-box-grid .value-box-area{grid-area:top}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid{grid-template-rows:1fr var(---bslib-value-box-showcase-h-fs, 2fr)}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid .value-box-showcase{padding:1rem}[data-bs-theme=dark] .bslib-value-box{--bslib-value-box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 50%)}:root{--bslib-page-sidebar-title-bg: #2c3e50;--bslib-page-sidebar-title-color: #fff}.bslib-page-title{background-color:var(--bslib-page-sidebar-title-bg);color:var(--bslib-page-sidebar-title-color);font-size:1.25rem;font-weight:300;padding:var(--bslib-spacer, 1rem);padding-left:1.5rem;margin-bottom:0;border-bottom:1px solid #dee2e6}@media(min-width: 576px){.nav:not(.nav-hidden){display:flex !important;display:-webkit-flex !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column){float:none !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.bslib-nav-spacer{margin-left:auto !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.form-inline{margin-top:auto;margin-bottom:auto}.nav:not(.nav-hidden).nav-stacked{flex-direction:column;-webkit-flex-direction:column;height:100%}.nav:not(.nav-hidden).nav-stacked>.bslib-nav-spacer{margin-top:auto !important}}.bslib-card{overflow:auto}.bslib-card .card-body+.card-body{padding-top:0}.bslib-card .card-body{overflow:auto}.bslib-card .card-body p{margin-top:0}.bslib-card .card-body p:last-child{margin-bottom:0}.bslib-card .card-body{max-height:var(--bslib-card-body-max-height, none)}.bslib-card[data-full-screen=true]>.card-body{max-height:var(--bslib-card-body-max-height-full-screen, none)}.bslib-card .card-header .form-group{margin-bottom:0}.bslib-card .card-header .selectize-control{margin-bottom:0}.bslib-card .card-header .selectize-control .item{margin-right:1.15rem}.bslib-card .card-footer{margin-top:auto}.bslib-card .bslib-navs-card-title{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.bslib-card .bslib-navs-card-title .nav{margin-left:auto}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border=true]){border:none}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border-radius=true]){border-top-left-radius:0;border-top-right-radius:0}[data-full-screen=true]{position:fixed;inset:3.5rem 1rem 1rem;height:auto !important;max-height:none !important;width:auto !important;z-index:1070}.bslib-full-screen-enter{display:none;position:absolute;bottom:var(--bslib-full-screen-enter-bottom, 0.2rem);right:var(--bslib-full-screen-enter-right, 0);top:var(--bslib-full-screen-enter-top);left:var(--bslib-full-screen-enter-left);color:var(--bslib-color-fg, var(--bs-card-color));background-color:var(--bslib-color-bg, var(--bs-card-bg, var(--bs-body-bg)));border:var(--bs-card-border-width) solid var(--bslib-color-fg, var(--bs-card-border-color));box-shadow:0 2px 4px rgba(0,0,0,.15);margin:.2rem .4rem;padding:.55rem !important;font-size:.8rem;cursor:pointer;opacity:.7;z-index:1070}.bslib-full-screen-enter:hover{opacity:1}.card[data-full-screen=false]:hover>*>.bslib-full-screen-enter{display:block}.bslib-has-full-screen .card:hover>*>.bslib-full-screen-enter{display:none}@media(max-width: 575.98px){.bslib-full-screen-enter{display:none !important}}.bslib-full-screen-exit{position:relative;top:1.35rem;font-size:.9rem;cursor:pointer;text-decoration:none;display:flex;float:right;margin-right:2.15rem;align-items:center;color:rgba(var(--bs-body-bg-rgb), 0.8)}.bslib-full-screen-exit:hover{color:rgba(var(--bs-body-bg-rgb), 1)}.bslib-full-screen-exit svg{margin-left:.5rem;font-size:1.5rem}#bslib-full-screen-overlay{position:fixed;inset:0;background-color:rgba(var(--bs-body-color-rgb), 0.6);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:1069;animation:bslib-full-screen-overlay-enter 400ms cubic-bezier(0.6, 0.02, 0.65, 1) forwards}@keyframes bslib-full-screen-overlay-enter{0%{opacity:0}100%{opacity:1}}.bslib-sidebar-layout{--bslib-sidebar-transition-duration: 500ms;--bslib-sidebar-transition-easing-x: cubic-bezier(0.8, 0.78, 0.22, 1.07);--bslib-sidebar-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, rgba(0, 0, 0, 0.175));--bslib-sidebar-border-radius: var(--bs-border-radius);--bslib-sidebar-vert-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, rgba(0, 0, 0, 0.175));--bslib-sidebar-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.05);--bslib-sidebar-fg: var(--bs-emphasis-color, black);--bslib-sidebar-main-fg: var(--bs-card-color, var(--bs-body-color));--bslib-sidebar-main-bg: var(--bs-card-bg, var(--bs-body-bg));--bslib-sidebar-toggle-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.1);--bslib-sidebar-padding: calc(var(--bslib-spacer) * 1.5);--bslib-sidebar-icon-size: var(--bslib-spacer, 1rem);--bslib-sidebar-icon-button-size: calc(var(--bslib-sidebar-icon-size, 1rem) * 2);--bslib-sidebar-padding-icon: calc(var(--bslib-sidebar-icon-button-size, 2rem) * 1.5);--bslib-collapse-toggle-border-radius: var(--bs-border-radius, 0.25rem);--bslib-collapse-toggle-transform: 0deg;--bslib-sidebar-toggle-transition-easing: cubic-bezier(1, 0, 0, 1);--bslib-collapse-toggle-right-transform: 180deg;--bslib-sidebar-column-main: minmax(0, 1fr);display:grid !important;grid-template-columns:min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px)) var(--bslib-sidebar-column-main);position:relative;transition:grid-template-columns ease-in-out var(--bslib-sidebar-transition-duration);border:var(--bslib-sidebar-border);border-radius:var(--bslib-sidebar-border-radius)}@media(prefers-reduced-motion: reduce){.bslib-sidebar-layout{transition:none}}.bslib-sidebar-layout[data-bslib-sidebar-border=false]{border:none}.bslib-sidebar-layout[data-bslib-sidebar-border-radius=false]{border-radius:initial}.bslib-sidebar-layout>.main,.bslib-sidebar-layout>.sidebar{grid-row:1/2;border-radius:inherit;overflow:auto}.bslib-sidebar-layout>.main{grid-column:2/3;border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--bslib-sidebar-padding);transition:padding var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration);color:var(--bslib-sidebar-main-fg);background-color:var(--bslib-sidebar-main-bg)}.bslib-sidebar-layout>.sidebar{grid-column:1/2;width:100%;height:100%;border-right:var(--bslib-sidebar-vert-border);border-top-right-radius:0;border-bottom-right-radius:0;color:var(--bslib-sidebar-fg);background-color:var(--bslib-sidebar-bg);backdrop-filter:blur(5px)}.bslib-sidebar-layout>.sidebar>.sidebar-content{display:flex;flex-direction:column;gap:var(--bslib-spacer, 1rem);padding:var(--bslib-sidebar-padding);padding-top:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout>.sidebar>.sidebar-content>:last-child:not(.sidebar-title){margin-bottom:0}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion{margin-left:calc(-1*var(--bslib-sidebar-padding));margin-right:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:last-child{margin-bottom:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child){margin-bottom:1rem}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion .accordion-body{display:flex;flex-direction:column}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:first-child) .accordion-item:first-child{border-top:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child) .accordion-item:last-child{border-bottom:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content.has-accordion>.sidebar-title{border-bottom:none;padding-bottom:0}.bslib-sidebar-layout>.sidebar .shiny-input-container{width:100%}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar>.sidebar-content{padding-top:var(--bslib-sidebar-padding)}.bslib-sidebar-layout>.collapse-toggle{grid-row:1/2;grid-column:1/2;display:inline-flex;align-items:center;position:absolute;right:calc(var(--bslib-sidebar-icon-size));top:calc(var(--bslib-sidebar-icon-size, 1rem)/2);border:none;border-radius:var(--bslib-collapse-toggle-border-radius);height:var(--bslib-sidebar-icon-button-size, 2rem);width:var(--bslib-sidebar-icon-button-size, 2rem);display:flex;align-items:center;justify-content:center;padding:0;color:var(--bslib-sidebar-fg);background-color:unset;transition:color var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),top var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),right var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),left var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover{background-color:var(--bslib-sidebar-toggle-bg)}.bslib-sidebar-layout>.collapse-toggle>.collapse-icon{opacity:.8;width:var(--bslib-sidebar-icon-size);height:var(--bslib-sidebar-icon-size);transform:rotateY(var(--bslib-collapse-toggle-transform));transition:transform var(--bslib-sidebar-toggle-transition-easing) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover>.collapse-icon{opacity:1}.bslib-sidebar-layout .sidebar-title{font-size:1.25rem;line-height:1.25;margin-top:0;margin-bottom:1rem;padding-bottom:1rem;border-bottom:var(--bslib-sidebar-border)}.bslib-sidebar-layout.sidebar-right{grid-template-columns:var(--bslib-sidebar-column-main) min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px))}.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/2;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit}.bslib-sidebar-layout.sidebar-right>.sidebar{grid-column:2/3;border-right:none;border-left:var(--bslib-sidebar-vert-border);border-top-left-radius:0;border-bottom-left-radius:0}.bslib-sidebar-layout.sidebar-right>.collapse-toggle{grid-column:2/3;left:var(--bslib-sidebar-icon-size);right:unset;border:var(--bslib-collapse-toggle-border)}.bslib-sidebar-layout.sidebar-right>.collapse-toggle>.collapse-icon{transform:rotateY(var(--bslib-collapse-toggle-right-transform))}.bslib-sidebar-layout.sidebar-collapsed{--bslib-collapse-toggle-transform: 180deg;--bslib-collapse-toggle-right-transform: 0deg;--bslib-sidebar-vert-border: none;grid-template-columns:0 minmax(0, 1fr)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right{grid-template-columns:minmax(0, 1fr) 0}.bslib-sidebar-layout.sidebar-collapsed:not(.transitioning)>.sidebar>*{display:none}.bslib-sidebar-layout.sidebar-collapsed>.main{border-radius:inherit}.bslib-sidebar-layout.sidebar-collapsed:not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed>.collapse-toggle{color:var(--bslib-sidebar-main-fg);top:calc(var(--bslib-sidebar-overlap-counter, 0)*(var(--bslib-sidebar-icon-size) + var(--bslib-sidebar-padding)) + var(--bslib-sidebar-icon-size, 1rem)/2);right:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px))}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.collapse-toggle{left:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px));right:unset}@media(min-width: 576px){.bslib-sidebar-layout.transitioning>.sidebar>.sidebar-content{display:none}}@media(max-width: 575.98px){.bslib-sidebar-layout[data-bslib-sidebar-open=desktop]{--bslib-sidebar-js-init-collapsed: true}.bslib-sidebar-layout>.sidebar,.bslib-sidebar-layout.sidebar-right>.sidebar{border:none}.bslib-sidebar-layout>.main,.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/3}.bslib-sidebar-layout[data-bslib-sidebar-open=always]{display:block !important}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar{max-height:var(--bslib-sidebar-max-height-mobile);overflow-y:auto;border-top:var(--bslib-sidebar-vert-border)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]){grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.sidebar{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.collapse-toggle{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed.sidebar-right{grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always])>.main{opacity:0;transition:opacity var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed>.main{opacity:1}}.navbar+.container-fluid:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-sm:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-md:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-lg:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xl:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xxl:has(>.tab-content>.tab-pane.active.html-fill-container){padding-left:0;padding-right:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container{padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child){padding:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]){border-left:none;border-right:none;border-bottom:none}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]){border-radius:0}.navbar+div>.bslib-sidebar-layout{border-top:var(--bslib-sidebar-border)}html{height:100%}.bslib-page-fill{width:100%;height:100%;margin:0;padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}@media(max-width: 575.98px){.bslib-page-fill{height:var(--bslib-page-fill-mobile-height, auto)}}.accordion .accordion-header{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color);margin-bottom:0}@media(min-width: 1200px){.accordion .accordion-header{font-size:1.65rem}}.accordion .accordion-icon:not(:empty){margin-right:.75rem;display:flex}.accordion .accordion-button:not(.collapsed){box-shadow:none}.accordion .accordion-button:not(.collapsed):focus{box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.html-fill-container{display:flex;flex-direction:column;min-height:0;min-width:0}.html-fill-container>.html-fill-item{flex:1 1 auto;min-height:0;min-width:0}.html-fill-container>:not(.html-fill-item){flex:0 0 auto}.quarto-container{min-height:calc(100vh - 132px)}body.hypothesis-enabled #quarto-header{margin-right:16px}footer.footer .nav-footer,#quarto-header>nav{padding-left:1em;padding-right:1em}footer.footer div.nav-footer p:first-child{margin-top:0}footer.footer div.nav-footer p:last-child{margin-bottom:0}#quarto-content>*{padding-top:14px}#quarto-content>#quarto-sidebar-glass{padding-top:0px}@media(max-width: 991.98px){#quarto-content>*{padding-top:0}#quarto-content .subtitle{padding-top:14px}#quarto-content section:first-of-type h2:first-of-type,#quarto-content section:first-of-type .h2:first-of-type{margin-top:1rem}}.headroom-target,header.headroom{will-change:transform;transition:position 200ms linear;transition:all 200ms linear}header.headroom--pinned{transform:translateY(0%)}header.headroom--unpinned{transform:translateY(-100%)}.navbar-container{width:100%}.navbar-brand{overflow:hidden;text-overflow:ellipsis}.navbar-brand-container{max-width:calc(100% - 115px);min-width:0;display:flex;align-items:center}@media(min-width: 992px){.navbar-brand-container{margin-right:1em}}.navbar-brand.navbar-brand-logo{margin-right:4px;display:inline-flex}.navbar-toggler{flex-basis:content;flex-shrink:0}.navbar .navbar-brand-container{order:2}.navbar .navbar-toggler{order:1}.navbar .navbar-container>.navbar-nav{order:20}.navbar .navbar-container>.navbar-brand-container{margin-left:0 !important;margin-right:0 !important}.navbar .navbar-collapse{order:20}.navbar #quarto-search{order:4;margin-left:auto}.navbar .navbar-toggler{margin-right:.5em}.navbar-collapse .quarto-navbar-tools{margin-left:.5em}.navbar-logo{max-height:24px;width:auto;padding-right:4px}nav .nav-item:not(.compact){padding-top:1px}nav .nav-link i,nav .dropdown-item i{padding-right:1px}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.6rem;padding-right:.6rem}nav .nav-item.compact .nav-link{padding-left:.5rem;padding-right:.5rem;font-size:1.1rem}.navbar .quarto-navbar-tools{order:3}.navbar .quarto-navbar-tools div.dropdown{display:inline-block}.navbar .quarto-navbar-tools .quarto-navigation-tool{color:#ccd1d5}.navbar .quarto-navbar-tools .quarto-navigation-tool:hover{color:#8cdece}.navbar-nav .dropdown-menu{min-width:220px;font-size:.9rem}.navbar .navbar-nav .nav-link.dropdown-toggle::after{opacity:.75;vertical-align:.175em}.navbar ul.dropdown-menu{padding-top:0;padding-bottom:0}.navbar .dropdown-header{text-transform:uppercase;font-size:.8rem;padding:0 .5rem}.navbar .dropdown-item{padding:.4rem .5rem}.navbar .dropdown-item>i.bi{margin-left:.1rem;margin-right:.25em}.sidebar #quarto-search{margin-top:-1px}.sidebar #quarto-search svg.aa-SubmitIcon{width:16px;height:16px}.sidebar-navigation a{color:inherit}.sidebar-title{margin-top:.25rem;padding-bottom:.5rem;font-size:1.3rem;line-height:1.6rem;visibility:visible}.sidebar-title>a{font-size:inherit;text-decoration:none}.sidebar-title .sidebar-tools-main{margin-top:-6px}@media(max-width: 991.98px){#quarto-sidebar div.sidebar-header{padding-top:.2em}}.sidebar-header-stacked .sidebar-title{margin-top:.6rem}.sidebar-logo{max-width:90%;padding-bottom:.5rem}.sidebar-logo-link{text-decoration:none}.sidebar-navigation li a{text-decoration:none}.sidebar-navigation .quarto-navigation-tool{opacity:.7;font-size:.875rem}#quarto-sidebar>nav>.sidebar-tools-main{margin-left:14px}.sidebar-tools-main{display:inline-flex;margin-left:0px;order:2}.sidebar-tools-main:not(.tools-wide){vertical-align:middle}.sidebar-navigation .quarto-navigation-tool.dropdown-toggle::after{display:none}.sidebar.sidebar-navigation>*{padding-top:1em}.sidebar-item{margin-bottom:.2em;line-height:1rem;margin-top:.4rem}.sidebar-section{padding-left:.5em;padding-bottom:.2em}.sidebar-item .sidebar-item-container{display:flex;justify-content:space-between;cursor:pointer}.sidebar-item-toggle:hover{cursor:pointer}.sidebar-item .sidebar-item-toggle .bi{font-size:.7rem;text-align:center}.sidebar-item .sidebar-item-toggle .bi-chevron-right::before{transition:transform 200ms ease}.sidebar-item .sidebar-item-toggle[aria-expanded=false] .bi-chevron-right::before{transform:none}.sidebar-item .sidebar-item-toggle[aria-expanded=true] .bi-chevron-right::before{transform:rotate(90deg)}.sidebar-item-text{width:100%}.sidebar-navigation .sidebar-divider{margin-left:0;margin-right:0;margin-top:.5rem;margin-bottom:.5rem}@media(max-width: 991.98px){.quarto-secondary-nav{display:block}.quarto-secondary-nav button.quarto-search-button{padding-right:0em;padding-left:2em}.quarto-secondary-nav button.quarto-btn-toggle{margin-left:-0.75rem;margin-right:.15rem}.quarto-secondary-nav nav.quarto-title-breadcrumbs{display:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs{display:flex;align-items:center;padding-right:1em;margin-left:-0.25em}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{text-decoration:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs ol.breadcrumb{margin-bottom:0}}@media(min-width: 992px){.quarto-secondary-nav{display:none}}.quarto-title-breadcrumbs .breadcrumb{margin-bottom:.5em;font-size:.9rem}.quarto-title-breadcrumbs .breadcrumb li:last-of-type a{color:#6c757d}.quarto-secondary-nav .quarto-btn-toggle{color:#595959}.quarto-secondary-nav[aria-expanded=false] .quarto-btn-toggle .bi-chevron-right::before{transform:none}.quarto-secondary-nav[aria-expanded=true] .quarto-btn-toggle .bi-chevron-right::before{transform:rotate(90deg)}.quarto-secondary-nav .quarto-btn-toggle .bi-chevron-right::before{transition:transform 200ms ease}.quarto-secondary-nav{cursor:pointer}.no-decor{text-decoration:none}.quarto-secondary-nav-title{margin-top:.3em;color:#595959;padding-top:4px}.quarto-secondary-nav nav.quarto-page-breadcrumbs{color:#595959}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{color:#595959}.quarto-secondary-nav nav.quarto-page-breadcrumbs a:hover{color:rgba(13,100,83,.8)}.quarto-secondary-nav nav.quarto-page-breadcrumbs .breadcrumb-item::before{color:#8c8c8c}.breadcrumb-item{line-height:1.2rem}div.sidebar-item-container{color:#595959}div.sidebar-item-container:hover,div.sidebar-item-container:focus{color:rgba(13,100,83,.8)}div.sidebar-item-container.disabled{color:rgba(89,89,89,.75)}div.sidebar-item-container .active,div.sidebar-item-container .show>.nav-link,div.sidebar-item-container .sidebar-link>code{color:#0d6453}div.sidebar.sidebar-navigation.rollup.quarto-sidebar-toggle-contents,nav.sidebar.sidebar-navigation:not(.rollup){background-color:#fff}.sidebar.sidebar-navigation:not(.rollup){border-right:1px solid #dee2e6 !important}@media(max-width: 991.98px){.sidebar-navigation .sidebar-item a,.nav-page .nav-page-text,.sidebar-navigation{font-size:1rem}.sidebar-navigation ul.sidebar-section.depth1 .sidebar-section-item{font-size:1.1rem}.sidebar-logo{display:none}.sidebar.sidebar-navigation{position:static;border-bottom:1px solid #dee2e6}.sidebar.sidebar-navigation.collapsing{position:fixed;z-index:1000}.sidebar.sidebar-navigation.show{position:fixed;z-index:1000}.sidebar.sidebar-navigation{min-height:100%}nav.quarto-secondary-nav{background-color:#fff;border-bottom:1px solid #dee2e6}.quarto-banner nav.quarto-secondary-nav{background-color:#2c3e50;color:#ccd1d5;border-top:1px solid #dee2e6}.sidebar .sidebar-footer{visibility:visible;padding-top:1rem;position:inherit}.sidebar-tools-collapse{display:block}}#quarto-sidebar{transition:width .15s ease-in}#quarto-sidebar>*{padding-right:1em}@media(max-width: 991.98px){#quarto-sidebar .sidebar-menu-container{white-space:nowrap;min-width:225px}#quarto-sidebar.show{transition:width .15s ease-out}}@media(min-width: 992px){#quarto-sidebar{display:flex;flex-direction:column}.nav-page .nav-page-text,.sidebar-navigation .sidebar-section .sidebar-item{font-size:.875rem}.sidebar-navigation .sidebar-item{font-size:.925rem}.sidebar.sidebar-navigation{display:block;position:sticky}.sidebar-search{width:100%}.sidebar .sidebar-footer{visibility:visible}}@media(min-width: 992px){#quarto-sidebar-glass{display:none}}@media(max-width: 991.98px){#quarto-sidebar-glass{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,0);transition:background-color .15s ease-in;z-index:-1}#quarto-sidebar-glass.collapsing{z-index:1000}#quarto-sidebar-glass.show{transition:background-color .15s ease-out;background-color:rgba(102,102,102,.4);z-index:1000}}.sidebar .sidebar-footer{padding:.5rem 1rem;align-self:flex-end;color:#6c757d;width:100%}.quarto-page-breadcrumbs .breadcrumb-item+.breadcrumb-item,.quarto-page-breadcrumbs .breadcrumb-item{padding-right:.33em;padding-left:0}.quarto-page-breadcrumbs .breadcrumb-item::before{padding-right:.33em}.quarto-sidebar-footer{font-size:.875em}.sidebar-section .bi-chevron-right{vertical-align:middle}.sidebar-section .bi-chevron-right::before{font-size:.9em}.notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.btn:focus:not(:focus-visible){box-shadow:none}.page-navigation{display:flex;justify-content:space-between}.nav-page{padding-bottom:.75em}.nav-page .bi{font-size:1.8rem;vertical-align:middle}.nav-page .nav-page-text{padding-left:.25em;padding-right:.25em}.nav-page a{color:#6c757d;text-decoration:none;display:flex;align-items:center}.nav-page a:hover{color:#13967d}.nav-footer .toc-actions{padding-bottom:.5em;padding-top:.5em}.nav-footer .toc-actions a,.nav-footer .toc-actions a:hover{text-decoration:none}.nav-footer .toc-actions ul{display:flex;list-style:none}.nav-footer .toc-actions ul :first-child{margin-left:auto}.nav-footer .toc-actions ul :last-child{margin-right:auto}.nav-footer .toc-actions ul li{padding-right:1.5em}.nav-footer .toc-actions ul li i.bi{padding-right:.4em}.nav-footer .toc-actions ul li:last-of-type{padding-right:0}.nav-footer{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:baseline;text-align:center;padding-top:.5rem;padding-bottom:.5rem;background-color:#fff}body.nav-fixed{padding-top:82px}body .nav-footer{border-top:1px solid #dee2e6}.nav-footer-contents{color:#6c757d;margin-top:.25rem}.nav-footer{min-height:3.5em;color:#757575}.nav-footer a{color:#757575}.nav-footer .nav-footer-left{font-size:.825em}.nav-footer .nav-footer-center{font-size:.825em}.nav-footer .nav-footer-right{font-size:.825em}.nav-footer-left .footer-items,.nav-footer-center .footer-items,.nav-footer-right .footer-items{display:inline-flex;padding-top:.3em;padding-bottom:.3em;margin-bottom:0em}.nav-footer-left .footer-items .nav-link,.nav-footer-center .footer-items .nav-link,.nav-footer-right .footer-items .nav-link{padding-left:.6em;padding-right:.6em}@media(min-width: 768px){.nav-footer-left{flex:1 1 0px;text-align:left}}@media(max-width: 575.98px){.nav-footer-left{margin-bottom:1em;flex:100%}}@media(min-width: 768px){.nav-footer-right{flex:1 1 0px;text-align:right}}@media(max-width: 575.98px){.nav-footer-right{margin-bottom:1em;flex:100%}}.nav-footer-center{text-align:center;min-height:3em}@media(min-width: 768px){.nav-footer-center{flex:1 1 0px}}.nav-footer-center .footer-items{justify-content:center}@media(max-width: 767.98px){.nav-footer-center{margin-bottom:1em;flex:100%}}@media(max-width: 767.98px){.nav-footer-center{margin-top:3em;order:10}}.navbar .quarto-reader-toggle.reader .quarto-reader-toggle-btn{background-color:#ccd1d5;border-radius:3px}@media(max-width: 991.98px){.quarto-reader-toggle{display:none}}.quarto-reader-toggle.reader.quarto-navigation-tool .quarto-reader-toggle-btn{background-color:#595959;border-radius:3px}.quarto-reader-toggle .quarto-reader-toggle-btn{display:inline-flex;padding-left:.2em;padding-right:.2em;margin-left:-0.2em;margin-right:-0.2em;text-align:center}.navbar .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}#quarto-back-to-top{display:none;position:fixed;bottom:50px;background-color:#fff;border-radius:.25rem;box-shadow:0 .2rem .5rem #6c757d,0 0 .05rem #6c757d;color:#6c757d;text-decoration:none;font-size:.9em;text-align:center;left:50%;padding:.4rem .8rem;transform:translate(-50%, 0)}#quarto-announcement{padding:.5em;display:flex;justify-content:space-between;margin-bottom:0;font-size:.9em}#quarto-announcement .quarto-announcement-content{margin-right:auto}#quarto-announcement .quarto-announcement-content p{margin-bottom:0}#quarto-announcement .quarto-announcement-icon{margin-right:.5em;font-size:1.2em;margin-top:-0.15em}#quarto-announcement .quarto-announcement-action{cursor:pointer}.aa-DetachedSearchButtonQuery{display:none}.aa-DetachedOverlay ul.aa-List,#quarto-search-results ul.aa-List{list-style:none;padding-left:0}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{background-color:#fff;position:absolute;z-index:2000}#quarto-search-results .aa-Panel{max-width:400px}#quarto-search input{font-size:.925rem}@media(min-width: 992px){.navbar #quarto-search{margin-left:.25rem;order:999}}.navbar.navbar-expand-sm #quarto-search,.navbar.navbar-expand-md #quarto-search{order:999}@media(min-width: 992px){.navbar .quarto-navbar-tools{order:900}}@media(min-width: 992px){.navbar .quarto-navbar-tools.tools-end{margin-left:auto !important}}@media(max-width: 991.98px){#quarto-sidebar .sidebar-search{display:none}}#quarto-sidebar .sidebar-search .aa-Autocomplete{width:100%}.navbar .aa-Autocomplete .aa-Form{width:180px}.navbar #quarto-search.type-overlay .aa-Autocomplete{width:40px}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form{background-color:inherit;border:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form:focus-within{box-shadow:none;outline:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper{display:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper:focus-within{display:inherit}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-Label svg,.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-LoadingIndicator svg{width:26px;height:26px;color:#ccd1d5;opacity:1}.navbar #quarto-search.type-overlay .aa-Autocomplete svg.aa-SubmitIcon{width:26px;height:26px;color:#ccd1d5;opacity:1}.aa-Autocomplete .aa-Form,.aa-DetachedFormContainer .aa-Form{align-items:center;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;color:#212529;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-Autocomplete .aa-Form:focus-within,.aa-DetachedFormContainer .aa-Form:focus-within{box-shadow:rgba(44,62,80,.6) 0 0 0 1px;outline:currentColor none medium}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;order:1}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{cursor:initial;flex-shrink:0;padding:0;text-align:left}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg{color:#212529;opacity:.5}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton{appearance:none;background:none;border:0;margin:0}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapper,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper{order:3;position:relative;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input{appearance:none;background:none;border:0;color:#212529;font:inherit;height:calc(1.5em + .1rem + 2px);padding:0;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::placeholder,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::placeholder{color:#212529;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input:focus{border-color:none;box-shadow:none;outline:none}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix{align-items:center;display:flex;order:4}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton{align-items:center;background:none;border:0;color:#212529;opacity:.8;cursor:pointer;display:flex;margin:0;width:calc(1.5em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus{color:#212529;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg{width:calc(1.5em + 0.75rem + calc(1px * 2))}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton{border:none;align-items:center;background:none;color:#212529;opacity:.4;font-size:.7rem;cursor:pointer;display:none;margin:0;width:calc(1em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus{color:#212529;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden]{display:none}.aa-PanelLayout:empty{display:none}.quarto-search-no-results.no-query{display:none}.aa-Source:has(.no-query){display:none}#quarto-search-results .aa-Panel{border:solid #dee2e6 1px}#quarto-search-results .aa-SourceNoResults{width:398px}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{max-height:65vh;overflow-y:auto;font-size:.925rem}.aa-DetachedOverlay .aa-SourceNoResults,#quarto-search-results .aa-SourceNoResults{height:60px;display:flex;justify-content:center;align-items:center}.aa-DetachedOverlay .search-error,#quarto-search-results .search-error{padding-top:10px;padding-left:20px;padding-right:20px;cursor:default}.aa-DetachedOverlay .search-error .search-error-title,#quarto-search-results .search-error .search-error-title{font-size:1.1rem;margin-bottom:.5rem}.aa-DetachedOverlay .search-error .search-error-title .search-error-icon,#quarto-search-results .search-error .search-error-title .search-error-icon{margin-right:8px}.aa-DetachedOverlay .search-error .search-error-text,#quarto-search-results .search-error .search-error-text{font-weight:300}.aa-DetachedOverlay .search-result-text,#quarto-search-results .search-result-text{font-weight:300;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2rem;max-height:2.4rem}.aa-DetachedOverlay .aa-SourceHeader .search-result-header,#quarto-search-results .aa-SourceHeader .search-result-header{font-size:.875rem;background-color:#f2f2f2;padding-left:14px;padding-bottom:4px;padding-top:4px}.aa-DetachedOverlay .aa-SourceHeader .search-result-header-no-results,#quarto-search-results .aa-SourceHeader .search-result-header-no-results{display:none}.aa-DetachedOverlay .aa-SourceFooter .algolia-search-logo,#quarto-search-results .aa-SourceFooter .algolia-search-logo{width:110px;opacity:.85;margin:8px;float:right}.aa-DetachedOverlay .search-result-section,#quarto-search-results .search-result-section{font-size:.925em}.aa-DetachedOverlay a.search-result-link,#quarto-search-results a.search-result-link{color:inherit;text-decoration:none}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item,#quarto-search-results li.aa-Item[aria-selected=true] .search-item{background-color:#2c3e50}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text-container{color:#fff;background-color:#2c3e50}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=true] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-match.mark{color:#fff;background-color:#3a526a}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item,#quarto-search-results li.aa-Item[aria-selected=false] .search-item{background-color:#fff}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text-container{color:#212529}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=false] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-match.mark{color:inherit;background-color:#90a9c2}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container{background-color:#fff;color:#212529}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container{padding-top:0px}.aa-DetachedOverlay li.aa-Item .search-result-doc.document-selectable .search-result-text-container,#quarto-search-results li.aa-Item .search-result-doc.document-selectable .search-result-text-container{margin-top:-4px}.aa-DetachedOverlay .aa-Item,#quarto-search-results .aa-Item{cursor:pointer}.aa-DetachedOverlay .aa-Item .search-item,#quarto-search-results .aa-Item .search-item{border-left:none;border-right:none;border-top:none;background-color:#fff;border-color:#dee2e6;color:#212529}.aa-DetachedOverlay .aa-Item .search-item p,#quarto-search-results .aa-Item .search-item p{margin-top:0;margin-bottom:0}.aa-DetachedOverlay .aa-Item .search-item i.bi,#quarto-search-results .aa-Item .search-item i.bi{padding-left:8px;padding-right:8px;font-size:1.3em}.aa-DetachedOverlay .aa-Item .search-item .search-result-title,#quarto-search-results .aa-Item .search-item .search-result-title{margin-top:.3em;margin-bottom:0em}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs,#quarto-search-results .aa-Item .search-item .search-result-crumbs{white-space:nowrap;text-overflow:ellipsis;font-size:.8em;font-weight:300;margin-right:1em}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs:not(.search-result-crumbs-wrap),#quarto-search-results .aa-Item .search-item .search-result-crumbs:not(.search-result-crumbs-wrap){max-width:30%;margin-left:auto;margin-top:.5em;margin-bottom:.1rem}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs.search-result-crumbs-wrap,#quarto-search-results .aa-Item .search-item .search-result-crumbs.search-result-crumbs-wrap{flex-basis:100%;margin-top:0em;margin-bottom:.2em;margin-left:37px}.aa-DetachedOverlay .aa-Item .search-result-title-container,#quarto-search-results .aa-Item .search-result-title-container{font-size:1em;display:flex;flex-wrap:wrap;padding:6px 4px 6px 4px}.aa-DetachedOverlay .aa-Item .search-result-text-container,#quarto-search-results .aa-Item .search-result-text-container{padding-bottom:8px;padding-right:8px;margin-left:42px}.aa-DetachedOverlay .aa-Item .search-result-doc-section,.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-doc-section,#quarto-search-results .aa-Item .search-result-more{padding-top:8px;padding-bottom:8px;padding-left:44px}.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-more{font-size:.8em;font-weight:400}.aa-DetachedOverlay .aa-Item .search-result-doc,#quarto-search-results .aa-Item .search-result-doc{border-top:1px solid #dee2e6}.aa-DetachedSearchButton{background:none;border:none}.aa-DetachedSearchButton .aa-DetachedSearchButtonPlaceholder{display:none}.navbar .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#ccd1d5}.sidebar-tools-collapse #quarto-search,.sidebar-tools-main #quarto-search{display:inline}.sidebar-tools-collapse #quarto-search .aa-Autocomplete,.sidebar-tools-main #quarto-search .aa-Autocomplete{display:inline}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton{padding-left:4px;padding-right:4px}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#595959}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon{margin-top:-3px}.aa-DetachedContainer{background:rgba(255,255,255,.65);width:90%;bottom:0;box-shadow:rgba(222,226,230,.6) 0 0 0 1px;outline:currentColor none medium;display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:1101}.aa-DetachedContainer::after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{background-color:#fff;border-bottom:1px solid #dee2e6;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:.5em}.aa-DetachedCancelButton{background:none;font-size:.8em;border:0;border-radius:3px;color:#212529;cursor:pointer;margin:0 0 0 .5em;padding:0 .5em}.aa-DetachedCancelButton:hover,.aa-DetachedCancelButton:focus{box-shadow:rgba(44,62,80,.6) 0 0 0 1px;outline:currentColor none medium}.aa-DetachedContainer--modal{bottom:inherit;height:auto;margin:0 auto;position:absolute;top:100px;border-radius:6px;max-width:850px}@media(max-width: 575.98px){.aa-DetachedContainer--modal{width:100%;top:0px;border-radius:0px;border:none}}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:var(--aa-detached-modal-max-height);padding-bottom:var(--aa-spacing-half);position:static}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:rgba(33,37,41,.4);position:fixed;left:0;right:0;top:0;margin:0;padding:0;height:100vh;z-index:1100}.quarto-dashboard.nav-fixed.dashboard-sidebar #quarto-content.quarto-dashboard-content{padding:0em}.quarto-dashboard #quarto-content.quarto-dashboard-content{padding:1em}.quarto-dashboard #quarto-content.quarto-dashboard-content>*{padding-top:0}@media(min-width: 576px){.quarto-dashboard{height:100%}}.quarto-dashboard .card.valuebox.bslib-card.bg-primary{background-color:rgba(39,128,227,.7) !important}.quarto-dashboard .card.valuebox.bslib-card.bg-secondary{background-color:#6c757d !important}.quarto-dashboard .card.valuebox.bslib-card.bg-success{background-color:rgba(63,182,24,.7) !important}.quarto-dashboard .card.valuebox.bslib-card.bg-info{background-color:rgba(153,84,187,.7) !important}.quarto-dashboard .card.valuebox.bslib-card.bg-warning{background-color:rgba(255,117,24,.7) !important}.quarto-dashboard .card.valuebox.bslib-card.bg-danger{background-color:rgba(255,0,57,.7) !important}.quarto-dashboard .card.valuebox.bslib-card.bg-light{background-color:#ecf0f1 !important}.quarto-dashboard .card.valuebox.bslib-card.bg-dark{background-color:#7b8a8b !important}.quarto-dashboard.dashboard-fill{display:flex;flex-direction:column}.quarto-dashboard #quarto-appendix{display:none}.quarto-dashboard #quarto-header #quarto-dashboard-header{border-top:solid 1px #3e5871;border-bottom:solid 1px #3e5871}.quarto-dashboard #quarto-header #quarto-dashboard-header>nav{padding-left:1em;padding-right:1em}.quarto-dashboard #quarto-header #quarto-dashboard-header>nav .navbar-brand-container{padding-left:0}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-toggler{margin-right:0}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-toggler-icon{height:1em;width:1em;background-image:url('data:image/svg+xml,')}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-brand-container{padding-right:1em}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-title{font-size:1.1em}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-nav{font-size:.9em}.quarto-dashboard #quarto-dashboard-header .navbar{padding:0}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-container{padding-left:1em}.quarto-dashboard #quarto-dashboard-header .navbar.slim .navbar-brand-container .nav-link,.quarto-dashboard #quarto-dashboard-header .navbar.slim .navbar-nav .nav-link{padding:.7em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-color-scheme-toggle{order:9}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-toggler{margin-left:.5em;order:10}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-nav .nav-link{padding:.5em;height:100%;display:flex;align-items:center}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-nav .active{background-color:#3a526a}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-brand-container{padding:.5em .5em .5em 0;display:flex;flex-direction:row;margin-right:2em;align-items:center}@media(max-width: 767.98px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-brand-container{margin-right:auto}}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{align-self:stretch}@media(min-width: 768px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{order:8}}@media(max-width: 767.98px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{order:1000;padding-bottom:.5em}}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse .navbar-nav{align-self:stretch}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title{font-size:1.25em;line-height:1.1em;display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title .navbar-title-text{margin-right:.4em}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title a{text-decoration:none;color:inherit}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-subtitle,.quarto-dashboard #quarto-dashboard-header .navbar .navbar-author{font-size:.9rem;margin-right:.5em}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-author{margin-left:auto}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-logo{max-height:48px;min-height:30px;object-fit:cover;margin-right:1em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-links{order:9;padding-right:1em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-link-text{margin-left:.25em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-link{padding-right:0em;padding-left:.7em;text-decoration:none;color:#ccd1d5}.quarto-dashboard .page-layout-custom .tab-content{padding:0;border:none}.quarto-dashboard-img-contain{height:100%;width:100%;object-fit:contain}@media(max-width: 575.98px){.quarto-dashboard .bslib-grid{grid-template-rows:minmax(1em, max-content) !important}.quarto-dashboard .sidebar-content{height:inherit}.quarto-dashboard .page-layout-custom{min-height:100vh}}.quarto-dashboard.dashboard-toolbar>.page-layout-custom,.quarto-dashboard.dashboard-sidebar>.page-layout-custom{padding:0}.quarto-dashboard .quarto-dashboard-content.quarto-dashboard-pages{padding:0}.quarto-dashboard .callout{margin-bottom:0;margin-top:0}.quarto-dashboard .html-fill-container figure{overflow:hidden}.quarto-dashboard bslib-tooltip .rounded-pill{border:solid #6c757d 1px}.quarto-dashboard bslib-tooltip .rounded-pill .svg{fill:#212529}.quarto-dashboard .tabset .dashboard-card-no-title .nav-tabs{margin-left:0;margin-right:auto}.quarto-dashboard .tabset .tab-content{border:none}.quarto-dashboard .tabset .card-header .nav-link[role=tab]{margin-top:-6px;padding-top:6px;padding-bottom:6px}.quarto-dashboard .card.valuebox,.quarto-dashboard .card.bslib-value-box{min-height:3rem}.quarto-dashboard .card.valuebox .card-body,.quarto-dashboard .card.bslib-value-box .card-body{padding:0}.quarto-dashboard .bslib-value-box .value-box-value{font-size:clamp(.1em,15cqw,5em)}.quarto-dashboard .bslib-value-box .value-box-showcase .bi{font-size:clamp(.1em,max(18cqw,5.2cqh),5em);text-align:center;height:1em}.quarto-dashboard .bslib-value-box .value-box-showcase .bi::before{vertical-align:1em}.quarto-dashboard .bslib-value-box .value-box-area{margin-top:auto;margin-bottom:auto}.quarto-dashboard .card figure.quarto-float{display:flex;flex-direction:column;align-items:center}.quarto-dashboard .dashboard-scrolling{padding:1em}.quarto-dashboard .full-height{height:100%}.quarto-dashboard .showcase-bottom .value-box-grid{display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"top" "bottom"}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-showcase i.bi{font-size:4rem}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-area{grid-area:top}.quarto-dashboard .tab-content{margin-bottom:0}.quarto-dashboard .bslib-card .bslib-navs-card-title{justify-content:stretch;align-items:end}.quarto-dashboard .card-header{display:flex;flex-wrap:wrap;justify-content:space-between}.quarto-dashboard .card-header .card-title{display:flex;flex-direction:column;justify-content:center;margin-bottom:0}.quarto-dashboard .tabset .card-toolbar{margin-bottom:1em}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout{border:none;gap:var(--bslib-spacer, 1rem)}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.main{padding:0}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.sidebar{border-radius:.25rem;border:1px solid rgba(0,0,0,.175)}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.collapse-toggle{display:none}@media(max-width: 767.98px){.quarto-dashboard .bslib-grid>.bslib-sidebar-layout{grid-template-columns:1fr;grid-template-rows:max-content 1fr}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.main{grid-column:1;grid-row:2}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout .sidebar{grid-column:1;grid-row:1}}.quarto-dashboard .sidebar-right .sidebar{padding-left:2.5em}.quarto-dashboard .sidebar-right .collapse-toggle{left:2px}.quarto-dashboard .quarto-dashboard .sidebar-right button.collapse-toggle:not(.transitioning){left:unset}.quarto-dashboard aside.sidebar{padding-left:1em;padding-right:1em;background-color:rgba(52,58,64,.25);color:#212529}.quarto-dashboard .bslib-sidebar-layout>div.main{padding:.7em}.quarto-dashboard .bslib-sidebar-layout button.collapse-toggle{margin-top:.3em}.quarto-dashboard .bslib-sidebar-layout .collapse-toggle{top:0}.quarto-dashboard .bslib-sidebar-layout.sidebar-collapsed:not(.transitioning):not(.sidebar-right) .collapse-toggle{left:2px}.quarto-dashboard .sidebar>section>.h3:first-of-type{margin-top:0em}.quarto-dashboard .sidebar .h3,.quarto-dashboard .sidebar .h4,.quarto-dashboard .sidebar .h5,.quarto-dashboard .sidebar .h6{margin-top:.5em}.quarto-dashboard .sidebar form{flex-direction:column;align-items:start;margin-bottom:1em}.quarto-dashboard .sidebar form div[class*=oi-][class$=-input]{flex-direction:column}.quarto-dashboard .sidebar form[class*=oi-][class$=-toggle]{flex-direction:row-reverse;align-items:center;justify-content:start}.quarto-dashboard .sidebar form input[type=range]{margin-top:.5em;margin-right:.8em;margin-left:1em}.quarto-dashboard .sidebar label{width:fit-content}.quarto-dashboard .sidebar .card-body{margin-bottom:2em}.quarto-dashboard .sidebar .shiny-input-container{margin-bottom:1em}.quarto-dashboard .sidebar .shiny-options-group{margin-top:0}.quarto-dashboard .sidebar .control-label{margin-bottom:.3em}.quarto-dashboard .card .card-body .quarto-layout-row{align-items:stretch}.quarto-dashboard .toolbar{font-size:.9em;display:flex;flex-direction:row;border-top:solid 1px #c7c9cd;padding:1em;flex-wrap:wrap;background-color:rgba(52,58,64,.25)}.quarto-dashboard .toolbar .cell-output-display{display:flex}.quarto-dashboard .toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .toolbar>*:last-child{margin-right:0}.quarto-dashboard .toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .toolbar .shiny-input-container{padding-bottom:0;margin-bottom:0}.quarto-dashboard .toolbar .shiny-input-container>*{flex-shrink:0;flex-grow:0}.quarto-dashboard .toolbar .form-group.shiny-input-container:not([role=group])>label{margin-bottom:0}.quarto-dashboard .toolbar .shiny-input-container.no-baseline{align-items:start;padding-top:6px}.quarto-dashboard .toolbar .shiny-input-container{display:flex;align-items:baseline}.quarto-dashboard .toolbar .shiny-input-container label{padding-right:.4em}.quarto-dashboard .toolbar .shiny-input-container .bslib-input-switch{margin-top:6px}.quarto-dashboard .toolbar input[type=text]{line-height:1;width:inherit}.quarto-dashboard .toolbar .input-daterange{width:inherit}.quarto-dashboard .toolbar .input-daterange input[type=text]{height:2.4em;width:10em}.quarto-dashboard .toolbar .input-daterange .input-group-addon{height:auto;padding:0;margin-left:-5px !important;margin-right:-5px}.quarto-dashboard .toolbar .input-daterange .input-group-addon .input-group-text{padding-top:0;padding-bottom:0;height:100%}.quarto-dashboard .toolbar span.irs.irs--shiny{width:10em}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-line{top:9px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-min,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-max,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-from,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-to,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-single{top:20px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-bar{top:8px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-handle{top:0px}.quarto-dashboard .toolbar .shiny-input-checkboxgroup>label{margin-top:6px}.quarto-dashboard .toolbar .shiny-input-checkboxgroup>.shiny-options-group{margin-top:0;align-items:baseline}.quarto-dashboard .toolbar .shiny-input-radiogroup>label{margin-top:6px}.quarto-dashboard .toolbar .shiny-input-radiogroup>.shiny-options-group{align-items:baseline;margin-top:0}.quarto-dashboard .toolbar .shiny-input-radiogroup>.shiny-options-group>.radio{margin-right:.3em}.quarto-dashboard .toolbar .form-select{padding-top:.2em;padding-bottom:.2em}.quarto-dashboard .toolbar .shiny-input-select{min-width:6em}.quarto-dashboard .toolbar div.checkbox{margin-bottom:0px}.quarto-dashboard .toolbar>.checkbox:first-child{margin-top:6px}.quarto-dashboard .toolbar form{width:fit-content}.quarto-dashboard .toolbar form label{padding-top:.2em;padding-bottom:.2em;width:fit-content}.quarto-dashboard .toolbar form input[type=date]{width:fit-content}.quarto-dashboard .toolbar form input[type=color]{width:3em}.quarto-dashboard .toolbar form button{padding:.4em}.quarto-dashboard .toolbar form select{width:fit-content}.quarto-dashboard .toolbar>*{font-size:.9em;flex-grow:0}.quarto-dashboard .toolbar .shiny-input-container label{margin-bottom:1px}.quarto-dashboard .toolbar-bottom{margin-top:1em;margin-bottom:0 !important;order:2}.quarto-dashboard .quarto-dashboard-content>.dashboard-toolbar-container>.toolbar-content>.tab-content>.tab-pane>*:not(.bslib-sidebar-layout){padding:1em}.quarto-dashboard .quarto-dashboard-content>.dashboard-toolbar-container>.toolbar-content>*:not(.tab-content){padding:1em}.quarto-dashboard .quarto-dashboard-content>.tab-content>.dashboard-page>.dashboard-toolbar-container>.toolbar-content,.quarto-dashboard .quarto-dashboard-content>.tab-content>.dashboard-page:not(.dashboard-sidebar-container)>*:not(.dashboard-toolbar-container){padding:1em}.quarto-dashboard .toolbar-content{padding:0}.quarto-dashboard .quarto-dashboard-content.quarto-dashboard-pages .tab-pane>.dashboard-toolbar-container .toolbar{border-radius:0;margin-bottom:0}.quarto-dashboard .dashboard-toolbar-container.toolbar-toplevel .toolbar{border-bottom:1px solid rgba(0,0,0,.175)}.quarto-dashboard .dashboard-toolbar-container.toolbar-toplevel .toolbar-bottom{margin-top:0}.quarto-dashboard .dashboard-toolbar-container:not(.toolbar-toplevel) .toolbar{margin-bottom:1em;border-top:none;border-radius:.25rem;border:1px solid rgba(0,0,0,.175)}.quarto-dashboard .vega-embed.has-actions details{width:1.7em;height:2em;position:absolute !important;top:0;right:0}.quarto-dashboard .dashboard-toolbar-container{padding:0}.quarto-dashboard .card .card-header p:last-child,.quarto-dashboard .card .card-footer p:last-child{margin-bottom:0}.quarto-dashboard .card .card-body>.h4:first-child{margin-top:0}.quarto-dashboard .card .card-body{z-index:4}@media(max-width: 767.98px){.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_length,.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_info,.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_paginate{text-align:initial}.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_filter{text-align:right}.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_paginate ul.pagination{justify-content:initial}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;padding-top:0}.quarto-dashboard .card .card-body .itables .dataTables_wrapper table{flex-shrink:0}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons{margin-bottom:.5em;margin-left:auto;width:fit-content;float:right}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons.btn-group{background:#fff;border:none}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons .btn-secondary{background-color:#fff;background-image:none;border:solid #dee2e6 1px;padding:.2em .7em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons .btn span{font-size:.8em;color:#212529}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{margin-left:.5em;margin-bottom:.5em;padding-top:0}@media(min-width: 768px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{font-size:.875em}}@media(max-width: 767.98px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{font-size:.8em}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_filter{margin-bottom:.5em;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_filter input[type=search]{padding:1px 5px 1px 5px;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_length{flex-basis:1 1 50%;margin-bottom:.5em;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_length select{padding:.4em 3em .4em .5em;font-size:.875em;margin-left:.2em;margin-right:.2em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate{flex-shrink:0}@media(min-width: 768px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate{margin-left:auto}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate ul.pagination .paginate_button .page-link{font-size:.8em}.quarto-dashboard .card .card-footer{font-size:.9em}.quarto-dashboard .card .card-toolbar{display:flex;flex-grow:1;flex-direction:row;width:100%;flex-wrap:wrap}.quarto-dashboard .card .card-toolbar>*{font-size:.8em;flex-grow:0}.quarto-dashboard .card .card-toolbar>.card-title{font-size:1em;flex-grow:1;align-self:flex-start;margin-top:.1em}.quarto-dashboard .card .card-toolbar .cell-output-display{display:flex}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .card .card-toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card .card-toolbar>*:last-child{margin-right:0}.quarto-dashboard .card .card-toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .card .card-toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .card .card-toolbar form{width:fit-content}.quarto-dashboard .card .card-toolbar form label{padding-top:.2em;padding-bottom:.2em;width:fit-content}.quarto-dashboard .card .card-toolbar form input[type=date]{width:fit-content}.quarto-dashboard .card .card-toolbar form input[type=color]{width:3em}.quarto-dashboard .card .card-toolbar form button{padding:.4em}.quarto-dashboard .card .card-toolbar form select{width:fit-content}.quarto-dashboard .card .card-toolbar .cell-output-display{display:flex}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .card .card-toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card .card-toolbar>*:last-child{margin-right:0}.quarto-dashboard .card .card-toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .card .card-toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:0;margin-bottom:0}.quarto-dashboard .card .card-toolbar .shiny-input-container>*{flex-shrink:0;flex-grow:0}.quarto-dashboard .card .card-toolbar .form-group.shiny-input-container:not([role=group])>label{margin-bottom:0}.quarto-dashboard .card .card-toolbar .shiny-input-container.no-baseline{align-items:start;padding-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-container{display:flex;align-items:baseline}.quarto-dashboard .card .card-toolbar .shiny-input-container label{padding-right:.4em}.quarto-dashboard .card .card-toolbar .shiny-input-container .bslib-input-switch{margin-top:6px}.quarto-dashboard .card .card-toolbar input[type=text]{line-height:1;width:inherit}.quarto-dashboard .card .card-toolbar .input-daterange{width:inherit}.quarto-dashboard .card .card-toolbar .input-daterange input[type=text]{height:2.4em;width:10em}.quarto-dashboard .card .card-toolbar .input-daterange .input-group-addon{height:auto;padding:0;margin-left:-5px !important;margin-right:-5px}.quarto-dashboard .card .card-toolbar .input-daterange .input-group-addon .input-group-text{padding-top:0;padding-bottom:0;height:100%}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny{width:10em}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-line{top:9px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-min,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-max,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-from,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-to,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-single{top:20px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-bar{top:8px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-handle{top:0px}.quarto-dashboard .card .card-toolbar .shiny-input-checkboxgroup>label{margin-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-checkboxgroup>.shiny-options-group{margin-top:0;align-items:baseline}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>label{margin-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>.shiny-options-group{align-items:baseline;margin-top:0}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>.shiny-options-group>.radio{margin-right:.3em}.quarto-dashboard .card .card-toolbar .form-select{padding-top:.2em;padding-bottom:.2em}.quarto-dashboard .card .card-toolbar .shiny-input-select{min-width:6em}.quarto-dashboard .card .card-toolbar div.checkbox{margin-bottom:0px}.quarto-dashboard .card .card-toolbar>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card-body>table>thead{border-top:none}.quarto-dashboard .card-body>.table>:not(caption)>*>*{background-color:#fff}.tableFloatingHeaderOriginal{background-color:#fff;position:sticky !important;top:0 !important}.dashboard-data-table{margin-top:-1px}div.value-box-area span.observablehq--number{font-size:calc(clamp(.1em,15cqw,5em)*1.25);line-height:1.2;color:inherit;font-family:var(--bs-body-font-family)}.quarto-listing{padding-bottom:1em}.listing-pagination{padding-top:.5em}ul.pagination{float:right;padding-left:8px;padding-top:.5em}ul.pagination li{padding-right:.75em}ul.pagination li.disabled a,ul.pagination li.active a{color:#fff;text-decoration:none}ul.pagination li:last-of-type{padding-right:0}.listing-actions-group{display:flex}.quarto-listing-filter{margin-bottom:1em;width:200px;margin-left:auto}.quarto-listing-sort{margin-bottom:1em;margin-right:auto;width:auto}.quarto-listing-sort .input-group-text{font-size:.8em}.input-group-text{border-right:none}.quarto-listing-sort select.form-select{font-size:.8em}.listing-no-matching{text-align:center;padding-top:2em;padding-bottom:3em;font-size:1em}#quarto-margin-sidebar .quarto-listing-category{padding-top:0;font-size:1rem}#quarto-margin-sidebar .quarto-listing-category-title{cursor:pointer;font-weight:600;font-size:1rem}.quarto-listing-category .category{cursor:pointer}.quarto-listing-category .category.active{font-weight:600}.quarto-listing-category.category-cloud{display:flex;flex-wrap:wrap;align-items:baseline}.quarto-listing-category.category-cloud .category{padding-right:5px}.quarto-listing-category.category-cloud .category-cloud-1{font-size:.75em}.quarto-listing-category.category-cloud .category-cloud-2{font-size:.95em}.quarto-listing-category.category-cloud .category-cloud-3{font-size:1.15em}.quarto-listing-category.category-cloud .category-cloud-4{font-size:1.35em}.quarto-listing-category.category-cloud .category-cloud-5{font-size:1.55em}.quarto-listing-category.category-cloud .category-cloud-6{font-size:1.75em}.quarto-listing-category.category-cloud .category-cloud-7{font-size:1.95em}.quarto-listing-category.category-cloud .category-cloud-8{font-size:2.15em}.quarto-listing-category.category-cloud .category-cloud-9{font-size:2.35em}.quarto-listing-category.category-cloud .category-cloud-10{font-size:2.55em}.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-1{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-2{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-3{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-3{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-4{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-4{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-5{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-5{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-6{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-6{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-7{grid-template-columns:repeat(7, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-7{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-7{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-8{grid-template-columns:repeat(8, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-8{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-8{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-9{grid-template-columns:repeat(9, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-9{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-9{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-10{grid-template-columns:repeat(10, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-10{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-10{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-11{grid-template-columns:repeat(11, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-11{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-11{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-12{grid-template-columns:repeat(12, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-12{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-12{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-grid{gap:1.5em}.quarto-grid-item.borderless{border:none}.quarto-grid-item.borderless .listing-categories .listing-category:last-of-type,.quarto-grid-item.borderless .listing-categories .listing-category:first-of-type{padding-left:0}.quarto-grid-item.borderless .listing-categories .listing-category{border:0}.quarto-grid-link{text-decoration:none;color:inherit}.quarto-grid-link:hover{text-decoration:none;color:inherit}.quarto-grid-item h5.title,.quarto-grid-item .title.h5{margin-top:0;margin-bottom:0}.quarto-grid-item .card-footer{display:flex;justify-content:space-between;font-size:.8em}.quarto-grid-item .card-footer p{margin-bottom:0}.quarto-grid-item p.card-img-top{margin-bottom:0}.quarto-grid-item p.card-img-top>img{object-fit:cover}.quarto-grid-item .card-other-values{margin-top:.5em;font-size:.8em}.quarto-grid-item .card-other-values tr{margin-bottom:.5em}.quarto-grid-item .card-other-values tr>td:first-of-type{font-weight:600;padding-right:1em;padding-left:1em;vertical-align:top}.quarto-grid-item div.post-contents{display:flex;flex-direction:column;text-decoration:none;height:100%}.quarto-grid-item .listing-item-img-placeholder{background-color:rgba(52,58,64,.25);flex-shrink:0}.quarto-grid-item .card-attribution{padding-top:1em;display:flex;gap:1em;text-transform:uppercase;color:#6c757d;font-weight:500;flex-grow:10;align-items:flex-end}.quarto-grid-item .description{padding-bottom:1em}.quarto-grid-item .card-attribution .date{align-self:flex-end}.quarto-grid-item .card-attribution.justify{justify-content:space-between}.quarto-grid-item .card-attribution.start{justify-content:flex-start}.quarto-grid-item .card-attribution.end{justify-content:flex-end}.quarto-grid-item .card-title{margin-bottom:.1em}.quarto-grid-item .card-subtitle{padding-top:.25em}.quarto-grid-item .card-text{font-size:.9em}.quarto-grid-item .listing-reading-time{padding-bottom:.25em}.quarto-grid-item .card-text-small{font-size:.8em}.quarto-grid-item .card-subtitle.subtitle{font-size:.9em;font-weight:600;padding-bottom:.5em}.quarto-grid-item .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}.quarto-grid-item .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}.quarto-grid-item.card-right{text-align:right}.quarto-grid-item.card-right .listing-categories{justify-content:flex-end}.quarto-grid-item.card-left{text-align:left}.quarto-grid-item.card-center{text-align:center}.quarto-grid-item.card-center .listing-description{text-align:justify}.quarto-grid-item.card-center .listing-categories{justify-content:center}table.quarto-listing-table td.image{padding:0px}table.quarto-listing-table td.image img{width:100%;max-width:50px;object-fit:contain}table.quarto-listing-table a{text-decoration:none;word-break:keep-all}table.quarto-listing-table th a{color:inherit}table.quarto-listing-table th a.asc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table th a.desc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table.table-hover td{cursor:pointer}.quarto-post.image-left{flex-direction:row}.quarto-post.image-right{flex-direction:row-reverse}@media(max-width: 767.98px){.quarto-post.image-right,.quarto-post.image-left{gap:0em;flex-direction:column}.quarto-post .metadata{padding-bottom:1em;order:2}.quarto-post .body{order:1}.quarto-post .thumbnail{order:3}}.list.quarto-listing-default div:last-of-type{border-bottom:none}@media(min-width: 992px){.quarto-listing-container-default{margin-right:2em}}div.quarto-post{display:flex;gap:2em;margin-bottom:1.5em;border-bottom:1px solid #dee2e6}@media(max-width: 767.98px){div.quarto-post{padding-bottom:1em}}div.quarto-post .metadata{flex-basis:20%;flex-grow:0;margin-top:.2em;flex-shrink:10}div.quarto-post .thumbnail{flex-basis:30%;flex-grow:0;flex-shrink:0}div.quarto-post .thumbnail img{margin-top:.4em;width:100%;object-fit:cover}div.quarto-post .body{flex-basis:45%;flex-grow:1;flex-shrink:0}div.quarto-post .body h3.listing-title,div.quarto-post .body .listing-title.h3{margin-top:0px;margin-bottom:0px;border-bottom:none}div.quarto-post .body .listing-subtitle{font-size:.875em;margin-bottom:.5em;margin-top:.2em}div.quarto-post .body .description{font-size:.9em}div.quarto-post .body pre code{white-space:pre-wrap}div.quarto-post a{color:#212529;text-decoration:none}div.quarto-post .metadata{display:flex;flex-direction:column;font-size:.8em;font-family:Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";flex-basis:33%}div.quarto-post .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}div.quarto-post .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}div.quarto-post .listing-description{margin-bottom:.5em}div.quarto-about-jolla{display:flex !important;flex-direction:column;align-items:center;margin-top:10%;padding-bottom:1em}div.quarto-about-jolla .about-image{object-fit:cover;margin-left:auto;margin-right:auto;margin-bottom:1.5em}div.quarto-about-jolla img.round{border-radius:50%}div.quarto-about-jolla img.rounded{border-radius:10px}div.quarto-about-jolla .quarto-title h1.title,div.quarto-about-jolla .quarto-title .title.h1{text-align:center}div.quarto-about-jolla .quarto-title .description{text-align:center}div.quarto-about-jolla h2,div.quarto-about-jolla .h2{border-bottom:none}div.quarto-about-jolla .about-sep{width:60%}div.quarto-about-jolla main{text-align:center}div.quarto-about-jolla .about-links{display:flex}@media(min-width: 992px){div.quarto-about-jolla .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-jolla .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-jolla .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-jolla .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-jolla .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-jolla .about-link:hover{color:#18bc9c}div.quarto-about-jolla .about-link i.bi{margin-right:.15em}div.quarto-about-solana{display:flex !important;flex-direction:column;padding-top:3em !important;padding-bottom:1em}div.quarto-about-solana .about-entity{display:flex !important;align-items:start;justify-content:space-between}@media(min-width: 992px){div.quarto-about-solana .about-entity{flex-direction:row}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity{flex-direction:column-reverse;align-items:center;text-align:center}}div.quarto-about-solana .about-entity .entity-contents{display:flex;flex-direction:column}@media(max-width: 767.98px){div.quarto-about-solana .about-entity .entity-contents{width:100%}}div.quarto-about-solana .about-entity .about-image{object-fit:cover}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-image{margin-bottom:1.5em}}div.quarto-about-solana .about-entity img.round{border-radius:50%}div.quarto-about-solana .about-entity img.rounded{border-radius:10px}div.quarto-about-solana .about-entity .about-links{display:flex;justify-content:left;padding-bottom:1.2em}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-solana .about-entity .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-solana .about-entity .about-link:hover{color:#18bc9c}div.quarto-about-solana .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-solana .about-contents{padding-right:1.5em;flex-basis:0;flex-grow:1}div.quarto-about-solana .about-contents main.content{margin-top:0}div.quarto-about-solana .about-contents h2,div.quarto-about-solana .about-contents .h2{border-bottom:none}div.quarto-about-trestles{display:flex !important;flex-direction:row;padding-top:3em !important;padding-bottom:1em}@media(max-width: 991.98px){div.quarto-about-trestles{flex-direction:column;padding-top:0em !important}}div.quarto-about-trestles .about-entity{display:flex !important;flex-direction:column;align-items:center;text-align:center;padding-right:1em}@media(min-width: 992px){div.quarto-about-trestles .about-entity{flex:0 0 42%}}div.quarto-about-trestles .about-entity .about-image{object-fit:cover;margin-bottom:1.5em}div.quarto-about-trestles .about-entity img.round{border-radius:50%}div.quarto-about-trestles .about-entity img.rounded{border-radius:10px}div.quarto-about-trestles .about-entity .about-links{display:flex;justify-content:center}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-trestles .about-entity .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-trestles .about-entity .about-link:hover{color:#18bc9c}div.quarto-about-trestles .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-trestles .about-contents{flex-basis:0;flex-grow:1}div.quarto-about-trestles .about-contents h2,div.quarto-about-trestles .about-contents .h2{border-bottom:none}@media(min-width: 992px){div.quarto-about-trestles .about-contents{border-left:solid 1px #dee2e6;padding-left:1.5em}}div.quarto-about-trestles .about-contents main.content{margin-top:0}div.quarto-about-marquee{padding-bottom:1em}div.quarto-about-marquee .about-contents{display:flex;flex-direction:column}div.quarto-about-marquee .about-image{max-height:550px;margin-bottom:1.5em;object-fit:cover}div.quarto-about-marquee img.round{border-radius:50%}div.quarto-about-marquee img.rounded{border-radius:10px}div.quarto-about-marquee h2,div.quarto-about-marquee .h2{border-bottom:none}div.quarto-about-marquee .about-links{display:flex;justify-content:center;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-marquee .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-marquee .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-marquee .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-marquee .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-marquee .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-marquee .about-link:hover{color:#18bc9c}div.quarto-about-marquee .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-marquee .about-link{border:none}}div.quarto-about-broadside{display:flex;flex-direction:column;padding-bottom:1em}div.quarto-about-broadside .about-main{display:flex !important;padding-top:0 !important}@media(min-width: 992px){div.quarto-about-broadside .about-main{flex-direction:row;align-items:flex-start}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main{flex-direction:column}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main .about-entity{flex-shrink:0;width:100%;height:450px;margin-bottom:1.5em;background-size:cover;background-repeat:no-repeat}}@media(min-width: 992px){div.quarto-about-broadside .about-main .about-entity{flex:0 10 50%;margin-right:1.5em;width:100%;height:100%;background-size:100%;background-repeat:no-repeat}}div.quarto-about-broadside .about-main .about-contents{padding-top:14px;flex:0 0 50%}div.quarto-about-broadside h2,div.quarto-about-broadside .h2{border-bottom:none}div.quarto-about-broadside .about-sep{margin-top:1.5em;width:60%;align-self:center}div.quarto-about-broadside .about-links{display:flex;justify-content:center;column-gap:20px;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-broadside .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-broadside .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-broadside .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-broadside .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-broadside .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-broadside .about-link:hover{color:#18bc9c}div.quarto-about-broadside .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-broadside .about-link{border:none}}.tippy-box[data-theme~=quarto]{background-color:#fff;border:solid 1px #dee2e6;border-radius:.25rem;color:#212529;font-size:.875rem}.tippy-box[data-theme~=quarto]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=quarto]>.tippy-arrow:after,.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{content:"";position:absolute;z-index:-1}.tippy-box[data-theme~=quarto]>.tippy-arrow:after{border-color:rgba(0,0,0,0);border-style:solid}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-6px}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-6px}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-6px}.tippy-box[data-placement^=left]>.tippy-arrow:before{right:-6px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:after{border-top-color:#dee2e6;border-width:7px 7px 0;top:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow>svg{top:16px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow:after{top:17px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff;bottom:16px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:#dee2e6;border-width:0 7px 7px;bottom:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:15px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow:after{bottom:17px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:after{border-left-color:#dee2e6;border-width:7px 0 7px 7px;left:17px;top:1px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow>svg{left:11px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow:after{left:12px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff;right:16px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:#dee2e6}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow{fill:#212529}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px}.top-right{position:absolute;top:1em;right:1em}.visually-hidden{border:0;clip:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none !important}.zindex-bottom{z-index:-1 !important}figure.figure{display:block}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p,.quarto-figure-left>figure>div{text-align:left}.quarto-figure-center>figure>p,.quarto-figure-center>figure>div{text-align:center}.quarto-figure-right>figure>p,.quarto-figure-right>figure>div{text-align:right}.quarto-figure>figure>div.cell-annotation,.quarto-figure>figure>div code{text-align:left}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption.quarto-float-caption-bottom{margin-bottom:.5em}figure>figcaption.quarto-float-caption-top{margin-top:.5em}div[id^=tbl-]{position:relative}.quarto-figure>.anchorjs-link{position:absolute;top:.6em;right:.5em}div[id^=tbl-]>.anchorjs-link{position:absolute;top:.7em;right:.3em}.quarto-figure:hover>.anchorjs-link,div[id^=tbl-]:hover>.anchorjs-link,h2:hover>.anchorjs-link,.h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,.h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,.h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,.h5:hover>.anchorjs-link,h6:hover>.anchorjs-link,.h6:hover>.anchorjs-link,.reveal-anchorjs-link>.anchorjs-link{opacity:1}#title-block-header{margin-block-end:1rem;position:relative;margin-top:-1px}#title-block-header .abstract{margin-block-start:1rem}#title-block-header .abstract .abstract-title{font-weight:600}#title-block-header a{text-decoration:none}#title-block-header .author,#title-block-header .date,#title-block-header .doi{margin-block-end:.2rem}#title-block-header .quarto-title-block>div{display:flex}#title-block-header .quarto-title-block>div>h1,#title-block-header .quarto-title-block>div>.h1{flex-grow:1}#title-block-header .quarto-title-block>div>button{flex-shrink:0;height:2.25rem;margin-top:0}@media(min-width: 992px){#title-block-header .quarto-title-block>div>button{margin-top:5px}}tr.header>th>p:last-of-type{margin-bottom:0px}table,table.table{margin-top:.5rem;margin-bottom:.5rem}caption,.table-caption{padding-top:.5rem;padding-bottom:.5rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-top{margin-top:.5rem;margin-bottom:.25rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-bottom{padding-top:.25rem;margin-bottom:.5rem;text-align:center}.utterances{max-width:none;margin-left:-8px}iframe{margin-bottom:1em}details{margin-bottom:1em}details[show]{margin-bottom:0}details>summary{color:#6c757d}details>summary>p:only-child{display:inline}pre.sourceCode,code.sourceCode{position:relative}dd code:not(.sourceCode),p code:not(.sourceCode){white-space:pre-wrap}code{white-space:pre}@media print{code{white-space:pre-wrap}}pre>code{display:block}pre>code.sourceCode{white-space:pre}pre>code.sourceCode>span>a:first-child::before{text-decoration:none}pre.code-overflow-wrap>code.sourceCode{white-space:pre-wrap}pre.code-overflow-scroll>code.sourceCode{white-space:pre}code a:any-link{color:inherit;text-decoration:none}code a:hover{color:inherit;text-decoration:underline}ul.task-list{padding-left:1em}[data-tippy-root]{display:inline-block}.tippy-content .footnote-back{display:none}.footnote-back{margin-left:.2em}.tippy-content{overflow-x:auto}.quarto-embedded-source-code{display:none}.quarto-unresolved-ref{font-weight:600}.quarto-cover-image{max-width:35%;float:right;margin-left:30px}.cell-output-display .widget-subarea{margin-bottom:1em}.cell-output-display:not(.no-overflow-x),.knitsql-table:not(.no-overflow-x){overflow-x:auto}.panel-input{margin-bottom:1em}.panel-input>div,.panel-input>div>div{display:inline-block;vertical-align:top;padding-right:12px}.panel-input>p:last-child{margin-bottom:0}.layout-sidebar{margin-bottom:1em}.layout-sidebar .tab-content{border:none}.tab-content>.page-columns.active{display:grid}div.sourceCode>iframe{width:100%;height:300px;margin-bottom:-0.5em}a{text-underline-offset:3px}div.ansi-escaped-output{font-family:monospace;display:block}/*! * * ansi colors from IPython notebook's * * we also add `bright-[color]-` synonyms for the `-[color]-intense` classes since * that seems to be what ansi_up emits * -*/.ansi-black-fg{color:#3e424d}.ansi-black-bg{background-color:#3e424d}.ansi-black-intense-black,.ansi-bright-black-fg{color:#282c36}.ansi-black-intense-black,.ansi-bright-black-bg{background-color:#282c36}.ansi-red-fg{color:#e75c58}.ansi-red-bg{background-color:#e75c58}.ansi-red-intense-red,.ansi-bright-red-fg{color:#b22b31}.ansi-red-intense-red,.ansi-bright-red-bg{background-color:#b22b31}.ansi-green-fg{color:#00a250}.ansi-green-bg{background-color:#00a250}.ansi-green-intense-green,.ansi-bright-green-fg{color:#007427}.ansi-green-intense-green,.ansi-bright-green-bg{background-color:#007427}.ansi-yellow-fg{color:#ddb62b}.ansi-yellow-bg{background-color:#ddb62b}.ansi-yellow-intense-yellow,.ansi-bright-yellow-fg{color:#b27d12}.ansi-yellow-intense-yellow,.ansi-bright-yellow-bg{background-color:#b27d12}.ansi-blue-fg{color:#208ffb}.ansi-blue-bg{background-color:#208ffb}.ansi-blue-intense-blue,.ansi-bright-blue-fg{color:#0065ca}.ansi-blue-intense-blue,.ansi-bright-blue-bg{background-color:#0065ca}.ansi-magenta-fg{color:#d160c4}.ansi-magenta-bg{background-color:#d160c4}.ansi-magenta-intense-magenta,.ansi-bright-magenta-fg{color:#a03196}.ansi-magenta-intense-magenta,.ansi-bright-magenta-bg{background-color:#a03196}.ansi-cyan-fg{color:#60c6c8}.ansi-cyan-bg{background-color:#60c6c8}.ansi-cyan-intense-cyan,.ansi-bright-cyan-fg{color:#258f8f}.ansi-cyan-intense-cyan,.ansi-bright-cyan-bg{background-color:#258f8f}.ansi-white-fg{color:#c5c1b4}.ansi-white-bg{background-color:#c5c1b4}.ansi-white-intense-white,.ansi-bright-white-fg{color:#a1a6b2}.ansi-white-intense-white,.ansi-bright-white-bg{background-color:#a1a6b2}.ansi-default-inverse-fg{color:#fff}.ansi-default-inverse-bg{background-color:#000}.ansi-bold{font-weight:bold}.ansi-underline{text-decoration:underline}:root{--quarto-body-bg: #fff;--quarto-body-color: #212529;--quarto-text-muted: #6c757d;--quarto-border-color: #dee2e6;--quarto-border-width: 1px;--quarto-border-radius: 0.25rem}table.gt_table{color:var(--quarto-body-color);font-size:1em;width:100%;background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_column_spanner_outer{color:var(--quarto-body-color);background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_col_heading{color:var(--quarto-body-color);font-weight:bold;background-color:rgba(0,0,0,0)}table.gt_table thead.gt_col_headings{border-bottom:1px solid currentColor;border-top-width:inherit;border-top-color:var(--quarto-border-color)}table.gt_table thead.gt_col_headings:not(:first-child){border-top-width:1px;border-top-color:var(--quarto-border-color)}table.gt_table td.gt_row{border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-width:0px}table.gt_table tbody.gt_table_body{border-top-width:1px;border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-color:currentColor}div.columns{display:initial;gap:initial}div.column{display:inline-block;overflow-x:initial;vertical-align:top;width:50%}.code-annotation-tip-content{word-wrap:break-word}.code-annotation-container-hidden{display:none !important}dl.code-annotation-container-grid{display:grid;grid-template-columns:min-content auto}dl.code-annotation-container-grid dt{grid-column:1}dl.code-annotation-container-grid dd{grid-column:2}pre.sourceCode.code-annotation-code{padding-right:0}code.sourceCode .code-annotation-anchor{z-index:100;position:relative;float:right;background-color:rgba(0,0,0,0)}input[type=checkbox]{margin-right:.5ch}:root{--mermaid-bg-color: #fff;--mermaid-edge-color: #6c757d;--mermaid-node-fg-color: #212529;--mermaid-fg-color: #212529;--mermaid-fg-color--lighter: #383f45;--mermaid-fg-color--lightest: #4e5862;--mermaid-font-family: Lato, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--mermaid-label-bg-color: #fff;--mermaid-label-fg-color: #2c3e50;--mermaid-node-bg-color: rgba(44, 62, 80, 0.1);--mermaid-node-fg-color: #212529}@media print{:root{font-size:11pt}#quarto-sidebar,#TOC,.nav-page{display:none}.page-columns .content{grid-column-start:page-start}.fixed-top{position:relative}.panel-caption,.figure-caption,figcaption{color:#666}}.code-copy-button{position:absolute;top:0;right:0;border:0;margin-top:5px;margin-right:5px;background-color:rgba(0,0,0,0);z-index:3}.code-copy-button:focus{outline:none}.code-copy-button-tooltip{font-size:.75em}.code-copy-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button-checked:hover>.bi::before{background-image:url('data:image/svg+xml,')}main ol ol,main ul ul,main ol ul,main ul ol{margin-bottom:1em}ul>li:not(:has(>p))>ul,ol>li:not(:has(>p))>ul,ul>li:not(:has(>p))>ol,ol>li:not(:has(>p))>ol{margin-bottom:0}ul>li:not(:has(>p))>ul>li:has(>p),ol>li:not(:has(>p))>ul>li:has(>p),ul>li:not(:has(>p))>ol>li:has(>p),ol>li:not(:has(>p))>ol>li:has(>p){margin-top:1rem}body{margin:0}main.page-columns>header>h1.title,main.page-columns>header>.title.h1{margin-bottom:0}@media(min-width: 992px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] 35px [page-end-inset page-end] 5fr [screen-end-inset] 1.5em}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 3em [body-end] 50px [body-end-outset] minmax(0px, 250px) [page-end-inset] minmax(50px, 100px) [page-end] 1fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 100px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 150px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 991.98px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(100449px - 3em)) [body-content-end body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1.5em [body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 767.98px){body .page-columns,body.fullcontent:not(.floating):not(.docked) .page-columns,body.slimcontent:not(.floating):not(.docked) .page-columns,body.docked .page-columns,body.docked.slimcontent .page-columns,body.docked.fullcontent .page-columns,body.floating .page-columns,body.floating.slimcontent .page-columns,body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}nav[role=doc-toc]{display:none}}body,.page-row-navigation{grid-template-rows:[page-top] max-content [contents-top] max-content [contents-bottom] max-content [page-bottom]}.page-rows-contents{grid-template-rows:[content-top] minmax(max-content, 1fr) [content-bottom] minmax(60px, max-content) [page-bottom]}.page-full{grid-column:screen-start/screen-end !important}.page-columns>*{grid-column:body-content-start/body-content-end}.page-columns.column-page>*{grid-column:page-start/page-end}.page-columns.column-page-left .page-columns.page-full>*,.page-columns.column-page-left>*{grid-column:page-start/body-content-end}.page-columns.column-page-right .page-columns.page-full>*,.page-columns.column-page-right>*{grid-column:body-content-start/page-end}.page-rows{grid-auto-rows:auto}.header{grid-column:screen-start/screen-end;grid-row:page-top/contents-top}#quarto-content{padding:0;grid-column:screen-start/screen-end;grid-row:contents-top/contents-bottom}body.floating .sidebar.sidebar-navigation{grid-column:page-start/body-start;grid-row:content-top/page-bottom}body.docked .sidebar.sidebar-navigation{grid-column:screen-start/body-start;grid-row:content-top/page-bottom}.sidebar.toc-left{grid-column:page-start/body-start;grid-row:content-top/page-bottom}.sidebar.margin-sidebar{grid-column:body-end/page-end;grid-row:content-top/page-bottom}.page-columns .content{grid-column:body-content-start/body-content-end;grid-row:content-top/content-bottom;align-content:flex-start}.page-columns .page-navigation{grid-column:body-content-start/body-content-end;grid-row:content-bottom/page-bottom}.page-columns .footer{grid-column:screen-start/screen-end;grid-row:contents-bottom/page-bottom}.page-columns .column-body{grid-column:body-content-start/body-content-end}.page-columns .column-body-fullbleed{grid-column:body-start/body-end}.page-columns .column-body-outset{grid-column:body-start-outset/body-end-outset;z-index:998;opacity:.999}.page-columns .column-body-outset table{background:#fff}.page-columns .column-body-outset-left{grid-column:body-start-outset/body-content-end;z-index:998;opacity:.999}.page-columns .column-body-outset-left table{background:#fff}.page-columns .column-body-outset-right{grid-column:body-content-start/body-end-outset;z-index:998;opacity:.999}.page-columns .column-body-outset-right table{background:#fff}.page-columns .column-page{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-page table{background:#fff}.page-columns .column-page-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.page-columns .column-page-inset table{background:#fff}.page-columns .column-page-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-page-inset-left table{background:#fff}.page-columns .column-page-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;opacity:.999}.page-columns .column-page-inset-right figcaption table{background:#fff}.page-columns .column-page-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-page-left table{background:#fff}.page-columns .column-page-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.page-columns .column-page-right figcaption table{background:#fff}#quarto-content.page-columns #quarto-margin-sidebar,#quarto-content.page-columns #quarto-sidebar{z-index:1}@media(max-width: 991.98px){#quarto-content.page-columns #quarto-margin-sidebar.collapse,#quarto-content.page-columns #quarto-sidebar.collapse,#quarto-content.page-columns #quarto-margin-sidebar.collapsing,#quarto-content.page-columns #quarto-sidebar.collapsing{z-index:1055}}#quarto-content.page-columns main.column-page,#quarto-content.page-columns main.column-page-right,#quarto-content.page-columns main.column-page-left{z-index:0}.page-columns .column-screen-inset{grid-column:screen-start-inset/screen-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:screen-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/screen-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:screen-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:screen-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:screen-start/screen-end;padding:1em;background:#ecf0f1;z-index:998;opacity:.999;margin-bottom:1em}.zindex-content{z-index:998;opacity:.999}.zindex-modal{z-index:1055;opacity:.999}.zindex-over-content{z-index:999;opacity:.999}img.img-fluid.column-screen,img.img-fluid.column-screen-inset-shaded,img.img-fluid.column-screen-inset,img.img-fluid.column-screen-inset-left,img.img-fluid.column-screen-inset-right,img.img-fluid.column-screen-left,img.img-fluid.column-screen-right{width:100%}@media(min-width: 992px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-end/page-end !important;z-index:998}.column-sidebar{grid-column:page-start/body-start !important;z-index:998}.column-leftmargin{grid-column:screen-start-inset/body-start !important;z-index:998}.no-row-height{height:1em;overflow:visible}}@media(max-width: 991.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-end/page-end !important;z-index:998}.no-row-height{height:1em;overflow:visible}.page-columns.page-full{overflow:visible}.page-columns.toc-left .margin-caption,.page-columns.toc-left div.aside,.page-columns.toc-left aside:not(.footnotes):not(.sidebar),.page-columns.toc-left .column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.page-columns.toc-left .no-row-height{height:initial;overflow:initial}}@media(max-width: 767.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.no-row-height{height:initial;overflow:initial}#quarto-margin-sidebar{display:none}#quarto-sidebar-toc-left{display:none}.hidden-sm{display:none}}.panel-grid{display:grid;grid-template-rows:repeat(1, 1fr);grid-template-columns:repeat(24, 1fr);gap:1em}.panel-grid .g-col-1{grid-column:auto/span 1}.panel-grid .g-col-2{grid-column:auto/span 2}.panel-grid .g-col-3{grid-column:auto/span 3}.panel-grid .g-col-4{grid-column:auto/span 4}.panel-grid .g-col-5{grid-column:auto/span 5}.panel-grid .g-col-6{grid-column:auto/span 6}.panel-grid .g-col-7{grid-column:auto/span 7}.panel-grid .g-col-8{grid-column:auto/span 8}.panel-grid .g-col-9{grid-column:auto/span 9}.panel-grid .g-col-10{grid-column:auto/span 10}.panel-grid .g-col-11{grid-column:auto/span 11}.panel-grid .g-col-12{grid-column:auto/span 12}.panel-grid .g-col-13{grid-column:auto/span 13}.panel-grid .g-col-14{grid-column:auto/span 14}.panel-grid .g-col-15{grid-column:auto/span 15}.panel-grid .g-col-16{grid-column:auto/span 16}.panel-grid .g-col-17{grid-column:auto/span 17}.panel-grid .g-col-18{grid-column:auto/span 18}.panel-grid .g-col-19{grid-column:auto/span 19}.panel-grid .g-col-20{grid-column:auto/span 20}.panel-grid .g-col-21{grid-column:auto/span 21}.panel-grid .g-col-22{grid-column:auto/span 22}.panel-grid .g-col-23{grid-column:auto/span 23}.panel-grid .g-col-24{grid-column:auto/span 24}.panel-grid .g-start-1{grid-column-start:1}.panel-grid .g-start-2{grid-column-start:2}.panel-grid .g-start-3{grid-column-start:3}.panel-grid .g-start-4{grid-column-start:4}.panel-grid .g-start-5{grid-column-start:5}.panel-grid .g-start-6{grid-column-start:6}.panel-grid .g-start-7{grid-column-start:7}.panel-grid .g-start-8{grid-column-start:8}.panel-grid .g-start-9{grid-column-start:9}.panel-grid .g-start-10{grid-column-start:10}.panel-grid .g-start-11{grid-column-start:11}.panel-grid .g-start-12{grid-column-start:12}.panel-grid .g-start-13{grid-column-start:13}.panel-grid .g-start-14{grid-column-start:14}.panel-grid .g-start-15{grid-column-start:15}.panel-grid .g-start-16{grid-column-start:16}.panel-grid .g-start-17{grid-column-start:17}.panel-grid .g-start-18{grid-column-start:18}.panel-grid .g-start-19{grid-column-start:19}.panel-grid .g-start-20{grid-column-start:20}.panel-grid .g-start-21{grid-column-start:21}.panel-grid .g-start-22{grid-column-start:22}.panel-grid .g-start-23{grid-column-start:23}@media(min-width: 576px){.panel-grid .g-col-sm-1{grid-column:auto/span 1}.panel-grid .g-col-sm-2{grid-column:auto/span 2}.panel-grid .g-col-sm-3{grid-column:auto/span 3}.panel-grid .g-col-sm-4{grid-column:auto/span 4}.panel-grid .g-col-sm-5{grid-column:auto/span 5}.panel-grid .g-col-sm-6{grid-column:auto/span 6}.panel-grid .g-col-sm-7{grid-column:auto/span 7}.panel-grid .g-col-sm-8{grid-column:auto/span 8}.panel-grid .g-col-sm-9{grid-column:auto/span 9}.panel-grid .g-col-sm-10{grid-column:auto/span 10}.panel-grid .g-col-sm-11{grid-column:auto/span 11}.panel-grid .g-col-sm-12{grid-column:auto/span 12}.panel-grid .g-col-sm-13{grid-column:auto/span 13}.panel-grid .g-col-sm-14{grid-column:auto/span 14}.panel-grid .g-col-sm-15{grid-column:auto/span 15}.panel-grid .g-col-sm-16{grid-column:auto/span 16}.panel-grid .g-col-sm-17{grid-column:auto/span 17}.panel-grid .g-col-sm-18{grid-column:auto/span 18}.panel-grid .g-col-sm-19{grid-column:auto/span 19}.panel-grid .g-col-sm-20{grid-column:auto/span 20}.panel-grid .g-col-sm-21{grid-column:auto/span 21}.panel-grid .g-col-sm-22{grid-column:auto/span 22}.panel-grid .g-col-sm-23{grid-column:auto/span 23}.panel-grid .g-col-sm-24{grid-column:auto/span 24}.panel-grid .g-start-sm-1{grid-column-start:1}.panel-grid .g-start-sm-2{grid-column-start:2}.panel-grid .g-start-sm-3{grid-column-start:3}.panel-grid .g-start-sm-4{grid-column-start:4}.panel-grid .g-start-sm-5{grid-column-start:5}.panel-grid .g-start-sm-6{grid-column-start:6}.panel-grid .g-start-sm-7{grid-column-start:7}.panel-grid .g-start-sm-8{grid-column-start:8}.panel-grid .g-start-sm-9{grid-column-start:9}.panel-grid .g-start-sm-10{grid-column-start:10}.panel-grid .g-start-sm-11{grid-column-start:11}.panel-grid .g-start-sm-12{grid-column-start:12}.panel-grid .g-start-sm-13{grid-column-start:13}.panel-grid .g-start-sm-14{grid-column-start:14}.panel-grid .g-start-sm-15{grid-column-start:15}.panel-grid .g-start-sm-16{grid-column-start:16}.panel-grid .g-start-sm-17{grid-column-start:17}.panel-grid .g-start-sm-18{grid-column-start:18}.panel-grid .g-start-sm-19{grid-column-start:19}.panel-grid .g-start-sm-20{grid-column-start:20}.panel-grid .g-start-sm-21{grid-column-start:21}.panel-grid .g-start-sm-22{grid-column-start:22}.panel-grid .g-start-sm-23{grid-column-start:23}}@media(min-width: 768px){.panel-grid .g-col-md-1{grid-column:auto/span 1}.panel-grid .g-col-md-2{grid-column:auto/span 2}.panel-grid .g-col-md-3{grid-column:auto/span 3}.panel-grid .g-col-md-4{grid-column:auto/span 4}.panel-grid .g-col-md-5{grid-column:auto/span 5}.panel-grid .g-col-md-6{grid-column:auto/span 6}.panel-grid .g-col-md-7{grid-column:auto/span 7}.panel-grid .g-col-md-8{grid-column:auto/span 8}.panel-grid .g-col-md-9{grid-column:auto/span 9}.panel-grid .g-col-md-10{grid-column:auto/span 10}.panel-grid .g-col-md-11{grid-column:auto/span 11}.panel-grid .g-col-md-12{grid-column:auto/span 12}.panel-grid .g-col-md-13{grid-column:auto/span 13}.panel-grid .g-col-md-14{grid-column:auto/span 14}.panel-grid .g-col-md-15{grid-column:auto/span 15}.panel-grid .g-col-md-16{grid-column:auto/span 16}.panel-grid .g-col-md-17{grid-column:auto/span 17}.panel-grid .g-col-md-18{grid-column:auto/span 18}.panel-grid .g-col-md-19{grid-column:auto/span 19}.panel-grid .g-col-md-20{grid-column:auto/span 20}.panel-grid .g-col-md-21{grid-column:auto/span 21}.panel-grid .g-col-md-22{grid-column:auto/span 22}.panel-grid .g-col-md-23{grid-column:auto/span 23}.panel-grid .g-col-md-24{grid-column:auto/span 24}.panel-grid .g-start-md-1{grid-column-start:1}.panel-grid .g-start-md-2{grid-column-start:2}.panel-grid .g-start-md-3{grid-column-start:3}.panel-grid .g-start-md-4{grid-column-start:4}.panel-grid .g-start-md-5{grid-column-start:5}.panel-grid .g-start-md-6{grid-column-start:6}.panel-grid .g-start-md-7{grid-column-start:7}.panel-grid .g-start-md-8{grid-column-start:8}.panel-grid .g-start-md-9{grid-column-start:9}.panel-grid .g-start-md-10{grid-column-start:10}.panel-grid .g-start-md-11{grid-column-start:11}.panel-grid .g-start-md-12{grid-column-start:12}.panel-grid .g-start-md-13{grid-column-start:13}.panel-grid .g-start-md-14{grid-column-start:14}.panel-grid .g-start-md-15{grid-column-start:15}.panel-grid .g-start-md-16{grid-column-start:16}.panel-grid .g-start-md-17{grid-column-start:17}.panel-grid .g-start-md-18{grid-column-start:18}.panel-grid .g-start-md-19{grid-column-start:19}.panel-grid .g-start-md-20{grid-column-start:20}.panel-grid .g-start-md-21{grid-column-start:21}.panel-grid .g-start-md-22{grid-column-start:22}.panel-grid .g-start-md-23{grid-column-start:23}}@media(min-width: 992px){.panel-grid .g-col-lg-1{grid-column:auto/span 1}.panel-grid .g-col-lg-2{grid-column:auto/span 2}.panel-grid .g-col-lg-3{grid-column:auto/span 3}.panel-grid .g-col-lg-4{grid-column:auto/span 4}.panel-grid .g-col-lg-5{grid-column:auto/span 5}.panel-grid .g-col-lg-6{grid-column:auto/span 6}.panel-grid .g-col-lg-7{grid-column:auto/span 7}.panel-grid .g-col-lg-8{grid-column:auto/span 8}.panel-grid .g-col-lg-9{grid-column:auto/span 9}.panel-grid .g-col-lg-10{grid-column:auto/span 10}.panel-grid .g-col-lg-11{grid-column:auto/span 11}.panel-grid .g-col-lg-12{grid-column:auto/span 12}.panel-grid .g-col-lg-13{grid-column:auto/span 13}.panel-grid .g-col-lg-14{grid-column:auto/span 14}.panel-grid .g-col-lg-15{grid-column:auto/span 15}.panel-grid .g-col-lg-16{grid-column:auto/span 16}.panel-grid .g-col-lg-17{grid-column:auto/span 17}.panel-grid .g-col-lg-18{grid-column:auto/span 18}.panel-grid .g-col-lg-19{grid-column:auto/span 19}.panel-grid .g-col-lg-20{grid-column:auto/span 20}.panel-grid .g-col-lg-21{grid-column:auto/span 21}.panel-grid .g-col-lg-22{grid-column:auto/span 22}.panel-grid .g-col-lg-23{grid-column:auto/span 23}.panel-grid .g-col-lg-24{grid-column:auto/span 24}.panel-grid .g-start-lg-1{grid-column-start:1}.panel-grid .g-start-lg-2{grid-column-start:2}.panel-grid .g-start-lg-3{grid-column-start:3}.panel-grid .g-start-lg-4{grid-column-start:4}.panel-grid .g-start-lg-5{grid-column-start:5}.panel-grid .g-start-lg-6{grid-column-start:6}.panel-grid .g-start-lg-7{grid-column-start:7}.panel-grid .g-start-lg-8{grid-column-start:8}.panel-grid .g-start-lg-9{grid-column-start:9}.panel-grid .g-start-lg-10{grid-column-start:10}.panel-grid .g-start-lg-11{grid-column-start:11}.panel-grid .g-start-lg-12{grid-column-start:12}.panel-grid .g-start-lg-13{grid-column-start:13}.panel-grid .g-start-lg-14{grid-column-start:14}.panel-grid .g-start-lg-15{grid-column-start:15}.panel-grid .g-start-lg-16{grid-column-start:16}.panel-grid .g-start-lg-17{grid-column-start:17}.panel-grid .g-start-lg-18{grid-column-start:18}.panel-grid .g-start-lg-19{grid-column-start:19}.panel-grid .g-start-lg-20{grid-column-start:20}.panel-grid .g-start-lg-21{grid-column-start:21}.panel-grid .g-start-lg-22{grid-column-start:22}.panel-grid .g-start-lg-23{grid-column-start:23}}@media(min-width: 1200px){.panel-grid .g-col-xl-1{grid-column:auto/span 1}.panel-grid .g-col-xl-2{grid-column:auto/span 2}.panel-grid .g-col-xl-3{grid-column:auto/span 3}.panel-grid .g-col-xl-4{grid-column:auto/span 4}.panel-grid .g-col-xl-5{grid-column:auto/span 5}.panel-grid .g-col-xl-6{grid-column:auto/span 6}.panel-grid .g-col-xl-7{grid-column:auto/span 7}.panel-grid .g-col-xl-8{grid-column:auto/span 8}.panel-grid .g-col-xl-9{grid-column:auto/span 9}.panel-grid .g-col-xl-10{grid-column:auto/span 10}.panel-grid .g-col-xl-11{grid-column:auto/span 11}.panel-grid .g-col-xl-12{grid-column:auto/span 12}.panel-grid .g-col-xl-13{grid-column:auto/span 13}.panel-grid .g-col-xl-14{grid-column:auto/span 14}.panel-grid .g-col-xl-15{grid-column:auto/span 15}.panel-grid .g-col-xl-16{grid-column:auto/span 16}.panel-grid .g-col-xl-17{grid-column:auto/span 17}.panel-grid .g-col-xl-18{grid-column:auto/span 18}.panel-grid .g-col-xl-19{grid-column:auto/span 19}.panel-grid .g-col-xl-20{grid-column:auto/span 20}.panel-grid .g-col-xl-21{grid-column:auto/span 21}.panel-grid .g-col-xl-22{grid-column:auto/span 22}.panel-grid .g-col-xl-23{grid-column:auto/span 23}.panel-grid .g-col-xl-24{grid-column:auto/span 24}.panel-grid .g-start-xl-1{grid-column-start:1}.panel-grid .g-start-xl-2{grid-column-start:2}.panel-grid .g-start-xl-3{grid-column-start:3}.panel-grid .g-start-xl-4{grid-column-start:4}.panel-grid .g-start-xl-5{grid-column-start:5}.panel-grid .g-start-xl-6{grid-column-start:6}.panel-grid .g-start-xl-7{grid-column-start:7}.panel-grid .g-start-xl-8{grid-column-start:8}.panel-grid .g-start-xl-9{grid-column-start:9}.panel-grid .g-start-xl-10{grid-column-start:10}.panel-grid .g-start-xl-11{grid-column-start:11}.panel-grid .g-start-xl-12{grid-column-start:12}.panel-grid .g-start-xl-13{grid-column-start:13}.panel-grid .g-start-xl-14{grid-column-start:14}.panel-grid .g-start-xl-15{grid-column-start:15}.panel-grid .g-start-xl-16{grid-column-start:16}.panel-grid .g-start-xl-17{grid-column-start:17}.panel-grid .g-start-xl-18{grid-column-start:18}.panel-grid .g-start-xl-19{grid-column-start:19}.panel-grid .g-start-xl-20{grid-column-start:20}.panel-grid .g-start-xl-21{grid-column-start:21}.panel-grid .g-start-xl-22{grid-column-start:22}.panel-grid .g-start-xl-23{grid-column-start:23}}@media(min-width: 1400px){.panel-grid .g-col-xxl-1{grid-column:auto/span 1}.panel-grid .g-col-xxl-2{grid-column:auto/span 2}.panel-grid .g-col-xxl-3{grid-column:auto/span 3}.panel-grid .g-col-xxl-4{grid-column:auto/span 4}.panel-grid .g-col-xxl-5{grid-column:auto/span 5}.panel-grid .g-col-xxl-6{grid-column:auto/span 6}.panel-grid .g-col-xxl-7{grid-column:auto/span 7}.panel-grid .g-col-xxl-8{grid-column:auto/span 8}.panel-grid .g-col-xxl-9{grid-column:auto/span 9}.panel-grid .g-col-xxl-10{grid-column:auto/span 10}.panel-grid .g-col-xxl-11{grid-column:auto/span 11}.panel-grid .g-col-xxl-12{grid-column:auto/span 12}.panel-grid .g-col-xxl-13{grid-column:auto/span 13}.panel-grid .g-col-xxl-14{grid-column:auto/span 14}.panel-grid .g-col-xxl-15{grid-column:auto/span 15}.panel-grid .g-col-xxl-16{grid-column:auto/span 16}.panel-grid .g-col-xxl-17{grid-column:auto/span 17}.panel-grid .g-col-xxl-18{grid-column:auto/span 18}.panel-grid .g-col-xxl-19{grid-column:auto/span 19}.panel-grid .g-col-xxl-20{grid-column:auto/span 20}.panel-grid .g-col-xxl-21{grid-column:auto/span 21}.panel-grid .g-col-xxl-22{grid-column:auto/span 22}.panel-grid .g-col-xxl-23{grid-column:auto/span 23}.panel-grid .g-col-xxl-24{grid-column:auto/span 24}.panel-grid .g-start-xxl-1{grid-column-start:1}.panel-grid .g-start-xxl-2{grid-column-start:2}.panel-grid .g-start-xxl-3{grid-column-start:3}.panel-grid .g-start-xxl-4{grid-column-start:4}.panel-grid .g-start-xxl-5{grid-column-start:5}.panel-grid .g-start-xxl-6{grid-column-start:6}.panel-grid .g-start-xxl-7{grid-column-start:7}.panel-grid .g-start-xxl-8{grid-column-start:8}.panel-grid .g-start-xxl-9{grid-column-start:9}.panel-grid .g-start-xxl-10{grid-column-start:10}.panel-grid .g-start-xxl-11{grid-column-start:11}.panel-grid .g-start-xxl-12{grid-column-start:12}.panel-grid .g-start-xxl-13{grid-column-start:13}.panel-grid .g-start-xxl-14{grid-column-start:14}.panel-grid .g-start-xxl-15{grid-column-start:15}.panel-grid .g-start-xxl-16{grid-column-start:16}.panel-grid .g-start-xxl-17{grid-column-start:17}.panel-grid .g-start-xxl-18{grid-column-start:18}.panel-grid .g-start-xxl-19{grid-column-start:19}.panel-grid .g-start-xxl-20{grid-column-start:20}.panel-grid .g-start-xxl-21{grid-column-start:21}.panel-grid .g-start-xxl-22{grid-column-start:22}.panel-grid .g-start-xxl-23{grid-column-start:23}}main{margin-top:1em;margin-bottom:1em}h1,.h1,h2,.h2{color:inherit;margin-top:2rem;margin-bottom:1rem;font-weight:600}h1.title,.title.h1{margin-top:0}main.content>section:first-of-type>h2:first-child,main.content>section:first-of-type>.h2:first-child{margin-top:0}h2,.h2{border-bottom:1px solid #dee2e6;padding-bottom:.5rem}h3,.h3{font-weight:600}h3,.h3,h4,.h4{opacity:.9;margin-top:1.5rem}h5,.h5,h6,.h6{opacity:.9}.header-section-number{color:#5a6570}.nav-link.active .header-section-number{color:inherit}mark,.mark{padding:0em}.panel-caption,.figure-caption,.subfigure-caption,.table-caption,figcaption,caption{font-size:.9rem;color:#5a6570}.quarto-layout-cell[data-ref-parent] caption{color:#5a6570}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#5a6570;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse):first-child{padding-bottom:.5em;display:block}.column-margin.column-container>*:not(.collapse):not(:first-child){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.nav-tabs .nav-item{margin-top:1px;cursor:pointer}.tab-content{margin-top:0px;border-left:#ecf0f1 1px solid;border-right:#ecf0f1 1px solid;border-bottom:#ecf0f1 1px solid;margin-left:0;padding:1em;margin-bottom:1em}@media(max-width: 767.98px){.layout-sidebar{margin-left:0;margin-right:0}}.panel-sidebar,.panel-sidebar .form-control,.panel-input,.panel-input .form-control,.selectize-dropdown{font-size:.9rem}.panel-sidebar .form-control,.panel-input .form-control{padding-top:.1rem}.tab-pane div.sourceCode{margin-top:0px}.tab-pane>p{padding-top:0}.tab-pane>p:nth-child(1){padding-top:0}.tab-pane>p:last-child{margin-bottom:0}.tab-pane>pre:last-child{margin-bottom:0}.tab-content>.tab-pane:not(.active){display:none !important}div.sourceCode{background-color:rgba(236,240,241,.65);border:1px solid rgba(236,240,241,.65);border-radius:.25rem}pre.sourceCode{background-color:rgba(0,0,0,0)}pre.sourceCode{border-left:3px;border-left-style:solid;border-left-color:#1482fa;padding-left:.6em;border-right:none;border-top:none;border-bottom:none;font-size:.875em;overflow:visible !important;padding:.4em}.callout pre.sourceCode{padding-left:0}div.sourceCode{overflow-y:hidden}.callout div.sourceCode{margin-left:initial}.blockquote{font-size:inherit;padding-left:1rem;padding-right:1.5rem;color:#5a6570}.blockquote h1:first-child,.blockquote .h1:first-child,.blockquote h2:first-child,.blockquote .h2:first-child,.blockquote h3:first-child,.blockquote .h3:first-child,.blockquote h4:first-child,.blockquote .h4:first-child,.blockquote h5:first-child,.blockquote .h5:first-child{margin-top:0}pre{background-color:initial;padding:initial;border:initial}p pre code:not(.sourceCode),li pre code:not(.sourceCode),pre code:not(.sourceCode){background-color:initial}p code:not(.sourceCode),li code:not(.sourceCode),td code:not(.sourceCode){background-color:#f8f9fa;padding:.2em}nav p code:not(.sourceCode),nav li code:not(.sourceCode),nav td code:not(.sourceCode){background-color:rgba(0,0,0,0);padding:0}td code:not(.sourceCode){white-space:pre-wrap}#quarto-embedded-source-code-modal>.modal-dialog{max-width:1000px;padding-left:1.75rem;padding-right:1.75rem}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body{padding:0}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body div.sourceCode{margin:0;padding:.2rem .2rem;border-radius:0px;border:none}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-header{padding:.7rem}.code-tools-button{font-size:1rem;padding:.15rem .15rem;margin-left:5px;color:#6c757d;background-color:rgba(0,0,0,0);transition:initial;cursor:pointer}.code-tools-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.sidebar{will-change:top;transition:top 200ms linear;position:sticky;overflow-y:auto;padding-top:1.2em;max-height:100vh}.sidebar.toc-left,.sidebar.margin-sidebar{top:0px;padding-top:1em}.sidebar.quarto-banner-title-block-sidebar>*{padding-top:1.65em}figure .quarto-notebook-link{margin-top:.5em}.quarto-notebook-link{font-size:.75em;color:#6c757d;margin-bottom:1em;text-decoration:none;display:block}.quarto-notebook-link:hover{text-decoration:underline;color:#18bc9c}.quarto-notebook-link::before{display:inline-block;height:.75rem;width:.75rem;margin-bottom:0em;margin-right:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}.toc-actions i.bi,.quarto-code-links i.bi,.quarto-other-links i.bi,.quarto-alternate-notebooks i.bi,.quarto-alternate-formats i.bi{margin-right:.4em;font-size:.8rem}.quarto-other-links-text-target .quarto-code-links i.bi,.quarto-other-links-text-target .quarto-other-links i.bi{margin-right:.2em}.quarto-other-formats-text-target .quarto-alternate-formats i.bi{margin-right:.1em}.toc-actions i.bi.empty,.quarto-code-links i.bi.empty,.quarto-other-links i.bi.empty,.quarto-alternate-notebooks i.bi.empty,.quarto-alternate-formats i.bi.empty{padding-left:1em}.quarto-notebook h2,.quarto-notebook .h2{border-bottom:none}.quarto-notebook .cell-container{display:flex}.quarto-notebook .cell-container .cell{flex-grow:4}.quarto-notebook .cell-container .cell-decorator{padding-top:1.5em;padding-right:1em;text-align:right}.quarto-notebook .cell-container.code-fold .cell-decorator{padding-top:3em}.quarto-notebook .cell-code code{white-space:pre-wrap}.quarto-notebook .cell .cell-output-stderr pre code,.quarto-notebook .cell .cell-output-stdout pre code{white-space:pre-wrap;overflow-wrap:anywhere}.toc-actions,.quarto-alternate-formats,.quarto-other-links,.quarto-code-links,.quarto-alternate-notebooks{padding-left:0em}.sidebar .toc-actions a,.sidebar .quarto-alternate-formats a,.sidebar .quarto-other-links a,.sidebar .quarto-code-links a,.sidebar .quarto-alternate-notebooks a,.sidebar nav[role=doc-toc] a{text-decoration:none}.sidebar .toc-actions a:hover,.sidebar .quarto-other-links a:hover,.sidebar .quarto-code-links a:hover,.sidebar .quarto-alternate-formats a:hover,.sidebar .quarto-alternate-notebooks a:hover{color:#18bc9c}.sidebar .toc-actions h2,.sidebar .toc-actions .h2,.sidebar .quarto-code-links h2,.sidebar .quarto-code-links .h2,.sidebar .quarto-other-links h2,.sidebar .quarto-other-links .h2,.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2,.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-weight:500;margin-bottom:.2rem;margin-top:.3rem;font-family:inherit;border-bottom:0;padding-bottom:0;padding-top:0px}.sidebar .toc-actions>h2,.sidebar .toc-actions>.h2,.sidebar .quarto-code-links>h2,.sidebar .quarto-code-links>.h2,.sidebar .quarto-other-links>h2,.sidebar .quarto-other-links>.h2,.sidebar .quarto-alternate-notebooks>h2,.sidebar .quarto-alternate-notebooks>.h2,.sidebar .quarto-alternate-formats>h2,.sidebar .quarto-alternate-formats>.h2{font-size:.8rem}.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-size:.875rem}.sidebar nav[role=doc-toc]>ul a{border-left:1px solid #ecf0f1;padding-left:.6rem}.sidebar .toc-actions h2>ul a,.sidebar .toc-actions .h2>ul a,.sidebar .quarto-code-links h2>ul a,.sidebar .quarto-code-links .h2>ul a,.sidebar .quarto-other-links h2>ul a,.sidebar .quarto-other-links .h2>ul a,.sidebar .quarto-alternate-notebooks h2>ul a,.sidebar .quarto-alternate-notebooks .h2>ul a,.sidebar .quarto-alternate-formats h2>ul a,.sidebar .quarto-alternate-formats .h2>ul a{border-left:none;padding-left:.6rem}.sidebar .toc-actions ul a:empty,.sidebar .quarto-code-links ul a:empty,.sidebar .quarto-other-links ul a:empty,.sidebar .quarto-alternate-notebooks ul a:empty,.sidebar .quarto-alternate-formats ul a:empty,.sidebar nav[role=doc-toc]>ul a:empty{display:none}.sidebar .toc-actions ul,.sidebar .quarto-code-links ul,.sidebar .quarto-other-links ul,.sidebar .quarto-alternate-notebooks ul,.sidebar .quarto-alternate-formats ul{padding-left:0;list-style:none}.sidebar nav[role=doc-toc] ul{list-style:none;padding-left:0;list-style:none}.sidebar nav[role=doc-toc]>ul{margin-left:.45em}.quarto-margin-sidebar nav[role=doc-toc]{padding-left:.5em}.sidebar .toc-actions>ul,.sidebar .quarto-code-links>ul,.sidebar .quarto-other-links>ul,.sidebar .quarto-alternate-notebooks>ul,.sidebar .quarto-alternate-formats>ul{font-size:.8rem}.sidebar nav[role=doc-toc]>ul{font-size:.875rem}.sidebar .toc-actions ul li a,.sidebar .quarto-code-links ul li a,.sidebar .quarto-other-links ul li a,.sidebar .quarto-alternate-notebooks ul li a,.sidebar .quarto-alternate-formats ul li a,.sidebar nav[role=doc-toc]>ul li a{line-height:1.1rem;padding-bottom:.2rem;padding-top:.2rem;color:inherit}.sidebar nav[role=doc-toc] ul>li>ul>li>a{padding-left:1.2em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>a{padding-left:2.4em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>a{padding-left:3.6em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:4.8em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:6em}.sidebar nav[role=doc-toc] ul>li>a.active,.sidebar nav[role=doc-toc] ul>li>ul>li>a.active{border-left:1px solid #18bc9c;color:#18bc9c !important}.sidebar nav[role=doc-toc] ul>li>a:hover,.sidebar nav[role=doc-toc] ul>li>ul>li>a:hover{color:#18bc9c !important}kbd,.kbd{color:#212529;background-color:#f8f9fa;border:1px solid;border-radius:5px;border-color:#dee2e6}.quarto-appendix-contents div.hanging-indent{margin-left:0em}.quarto-appendix-contents div.hanging-indent div.csl-entry{margin-left:1em;text-indent:-1em}.citation a,.footnote-ref{text-decoration:none}.footnotes ol{padding-left:1em}.tippy-content>*{margin-bottom:.7em}.tippy-content>*:last-child{margin-bottom:0}@media(min-width: 992px){.callout:not(.no-icon){margin-left:calc(calc(-0.4em + -5px) + -1px)}.callout{margin-left:calc(-0.4em + -5px)}div.sourceCode{margin-left:calc(calc(-0.6em + -3px) + 2px)}}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:.25rem;overflow-wrap:break-word}.callout .callout-title-container{overflow-wrap:anywhere}.callout.callout-style-simple{padding:.4em .7em;border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout.callout-style-default{border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout .callout-body-container{flex-grow:1}.callout.callout-style-simple .callout-body{font-size:.9rem;font-weight:400}.callout.callout-style-default .callout-body{font-size:.9rem;font-weight:400}.callout:not(.no-icon).callout-titled.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-titled>.callout-header{padding-top:.2em;margin-bottom:-0.2em}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:.9rem;padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body{padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body>:first-child{padding-top:.5rem;margin-top:0}.callout>div.callout-header[data-bs-toggle=collapse]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded=false],.callout.callout-style-default .callout-header[aria-expanded=true]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-titled .callout-body>:last-child:not(.sourceCode),.callout.callout-titled .callout-body>div>:last-child:not(.sourceCode){padding-bottom:.5rem;margin-bottom:0}.callout:not(.callout-titled) .callout-body>:first-child,.callout:not(.callout-titled) .callout-body>div>:first-child{margin-top:.25rem}.callout:not(.callout-titled) .callout-body>:last-child,.callout:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:.2rem}.callout.callout-style-simple .callout-icon::before,.callout.callout-style-simple .callout-toggle::before{height:1rem;width:1rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.callout.callout-style-default .callout-icon::before,.callout.callout-style-default .callout-toggle::before{height:.9rem;width:.9rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:.9rem .9rem}.callout.callout-style-default .callout-toggle::before{margin-top:5px}.callout .callout-btn-toggle .callout-toggle::before{transition:transform .2s linear}.callout .callout-header[aria-expanded=false] .callout-toggle::before{transform:rotate(-90deg)}.callout .callout-header[aria-expanded=true] .callout-toggle::before{transform:none}.callout.callout-style-simple:not(.no-icon) div.callout-icon-container{padding-top:.2em;padding-right:.55em}.callout.callout-style-default:not(.no-icon) div.callout-icon-container{padding-top:.1em;padding-right:.35em}.callout.callout-style-default:not(.no-icon) div.callout-title-container{margin-top:-1px}.callout.callout-style-default.callout-caution:not(.no-icon) div.callout-icon-container{padding-top:.3em;padding-right:.35em}.callout>.callout-body>.callout-icon-container>.no-icon,.callout>.callout-header>.callout-icon-container>.no-icon{display:none}div.callout.callout{border-left-color:#6c757d}div.callout.callout-style-default>.callout-header{background-color:#6c757d}div.callout-note.callout{border-left-color:#2c3e50}div.callout-note.callout-style-default>.callout-header{background-color:#eaecee}div.callout-note:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-tip.callout{border-left-color:#18bc9c}div.callout-tip.callout-style-default>.callout-header{background-color:#e8f8f5}div.callout-tip:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-warning.callout{border-left-color:#f39c12}div.callout-warning.callout-style-default>.callout-header{background-color:#fef5e7}div.callout-warning:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-caution.callout{border-left-color:#fd7e14}div.callout-caution.callout-style-default>.callout-header{background-color:#fff2e8}div.callout-caution:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-important.callout{border-left-color:#e74c3c}div.callout-important.callout-style-default>.callout-header{background-color:#fdedec}div.callout-important:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important .callout-toggle::before{background-image:url('data:image/svg+xml,')}.quarto-toggle-container{display:flex;align-items:center}.quarto-reader-toggle .bi::before,.quarto-color-scheme-toggle .bi::before{display:inline-block;height:1rem;width:1rem;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.sidebar-navigation{padding-left:20px}.navbar{background-color:#2c3e50;color:#ccd1d5}.navbar .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.quarto-sidebar-toggle{border-color:#dee2e6;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-style:solid;border-width:1px;overflow:hidden;border-top-width:0px;padding-top:0px !important}.quarto-sidebar-toggle-title{cursor:pointer;padding-bottom:2px;margin-left:.25em;text-align:center;font-weight:400;font-size:.775em}#quarto-content .quarto-sidebar-toggle{background:#fafafa}#quarto-content .quarto-sidebar-toggle-title{color:#212529}.quarto-sidebar-toggle-icon{color:#dee2e6;margin-right:.5em;float:right;transition:transform .2s ease}.quarto-sidebar-toggle-icon::before{padding-top:5px}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-icon{transform:rotate(-180deg)}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-title{border-bottom:solid #dee2e6 1px}.quarto-sidebar-toggle-contents{background-color:#fff;padding-right:10px;padding-left:10px;margin-top:0px !important;transition:max-height .5s ease}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-contents{padding-top:1em;padding-bottom:10px}@media(max-width: 767.98px){.sidebar-menu-container{padding-bottom:5em}}.quarto-sidebar-toggle:not(.expanded) .quarto-sidebar-toggle-contents{padding-top:0px !important;padding-bottom:0px}nav[role=doc-toc]{z-index:1020}#quarto-sidebar>*,nav[role=doc-toc]>*{transition:opacity .1s ease,border .1s ease}#quarto-sidebar.slow>*,nav[role=doc-toc].slow>*{transition:opacity .4s ease,border .4s ease}.quarto-color-scheme-toggle:not(.alternate).top-right .bi::before{background-image:url('data:image/svg+xml,')}.quarto-color-scheme-toggle.alternate.top-right .bi::before{background-image:url('data:image/svg+xml,')}#quarto-appendix.default{border-top:1px solid #dee2e6}#quarto-appendix.default{background-color:#fff;padding-top:1.5em;margin-top:2em;z-index:998}#quarto-appendix.default .quarto-appendix-heading{margin-top:0;line-height:1.4em;font-weight:600;opacity:.9;border-bottom:none;margin-bottom:0}#quarto-appendix.default .footnotes ol,#quarto-appendix.default .footnotes ol li>p:last-of-type,#quarto-appendix.default .quarto-appendix-contents>p:last-of-type{margin-bottom:0}#quarto-appendix.default .footnotes ol{margin-left:.5em}#quarto-appendix.default .quarto-appendix-secondary-label{margin-bottom:.4em}#quarto-appendix.default .quarto-appendix-bibtex{font-size:.7em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-bibtex code.sourceCode{white-space:pre-wrap}#quarto-appendix.default .quarto-appendix-citeas{font-size:.9em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-heading{font-size:1em !important}#quarto-appendix.default *[role=doc-endnotes]>ol,#quarto-appendix.default .quarto-appendix-contents>*:not(h2):not(.h2){font-size:.9em}#quarto-appendix.default section{padding-bottom:1.5em}#quarto-appendix.default section *[role=doc-endnotes],#quarto-appendix.default section>*:not(a){opacity:.9;word-wrap:break-word}.btn.btn-quarto,div.cell-output-display .btn-quarto{--bs-btn-color: #fefefe;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fefefe;--bs-btn-hover-bg: #828a91;--bs-btn-hover-border-color: #7b838a;--bs-btn-focus-shadow-rgb: 130, 138, 144;--bs-btn-active-color: #fff;--bs-btn-active-bg: #899197;--bs-btn-active-border-color: #7b838a;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}nav.quarto-secondary-nav.color-navbar{background-color:#2c3e50;color:#ccd1d5}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:#ccd1d5}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner{margin-bottom:0;padding-bottom:1em}body.nav-sidebar #title-block-header{margin-block-end:0}}p.subtitle{margin-top:.25em;margin-bottom:.5em}code a:any-link{color:inherit;text-decoration-color:#6c757d}/*! light */div.observablehq table thead tr th{background-color:var(--bs-body-bg)}input,button,select,optgroup,textarea{background-color:var(--bs-body-bg)}.code-annotated .code-copy-button{margin-right:1.25em;margin-top:0;padding-bottom:0;padding-top:3px}.code-annotation-gutter-bg{background-color:#fff}.code-annotation-gutter{background-color:rgba(236,240,241,.65)}.code-annotation-gutter,.code-annotation-gutter-bg{height:100%;width:calc(20px + .5em);position:absolute;top:0;right:0}dl.code-annotation-container-grid dt{margin-right:1em;margin-top:.25rem}dl.code-annotation-container-grid dt{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:#383f45;border:solid #383f45 1px;border-radius:50%;height:22px;width:22px;line-height:22px;font-size:11px;text-align:center;vertical-align:middle;text-decoration:none}dl.code-annotation-container-grid dt[data-target-cell]{cursor:pointer}dl.code-annotation-container-grid dt[data-target-cell].code-annotation-active{color:#fff;border:solid #aaa 1px;background-color:#aaa}pre.code-annotation-code{padding-top:0;padding-bottom:0}pre.code-annotation-code code{z-index:3}#code-annotation-line-highlight-gutter{width:100%;border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}#code-annotation-line-highlight{margin-left:-4em;width:calc(100% + 4em);border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}code.sourceCode .code-annotation-anchor.code-annotation-active{background-color:var(--quarto-hl-normal-color, #aaaaaa);border:solid var(--quarto-hl-normal-color, #aaaaaa) 1px;color:#ecf0f1;font-weight:bolder}code.sourceCode .code-annotation-anchor{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:var(--quarto-hl-co-color);border:solid var(--quarto-hl-co-color) 1px;border-radius:50%;height:18px;width:18px;font-size:9px;margin-top:2px}code.sourceCode button.code-annotation-anchor{padding:2px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none}code.sourceCode a.code-annotation-anchor{line-height:18px;text-align:center;vertical-align:middle;cursor:default;text-decoration:none}@media print{.page-columns .column-screen-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:page-start-inset/page-end-inset;padding:1em;background:#ecf0f1;z-index:998;opacity:.999;margin-bottom:1em}}.quarto-video{margin-bottom:1em}.table{border-top:1px solid #d3d8dc;border-bottom:1px solid #d3d8dc}.table>thead{border-top-width:0;border-bottom:1px solid #9ba5ae}.table a{word-break:break-word}.table>:not(caption)>*>*{background-color:unset;color:unset}#quarto-document-content .crosstalk-input .checkbox input[type=checkbox],#quarto-document-content .crosstalk-input .checkbox-inline input[type=checkbox]{position:unset;margin-top:unset;margin-left:unset}#quarto-document-content .row{margin-left:unset;margin-right:unset}.quarto-xref{white-space:nowrap}#quarto-draft-alert{margin-top:0px;margin-bottom:0px;padding:.3em;text-align:center;font-size:.9em}#quarto-draft-alert i{margin-right:.3em}a.external:after{content:"";background-image:url('data:image/svg+xml,');background-size:contain;background-repeat:no-repeat;background-position:center center;margin-left:.2em;padding-right:.75em}div.sourceCode code a.external:after{content:none}a.external:after:hover{cursor:pointer}.quarto-ext-icon{display:inline-block;font-size:.75em;padding-left:.3em}.code-with-filename .code-with-filename-file{margin-bottom:0;padding-bottom:2px;padding-top:2px;padding-left:.7em;border:var(--quarto-border-width) solid var(--quarto-border-color);border-radius:var(--quarto-border-radius);border-bottom:0;border-bottom-left-radius:0%;border-bottom-right-radius:0%}.code-with-filename div.sourceCode,.reveal .code-with-filename div.sourceCode{margin-top:0;border-top-left-radius:0%;border-top-right-radius:0%}.code-with-filename .code-with-filename-file pre{margin-bottom:0}.code-with-filename .code-with-filename-file{background-color:rgba(219,219,219,.8)}.quarto-dark .code-with-filename .code-with-filename-file{background-color:#555}.code-with-filename .code-with-filename-file strong{font-weight:400}.bg-primary .navbar-nav .show>.nav-link,.bg-primary .navbar-nav .nav-link.active,.bg-primary .navbar-nav .nav-link:hover,.bg-primary .navbar-nav .nav-link:focus{color:#18bc9c !important}.nav-tabs .nav-link.active,.nav-tabs .nav-link.active:focus,.nav-tabs .nav-link.active:hover,.nav-tabs .nav-item.open .nav-link,.nav-tabs .nav-item.open .nav-link:focus,.nav-tabs .nav-item.open .nav-link:hover{color:#2c3e50}.pagination a:hover{text-decoration:none}.badge.bg-light{color:#7b8a8b}.alert{color:#fff;border:none}.alert a,.alert .alert-link{color:#fff;text-decoration:underline}.alert-default{background-color:#6c757d}.alert-primary{background-color:#2c3e50}.alert-secondary{background-color:#6c757d}.alert-success{background-color:#18bc9c}.alert-info{background-color:#3498db}.alert-warning{background-color:#f39c12}.alert-danger{background-color:#e74c3c}.alert-light{background-color:#ecf0f1}.alert-dark{background-color:#7b8a8b}.alert-light,.alert-light a,.alert-light .alert-link{color:#212529}.modal .btn-close,.toast .btn-close,.offcanvas .btn-close{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e")} +*/.ansi-black-fg{color:#3e424d}.ansi-black-bg{background-color:#3e424d}.ansi-black-intense-black,.ansi-bright-black-fg{color:#282c36}.ansi-black-intense-black,.ansi-bright-black-bg{background-color:#282c36}.ansi-red-fg{color:#e75c58}.ansi-red-bg{background-color:#e75c58}.ansi-red-intense-red,.ansi-bright-red-fg{color:#b22b31}.ansi-red-intense-red,.ansi-bright-red-bg{background-color:#b22b31}.ansi-green-fg{color:#00a250}.ansi-green-bg{background-color:#00a250}.ansi-green-intense-green,.ansi-bright-green-fg{color:#007427}.ansi-green-intense-green,.ansi-bright-green-bg{background-color:#007427}.ansi-yellow-fg{color:#ddb62b}.ansi-yellow-bg{background-color:#ddb62b}.ansi-yellow-intense-yellow,.ansi-bright-yellow-fg{color:#b27d12}.ansi-yellow-intense-yellow,.ansi-bright-yellow-bg{background-color:#b27d12}.ansi-blue-fg{color:#208ffb}.ansi-blue-bg{background-color:#208ffb}.ansi-blue-intense-blue,.ansi-bright-blue-fg{color:#0065ca}.ansi-blue-intense-blue,.ansi-bright-blue-bg{background-color:#0065ca}.ansi-magenta-fg{color:#d160c4}.ansi-magenta-bg{background-color:#d160c4}.ansi-magenta-intense-magenta,.ansi-bright-magenta-fg{color:#a03196}.ansi-magenta-intense-magenta,.ansi-bright-magenta-bg{background-color:#a03196}.ansi-cyan-fg{color:#60c6c8}.ansi-cyan-bg{background-color:#60c6c8}.ansi-cyan-intense-cyan,.ansi-bright-cyan-fg{color:#258f8f}.ansi-cyan-intense-cyan,.ansi-bright-cyan-bg{background-color:#258f8f}.ansi-white-fg{color:#c5c1b4}.ansi-white-bg{background-color:#c5c1b4}.ansi-white-intense-white,.ansi-bright-white-fg{color:#a1a6b2}.ansi-white-intense-white,.ansi-bright-white-bg{background-color:#a1a6b2}.ansi-default-inverse-fg{color:#fff}.ansi-default-inverse-bg{background-color:#000}.ansi-bold{font-weight:bold}.ansi-underline{text-decoration:underline}:root{--quarto-body-bg: #fff;--quarto-body-color: #212529;--quarto-text-muted: #6c757d;--quarto-border-color: #dee2e6;--quarto-border-width: 1px;--quarto-border-radius: 0.25rem}table.gt_table{color:var(--quarto-body-color);font-size:1em;width:100%;background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_column_spanner_outer{color:var(--quarto-body-color);background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_col_heading{color:var(--quarto-body-color);font-weight:bold;background-color:rgba(0,0,0,0)}table.gt_table thead.gt_col_headings{border-bottom:1px solid currentColor;border-top-width:inherit;border-top-color:var(--quarto-border-color)}table.gt_table thead.gt_col_headings:not(:first-child){border-top-width:1px;border-top-color:var(--quarto-border-color)}table.gt_table td.gt_row{border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-width:0px}table.gt_table tbody.gt_table_body{border-top-width:1px;border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-color:currentColor}div.columns{display:initial;gap:initial}div.column{display:inline-block;overflow-x:initial;vertical-align:top;width:50%}.code-annotation-tip-content{word-wrap:break-word}.code-annotation-container-hidden{display:none !important}dl.code-annotation-container-grid{display:grid;grid-template-columns:min-content auto}dl.code-annotation-container-grid dt{grid-column:1}dl.code-annotation-container-grid dd{grid-column:2}pre.sourceCode.code-annotation-code{padding-right:0}code.sourceCode .code-annotation-anchor{z-index:100;position:relative;float:right;background-color:rgba(0,0,0,0)}input[type=checkbox]{margin-right:.5ch}:root{--mermaid-bg-color: #fff;--mermaid-edge-color: #6c757d;--mermaid-node-fg-color: #212529;--mermaid-fg-color: #212529;--mermaid-fg-color--lighter: #383f45;--mermaid-fg-color--lightest: #4e5862;--mermaid-font-family: Lato, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--mermaid-label-bg-color: #fff;--mermaid-label-fg-color: #2c3e50;--mermaid-node-bg-color: rgba(44, 62, 80, 0.1);--mermaid-node-fg-color: #212529}@media print{:root{font-size:11pt}#quarto-sidebar,#TOC,.nav-page{display:none}.page-columns .content{grid-column-start:page-start}.fixed-top{position:relative}.panel-caption,.figure-caption,figcaption{color:#666}}.code-copy-button{position:absolute;top:0;right:0;border:0;margin-top:5px;margin-right:5px;background-color:rgba(0,0,0,0);z-index:3}.code-copy-button:focus{outline:none}.code-copy-button-tooltip{font-size:.75em}.code-copy-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button-checked:hover>.bi::before{background-image:url('data:image/svg+xml,')}main ol ol,main ul ul,main ol ul,main ul ol{margin-bottom:1em}ul>li:not(:has(>p))>ul,ol>li:not(:has(>p))>ul,ul>li:not(:has(>p))>ol,ol>li:not(:has(>p))>ol{margin-bottom:0}ul>li:not(:has(>p))>ul>li:has(>p),ol>li:not(:has(>p))>ul>li:has(>p),ul>li:not(:has(>p))>ol>li:has(>p),ol>li:not(:has(>p))>ol>li:has(>p){margin-top:1rem}body{margin:0}main.page-columns>header>h1.title,main.page-columns>header>.title.h1{margin-bottom:0}@media(min-width: 992px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] 35px [page-end-inset page-end] 5fr [screen-end-inset] 1.5em}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100049px - 3em)) [body-content-end] 3em [body-end] 50px [body-end-outset] minmax(0px, 250px) [page-end-inset] minmax(50px, 100px) [page-end] 1fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 100px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 150px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 991.98px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(100449px - 3em)) [body-content-end body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1.5em [body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(100199px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(99999px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(99949px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 767.98px){body .page-columns,body.fullcontent:not(.floating):not(.docked) .page-columns,body.slimcontent:not(.floating):not(.docked) .page-columns,body.docked .page-columns,body.docked.slimcontent .page-columns,body.docked.fullcontent .page-columns,body.floating .page-columns,body.floating.slimcontent .page-columns,body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}nav[role=doc-toc]{display:none}}body,.page-row-navigation{grid-template-rows:[page-top] max-content [contents-top] max-content [contents-bottom] max-content [page-bottom]}.page-rows-contents{grid-template-rows:[content-top] minmax(max-content, 1fr) [content-bottom] minmax(60px, max-content) [page-bottom]}.page-full{grid-column:screen-start/screen-end !important}.page-columns>*{grid-column:body-content-start/body-content-end}.page-columns.column-page>*{grid-column:page-start/page-end}.page-columns.column-page-left .page-columns.page-full>*,.page-columns.column-page-left>*{grid-column:page-start/body-content-end}.page-columns.column-page-right .page-columns.page-full>*,.page-columns.column-page-right>*{grid-column:body-content-start/page-end}.page-rows{grid-auto-rows:auto}.header{grid-column:screen-start/screen-end;grid-row:page-top/contents-top}#quarto-content{padding:0;grid-column:screen-start/screen-end;grid-row:contents-top/contents-bottom}body.floating .sidebar.sidebar-navigation{grid-column:page-start/body-start;grid-row:content-top/page-bottom}body.docked .sidebar.sidebar-navigation{grid-column:screen-start/body-start;grid-row:content-top/page-bottom}.sidebar.toc-left{grid-column:page-start/body-start;grid-row:content-top/page-bottom}.sidebar.margin-sidebar{grid-column:body-end/page-end;grid-row:content-top/page-bottom}.page-columns .content{grid-column:body-content-start/body-content-end;grid-row:content-top/content-bottom;align-content:flex-start}.page-columns .page-navigation{grid-column:body-content-start/body-content-end;grid-row:content-bottom/page-bottom}.page-columns .footer{grid-column:screen-start/screen-end;grid-row:contents-bottom/page-bottom}.page-columns .column-body{grid-column:body-content-start/body-content-end}.page-columns .column-body-fullbleed{grid-column:body-start/body-end}.page-columns .column-body-outset{grid-column:body-start-outset/body-end-outset;z-index:998;opacity:.999}.page-columns .column-body-outset table{background:#fff}.page-columns .column-body-outset-left{grid-column:body-start-outset/body-content-end;z-index:998;opacity:.999}.page-columns .column-body-outset-left table{background:#fff}.page-columns .column-body-outset-right{grid-column:body-content-start/body-end-outset;z-index:998;opacity:.999}.page-columns .column-body-outset-right table{background:#fff}.page-columns .column-page{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-page table{background:#fff}.page-columns .column-page-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.page-columns .column-page-inset table{background:#fff}.page-columns .column-page-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-page-inset-left table{background:#fff}.page-columns .column-page-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;opacity:.999}.page-columns .column-page-inset-right figcaption table{background:#fff}.page-columns .column-page-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-page-left table{background:#fff}.page-columns .column-page-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.page-columns .column-page-right figcaption table{background:#fff}#quarto-content.page-columns #quarto-margin-sidebar,#quarto-content.page-columns #quarto-sidebar{z-index:1}@media(max-width: 991.98px){#quarto-content.page-columns #quarto-margin-sidebar.collapse,#quarto-content.page-columns #quarto-sidebar.collapse,#quarto-content.page-columns #quarto-margin-sidebar.collapsing,#quarto-content.page-columns #quarto-sidebar.collapsing{z-index:1055}}#quarto-content.page-columns main.column-page,#quarto-content.page-columns main.column-page-right,#quarto-content.page-columns main.column-page-left{z-index:0}.page-columns .column-screen-inset{grid-column:screen-start-inset/screen-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:screen-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/screen-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:screen-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:screen-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:screen-start/screen-end;padding:1em;background:#ecf0f1;z-index:998;opacity:.999;margin-bottom:1em}.zindex-content{z-index:998;opacity:.999}.zindex-modal{z-index:1055;opacity:.999}.zindex-over-content{z-index:999;opacity:.999}img.img-fluid.column-screen,img.img-fluid.column-screen-inset-shaded,img.img-fluid.column-screen-inset,img.img-fluid.column-screen-inset-left,img.img-fluid.column-screen-inset-right,img.img-fluid.column-screen-left,img.img-fluid.column-screen-right{width:100%}@media(min-width: 992px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-end/page-end !important;z-index:998}.column-sidebar{grid-column:page-start/body-start !important;z-index:998}.column-leftmargin{grid-column:screen-start-inset/body-start !important;z-index:998}.no-row-height{height:1em;overflow:visible}}@media(max-width: 991.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-end/page-end !important;z-index:998}.no-row-height{height:1em;overflow:visible}.page-columns.page-full{overflow:visible}.page-columns.toc-left .margin-caption,.page-columns.toc-left div.aside,.page-columns.toc-left aside:not(.footnotes):not(.sidebar),.page-columns.toc-left .column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.page-columns.toc-left .no-row-height{height:initial;overflow:initial}}@media(max-width: 767.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.no-row-height{height:initial;overflow:initial}#quarto-margin-sidebar{display:none}#quarto-sidebar-toc-left{display:none}.hidden-sm{display:none}}.panel-grid{display:grid;grid-template-rows:repeat(1, 1fr);grid-template-columns:repeat(24, 1fr);gap:1em}.panel-grid .g-col-1{grid-column:auto/span 1}.panel-grid .g-col-2{grid-column:auto/span 2}.panel-grid .g-col-3{grid-column:auto/span 3}.panel-grid .g-col-4{grid-column:auto/span 4}.panel-grid .g-col-5{grid-column:auto/span 5}.panel-grid .g-col-6{grid-column:auto/span 6}.panel-grid .g-col-7{grid-column:auto/span 7}.panel-grid .g-col-8{grid-column:auto/span 8}.panel-grid .g-col-9{grid-column:auto/span 9}.panel-grid .g-col-10{grid-column:auto/span 10}.panel-grid .g-col-11{grid-column:auto/span 11}.panel-grid .g-col-12{grid-column:auto/span 12}.panel-grid .g-col-13{grid-column:auto/span 13}.panel-grid .g-col-14{grid-column:auto/span 14}.panel-grid .g-col-15{grid-column:auto/span 15}.panel-grid .g-col-16{grid-column:auto/span 16}.panel-grid .g-col-17{grid-column:auto/span 17}.panel-grid .g-col-18{grid-column:auto/span 18}.panel-grid .g-col-19{grid-column:auto/span 19}.panel-grid .g-col-20{grid-column:auto/span 20}.panel-grid .g-col-21{grid-column:auto/span 21}.panel-grid .g-col-22{grid-column:auto/span 22}.panel-grid .g-col-23{grid-column:auto/span 23}.panel-grid .g-col-24{grid-column:auto/span 24}.panel-grid .g-start-1{grid-column-start:1}.panel-grid .g-start-2{grid-column-start:2}.panel-grid .g-start-3{grid-column-start:3}.panel-grid .g-start-4{grid-column-start:4}.panel-grid .g-start-5{grid-column-start:5}.panel-grid .g-start-6{grid-column-start:6}.panel-grid .g-start-7{grid-column-start:7}.panel-grid .g-start-8{grid-column-start:8}.panel-grid .g-start-9{grid-column-start:9}.panel-grid .g-start-10{grid-column-start:10}.panel-grid .g-start-11{grid-column-start:11}.panel-grid .g-start-12{grid-column-start:12}.panel-grid .g-start-13{grid-column-start:13}.panel-grid .g-start-14{grid-column-start:14}.panel-grid .g-start-15{grid-column-start:15}.panel-grid .g-start-16{grid-column-start:16}.panel-grid .g-start-17{grid-column-start:17}.panel-grid .g-start-18{grid-column-start:18}.panel-grid .g-start-19{grid-column-start:19}.panel-grid .g-start-20{grid-column-start:20}.panel-grid .g-start-21{grid-column-start:21}.panel-grid .g-start-22{grid-column-start:22}.panel-grid .g-start-23{grid-column-start:23}@media(min-width: 576px){.panel-grid .g-col-sm-1{grid-column:auto/span 1}.panel-grid .g-col-sm-2{grid-column:auto/span 2}.panel-grid .g-col-sm-3{grid-column:auto/span 3}.panel-grid .g-col-sm-4{grid-column:auto/span 4}.panel-grid .g-col-sm-5{grid-column:auto/span 5}.panel-grid .g-col-sm-6{grid-column:auto/span 6}.panel-grid .g-col-sm-7{grid-column:auto/span 7}.panel-grid .g-col-sm-8{grid-column:auto/span 8}.panel-grid .g-col-sm-9{grid-column:auto/span 9}.panel-grid .g-col-sm-10{grid-column:auto/span 10}.panel-grid .g-col-sm-11{grid-column:auto/span 11}.panel-grid .g-col-sm-12{grid-column:auto/span 12}.panel-grid .g-col-sm-13{grid-column:auto/span 13}.panel-grid .g-col-sm-14{grid-column:auto/span 14}.panel-grid .g-col-sm-15{grid-column:auto/span 15}.panel-grid .g-col-sm-16{grid-column:auto/span 16}.panel-grid .g-col-sm-17{grid-column:auto/span 17}.panel-grid .g-col-sm-18{grid-column:auto/span 18}.panel-grid .g-col-sm-19{grid-column:auto/span 19}.panel-grid .g-col-sm-20{grid-column:auto/span 20}.panel-grid .g-col-sm-21{grid-column:auto/span 21}.panel-grid .g-col-sm-22{grid-column:auto/span 22}.panel-grid .g-col-sm-23{grid-column:auto/span 23}.panel-grid .g-col-sm-24{grid-column:auto/span 24}.panel-grid .g-start-sm-1{grid-column-start:1}.panel-grid .g-start-sm-2{grid-column-start:2}.panel-grid .g-start-sm-3{grid-column-start:3}.panel-grid .g-start-sm-4{grid-column-start:4}.panel-grid .g-start-sm-5{grid-column-start:5}.panel-grid .g-start-sm-6{grid-column-start:6}.panel-grid .g-start-sm-7{grid-column-start:7}.panel-grid .g-start-sm-8{grid-column-start:8}.panel-grid .g-start-sm-9{grid-column-start:9}.panel-grid .g-start-sm-10{grid-column-start:10}.panel-grid .g-start-sm-11{grid-column-start:11}.panel-grid .g-start-sm-12{grid-column-start:12}.panel-grid .g-start-sm-13{grid-column-start:13}.panel-grid .g-start-sm-14{grid-column-start:14}.panel-grid .g-start-sm-15{grid-column-start:15}.panel-grid .g-start-sm-16{grid-column-start:16}.panel-grid .g-start-sm-17{grid-column-start:17}.panel-grid .g-start-sm-18{grid-column-start:18}.panel-grid .g-start-sm-19{grid-column-start:19}.panel-grid .g-start-sm-20{grid-column-start:20}.panel-grid .g-start-sm-21{grid-column-start:21}.panel-grid .g-start-sm-22{grid-column-start:22}.panel-grid .g-start-sm-23{grid-column-start:23}}@media(min-width: 768px){.panel-grid .g-col-md-1{grid-column:auto/span 1}.panel-grid .g-col-md-2{grid-column:auto/span 2}.panel-grid .g-col-md-3{grid-column:auto/span 3}.panel-grid .g-col-md-4{grid-column:auto/span 4}.panel-grid .g-col-md-5{grid-column:auto/span 5}.panel-grid .g-col-md-6{grid-column:auto/span 6}.panel-grid .g-col-md-7{grid-column:auto/span 7}.panel-grid .g-col-md-8{grid-column:auto/span 8}.panel-grid .g-col-md-9{grid-column:auto/span 9}.panel-grid .g-col-md-10{grid-column:auto/span 10}.panel-grid .g-col-md-11{grid-column:auto/span 11}.panel-grid .g-col-md-12{grid-column:auto/span 12}.panel-grid .g-col-md-13{grid-column:auto/span 13}.panel-grid .g-col-md-14{grid-column:auto/span 14}.panel-grid .g-col-md-15{grid-column:auto/span 15}.panel-grid .g-col-md-16{grid-column:auto/span 16}.panel-grid .g-col-md-17{grid-column:auto/span 17}.panel-grid .g-col-md-18{grid-column:auto/span 18}.panel-grid .g-col-md-19{grid-column:auto/span 19}.panel-grid .g-col-md-20{grid-column:auto/span 20}.panel-grid .g-col-md-21{grid-column:auto/span 21}.panel-grid .g-col-md-22{grid-column:auto/span 22}.panel-grid .g-col-md-23{grid-column:auto/span 23}.panel-grid .g-col-md-24{grid-column:auto/span 24}.panel-grid .g-start-md-1{grid-column-start:1}.panel-grid .g-start-md-2{grid-column-start:2}.panel-grid .g-start-md-3{grid-column-start:3}.panel-grid .g-start-md-4{grid-column-start:4}.panel-grid .g-start-md-5{grid-column-start:5}.panel-grid .g-start-md-6{grid-column-start:6}.panel-grid .g-start-md-7{grid-column-start:7}.panel-grid .g-start-md-8{grid-column-start:8}.panel-grid .g-start-md-9{grid-column-start:9}.panel-grid .g-start-md-10{grid-column-start:10}.panel-grid .g-start-md-11{grid-column-start:11}.panel-grid .g-start-md-12{grid-column-start:12}.panel-grid .g-start-md-13{grid-column-start:13}.panel-grid .g-start-md-14{grid-column-start:14}.panel-grid .g-start-md-15{grid-column-start:15}.panel-grid .g-start-md-16{grid-column-start:16}.panel-grid .g-start-md-17{grid-column-start:17}.panel-grid .g-start-md-18{grid-column-start:18}.panel-grid .g-start-md-19{grid-column-start:19}.panel-grid .g-start-md-20{grid-column-start:20}.panel-grid .g-start-md-21{grid-column-start:21}.panel-grid .g-start-md-22{grid-column-start:22}.panel-grid .g-start-md-23{grid-column-start:23}}@media(min-width: 992px){.panel-grid .g-col-lg-1{grid-column:auto/span 1}.panel-grid .g-col-lg-2{grid-column:auto/span 2}.panel-grid .g-col-lg-3{grid-column:auto/span 3}.panel-grid .g-col-lg-4{grid-column:auto/span 4}.panel-grid .g-col-lg-5{grid-column:auto/span 5}.panel-grid .g-col-lg-6{grid-column:auto/span 6}.panel-grid .g-col-lg-7{grid-column:auto/span 7}.panel-grid .g-col-lg-8{grid-column:auto/span 8}.panel-grid .g-col-lg-9{grid-column:auto/span 9}.panel-grid .g-col-lg-10{grid-column:auto/span 10}.panel-grid .g-col-lg-11{grid-column:auto/span 11}.panel-grid .g-col-lg-12{grid-column:auto/span 12}.panel-grid .g-col-lg-13{grid-column:auto/span 13}.panel-grid .g-col-lg-14{grid-column:auto/span 14}.panel-grid .g-col-lg-15{grid-column:auto/span 15}.panel-grid .g-col-lg-16{grid-column:auto/span 16}.panel-grid .g-col-lg-17{grid-column:auto/span 17}.panel-grid .g-col-lg-18{grid-column:auto/span 18}.panel-grid .g-col-lg-19{grid-column:auto/span 19}.panel-grid .g-col-lg-20{grid-column:auto/span 20}.panel-grid .g-col-lg-21{grid-column:auto/span 21}.panel-grid .g-col-lg-22{grid-column:auto/span 22}.panel-grid .g-col-lg-23{grid-column:auto/span 23}.panel-grid .g-col-lg-24{grid-column:auto/span 24}.panel-grid .g-start-lg-1{grid-column-start:1}.panel-grid .g-start-lg-2{grid-column-start:2}.panel-grid .g-start-lg-3{grid-column-start:3}.panel-grid .g-start-lg-4{grid-column-start:4}.panel-grid .g-start-lg-5{grid-column-start:5}.panel-grid .g-start-lg-6{grid-column-start:6}.panel-grid .g-start-lg-7{grid-column-start:7}.panel-grid .g-start-lg-8{grid-column-start:8}.panel-grid .g-start-lg-9{grid-column-start:9}.panel-grid .g-start-lg-10{grid-column-start:10}.panel-grid .g-start-lg-11{grid-column-start:11}.panel-grid .g-start-lg-12{grid-column-start:12}.panel-grid .g-start-lg-13{grid-column-start:13}.panel-grid .g-start-lg-14{grid-column-start:14}.panel-grid .g-start-lg-15{grid-column-start:15}.panel-grid .g-start-lg-16{grid-column-start:16}.panel-grid .g-start-lg-17{grid-column-start:17}.panel-grid .g-start-lg-18{grid-column-start:18}.panel-grid .g-start-lg-19{grid-column-start:19}.panel-grid .g-start-lg-20{grid-column-start:20}.panel-grid .g-start-lg-21{grid-column-start:21}.panel-grid .g-start-lg-22{grid-column-start:22}.panel-grid .g-start-lg-23{grid-column-start:23}}@media(min-width: 1200px){.panel-grid .g-col-xl-1{grid-column:auto/span 1}.panel-grid .g-col-xl-2{grid-column:auto/span 2}.panel-grid .g-col-xl-3{grid-column:auto/span 3}.panel-grid .g-col-xl-4{grid-column:auto/span 4}.panel-grid .g-col-xl-5{grid-column:auto/span 5}.panel-grid .g-col-xl-6{grid-column:auto/span 6}.panel-grid .g-col-xl-7{grid-column:auto/span 7}.panel-grid .g-col-xl-8{grid-column:auto/span 8}.panel-grid .g-col-xl-9{grid-column:auto/span 9}.panel-grid .g-col-xl-10{grid-column:auto/span 10}.panel-grid .g-col-xl-11{grid-column:auto/span 11}.panel-grid .g-col-xl-12{grid-column:auto/span 12}.panel-grid .g-col-xl-13{grid-column:auto/span 13}.panel-grid .g-col-xl-14{grid-column:auto/span 14}.panel-grid .g-col-xl-15{grid-column:auto/span 15}.panel-grid .g-col-xl-16{grid-column:auto/span 16}.panel-grid .g-col-xl-17{grid-column:auto/span 17}.panel-grid .g-col-xl-18{grid-column:auto/span 18}.panel-grid .g-col-xl-19{grid-column:auto/span 19}.panel-grid .g-col-xl-20{grid-column:auto/span 20}.panel-grid .g-col-xl-21{grid-column:auto/span 21}.panel-grid .g-col-xl-22{grid-column:auto/span 22}.panel-grid .g-col-xl-23{grid-column:auto/span 23}.panel-grid .g-col-xl-24{grid-column:auto/span 24}.panel-grid .g-start-xl-1{grid-column-start:1}.panel-grid .g-start-xl-2{grid-column-start:2}.panel-grid .g-start-xl-3{grid-column-start:3}.panel-grid .g-start-xl-4{grid-column-start:4}.panel-grid .g-start-xl-5{grid-column-start:5}.panel-grid .g-start-xl-6{grid-column-start:6}.panel-grid .g-start-xl-7{grid-column-start:7}.panel-grid .g-start-xl-8{grid-column-start:8}.panel-grid .g-start-xl-9{grid-column-start:9}.panel-grid .g-start-xl-10{grid-column-start:10}.panel-grid .g-start-xl-11{grid-column-start:11}.panel-grid .g-start-xl-12{grid-column-start:12}.panel-grid .g-start-xl-13{grid-column-start:13}.panel-grid .g-start-xl-14{grid-column-start:14}.panel-grid .g-start-xl-15{grid-column-start:15}.panel-grid .g-start-xl-16{grid-column-start:16}.panel-grid .g-start-xl-17{grid-column-start:17}.panel-grid .g-start-xl-18{grid-column-start:18}.panel-grid .g-start-xl-19{grid-column-start:19}.panel-grid .g-start-xl-20{grid-column-start:20}.panel-grid .g-start-xl-21{grid-column-start:21}.panel-grid .g-start-xl-22{grid-column-start:22}.panel-grid .g-start-xl-23{grid-column-start:23}}@media(min-width: 1400px){.panel-grid .g-col-xxl-1{grid-column:auto/span 1}.panel-grid .g-col-xxl-2{grid-column:auto/span 2}.panel-grid .g-col-xxl-3{grid-column:auto/span 3}.panel-grid .g-col-xxl-4{grid-column:auto/span 4}.panel-grid .g-col-xxl-5{grid-column:auto/span 5}.panel-grid .g-col-xxl-6{grid-column:auto/span 6}.panel-grid .g-col-xxl-7{grid-column:auto/span 7}.panel-grid .g-col-xxl-8{grid-column:auto/span 8}.panel-grid .g-col-xxl-9{grid-column:auto/span 9}.panel-grid .g-col-xxl-10{grid-column:auto/span 10}.panel-grid .g-col-xxl-11{grid-column:auto/span 11}.panel-grid .g-col-xxl-12{grid-column:auto/span 12}.panel-grid .g-col-xxl-13{grid-column:auto/span 13}.panel-grid .g-col-xxl-14{grid-column:auto/span 14}.panel-grid .g-col-xxl-15{grid-column:auto/span 15}.panel-grid .g-col-xxl-16{grid-column:auto/span 16}.panel-grid .g-col-xxl-17{grid-column:auto/span 17}.panel-grid .g-col-xxl-18{grid-column:auto/span 18}.panel-grid .g-col-xxl-19{grid-column:auto/span 19}.panel-grid .g-col-xxl-20{grid-column:auto/span 20}.panel-grid .g-col-xxl-21{grid-column:auto/span 21}.panel-grid .g-col-xxl-22{grid-column:auto/span 22}.panel-grid .g-col-xxl-23{grid-column:auto/span 23}.panel-grid .g-col-xxl-24{grid-column:auto/span 24}.panel-grid .g-start-xxl-1{grid-column-start:1}.panel-grid .g-start-xxl-2{grid-column-start:2}.panel-grid .g-start-xxl-3{grid-column-start:3}.panel-grid .g-start-xxl-4{grid-column-start:4}.panel-grid .g-start-xxl-5{grid-column-start:5}.panel-grid .g-start-xxl-6{grid-column-start:6}.panel-grid .g-start-xxl-7{grid-column-start:7}.panel-grid .g-start-xxl-8{grid-column-start:8}.panel-grid .g-start-xxl-9{grid-column-start:9}.panel-grid .g-start-xxl-10{grid-column-start:10}.panel-grid .g-start-xxl-11{grid-column-start:11}.panel-grid .g-start-xxl-12{grid-column-start:12}.panel-grid .g-start-xxl-13{grid-column-start:13}.panel-grid .g-start-xxl-14{grid-column-start:14}.panel-grid .g-start-xxl-15{grid-column-start:15}.panel-grid .g-start-xxl-16{grid-column-start:16}.panel-grid .g-start-xxl-17{grid-column-start:17}.panel-grid .g-start-xxl-18{grid-column-start:18}.panel-grid .g-start-xxl-19{grid-column-start:19}.panel-grid .g-start-xxl-20{grid-column-start:20}.panel-grid .g-start-xxl-21{grid-column-start:21}.panel-grid .g-start-xxl-22{grid-column-start:22}.panel-grid .g-start-xxl-23{grid-column-start:23}}main{margin-top:1em;margin-bottom:1em}h1,.h1,h2,.h2{color:inherit;margin-top:2rem;margin-bottom:1rem;font-weight:600}h1.title,.title.h1{margin-top:0}main.content>section:first-of-type>h2:first-child,main.content>section:first-of-type>.h2:first-child{margin-top:0}h2,.h2{border-bottom:1px solid #dee2e6;padding-bottom:.5rem}h3,.h3{font-weight:600}h3,.h3,h4,.h4{opacity:.9;margin-top:1.5rem}h5,.h5,h6,.h6{opacity:.9}.header-section-number{color:#5a6570}.nav-link.active .header-section-number{color:inherit}mark,.mark{padding:0em}.panel-caption,.figure-caption,.subfigure-caption,.table-caption,figcaption,caption{font-size:.9rem;color:#5a6570}.quarto-layout-cell[data-ref-parent] caption{color:#5a6570}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#5a6570;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse):first-child{padding-bottom:.5em;display:block}.column-margin.column-container>*:not(.collapse):not(:first-child){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.nav-tabs .nav-item{margin-top:1px;cursor:pointer}.tab-content{margin-top:0px;border-left:#ecf0f1 1px solid;border-right:#ecf0f1 1px solid;border-bottom:#ecf0f1 1px solid;margin-left:0;padding:1em;margin-bottom:1em}@media(max-width: 767.98px){.layout-sidebar{margin-left:0;margin-right:0}}.panel-sidebar,.panel-sidebar .form-control,.panel-input,.panel-input .form-control,.selectize-dropdown{font-size:.9rem}.panel-sidebar .form-control,.panel-input .form-control{padding-top:.1rem}.tab-pane div.sourceCode{margin-top:0px}.tab-pane>p{padding-top:0}.tab-pane>p:nth-child(1){padding-top:0}.tab-pane>p:last-child{margin-bottom:0}.tab-pane>pre:last-child{margin-bottom:0}.tab-content>.tab-pane:not(.active){display:none !important}div.sourceCode{background-color:rgba(236,240,241,.65);border:1px solid rgba(236,240,241,.65);border-radius:.25rem}pre.sourceCode{background-color:rgba(0,0,0,0)}pre.sourceCode{border-left:3px;border-left-style:solid;border-left-color:#1482fa;padding-left:.6em;border-right:none;border-top:none;border-bottom:none;font-size:.875em;overflow:visible !important;padding:.4em}.callout pre.sourceCode{padding-left:0}div.sourceCode{overflow-y:hidden}.callout div.sourceCode{margin-left:initial}.blockquote{font-size:inherit;padding-left:1rem;padding-right:1.5rem;color:#5a6570}.blockquote h1:first-child,.blockquote .h1:first-child,.blockquote h2:first-child,.blockquote .h2:first-child,.blockquote h3:first-child,.blockquote .h3:first-child,.blockquote h4:first-child,.blockquote .h4:first-child,.blockquote h5:first-child,.blockquote .h5:first-child{margin-top:0}pre{background-color:initial;padding:initial;border:initial}p pre code:not(.sourceCode),li pre code:not(.sourceCode),pre code:not(.sourceCode){background-color:initial}p code:not(.sourceCode),li code:not(.sourceCode),td code:not(.sourceCode){background-color:#f8f9fa;padding:.2em}nav p code:not(.sourceCode),nav li code:not(.sourceCode),nav td code:not(.sourceCode){background-color:rgba(0,0,0,0);padding:0}td code:not(.sourceCode){white-space:pre-wrap}#quarto-embedded-source-code-modal>.modal-dialog{max-width:1000px;padding-left:1.75rem;padding-right:1.75rem}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body{padding:0}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body div.sourceCode{margin:0;padding:.2rem .2rem;border-radius:0px;border:none}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-header{padding:.7rem}.code-tools-button{font-size:1rem;padding:.15rem .15rem;margin-left:5px;color:#6c757d;background-color:rgba(0,0,0,0);transition:initial;cursor:pointer}.code-tools-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.sidebar{will-change:top;transition:top 200ms linear;position:sticky;overflow-y:auto;padding-top:1.2em;max-height:100vh}.sidebar.toc-left,.sidebar.margin-sidebar{top:0px;padding-top:1em}.sidebar.quarto-banner-title-block-sidebar>*{padding-top:1.65em}figure .quarto-notebook-link{margin-top:.5em}.quarto-notebook-link{font-size:.75em;color:#6c757d;margin-bottom:1em;text-decoration:none;display:block}.quarto-notebook-link:hover{text-decoration:underline;color:#18bc9c}.quarto-notebook-link::before{display:inline-block;height:.75rem;width:.75rem;margin-bottom:0em;margin-right:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}.toc-actions i.bi,.quarto-code-links i.bi,.quarto-other-links i.bi,.quarto-alternate-notebooks i.bi,.quarto-alternate-formats i.bi{margin-right:.4em;font-size:.8rem}.quarto-other-links-text-target .quarto-code-links i.bi,.quarto-other-links-text-target .quarto-other-links i.bi{margin-right:.2em}.quarto-other-formats-text-target .quarto-alternate-formats i.bi{margin-right:.1em}.toc-actions i.bi.empty,.quarto-code-links i.bi.empty,.quarto-other-links i.bi.empty,.quarto-alternate-notebooks i.bi.empty,.quarto-alternate-formats i.bi.empty{padding-left:1em}.quarto-notebook h2,.quarto-notebook .h2{border-bottom:none}.quarto-notebook .cell-container{display:flex}.quarto-notebook .cell-container .cell{flex-grow:4}.quarto-notebook .cell-container .cell-decorator{padding-top:1.5em;padding-right:1em;text-align:right}.quarto-notebook .cell-container.code-fold .cell-decorator{padding-top:3em}.quarto-notebook .cell-code code{white-space:pre-wrap}.quarto-notebook .cell .cell-output-stderr pre code,.quarto-notebook .cell .cell-output-stdout pre code{white-space:pre-wrap;overflow-wrap:anywhere}.toc-actions,.quarto-alternate-formats,.quarto-other-links,.quarto-code-links,.quarto-alternate-notebooks{padding-left:0em}.sidebar .toc-actions a,.sidebar .quarto-alternate-formats a,.sidebar .quarto-other-links a,.sidebar .quarto-code-links a,.sidebar .quarto-alternate-notebooks a,.sidebar nav[role=doc-toc] a{text-decoration:none}.sidebar .toc-actions a:hover,.sidebar .quarto-other-links a:hover,.sidebar .quarto-code-links a:hover,.sidebar .quarto-alternate-formats a:hover,.sidebar .quarto-alternate-notebooks a:hover{color:#18bc9c}.sidebar .toc-actions h2,.sidebar .toc-actions .h2,.sidebar .quarto-code-links h2,.sidebar .quarto-code-links .h2,.sidebar .quarto-other-links h2,.sidebar .quarto-other-links .h2,.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2,.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-weight:500;margin-bottom:.2rem;margin-top:.3rem;font-family:inherit;border-bottom:0;padding-bottom:0;padding-top:0px}.sidebar .toc-actions>h2,.sidebar .toc-actions>.h2,.sidebar .quarto-code-links>h2,.sidebar .quarto-code-links>.h2,.sidebar .quarto-other-links>h2,.sidebar .quarto-other-links>.h2,.sidebar .quarto-alternate-notebooks>h2,.sidebar .quarto-alternate-notebooks>.h2,.sidebar .quarto-alternate-formats>h2,.sidebar .quarto-alternate-formats>.h2{font-size:.8rem}.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-size:.875rem}.sidebar nav[role=doc-toc]>ul a{border-left:1px solid #ecf0f1;padding-left:.6rem}.sidebar .toc-actions h2>ul a,.sidebar .toc-actions .h2>ul a,.sidebar .quarto-code-links h2>ul a,.sidebar .quarto-code-links .h2>ul a,.sidebar .quarto-other-links h2>ul a,.sidebar .quarto-other-links .h2>ul a,.sidebar .quarto-alternate-notebooks h2>ul a,.sidebar .quarto-alternate-notebooks .h2>ul a,.sidebar .quarto-alternate-formats h2>ul a,.sidebar .quarto-alternate-formats .h2>ul a{border-left:none;padding-left:.6rem}.sidebar .toc-actions ul a:empty,.sidebar .quarto-code-links ul a:empty,.sidebar .quarto-other-links ul a:empty,.sidebar .quarto-alternate-notebooks ul a:empty,.sidebar .quarto-alternate-formats ul a:empty,.sidebar nav[role=doc-toc]>ul a:empty{display:none}.sidebar .toc-actions ul,.sidebar .quarto-code-links ul,.sidebar .quarto-other-links ul,.sidebar .quarto-alternate-notebooks ul,.sidebar .quarto-alternate-formats ul{padding-left:0;list-style:none}.sidebar nav[role=doc-toc] ul{list-style:none;padding-left:0;list-style:none}.sidebar nav[role=doc-toc]>ul{margin-left:.45em}.quarto-margin-sidebar nav[role=doc-toc]{padding-left:.5em}.sidebar .toc-actions>ul,.sidebar .quarto-code-links>ul,.sidebar .quarto-other-links>ul,.sidebar .quarto-alternate-notebooks>ul,.sidebar .quarto-alternate-formats>ul{font-size:.8rem}.sidebar nav[role=doc-toc]>ul{font-size:.875rem}.sidebar .toc-actions ul li a,.sidebar .quarto-code-links ul li a,.sidebar .quarto-other-links ul li a,.sidebar .quarto-alternate-notebooks ul li a,.sidebar .quarto-alternate-formats ul li a,.sidebar nav[role=doc-toc]>ul li a{line-height:1.1rem;padding-bottom:.2rem;padding-top:.2rem;color:inherit}.sidebar nav[role=doc-toc] ul>li>ul>li>a{padding-left:1.2em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>a{padding-left:2.4em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>a{padding-left:3.6em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:4.8em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:6em}.sidebar nav[role=doc-toc] ul>li>a.active,.sidebar nav[role=doc-toc] ul>li>ul>li>a.active{border-left:1px solid #18bc9c;color:#18bc9c !important}.sidebar nav[role=doc-toc] ul>li>a:hover,.sidebar nav[role=doc-toc] ul>li>ul>li>a:hover{color:#18bc9c !important}kbd,.kbd{color:#212529;background-color:#f8f9fa;border:1px solid;border-radius:5px;border-color:#dee2e6}.quarto-appendix-contents div.hanging-indent{margin-left:0em}.quarto-appendix-contents div.hanging-indent div.csl-entry{margin-left:1em;text-indent:-1em}.citation a,.footnote-ref{text-decoration:none}.footnotes ol{padding-left:1em}.tippy-content>*{margin-bottom:.7em}.tippy-content>*:last-child{margin-bottom:0}@media(min-width: 992px){.callout:not(.no-icon){margin-left:calc(calc(-0.4em + -5px) + -1px)}.callout{margin-left:calc(-0.4em + -5px)}div.sourceCode{margin-left:calc(calc(-0.6em + -3px) + 2px)}}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:.25rem;overflow-wrap:break-word}.callout .callout-title-container{overflow-wrap:anywhere}.callout.callout-style-simple{padding:.4em .7em;border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout.callout-style-default{border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout .callout-body-container{flex-grow:1}.callout.callout-style-simple .callout-body{font-size:.9rem;font-weight:400}.callout.callout-style-default .callout-body{font-size:.9rem;font-weight:400}.callout:not(.no-icon).callout-titled.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-titled>.callout-header{padding-top:.2em;margin-bottom:-0.2em}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:.9rem;padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body{padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body>:first-child{padding-top:.5rem;margin-top:0}.callout>div.callout-header[data-bs-toggle=collapse]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded=false],.callout.callout-style-default .callout-header[aria-expanded=true]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-titled .callout-body>:last-child:not(.sourceCode),.callout.callout-titled .callout-body>div>:last-child:not(.sourceCode){padding-bottom:.5rem;margin-bottom:0}.callout:not(.callout-titled) .callout-body>:first-child,.callout:not(.callout-titled) .callout-body>div>:first-child{margin-top:.25rem}.callout:not(.callout-titled) .callout-body>:last-child,.callout:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:.2rem}.callout.callout-style-simple .callout-icon::before,.callout.callout-style-simple .callout-toggle::before{height:1rem;width:1rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.callout.callout-style-default .callout-icon::before,.callout.callout-style-default .callout-toggle::before{height:.9rem;width:.9rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:.9rem .9rem}.callout.callout-style-default .callout-toggle::before{margin-top:5px}.callout .callout-btn-toggle .callout-toggle::before{transition:transform .2s linear}.callout .callout-header[aria-expanded=false] .callout-toggle::before{transform:rotate(-90deg)}.callout .callout-header[aria-expanded=true] .callout-toggle::before{transform:none}.callout.callout-style-simple:not(.no-icon) div.callout-icon-container{padding-top:.2em;padding-right:.55em}.callout.callout-style-default:not(.no-icon) div.callout-icon-container{padding-top:.1em;padding-right:.35em}.callout.callout-style-default:not(.no-icon) div.callout-title-container{margin-top:-1px}.callout.callout-style-default.callout-caution:not(.no-icon) div.callout-icon-container{padding-top:.3em;padding-right:.35em}.callout>.callout-body>.callout-icon-container>.no-icon,.callout>.callout-header>.callout-icon-container>.no-icon{display:none}div.callout.callout{border-left-color:#6c757d}div.callout.callout-style-default>.callout-header{background-color:#6c757d}div.callout-note.callout{border-left-color:#2c3e50}div.callout-note.callout-style-default>.callout-header{background-color:#eaecee}div.callout-note:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-tip.callout{border-left-color:#18bc9c}div.callout-tip.callout-style-default>.callout-header{background-color:#e8f8f5}div.callout-tip:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-warning.callout{border-left-color:#f39c12}div.callout-warning.callout-style-default>.callout-header{background-color:#fef5e7}div.callout-warning:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-caution.callout{border-left-color:#fd7e14}div.callout-caution.callout-style-default>.callout-header{background-color:#fff2e8}div.callout-caution:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-important.callout{border-left-color:#e74c3c}div.callout-important.callout-style-default>.callout-header{background-color:#fdedec}div.callout-important:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important .callout-toggle::before{background-image:url('data:image/svg+xml,')}.quarto-toggle-container{display:flex;align-items:center}.quarto-reader-toggle .bi::before,.quarto-color-scheme-toggle .bi::before{display:inline-block;height:1rem;width:1rem;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.sidebar-navigation{padding-left:20px}.navbar{background-color:#2c3e50;color:#ccd1d5}.navbar .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.quarto-sidebar-toggle{border-color:#dee2e6;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-style:solid;border-width:1px;overflow:hidden;border-top-width:0px;padding-top:0px !important}.quarto-sidebar-toggle-title{cursor:pointer;padding-bottom:2px;margin-left:.25em;text-align:center;font-weight:400;font-size:.775em}#quarto-content .quarto-sidebar-toggle{background:#fafafa}#quarto-content .quarto-sidebar-toggle-title{color:#212529}.quarto-sidebar-toggle-icon{color:#dee2e6;margin-right:.5em;float:right;transition:transform .2s ease}.quarto-sidebar-toggle-icon::before{padding-top:5px}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-icon{transform:rotate(-180deg)}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-title{border-bottom:solid #dee2e6 1px}.quarto-sidebar-toggle-contents{background-color:#fff;padding-right:10px;padding-left:10px;margin-top:0px !important;transition:max-height .5s ease}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-contents{padding-top:1em;padding-bottom:10px}@media(max-width: 767.98px){.sidebar-menu-container{padding-bottom:5em}}.quarto-sidebar-toggle:not(.expanded) .quarto-sidebar-toggle-contents{padding-top:0px !important;padding-bottom:0px}nav[role=doc-toc]{z-index:1020}#quarto-sidebar>*,nav[role=doc-toc]>*{transition:opacity .1s ease,border .1s ease}#quarto-sidebar.slow>*,nav[role=doc-toc].slow>*{transition:opacity .4s ease,border .4s ease}.quarto-color-scheme-toggle:not(.alternate).top-right .bi::before{background-image:url('data:image/svg+xml,')}.quarto-color-scheme-toggle.alternate.top-right .bi::before{background-image:url('data:image/svg+xml,')}#quarto-appendix.default{border-top:1px solid #dee2e6}#quarto-appendix.default{background-color:#fff;padding-top:1.5em;margin-top:2em;z-index:998}#quarto-appendix.default .quarto-appendix-heading{margin-top:0;line-height:1.4em;font-weight:600;opacity:.9;border-bottom:none;margin-bottom:0}#quarto-appendix.default .footnotes ol,#quarto-appendix.default .footnotes ol li>p:last-of-type,#quarto-appendix.default .quarto-appendix-contents>p:last-of-type{margin-bottom:0}#quarto-appendix.default .footnotes ol{margin-left:.5em}#quarto-appendix.default .quarto-appendix-secondary-label{margin-bottom:.4em}#quarto-appendix.default .quarto-appendix-bibtex{font-size:.7em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-bibtex code.sourceCode{white-space:pre-wrap}#quarto-appendix.default .quarto-appendix-citeas{font-size:.9em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-heading{font-size:1em !important}#quarto-appendix.default *[role=doc-endnotes]>ol,#quarto-appendix.default .quarto-appendix-contents>*:not(h2):not(.h2){font-size:.9em}#quarto-appendix.default section{padding-bottom:1.5em}#quarto-appendix.default section *[role=doc-endnotes],#quarto-appendix.default section>*:not(a){opacity:.9;word-wrap:break-word}.btn.btn-quarto,div.cell-output-display .btn-quarto{--bs-btn-color: #fefefe;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fefefe;--bs-btn-hover-bg: #828a91;--bs-btn-hover-border-color: #7b838a;--bs-btn-focus-shadow-rgb: 130, 138, 144;--bs-btn-active-color: #fff;--bs-btn-active-bg: #899197;--bs-btn-active-border-color: #7b838a;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}nav.quarto-secondary-nav.color-navbar{background-color:#2c3e50;color:#ccd1d5}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:#ccd1d5}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner{margin-bottom:0;padding-bottom:1em}body.nav-sidebar #title-block-header{margin-block-end:0}}p.subtitle{margin-top:.25em;margin-bottom:.5em}code a:any-link{color:inherit;text-decoration-color:#6c757d}/*! light */div.observablehq table thead tr th{background-color:var(--bs-body-bg)}input,button,select,optgroup,textarea{background-color:var(--bs-body-bg)}.code-annotated .code-copy-button{margin-right:1.25em;margin-top:0;padding-bottom:0;padding-top:3px}.code-annotation-gutter-bg{background-color:#fff}.code-annotation-gutter{background-color:rgba(236,240,241,.65)}.code-annotation-gutter,.code-annotation-gutter-bg{height:100%;width:calc(20px + .5em);position:absolute;top:0;right:0}dl.code-annotation-container-grid dt{margin-right:1em;margin-top:.25rem}dl.code-annotation-container-grid dt{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:#383f45;border:solid #383f45 1px;border-radius:50%;height:22px;width:22px;line-height:22px;font-size:11px;text-align:center;vertical-align:middle;text-decoration:none}dl.code-annotation-container-grid dt[data-target-cell]{cursor:pointer}dl.code-annotation-container-grid dt[data-target-cell].code-annotation-active{color:#fff;border:solid #aaa 1px;background-color:#aaa}pre.code-annotation-code{padding-top:0;padding-bottom:0}pre.code-annotation-code code{z-index:3}#code-annotation-line-highlight-gutter{width:100%;border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}#code-annotation-line-highlight{margin-left:-4em;width:calc(100% + 4em);border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}code.sourceCode .code-annotation-anchor.code-annotation-active{background-color:var(--quarto-hl-normal-color, #aaaaaa);border:solid var(--quarto-hl-normal-color, #aaaaaa) 1px;color:#ecf0f1;font-weight:bolder}code.sourceCode .code-annotation-anchor{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:var(--quarto-hl-co-color);border:solid var(--quarto-hl-co-color) 1px;border-radius:50%;height:18px;width:18px;font-size:9px;margin-top:2px}code.sourceCode button.code-annotation-anchor{padding:2px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none}code.sourceCode a.code-annotation-anchor{line-height:18px;text-align:center;vertical-align:middle;cursor:default;text-decoration:none}@media print{.page-columns .column-screen-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:page-start-inset/page-end-inset;padding:1em;background:#ecf0f1;z-index:998;opacity:.999;margin-bottom:1em}}.quarto-video{margin-bottom:1em}.table{border-top:1px solid #d3d8dc;border-bottom:1px solid #d3d8dc}.table>thead{border-top-width:0;border-bottom:1px solid #9ba5ae}.table a{word-break:break-word}.table>:not(caption)>*>*{background-color:unset;color:unset}#quarto-document-content .crosstalk-input .checkbox input[type=checkbox],#quarto-document-content .crosstalk-input .checkbox-inline input[type=checkbox]{position:unset;margin-top:unset;margin-left:unset}#quarto-document-content .row{margin-left:unset;margin-right:unset}.quarto-xref{white-space:nowrap}#quarto-draft-alert{margin-top:0px;margin-bottom:0px;padding:.3em;text-align:center;font-size:.9em}#quarto-draft-alert i{margin-right:.3em}a.external:after{content:"";background-image:url('data:image/svg+xml,');background-size:contain;background-repeat:no-repeat;background-position:center center;margin-left:.2em;padding-right:.75em}div.sourceCode code a.external:after{content:none}a.external:after:hover{cursor:pointer}.quarto-ext-icon{display:inline-block;font-size:.75em;padding-left:.3em}.code-with-filename .code-with-filename-file{margin-bottom:0;padding-bottom:2px;padding-top:2px;padding-left:.7em;border:var(--quarto-border-width) solid var(--quarto-border-color);border-radius:var(--quarto-border-radius);border-bottom:0;border-bottom-left-radius:0%;border-bottom-right-radius:0%}.code-with-filename div.sourceCode,.reveal .code-with-filename div.sourceCode{margin-top:0;border-top-left-radius:0%;border-top-right-radius:0%}.code-with-filename .code-with-filename-file pre{margin-bottom:0}.code-with-filename .code-with-filename-file{background-color:rgba(219,219,219,.8)}.quarto-dark .code-with-filename .code-with-filename-file{background-color:#555}.code-with-filename .code-with-filename-file strong{font-weight:400}.quarto-title-banner{margin-bottom:1em;color:#ccd1d5;background:#2c3e50}.quarto-title-banner a{color:#ccd1d5}.quarto-title-banner h1,.quarto-title-banner .h1,.quarto-title-banner h2,.quarto-title-banner .h2{color:#ccd1d5}.quarto-title-banner .code-tools-button{color:#949fa7}.quarto-title-banner .code-tools-button:hover{color:#ccd1d5}.quarto-title-banner .code-tools-button>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .quarto-title .title{font-weight:600}.quarto-title-banner .quarto-categories{margin-top:.75em}@media(min-width: 992px){.quarto-title-banner{padding-top:2.5em;padding-bottom:2.5em}}@media(max-width: 991.98px){.quarto-title-banner{padding-top:1em;padding-bottom:1em}}@media(max-width: 767.98px){body.hypothesis-enabled #title-block-header>*{padding-right:20px}}main.quarto-banner-title-block>section:first-child>h2,main.quarto-banner-title-block>section:first-child>.h2,main.quarto-banner-title-block>section:first-child>h3,main.quarto-banner-title-block>section:first-child>.h3,main.quarto-banner-title-block>section:first-child>h4,main.quarto-banner-title-block>section:first-child>.h4{margin-top:0}.quarto-title .quarto-categories{display:flex;flex-wrap:wrap;row-gap:.5em;column-gap:.4em;padding-bottom:.5em;margin-top:.75em}.quarto-title .quarto-categories .quarto-category{padding:.25em .75em;font-size:.65em;text-transform:uppercase;border:solid 1px;border-radius:.25rem;opacity:.6}.quarto-title .quarto-categories .quarto-category a{color:inherit}.quarto-title-meta-container{display:grid;grid-template-columns:1fr auto}.quarto-title-meta-column-end{display:flex;flex-direction:column;padding-left:1em}.quarto-title-meta-column-end a .bi{margin-right:.3em}#title-block-header.quarto-title-block.default .quarto-title-meta{display:grid;grid-template-columns:repeat(2, 1fr);grid-column-gap:1em}#title-block-header.quarto-title-block.default .quarto-title .title{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-author-orcid img{margin-top:-0.2em;height:.8em;width:.8em}#title-block-header.quarto-title-block.default .quarto-title-author-email{opacity:.7}#title-block-header.quarto-title-block.default .quarto-description p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p,#title-block-header.quarto-title-block.default .quarto-title-authors p,#title-block-header.quarto-title-block.default .quarto-title-affiliations p{margin-bottom:.1em}#title-block-header.quarto-title-block.default .quarto-title-meta-heading{text-transform:uppercase;margin-top:1em;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-contents{font-size:.9em}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p.affiliation:last-of-type{margin-bottom:.1em}#title-block-header.quarto-title-block.default p.affiliation{margin-bottom:.1em}#title-block-header.quarto-title-block.default .keywords,#title-block-header.quarto-title-block.default .description,#title-block-header.quarto-title-block.default .abstract{margin-top:0}#title-block-header.quarto-title-block.default .keywords>p,#title-block-header.quarto-title-block.default .description>p,#title-block-header.quarto-title-block.default .abstract>p{font-size:.9em}#title-block-header.quarto-title-block.default .keywords>p:last-of-type,#title-block-header.quarto-title-block.default .description>p:last-of-type,#title-block-header.quarto-title-block.default .abstract>p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .keywords .block-title,#title-block-header.quarto-title-block.default .description .block-title,#title-block-header.quarto-title-block.default .abstract .block-title{margin-top:1em;text-transform:uppercase;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-author{display:grid;grid-template-columns:minmax(max-content, 1fr) 1fr;grid-column-gap:1em}.quarto-title-tools-only{display:flex;justify-content:right}.bg-primary .navbar-nav .show>.nav-link,.bg-primary .navbar-nav .nav-link.active,.bg-primary .navbar-nav .nav-link:hover,.bg-primary .navbar-nav .nav-link:focus{color:#18bc9c !important}.nav-tabs .nav-link.active,.nav-tabs .nav-link.active:focus,.nav-tabs .nav-link.active:hover,.nav-tabs .nav-item.open .nav-link,.nav-tabs .nav-item.open .nav-link:focus,.nav-tabs .nav-item.open .nav-link:hover{color:#2c3e50}.pagination a:hover{text-decoration:none}.badge.bg-light{color:#7b8a8b}.alert{color:#fff;border:none}.alert a,.alert .alert-link{color:#fff;text-decoration:underline}.alert-default{background-color:#6c757d}.alert-primary{background-color:#2c3e50}.alert-secondary{background-color:#6c757d}.alert-success{background-color:#18bc9c}.alert-info{background-color:#3498db}.alert-warning{background-color:#f39c12}.alert-danger{background-color:#e74c3c}.alert-light{background-color:#ecf0f1}.alert-dark{background-color:#7b8a8b}.alert-light,.alert-light a,.alert-light .alert-link{color:#212529}.modal .btn-close,.toast .btn-close,.offcanvas .btn-close{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e")} diff --git a/development/sitemap.xml b/development/sitemap.xml index cf4c89254..e30c8e1f9 100644 --- a/development/sitemap.xml +++ b/development/sitemap.xml @@ -1,575 +1,575 @@ - https://insightsengineering.github.io/tlg-catalog/index.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/efficacy/fstg02.html + 2025-01-08T17:26:15.929Z - https://insightsengineering.github.io/tlg-catalog/listings/ECG/egl01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/efficacy/mmrmg02.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/pharmacokinetic/pkpl04.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/efficacy/kmg01.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/pharmacokinetic/pkpl02.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkpg04.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/pharmacokinetic/pkpl01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkpg02.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/disposition/dsl02.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkpg03.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/exposure/exl01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkcg03.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/adverse-events/ael02.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/other/ippg01.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/adverse-events/ael01_nollt.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/other/bwg01.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/adverse-events/ael04.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/other/mng01.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/concomitant-medications/cml02b_gl.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/index.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/listings/development-safety-update-report/dsur4.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/mmrmt01.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/listings/lab-results/lbl02a.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/onct05.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/listings/lab-results/lbl01_rls.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/dort01.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/listings/lab-results/lbl02b.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/ratet01.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/listings/efficacy/oncl01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/coxt01.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/repro.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/coxt02.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/tables/ECG/egt04.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/cfbt01.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/tables/ECG/egt01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/aovt03.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/tables/ECG/egt02.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/disclosures/eudrat02.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/tables/ADA/adat01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/risk-management-plan/rmpt06.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/ADA/adat04a.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/risk-management-plan/rmpt01.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt02.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/risk-management-plan/rmpt05.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkct01.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt02.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt07.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkct01.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt11.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt06.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt08.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt03.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/disposition/dst01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/ECG/egt01.html + 2025-01-08T17:26:15.933Z - https://insightsengineering.github.io/tlg-catalog/tables/exposure/ext01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/ECG/egt05_qtcat.html + 2025-01-08T17:26:15.933Z - https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet09_smq.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/ECG/egt04.html + 2025-01-08T17:26:15.933Z - https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet02.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/concomitant-medications/cmt02_pt.html + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet09.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/concomitant-medications/cmt01a.html + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet04_pi.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet02_smq.html + 2025-01-08T17:26:15.933Z https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet01_aesi.html - 2025-01-01T17:25:51.885Z - - - https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet07.html - 2025-01-01T17:25:51.885Z + 2025-01-08T17:26:15.933Z - https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet06.html - 2025-01-01T17:25:51.885Z - - - https://insightsengineering.github.io/tlg-catalog/tables/concomitant-medications/cmt02_pt.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet01.html + 2025-01-08T17:26:15.933Z - https://insightsengineering.github.io/tlg-catalog/tables/concomitant-medications/cmt01a.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet09_smq.html + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tables/safety/enrollment01.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet07.html + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tables/deaths/dtht01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet05.html + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt10_bl.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet04.html + 2025-01-08T17:26:15.933Z https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt11.html - 2025-01-01T17:25:51.885Z + 2025-01-08T17:26:15.936Z https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt13.html - 2025-01-01T17:25:51.889Z + 2025-01-08T17:26:15.936Z + + + https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt01.html + 2025-01-08T17:26:15.936Z https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt08.html - 2025-01-01T17:25:51.885Z + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt11_bl.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt12_bl.html + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt03.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt14.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt15.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt09.html + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt10.html + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt09.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt07.html + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/tables/risk-management-plan/rmpt04.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/safety/enrollment01.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/risk-management-plan/rmpt06.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/exposure/ext01.html + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/tables/demography/dmt01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/ADA/adat01.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/tables/disclosures/eudrat02.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/ADA/adat04a.html + 2025-01-08T17:26:15.933Z - https://insightsengineering.github.io/tlg-catalog/tables/vital-signs/vst01.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/disposition/pdt02.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/aovt01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/disposition/dst01.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/lgrt02.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/vital-signs/vst02.html + 2025-01-08T17:26:15.938Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/mmrmt01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/demography/dmt01.html + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/rbmit01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/CONTRIBUTING.html + 2025-01-08T17:26:15.907Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/coxt02.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/listings/pharmacokinetic/pkpl04.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/cfbt01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/listings/pharmacokinetic/pkpl02.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/coxt01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/listings/pharmacokinetic/pkcl01.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/rspt01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/listings/ECG/egl01.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkcg02.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/concomitant-medications/cml01.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkcg03.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/adverse-events/ael02_ed.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkpg03.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/adverse-events/ael04.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkpg06.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/adverse-events/ael03.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/graphs/other/ltg01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/lab-results/lbl01_rls.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/graphs/other/mng01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/lab-results/lbl02a.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/graphs/other/ippg01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/lab-results/lbl01.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/graphs/efficacy/mmrmg02.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/exposure/exl01.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/graphs/efficacy/kmg01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/disposition/dsl01.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/graphs/efficacy/mmrmg01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/development-safety-update-report/dsur4.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/graphs/efficacy/fstg01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/CODE_OF_CONDUCT.html + 2025-01-08T17:26:15.907Z - https://insightsengineering.github.io/tlg-catalog/graphs/efficacy/fstg02.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/vital-signs/vsl01.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/graphs/other/cig01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/disposition/dsl02.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/graphs/other/brg01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/ADA/adal02.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/graphs/other/bwg01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/medical-history/mhl01.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkpg04.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/lab-results/lbl02a_rls.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkcg01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/lab-results/lbl02b.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkpg02.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/adverse-events/ael01_nollt.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkpg01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/listings/adverse-events/ael02.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/appendix/reproducibility.html - 2025-01-01T17:25:51.869Z + https://insightsengineering.github.io/tlg-catalog/listings/adverse-events/ael01.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/cmht01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/listings/concomitant-medications/cml02b_gl.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/dort01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/listings/concomitant-medications/cml02a_gl.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/aovt03.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/listings/pharmacokinetic/pkpl01.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/ratet01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/listings/pharmacokinetic/pkcl02.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/ttet01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/listings/pharmacokinetic/adal01.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/onct05.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/listings/efficacy/oncl01.html + 2025-01-08T17:26:15.931Z - https://insightsengineering.github.io/tlg-catalog/tables/efficacy/aovt02.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/repro.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/tables/vital-signs/vst02.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/vital-signs/vst01.html + 2025-01-08T17:26:15.938Z - https://insightsengineering.github.io/tlg-catalog/tables/disclosures/eudrat01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/deaths/dtht01.html + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tables/disclosures/disclosurest01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/disposition/pdt01.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/tables/risk-management-plan/rmpt01.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/ADA/adat04b.html + 2025-01-08T17:26:15.933Z - https://insightsengineering.github.io/tlg-catalog/tables/risk-management-plan/rmpt03.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/ADA/adat03.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/tables/risk-management-plan/rmpt05.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/ADA/adat02.html + 2025-01-08T17:26:15.932Z - https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt12_bl.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/medical-history/mht01.html + 2025-01-08T17:26:15.937Z https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt06.html - 2025-01-01T17:25:51.885Z + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt05.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt11_bl.html + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt07.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt02.html + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt04.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt12.html + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt02.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt03.html + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt12.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt05.html + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt10.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt15.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt14.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt04.html + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/tables/medical-history/mht01.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/lab-results/lbt10_bl.html + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/tables/concomitant-medications/cmt01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet02.html + 2025-01-08T17:26:15.933Z - https://insightsengineering.github.io/tlg-catalog/tables/concomitant-medications/cmt01b.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet05_all.html + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet02_smq.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet03.html + 2025-01-08T17:26:15.933Z - https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet05.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet04_pi.html + 2025-01-08T17:26:15.933Z - https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet05_all.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet06.html + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet04.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet10.html + 2025-01-08T17:26:15.934Z https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet06_smq.html - 2025-01-01T17:25:51.885Z + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet09.html + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet03.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/concomitant-medications/cmt01b.html + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tables/adverse-events/aet10.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/concomitant-medications/cmt01.html + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tables/disposition/pdt02.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/ECG/egt03.html + 2025-01-08T17:26:15.933Z - https://insightsengineering.github.io/tlg-catalog/tables/disposition/pdt01.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/ECG/egt02.html + 2025-01-08T17:26:15.933Z - https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt05.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt11.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt06.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt04.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt04.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt05.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt03.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt07.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/ADA/adat02.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/pharmacokinetic/pkpt08.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/ADA/adat04b.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/risk-management-plan/rmpt03.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/ADA/adat03.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/risk-management-plan/rmpt04.html + 2025-01-08T17:26:15.937Z - https://insightsengineering.github.io/tlg-catalog/tables/ECG/egt03.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/disclosures/disclosurest01.html + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tables/ECG/egt05_qtcat.html - 2025-01-01T17:25:51.885Z + https://insightsengineering.github.io/tlg-catalog/tables/disclosures/eudrat01.html + 2025-01-08T17:26:15.934Z - https://insightsengineering.github.io/tlg-catalog/tlg-index.html - 2025-01-01T17:25:51.889Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/aovt01.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/CONTRIBUTING.html - 2025-01-01T17:25:51.857Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/lgrt02.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/listings/vital-signs/vsl01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/ttet01.html + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/listings/lab-results/lbl01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/rspt01.html + 2025-01-08T17:26:15.936Z - https://insightsengineering.github.io/tlg-catalog/listings/lab-results/lbl02a_rls.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/cmht01.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/listings/medical-history/mhl01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/rbmit01.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/listings/concomitant-medications/cml02a_gl.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tables/efficacy/aovt02.html + 2025-01-08T17:26:15.935Z - https://insightsengineering.github.io/tlg-catalog/listings/concomitant-medications/cml01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/tlg-index.html + 2025-01-08T17:26:15.938Z - https://insightsengineering.github.io/tlg-catalog/listings/adverse-events/ael02_ed.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/appendix/reproducibility.html + 2025-01-08T17:26:15.918Z - https://insightsengineering.github.io/tlg-catalog/listings/adverse-events/ael01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/other/ltg01.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/adverse-events/ael03.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/other/cig01.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/disposition/dsl01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/other/brg01.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/pharmacokinetic/pkcl02.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkcg01.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/pharmacokinetic/adal01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkpg06.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/pharmacokinetic/pkcl01.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkcg02.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/listings/ADA/adal02.html - 2025-01-01T17:25:51.881Z + https://insightsengineering.github.io/tlg-catalog/graphs/pharmacokinetic/pkpg01.html + 2025-01-08T17:26:15.930Z - https://insightsengineering.github.io/tlg-catalog/CODE_OF_CONDUCT.html - 2025-01-01T17:25:51.857Z + https://insightsengineering.github.io/tlg-catalog/graphs/efficacy/fstg01.html + 2025-01-08T17:26:15.929Z + + + https://insightsengineering.github.io/tlg-catalog/graphs/efficacy/mmrmg01.html + 2025-01-08T17:26:15.930Z diff --git a/development/tables/ADA/adat01.html b/development/tables/ADA/adat01.html index c8964779c..518ab398c 100644 --- a/development/tables/ADA/adat01.html +++ b/development/tables/ADA/adat01.html @@ -1464,7 +1464,7 @@

Output

@@ -1633,7 +1633,7 @@ @@ -1783,7 +1783,7 @@

Timestamp

-
[1] "2025-01-01 18:05:31 UTC"
+
[1] "2025-01-08 17:40:56 UTC"

Session Info

@@ -1799,7 +1799,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1811,13 +1811,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1831,33 +1831,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble * 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1875,7 +1875,7 @@
diff --git a/development/tables/ADA/adat02.html b/development/tables/ADA/adat02.html index 918ef294c..5f56507dc 100644 --- a/development/tables/ADA/adat02.html +++ b/development/tables/ADA/adat02.html @@ -1465,7 +1465,7 @@

Output

@@ -1609,7 +1609,7 @@ @@ -1672,7 +1672,7 @@

Timestamp

-
[1] "2025-01-01 18:05:11 UTC"
+
[1] "2025-01-08 17:41:02 UTC"

Session Info

@@ -1688,7 +1688,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1700,13 +1700,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1720,33 +1720,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1764,9 +1764,9 @@
diff --git a/development/tables/ADA/adat03.html b/development/tables/ADA/adat03.html index cefc94f1c..a6dc1925e 100644 --- a/development/tables/ADA/adat03.html +++ b/development/tables/ADA/adat03.html @@ -1465,7 +1465,7 @@

Output

@@ -1604,7 +1604,7 @@ @@ -1645,7 +1645,7 @@

Timestamp

-
[1] "2025-01-01 18:05:39 UTC"
+
[1] "2025-01-08 17:40:50 UTC"

Session Info

@@ -1661,7 +1661,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1673,13 +1673,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1693,33 +1693,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1737,9 +1737,9 @@
diff --git a/development/tables/ADA/adat04a.html b/development/tables/ADA/adat04a.html index 37a239620..d9fc8f431 100644 --- a/development/tables/ADA/adat04a.html +++ b/development/tables/ADA/adat04a.html @@ -1465,7 +1465,7 @@

Output

@@ -1637,7 +1637,7 @@ @@ -1814,7 +1814,7 @@

Timestamp

-
[1] "2025-01-01 18:05:18 UTC"
+
[1] "2025-01-08 17:40:43 UTC"

Session Info

@@ -1830,7 +1830,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1842,13 +1842,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1862,33 +1862,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble * 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1906,9 +1906,9 @@
diff --git a/development/tables/ADA/adat04b.html b/development/tables/ADA/adat04b.html index 88215d37d..763509814 100644 --- a/development/tables/ADA/adat04b.html +++ b/development/tables/ADA/adat04b.html @@ -1465,7 +1465,7 @@

Output

@@ -1606,7 +1606,7 @@ @@ -1762,7 +1762,7 @@

Timestamp

-
[1] "2025-01-01 18:05:25 UTC"
+
[1] "2025-01-08 17:40:36 UTC"

Session Info

@@ -1778,7 +1778,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1790,13 +1790,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1810,33 +1810,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble * 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1854,9 +1854,9 @@
diff --git a/development/tables/ECG/egt01.html b/development/tables/ECG/egt01.html index 05cdb91fa..940874701 100644 --- a/development/tables/ECG/egt01.html +++ b/development/tables/ECG/egt01.html @@ -1471,7 +1471,7 @@

Output

@@ -1654,7 +1654,7 @@ @@ -1850,7 +1850,7 @@

Timestamp

-
[1] "2025-01-01 18:06:39 UTC"
+
[1] "2025-01-08 17:55:28 UTC"

Session Info

@@ -1866,7 +1866,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1883,7 +1883,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM data.table 1.16.4 2024-12-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM @@ -1894,7 +1894,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1913,16 +1913,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM plotly 4.10.4 2024-01-13 [1] RSPM @@ -1931,13 +1931,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1950,17 +1950,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1972,7 +1972,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1994,7 +1994,7 @@
diff --git a/development/tables/ECG/egt01_files/figure-html/teal-1.png b/development/tables/ECG/egt01_files/figure-html/teal-1.png index c0430f7cdfbe42d891a39cfbb1e3ceb30728e4b3..86ac83ae1cd664adfe3fb0bb026a8c37203a4547 100644 GIT binary patch delta 2478 zcmX9=c|2Qb7pCc8P}M~l)oRq#(qd|-mYJZPsg}>wGO4vlsJ)R$Y{^s^ZHbK9Yst{6 zS}KDQYf?*^5MesDW=K+Nq$H&FW%w?0{(67!{oQ-c^PKZM=Tepx7)uJjCQBwCc?-gq zN?syol!DlDxYj-M3?jC)9QiLq=S%q?oG8ibujX$=6+jnXMV}BB)!$#o>oF&$jx*Q0 z_wcY@Y}5lLGUNB={y#q6Lm8TVECis5K#!B~3s07<1 zSR1VFM#+v1e}adZEs91>`K)e_|MPl3I&|Q<#6f(IW6rI;8G4vG&&>jz5@+wOz%@(4 zO}+*{^%~_aoB;O(YA7vIN~@+^_ZjJBxk~?p<|--ho~u6T*-z9f;xoM5TK~`-G(B1H zObHQQP=^UgFw{ww!N0evt=Sq}{$cp&VV2|nw2wlwXV_h*hK^O(A;d{Wm%H~#8sMJo zzR<32j+wp};UzpfCyirS%&3EjLaA`m&v%}-zS0=HXVSQiFOo|+7FSFQ)Yd~5b?mBx zlP&D14_f$s{NF#kR<8QR7izx$jm_i#0DbylsIn?fopqR3VvjV}X!c(XpCrL~$C^Q^ zd0a9`4VS(Wi$Ng13_07P+Bgsy2bcPWhR~3Z#h4v358Dwi~= z1ecABjI^AJf+HjMH>U|Kc!Q!p5^1a=e<`asJv|+N)~wa5wzs!;Zf-8hyrwDy3T1yD zsZLQ08YmJ71TJnSwzjzL-;P~>@qj;29M^&KsTleioU8A>J$%QxSKktdYu8c~al7JF z7TichUOz8%yeXXQ3_dMeY>E23Hs(tljBmCxSF=gjTpk|IR-9r75%qL*3OLtYvZv_; z-xh>J#ZZfvK9y&C^{SYI=9MowIXmMvCsPIM9wZ;@=(+w-Qb&v}P4a-4O`LST2OOOI zor?Stb)T}EIMwqcfSxfjI?BzI>#r;?rwL=2Zy~Z$k48pDU@#a61Y)sRk(4bs8cn88 z$Ij+>JnNmQ^=`ZA=y<1cxFwp;P2BK)@u3;FzgJRHGRw@PPm7P+Y+kr{aXLf4>M)WO zuc1W~^)N>)cFzi@6;Dj+^mA}F-onoCfGEvcY$t~tE-62e*X!W=-gFZbO)!fuH3U4Ua`kT$(S|CwX@z;x;$oGdX72;Uy zQ)vcwubi>yvezip?(6UGKWEb6Ln;c>$jpEK9AT~|$h3d)VTC_PT^YCrc|0&MAQDC7 zF~60Q1;dqz`S~(Ok322YJo)5X$6Q9f)Bz{IrgC_>Q0=FGkB@tLc@3G{%v{IHcRK9TNUr|g62j3CQ_ z1FcRdr0(qO@G#SOSKacekbr;y&69QPu+Xtulw~o_lmQ&PTaf}GnP;jZ-|6>fL&MOt zSO%<-$>@9}O%7vEAuT;UJ&T*#7!>WFxMzv7n#;c!xwHRaNO) zX96Pe@J%!^GHQ79=1p}qlfPp9g>kXIt*NOA#>^G0ZQrSI;<((Qy#D?|6wq}5c6Lrq zxip*0^>K598LMh(X*rizwFJ-=(rAd)d6!spj5yf1HDT*ZeSLkP;T9klH+Od~E(vtV z6%NiaYsfDs*!sdWNKve+inA&)2_1bI$!U)TFw7$@A9em2H3^Bm`me!8n2CuAJ>%Sh zKmfFuVvYV-7jQ%K zkVwYbi6{1DRH`rKeO+DM;$m1!RoB8=1|H9XPE1BIW>usffeUWo-cLU;lsll}o$Whb zR0(ZeIKITb@*#p3j*9gr5qChBC!;p$>bQiZj*Tm49B`? z;px+W$_=Qy_3~E&LzV&a)jIh#xToAPPlWvo?&9L2efk;Q^EU{13zn6Xl*A|ExDjM> zQ>Ukv>nD8`ZgT6i>(WNZheNHP%@G>BV zm6@68_g((Y@|g^!mL9vgivpS|FaUtova+%eFYxW=Z5U(K9Oln)@$q*mT`f5W;3Phk zuA@sjW2Iv?`65nRxTz-=OY!>j*YL0=p*Acy_%Y4@iM{_|i8T}oMWIm4Ts^s?N5aFy zO$%8|8*<^op`?LaFx6*x0QAg7xUgh*BDDeTiq#rmdp`ZHoy9?ztWD$D|&y z!?=Im>-PTbEuaT>qYnvfu6EhI24E_eJWBGV#&3um($2Vfc&J+-0++ZQPs=bJK5ZPE zpfIr3&ptjPLg=lNoBR|{^n#R#A2ks~;kZEyz%8qjX)_UFss zP_-98&MarVgJ{c>I=^za~|r_mrGk%uLNDi8hyPMz8RDug(5 U_qev?g@flmIXKzZLj02c5AAdEwg3PC delta 2580 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 F{|A!hIjR5v diff --git a/development/tables/ECG/egt02.html b/development/tables/ECG/egt02.html index 1c2bb585d..45d8d6bfa 100644 --- a/development/tables/ECG/egt02.html +++ b/development/tables/ECG/egt02.html @@ -1471,7 +1471,7 @@

Output

@@ -1796,7 +1796,7 @@

Timestamp

-
[1] "2025-01-01 18:05:54 UTC"
+
[1] "2025-01-08 17:55:07 UTC"

Session Info

@@ -1812,7 +1812,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1829,7 +1829,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1839,7 +1839,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1856,16 +1856,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1873,13 +1873,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1892,17 +1892,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1913,7 +1913,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1933,9 +1933,9 @@
diff --git a/development/tables/ECG/egt02_files/figure-html/teal-1.png b/development/tables/ECG/egt02_files/figure-html/teal-1.png index 5a39b49e7c9be45f5caf297cc700284780ef4963..c980f217d70bf8b94d4917481bb9f04665131144 100644 GIT binary patch delta 5938 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 delta 5259 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

Output

@@ -1575,7 +1575,7 @@
@@ -1675,7 +1675,7 @@ @@ -1893,7 +1893,7 @@

Timestamp

-
[1] "2025-01-01 18:06:18 UTC"
+
[1] "2025-01-08 17:54:26 UTC"

Session Info

@@ -1909,7 +1909,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1926,7 +1926,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1936,7 +1936,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1953,16 +1953,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1970,13 +1970,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1989,17 +1989,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2010,7 +2010,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2030,9 +2030,9 @@
diff --git a/development/tables/ECG/egt03_files/figure-html/teal-1.png b/development/tables/ECG/egt03_files/figure-html/teal-1.png index c4c6a01afcd073bd15a4204e27e39a1ad996a0c8..b5a295d4d5b1496958589c9e7a055fbfe108ed39 100644 GIT binary patch delta 3071 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 Coxj!q delta 3051 zcmb7`c|6qX7suzjqcp0qj23HzWSb$fhQYTcF=4o5Ok&23T+3Lp z79vZsjTwxkp)r;wq#?Vkzi%(@U-z%y^VfO3p67X;bKakGp68@49C)&D;9>dRPb2%E zBj6V;h-b_9N)jK^_afe09^H#S1Yp9^->BnzwmRCL@XSSimi%kqQ^iDH-5&3%T&d<8 zSAuoW>-AcaEz>Bph zZS(pvwiOs&pKs0^DaEL}_K)qejFQG%aW7GT$!xMOK|$lp+f9GYPgL#QVR`enRhZ1K zMCz3f(wbRQkUcw#{5V&Q-%6fMcFjl6s85euiyiCFMki?~3Ep14Q{I*MZZP)Tg_KwT=j8ljMgp#ZkfM1FW^&f!D#0AG_y%Mc@ z`yRjmh)$2{-*@7BI3YQ>sWh)1r!%z%IvZIWzX=o;Z5+BA5#{SK2ykX1<8Zhyaa6JN z2hWAx2g1b3%f*_7?WJg=>v7g?+pKS;IrmfD@G=hamTAjRbgbH%6`#tTN8Dy>%HZu5 z=iucrmXTkf?*n9_EETNeWubxTQ0?u7a>x9GyMRiR@~MVL<@M<;6yaqH8oAvS$Uzyr zKl_&HZPDuLBmBzbAofFRGc&2TNPfGsjwum+l1n$Ed|D_*ktuej}%{us@@JB}n%jFt)*j}VSa6?*|3(E%B3s9O<(D+mo- z!A0YKyHoel(^NRG;(;0zz#S=bTjBrO%^Z0p8-VG$XYBIEO{Q4W_Zj(bi&IbUN<;_y zIFWJoHxrcCA}962ME-R#VjGJlHQy4NSf-QE{)pJ)hyboD}uaV1hm)9r!fo^a3}QOeG&z4kR`4?Y{)& zwx7Mi9xcoL7aIMAsc^IG^IZ-1{IE9)^x@qFTCa|!{!SRRvE^ zURvWha74+wf#X+ES$Pr`ru}02^@kYz=juR8Z7u1}^MZnc#zsRZ8jXgWIB`c*=G3W| z<>eYGD&BL=C?6k#fXTlYQyW|Bvw!eCk&DrLFk@3wCyPr;pi+(mQ`G=}eFU zkwD0P^$O1XE_7?S75MN0j=^ADU9$~eu8zf?*@)O)TwEL(85#0*`=oz9)uC9V#lh zRup#FLMM%e%%IESBb!E>rv*h8eug1){1NFT_9iAB_4NiUnn@%Qi_K>D_y2PZ zkb@?+(nxyQC=*B(W@Y9hUM#!e@d1HjiR{@7u*NbntQ82O_iYNTgs!{0yIWfm9f}hY z5@exKcPtbvRYhHF&xs!?z6Cb-_n`Ht!(t*SDOd3WeSPx6eDUMKc)0hQnoJ?gck$pORFBp5fV#tGZ}&Cz>0b8~O+qTZ`=!e}oqu+Cj%s<{6k+AH~|_agXy}gq*N0X1Sng^uD$@9PAZ$RnZ$aZhZXsk(RErFjF(DVq16t z9$FjGk)mvCYpa&}{d1LnVPT<>kgwwJz#|+o zXMHLsSR}RP3%}pf?J}B?sj0XFU(sxqF&t-08{;~!HUw$yxUd6G@ zt@Fc&ee{KMX=Z~t>QYkU%iN*ZH@Sb&?xE4fg;pk;gWP41xa{naop?v+Gbdov8uId} z;9whJBl1MHD?fa3b#A<>N(ZX@VCM5!Jr)O!Mmjn=00ItTfMu8$51c6unV^yQkE`G^ zdzVtjt=e-LFt z%g)u!u;+=F-3oo7WF!9a3B| zp`k?%wU9%<@4q-XJv~$%2vC|vMMXumea9kAWlWGrhv5FGmhlp%*ZUA-ighuKMuP=@ z6K+y{`t<3U+Qpv9$=t>MqT4n3`T0Ez#=`tOL`)3)M)qF>%L#&aYyM=2KCP#RVb_IE z(0{#LSjpt%YEN_F5d6(12KoaFluS~gkJU)C4n92b)A3U7w%DgvJ+1K0a zQE}^W!^l#oPW({G-Ij?AK!wY^e(RPo9Q;03W>^cMwE_|_FElz7%!;3n5AEsciAHNc zI-l*++9d?=seLxvwfCHzJTWZx?}YH9=0CFl;@83dZ*u4c_Fyray`oOb1HUdKjF9jm ILnrM20Bp3t*#H0l diff --git a/development/tables/ECG/egt04.html b/development/tables/ECG/egt04.html index db595f3ba..0514ad84b 100644 --- a/development/tables/ECG/egt04.html +++ b/development/tables/ECG/egt04.html @@ -1465,7 +1465,7 @@

Output

@@ -1544,7 +1544,7 @@ @@ -1603,7 +1603,7 @@

Timestamp

-
[1] "2025-01-01 18:07:14 UTC"
+
[1] "2025-01-08 17:54:09 UTC"

Session Info

@@ -1619,7 +1619,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1631,13 +1631,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1651,32 +1651,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1694,9 +1694,9 @@
diff --git a/development/tables/ECG/egt05_qtcat.html b/development/tables/ECG/egt05_qtcat.html index 0e489622c..798d5070a 100644 --- a/development/tables/ECG/egt05_qtcat.html +++ b/development/tables/ECG/egt05_qtcat.html @@ -1471,7 +1471,7 @@

Output

@@ -1614,7 +1614,7 @@ @@ -1942,7 +1942,7 @@

Timestamp

-
[1] "2025-01-01 18:07:02 UTC"
+
[1] "2025-01-08 17:54:47 UTC"

Session Info

@@ -1958,7 +1958,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1975,7 +1975,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1985,7 +1985,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2002,16 +2002,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2019,13 +2019,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2038,17 +2038,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2059,7 +2059,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2079,9 +2079,9 @@
diff --git a/development/tables/ECG/egt05_qtcat_files/figure-html/teal-1.png b/development/tables/ECG/egt05_qtcat_files/figure-html/teal-1.png index 4e24abd2d116e626c8ac230b8e4bd2ba6013c370..27c4938a55bc465348151f2956b70eef2fa0eb1d 100644 GIT binary patch delta 12337 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 p>+9NJI=OW`H08A_bgBzgb< diff --git a/development/tables/adverse-events/aet01.html b/development/tables/adverse-events/aet01.html index 4b712e2cf..f214366f3 100644 --- a/development/tables/adverse-events/aet01.html +++ b/development/tables/adverse-events/aet01.html @@ -1471,7 +1471,7 @@

Output

@@ -1591,7 +1591,7 @@ @@ -1718,7 +1718,7 @@ @@ -1832,7 +1832,7 @@ @@ -1973,7 +1973,7 @@ @@ -2254,7 +2254,7 @@

Timestamp

-
[1] "2025-01-01 18:01:05 UTC"
+
[1] "2025-01-08 17:50:47 UTC"

Session Info

@@ -2270,7 +2270,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2287,7 +2287,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2297,7 +2297,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2314,16 +2314,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2331,13 +2331,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2350,17 +2350,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2371,7 +2371,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2391,9 +2391,9 @@
diff --git a/development/tables/adverse-events/aet01_aesi.html b/development/tables/adverse-events/aet01_aesi.html index f421536d3..eda7f580a 100644 --- a/development/tables/adverse-events/aet01_aesi.html +++ b/development/tables/adverse-events/aet01_aesi.html @@ -1471,7 +1471,7 @@

Output

@@ -1563,7 +1563,7 @@ @@ -1697,7 +1697,7 @@ @@ -2062,7 +2062,7 @@ @@ -2308,7 +2308,7 @@ @@ -2730,7 +2730,7 @@

Timestamp

-
[1] "2025-01-01 17:58:55 UTC"
+
[1] "2025-01-08 17:51:29 UTC"

Session Info

@@ -2746,7 +2746,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2763,7 +2763,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2773,7 +2773,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2790,16 +2790,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2807,13 +2807,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2826,17 +2826,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2847,7 +2847,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2869,7 +2869,7 @@
diff --git a/development/tables/adverse-events/aet01_aesi_files/figure-html/teal-1.png b/development/tables/adverse-events/aet01_aesi_files/figure-html/teal-1.png index df9800f7f3ad34e111e3dab9335c6ad202e1934f..3aede38b3f09fe0c77343404ce53f3f254d1cd32 100644 GIT binary patch delta 12736 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 z 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�(nw0H(V(~66YzrJ1_wfG!9_4?Zm$0qkL-6b>* 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

Output

@@ -1623,7 +1623,7 @@
@@ -1712,7 +1712,7 @@ @@ -1838,7 +1838,7 @@ @@ -2006,7 +2006,7 @@ @@ -2084,7 +2084,7 @@ @@ -2205,7 +2205,7 @@ @@ -2310,7 +2310,7 @@ @@ -2441,7 +2441,7 @@ @@ -2546,7 +2546,7 @@ @@ -2651,7 +2651,7 @@ @@ -2750,7 +2750,7 @@ @@ -2855,7 +2855,7 @@ @@ -2953,7 +2953,7 @@ @@ -3130,7 +3130,7 @@

Timestamp

-
[1] "2025-01-01 18:01:34 UTC"
+
[1] "2025-01-08 17:47:18 UTC"

Session Info

@@ -3146,7 +3146,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -3163,7 +3163,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -3173,7 +3173,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -3190,16 +3190,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -3207,13 +3207,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -3226,17 +3226,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -3247,7 +3247,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -3267,9 +3267,9 @@
diff --git a/development/tables/adverse-events/aet02_files/figure-html/teal-1.png b/development/tables/adverse-events/aet02_files/figure-html/teal-1.png index 8aea4e35f26f48c71e3ac67c614aa7b9bea36b3f..feff05aa47f53383f3ff043951d01fa8bfcd77cb 100644 GIT binary patch delta 9891 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 Zk+`vLshK`Q?s#)gA4@$-d7$O~zW`I--(dg% delta 10240 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 diff --git a/development/tables/adverse-events/aet02_smq.html b/development/tables/adverse-events/aet02_smq.html index 71a439db2..15d0b429d 100644 --- a/development/tables/adverse-events/aet02_smq.html +++ b/development/tables/adverse-events/aet02_smq.html @@ -1471,7 +1471,7 @@

Output

@@ -1570,7 +1570,7 @@ @@ -1680,7 +1680,7 @@ @@ -1910,7 +1910,7 @@

Timestamp

-
[1] "2025-01-01 17:57:02 UTC"
+
[1] "2025-01-08 17:52:10 UTC"

Session Info

@@ -1926,7 +1926,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1943,7 +1943,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1953,7 +1953,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1970,16 +1970,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1987,13 +1987,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2006,17 +2006,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr * 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2027,7 +2027,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2049,7 +2049,7 @@
diff --git a/development/tables/adverse-events/aet02_smq_files/figure-html/teal-1.png b/development/tables/adverse-events/aet02_smq_files/figure-html/teal-1.png index 94621bff6d2b2d8c101f2ec155a9583864f962ee..2a54eaa8072d16ca693d5e249e603df1d1608e59 100644 GIT binary patch delta 16073 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 delta 15754 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%0Aa{VJK5Nl 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 IWaB^n5B1x(ZvX%Q diff --git a/development/tables/adverse-events/aet03.html b/development/tables/adverse-events/aet03.html index 035d23b05..f55fd7cbc 100644 --- a/development/tables/adverse-events/aet03.html +++ b/development/tables/adverse-events/aet03.html @@ -1471,7 +1471,7 @@

Output

@@ -1652,7 +1652,7 @@ @@ -1825,7 +1825,7 @@

Timestamp

-
[1] "2025-01-01 18:01:57 UTC"
+
[1] "2025-01-08 17:48:52 UTC"

Session Info

@@ -1841,7 +1841,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1858,7 +1858,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1868,7 +1868,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1885,16 +1885,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1902,13 +1902,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1921,17 +1921,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1942,7 +1942,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1962,9 +1962,9 @@
diff --git a/development/tables/adverse-events/aet03_files/figure-html/teal-1.png b/development/tables/adverse-events/aet03_files/figure-html/teal-1.png index ec484115448d73a34533eb47039c05d703256435..b6a6b5753917ef11986c2442cf746b6116933500 100644 GIT binary patch delta 7285 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 a$c$JBYX#)uY+=oOS1uTx&;9vM$iD#;^~4?k delta 7094 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

Output

@@ -3286,7 +3286,7 @@

Timestamp

-
[1] "2025-01-01 17:59:29 UTC"
+
[1] "2025-01-08 17:47:52 UTC"

Session Info

@@ -3302,7 +3302,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -3319,7 +3319,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -3329,7 +3329,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -3346,16 +3346,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -3363,13 +3363,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -3382,17 +3382,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -3403,7 +3403,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -3423,9 +3423,9 @@
diff --git a/development/tables/adverse-events/aet04_files/figure-html/teal-1.png b/development/tables/adverse-events/aet04_files/figure-html/teal-1.png index 20682d06d0c77c292d713b7570affea53042d85c..ba6cb05f8c3b9987e9b5f240d2f0d21a360a3129 100644 GIT binary patch delta 2460 zcmb_edpy&7A18&wlEP9?XgnmBaw*AW%0rz>#A$9x9k*B*J2ac|tH)UGX^Gq>idu}= zT8!x&$riJu9br@M&81=P*YnHy?|D6cJbygjzdo-&AbzTeO1efd4ffDWfYZxf^m z+Xym*?X(?YJg~Uf^=Z8|a;-~CJ}l%h&47N1qLP;1SCI1hw4TZdNB@Apj(vL>p*?d* zX6_~t6W;mu+Ow|LZ`zZrWFZx7+K3-X-!fe-VkhbJ(?mBUZ`l`rKS{m@^(hXsz?DQs z<5o_Ri!iZ#4>);Ins&E+o79gLy!+9Pt>OcqJ=Eo61BbIvU*P3khY6QdTf!NrUK%H; zwh$gy-_X!dTzt^Brm`}uqu^v!rG*O|U zPXFA)2|#z2I94@ntdRI%GXN>6+hsP0AQ-_!9m2$jAGS_SP1$WM`GD0YR%gfI% zbS`%?e3Fro5k2uI)~4w3QN1=xc4i&z3I&q^fZn$M!y+1ZaH z*I4+I+2^^IMthQJG}?m)58BQ6Mu|@Rk00IK-Q9hB4y2!HS{Z+Fl(nR-4(Xj*pim4P zU6l@4R>#Z??ofo436v{Zd zj-Y(Vxxf=(;g=PUHeB-Zdi3bga+izU)1xk%j+qYH7Wo(DO^+R$8%#Z_0IR93l}IG3 zD=R6fsUx}l{r&CjPMNJbgr%jS%n>tUXQwN6z-TRgv(Op?kxl3c?WcwOva+THtaX0) zP#w2=E42kZ@JC|sF^c~AUw<9wrQZah*5aGGLYFq9Eqcv>@fUM4S~3**JZwTQ5tL( zAhlF(Q`>Iu`T*q4UMRGTCt$_J1_T6jQ?I6!9Dw6JgP&dq`RDO1d{vbMf(;X?YEQf0r;(9q_jokwzBG&MER>GKJ@;A}QK zH{LuUApuV21=SuuetgHaJ16>M{BbZ6iDZ3ilKuXDeU!+}!@~mz3>;aRpUBj(zBND2 z2M4*lv%>S`;4p`DEq*!BM)RnlVQt@(%bd)XaTFW7FUR?qKe(swqQ+PyYm#CxA z+WiH8AOd*8tMI9t&GzsWO-`i!d+1QBc<}{gWqP1_W@e^U*xrDZ3y z_xDF2_!6GoCaCiw8!Q@R+nrNy1|k|ZH&&A!2A5`re5*WUO}7-c_QEzH9!kc~a;_=; zf{0#_PAL(*j{H|ReHzzzrZh4*m_33rzV-O!Spa(|rG%Z3m6eqP4&i;aA?TmDM!1fSKR6=Ma-y<~j0|o)beCsc^u)vN ziEP)q$|WootE{Z7xcGWRL^X@G5$Pd{s(;Qn)_4y@0o}&MZv9h$8OVawMRD6xZ82+= zs{F@5M6MH12Kw10{mbs|dO1{8C{zgox#zX@q>Wu`={ze?(cu8l3w8yqX%)pr(nrU}+5rCc8@!_IN<)_d%iXCh zdy?M{G!wZ&66#gvkCa*(Ac7J`AWoqA3$n9ywZd`JUr(2Iz7FfN=rOi`MgAGZWpg;# ziAshu8E&k#+lpQ}8l{ZgTE*FemF!zSu zrR$NNmy`^G5^BxVa(U|J=mTg9nVw$WB`8~PtWVE+D}kp5SoP3a1K Xn)khd1Mhy^NdBCovjf%s`oI4I8|TLX delta 2653 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 diff --git a/development/tables/adverse-events/aet04_pi.html b/development/tables/adverse-events/aet04_pi.html index 8889f19d9..8f1ac02e8 100644 --- a/development/tables/adverse-events/aet04_pi.html +++ b/development/tables/adverse-events/aet04_pi.html @@ -1496,7 +1496,7 @@

Output

@@ -1588,7 +1588,7 @@
@@ -1658,7 +1658,7 @@ @@ -1732,7 +1732,7 @@ @@ -1802,7 +1802,7 @@ @@ -1883,7 +1883,7 @@ @@ -1987,7 +1987,7 @@ @@ -2090,7 +2090,7 @@ @@ -2179,7 +2179,7 @@ @@ -2406,7 +2406,7 @@

Timestamp

-
[1] "2025-01-01 17:59:58 UTC"
+
[1] "2025-01-08 17:49:39 UTC"

Session Info

@@ -2422,7 +2422,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2439,7 +2439,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2449,7 +2449,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2466,16 +2466,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2483,13 +2483,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2502,17 +2502,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2523,7 +2523,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2543,9 +2543,9 @@
diff --git a/development/tables/adverse-events/aet04_pi_files/figure-html/teal-1.png b/development/tables/adverse-events/aet04_pi_files/figure-html/teal-1.png index 23d4e3e11ae0f9d73886b02567cff665e35d1d83..ab309a735d8a63c06a452108c94283102fb46249 100644 GIT binary patch delta 8023 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

Output

@@ -1535,7 +1535,7 @@
@@ -1600,7 +1600,7 @@ @@ -1794,7 +1794,7 @@

Timestamp

-
[1] "2025-01-01 17:57:50 UTC"
+
[1] "2025-01-08 17:48:32 UTC"

Session Info

@@ -1810,7 +1810,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1827,7 +1827,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1837,7 +1837,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1854,16 +1854,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1871,13 +1871,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1890,17 +1890,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1911,7 +1911,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1931,9 +1931,9 @@
diff --git a/development/tables/adverse-events/aet05_all.html b/development/tables/adverse-events/aet05_all.html index 7ace3d368..7cce96f3e 100644 --- a/development/tables/adverse-events/aet05_all.html +++ b/development/tables/adverse-events/aet05_all.html @@ -1471,7 +1471,7 @@

Output

@@ -1534,7 +1534,7 @@ @@ -1594,7 +1594,7 @@ @@ -1809,7 +1809,7 @@

Timestamp

-
[1] "2025-01-01 17:58:32 UTC"
+
[1] "2025-01-08 17:48:13 UTC"

Session Info

@@ -1825,7 +1825,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1842,7 +1842,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1852,7 +1852,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1869,16 +1869,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1886,13 +1886,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1905,17 +1905,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1926,7 +1926,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1946,9 +1946,9 @@
diff --git a/development/tables/adverse-events/aet05_all_files/figure-html/teal-1.png b/development/tables/adverse-events/aet05_all_files/figure-html/teal-1.png index bf50f4d9bb5726ae88ca5f9ebd8c14647edd684e..104228296b0c393e93a81f177bfc665c0ad662f0 100644 GIT binary patch delta 9525 zcmc(FcUTi^w=a8JKv9VelxnsLs1)f43ZJ2f(nJ)bB&Z;rAe&wX6-4QZf^-Fx8hR*! zfDMr@O$fb6?_TJ$@eYChn9v*1iWwi%1H#b!7~Ox<&$IPqXx%y}-6Y>3gX zrtx}F)_PA8-ae61+xPJNL8XJcckNQfi+-q$>E$tV4nJ*k`cxTZVzsTP^)?W`SCwY9?%_%Tejwzkx#I_VO}_OS^Wj>gEjxVolt zjIX_MD#0=}Ha5<+m2Wv#26IuV)ZlPS+wS?X;XR#iIkF(GW}x*0~{Z2oiaAn($!t=d(09i>x{2@aeCb6sgToD$Ga`*thBUo zkFGf?idsk-yus1Y>&r5K)1C9?;_OOVoX$D=gz;t~t+=>YxODarF3YIET2E2&%hu+48^NIMow~7cVtRV| z$>;})#|~Jg%EaP_s$a#1uy9Iemr!Y4WO(3sRZ1!;CugqTk4G|6Ezhh0mv7#9x-;dl z!f-=;`FgL@WPAVE*w}0Cgsq?TH8t9PH%;!}zmVB#Nj!M)VDP)sJ}6|I^t$&gfiTrM zAzMTu^*s2z-_kpQyQ-=xr*o>lzP=6X-0kd~lIeQ^-W9(&X(l2fVmUu>?3|r%MM|uq zqGHnf_c-Tn$ML>kq1ef;V(m*VeII^9e|dBHF=>&NgCm_+`r*Te&z?O?R1UgP8RFvN zVt7@A-uXrDv9Ed;5o(JzpJrT)xJA>DoP)luZnDs+Mpv%AWL*5~*F~P|PL6IW*REB| zZ?87w=H?o0ueHGp2G872NfhJNjN7O_mu20NpITN{R$RO~Ny&>ir;N2oNK79|?r%giQY8eph_n3$MczWgzmOSY@4Ykq$I z_Z>SLVlIS5M@PSUC1Ks3eNKQ^RP+Xu-Tcq0HY0@m{=IUn={?a%oh)4Jix&yF`6|A6 zPI<2lX!_l|clrb;cn-U^NTtS#-mk9YK{mdf3<>0rn*Q?aa79Ihg5QB#ZRPaQzhSv5 zRS#i}tcDxl^~yYol@p6ib~xTsQBiriCb*AL;?wnHKgBCobfx6nAqIhJUB2gJ~2_g zHl99Hl%^^o)$P#C<=oXjG(>b=Fy-S*zLl<{9xsPYZ#6YDOYhZev?QL>$&j`mR=axj zs*1|DFiknvs^dHs78daG9~0DQDO-rl=J)EVnwq+8Lc3^#f5T!yA}%IYnZPzcB2*81 z^DrxE)tcJhzJ1$>?RVM}MFLx~2WTe@CW@xN{r8?YOqsD76ynvdUDGdhu|xi9k%82& z|4jfw?8S>0!94QQ((?gE8w1by;;t9&`2F{jy?5$fvgM(tmUjv~BY;3}~7-_qN!THy( zU-y6Z%Q7nOu{(9?68Y`h{^F6i0Dph|5+?%cUiHf}kOW<(h;0S7y=C?z8cJHQKS~|O zZp3Qv`AECY{|pc=b6Fg1{P5uebU}=deh3O8Ha{}-Fi*K;ojf2lzIye_KLMgn_;&UQ zH2Q4>ZkOAu1b)-J3jzWeS
  • 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 delta 9960 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 dj%_#>G7BKzocBGdQC$qUE$87{{R(##g+g7 diff --git a/development/tables/adverse-events/aet06.html b/development/tables/adverse-events/aet06.html index 7b03ba63a..4f9e155cc 100644 --- a/development/tables/adverse-events/aet06.html +++ b/development/tables/adverse-events/aet06.html @@ -1471,7 +1471,7 @@
  • Output

    @@ -1606,7 +1606,7 @@ @@ -1734,7 +1734,7 @@ @@ -1862,7 +1862,7 @@ @@ -1991,7 +1991,7 @@ @@ -2166,7 +2166,7 @@ @@ -2380,7 +2380,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:57:29 UTC"
    +
    [1] "2025-01-08 17:50:26 UTC"

    Session Info

    @@ -2396,7 +2396,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2413,7 +2413,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2423,7 +2423,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2440,16 +2440,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2457,13 +2457,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2476,17 +2476,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2497,7 +2497,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2519,7 +2519,7 @@
    diff --git a/development/tables/adverse-events/aet06_files/figure-html/teal-1.png b/development/tables/adverse-events/aet06_files/figure-html/teal-1.png index b9da5643908b3e40cad0727970bb099d3a397b01..82452ea32f4222a6ed7b42f7a6ae65485514eb0d 100644 GIT binary patch delta 4380 zcmb_fd011|wuf2^N(0=hLX`rgDozX)Ws)I2(4u853Wz{Z85IyDKp-R>X+drkK|qWI zND2y+SqM`Yf)qg_0vd!A2#G=FApyxqAbC4||Gana_ua3(ultX)_c`BQXYKV{zcuW8 zjcPwPsNGIcO!=f?TV9u9bThtd+fyZoytwH0UNoMV#z1{S{^DHA8O0sZyQ}W-=1+hB zQm66j{ppR!0+ZZ~ZYSMAM~Op0GbMKLx@(WtDB)IB?#{!WXLi?Jx~u)-XGX1l?~4N| zzCz|48-tWV0Zoc!kag4UXYiU z5w4AaR8$asndemcR6eGE-!^RU)y|TV5~;VMf!tF1vYk=u=`biZqef2GV zJDAk>4}1cqe`E!NjS4T$k-$^o+EZ`&bev`Yp8rk^`VZy)DlzDJ4~`lbO=ipxwkw=A zh$j2$=a3mB1xnIMl@`&f{(gsVzcms9E3O?kF>&|wj3b9AVzxpxqSib-Ju~j#hpDQL zM<^<6!g2jGpD8K5?Cq@|Tb?1Ptnzb??%s(@R9%HV?4Q|?NP<)p-pj~N`WHMs9}NT- z!W1c=%5j4La3nnd(q9Scp8yB?3w-z|)cuP#=wB#vbR(^Xv#>x8JR#?ksO@5rTMGjT zmI@ZczaA;*Kcnsc$K?NGF|hv+M9Dv?yLhrosJlGRVoI;pxb@AbH16p^8Qm~27Mlcc z;1NBJw{SlPUmY)i=9oX}o35;>zNtVYQ>VW+QoM4Y|A(P;PmA z6s;MO4tecPQ%5At{b;U+iRu60j`8t#&R%raKz&UfQwfXmXPqR~OciH-4n%!#>K1xyNGE^chx`7Mt5+|3pkk&hm&jAs{YFo}uEGC>bS&UgZFTOsnamLHFvZD4VOwU?|%W?FnfgXE%9k(zM`1`0Ky#2{b zZyc(Ti?imQ{6cLT!Q0cq=c{!!$&JkeFui3P>Dn0E*W~@1P>$H<5Y!$X*Az~p?CLO< z@_C(1MuAHit^A!I-JGy@pJWJ5fx3dTT*_R8pVwTreiGvzJWRN-a!7JHgib*g3!5PP zWt^cn69+Njk*|NM+6Rs++Udkg(uhDVY7A6Zj+#a_EWO^KXEqF!hvi>DRfWCJMOnG) zrKp=MTx7iubqwG;Cc-V4rr)#`eZ(*1sHEC?-$oDw zf43hy&y!r#Py+bIB0IULZn{5%S#)Gik6y}x=^lv-?~eMQYG%YZvcgTdmdkxTqhfg9 z1LenxuTOkNLd~x{v4M@0m=CpGi?eScp}yH$Wb1Udlq z*cDao97^n2z7sz5yl+F>A$ve2ryn|G*m)JL%pN>@UrShko;$<6WW+KnGs@lBI7TaD zT3mL2sMD``)8~zw-}mhu9qYypXy5?vTfv9`e!fzxo$|pP8Vagh7;DbZ+*4w&#~}Z5 zYwB40?f`jB#9gj%JB&&02TKKt`>s=3@{dtJh5oN13jNzEdhukIIngFjFb9_<`1$!M z>k)@s^Gs%H+Bg*z6&ov&P~!T4xhv5YyZOoskxULP{)~noO&EaFw^U#~3>5UU1gADXiwTh+@Mm&R4)3JX1 zUCE6bHy#=LBi!9-Or~@^tTt8sMp#&k!^m?ft0m9kOB```)Dc+zh(I8?cyxqDs}H1RuPF+-EE#XuRmLlW8yXsJ zP1B4lL^y&qK=e$Q-N4r=52%5oHGcWl%%+HmM}|J0)t6%tnk_%$5a{xn8l&<(KV@ZQ zS#eqdI1KWKAx4s9h5BPrQ4#b~C$XxeWahWJ04x@(X2WwkRhTrJ7a~|5BSo=)biyGy_G-dUk|K_!sSGgC;TngV`gC8Ld!G#Q@a1!NjZ{MAv zZPj#h5)IyJ5gn%z_|w!J@Q2Fs@`d^N-^j>0ylL3oyLSmm(8fY?a`NEd;5H@IDsPg0 z?sr?W=AC(#$XW1ar@U?3HmkVhzF-oy0#0slRZV)UDet+CKMo~X&^%*GOV7f`>a(-6t9_a?I+4%vPo;bVNjG6yX6felRK_V- z3A;P(M4nSZg4ho=X)48pgv@c1gl!UTXJ>Kowe{J7t*tFFCaE`lFH1a#k^_O22*CdU z+5`f@qtY{oG#02A8ygF{OBe)$>7|6#b_nR5QoiVRsvSF36VWn9NVHStQY4&4IwHS{ zqXZZImvT{MW!MI9;q2M7dMOF(vmG+2p8e*`*=yGsy7|LJm z5e0!*dma?`7Jt^3$ZC#crSCn_OSFt%z2fRRv^Y|^F5Ya7UCIuI>aO+NonG!GTN(Vl zySp2>SRMiw%HPpS9COV6W;f5}!ei#&L^MyDCC%J{X)&?F$)%dMnv#;Bz`(#OSAMRn ztgNZwJWt*hGFTu^Kd)nh=5+{}lDC;j52=A>5#u}%C#I&Rsp{y&L?Tu&mV3<0gdP8GUj#J?LI)mI8ZqtT^Kc^_Y&7~=8y14MXdb#=tzyYe;^S4T%@Fwi7TRr|Xn z{Y1es2m&2{5uhPF;`*E_1vxjku8-kFLh>eyQmQ`=T3<$O62Ed9E^~Hvo_myd)y%i9doWNyv0G0Ok_O3Sk zcYw%?OG`OczMreA>R3h}7~6O|IqBykANfwD#l>Hf3txm799S!ZZ(ZLEcdW0QVkUC6 zwX_m>ZymJu?ZfBiYZ_kWP3O2i!r|znqXMB20_Xxfq--_FLiz|KKv$n}@{dsTukvOT zQeY`)vXeAG+9QI3r%M^oU*dASJuVyzL#r^Mo~#2L#i;CGr`)DTuLG#hfAG- z*;L{hpU(&KldZ8JIf4bf#&3OYNS1!YnP|J!m$jelYcxi9fT^c8TpzyKxg`KqX=S20 zO+EPa}3K(bPR4s`=$n?{lE)%+Jp+442s}M}oa0UjBvcXlUxiPiv(Q7mJf<;{KskPbO~U^Iy+65U>Y_G_5+7+&OgbVT^G;J&H{K; zJa4b1R$Z!-=SeY!QV-RekdMrYR!+P$CfH&(7-Xbw!gQ9e5s+)2&e#JSA(=6T@~DB2 z47{@$J?qxQriS&;WYa0KHP#+^?K{Lj>kpF delta 4487 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 P$ImM$Yx5Tue!ctO@h1

    Output

    @@ -1567,7 +1567,7 @@
    @@ -1674,7 +1674,7 @@ @@ -1765,7 +1765,7 @@ @@ -2068,7 +2068,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:00:21 UTC"
    +
    [1] "2025-01-08 17:51:50 UTC"

    Session Info

    @@ -2084,7 +2084,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2101,7 +2101,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2111,7 +2111,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2128,16 +2128,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2145,13 +2145,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2164,17 +2164,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr * 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2185,7 +2185,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2205,9 +2205,9 @@
    diff --git a/development/tables/adverse-events/aet06_smq_files/figure-html/teal-1.png b/development/tables/adverse-events/aet06_smq_files/figure-html/teal-1.png index 68b16ca9500612a927d621cc352f47ad6a3c7491..57a66a70618402fb925852473545ac33ffe667ef 100644 GIT binary patch delta 16235 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%0A;I=~eFpH_#;O(pV2 zol>BnxGn!bfs4f+3x&NL1y5-DP#pj2(IXlv{$-g>xMpZ78 Ibot-^1F7vYGXMYp delta 16511 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 diff --git a/development/tables/adverse-events/aet07.html b/development/tables/adverse-events/aet07.html index b2cb0ba70..d4f654e41 100644 --- a/development/tables/adverse-events/aet07.html +++ b/development/tables/adverse-events/aet07.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1552,7 +1552,7 @@ @@ -1626,7 +1626,7 @@ @@ -1863,7 +1863,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:58:11 UTC"
    +
    [1] "2025-01-08 17:49:12 UTC"

    Session Info

    @@ -1879,7 +1879,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1896,7 +1896,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1906,7 +1906,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1923,16 +1923,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1940,13 +1940,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1959,17 +1959,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1980,7 +1980,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2000,9 +2000,9 @@
    diff --git a/development/tables/adverse-events/aet07_files/figure-html/teal-1.png b/development/tables/adverse-events/aet07_files/figure-html/teal-1.png index dc3b40226e77e4fc1da38c140d6ff304cfe8ba20..d523291fb5b114fae187a37cfa92ce6dd60f5966 100644 GIT binary patch delta 8640 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 delta 8780 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 M4fX5U=sQpU7ZO37i2wiq diff --git a/development/tables/adverse-events/aet09.html b/development/tables/adverse-events/aet09.html index 132b9582e..18517bae6 100644 --- a/development/tables/adverse-events/aet09.html +++ b/development/tables/adverse-events/aet09.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1597,7 +1597,7 @@ @@ -1752,7 +1752,7 @@ @@ -1930,7 +1930,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:00:43 UTC"
    +
    [1] "2025-01-08 17:52:31 UTC"

    Session Info

    @@ -1946,7 +1946,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1963,7 +1963,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1973,7 +1973,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1990,16 +1990,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2007,13 +2007,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2026,17 +2026,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2047,7 +2047,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2067,9 +2067,9 @@
    diff --git a/development/tables/adverse-events/aet09_files/figure-html/teal-1.png b/development/tables/adverse-events/aet09_files/figure-html/teal-1.png index 008e80402e94ff20546e2873ab9fe54e02695491..850fd7e93d543082f5d5633f572957d64c79b5d6 100644 GIT binary patch delta 16962 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

    Output

    @@ -1569,7 +1569,7 @@
    @@ -1677,7 +1677,7 @@ @@ -1916,7 +1916,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:02:18 UTC"
    +
    [1] "2025-01-08 17:49:59 UTC"

    Session Info

    @@ -1932,7 +1932,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1949,7 +1949,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1959,7 +1959,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1976,16 +1976,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1993,13 +1993,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2012,17 +2012,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr * 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2033,7 +2033,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2055,7 +2055,7 @@
    diff --git a/development/tables/adverse-events/aet09_smq_files/figure-html/teal-1.png b/development/tables/adverse-events/aet09_smq_files/figure-html/teal-1.png index 4130813beb2cbf1482c3e2b8c06b2dc19b6bce8d..e9ad40b8e8d3d4a3674682dfc77db6df752ead78 100644 GIT binary patch delta 9112 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 delta 9136 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 kjhsGva^L%30EtCvY5)KL diff --git a/development/tables/adverse-events/aet10.html b/development/tables/adverse-events/aet10.html index e4f1de0bb..9681296df 100644 --- a/development/tables/adverse-events/aet10.html +++ b/development/tables/adverse-events/aet10.html @@ -1496,7 +1496,7 @@

    Output

    @@ -1586,7 +1586,7 @@ @@ -1670,7 +1670,7 @@ @@ -1842,7 +1842,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:02:38 UTC"
    +
    [1] "2025-01-08 17:51:07 UTC"

    Session Info

    @@ -1858,7 +1858,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1875,7 +1875,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1885,7 +1885,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1902,16 +1902,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1919,13 +1919,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1938,17 +1938,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1959,7 +1959,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1979,9 +1979,9 @@
    diff --git a/development/tables/adverse-events/aet10_files/figure-html/teal-1.png b/development/tables/adverse-events/aet10_files/figure-html/teal-1.png index 78ac03054ec39f7db5aca2ac67a304ceef49a425..3c9c00803f4bc0c5cff449ce182429f386d6aaa8 100644 GIT binary patch delta 3977 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 n?tOt~;uS*s|2?#pi1wbDL}&lf8O~wES6jv diff --git a/development/tables/concomitant-medications/cmt01.html b/development/tables/concomitant-medications/cmt01.html index f5948f322..48530b7ba 100644 --- a/development/tables/concomitant-medications/cmt01.html +++ b/development/tables/concomitant-medications/cmt01.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1583,7 +1583,7 @@ @@ -1679,7 +1679,7 @@ @@ -1774,7 +1774,7 @@ @@ -1884,7 +1884,7 @@ @@ -2081,7 +2081,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:55:31 UTC"
    +
    [1] "2025-01-08 17:53:57 UTC"

    Session Info

    @@ -2097,7 +2097,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2114,7 +2114,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2124,7 +2124,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2141,16 +2141,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2158,13 +2158,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2177,17 +2177,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2198,7 +2198,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2218,9 +2218,9 @@
    diff --git a/development/tables/concomitant-medications/cmt01_files/figure-html/teal-1.png b/development/tables/concomitant-medications/cmt01_files/figure-html/teal-1.png index 6f5c4618d276689f24e24180261d13e1cd6a42d0..4d03d642ecc3c7e50589827baabc72b53ba50611 100644 GIT binary patch delta 6856 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 delta 7174 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 SHbPcI{;l5kDBv; n*%SY?NcksS4w?V)ey)h<4b9%rKv!p2D$g~2qszIMehvFi;oi$a diff --git a/development/tables/concomitant-medications/cmt01a.html b/development/tables/concomitant-medications/cmt01a.html index 1039939eb..c302118b6 100644 --- a/development/tables/concomitant-medications/cmt01a.html +++ b/development/tables/concomitant-medications/cmt01a.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1602,7 +1602,7 @@ @@ -1727,7 +1727,7 @@ @@ -1849,7 +1849,7 @@ @@ -1965,7 +1965,7 @@ @@ -2159,7 +2159,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:55:55 UTC"
    +
    [1] "2025-01-08 17:52:53 UTC"

    Session Info

    @@ -2175,7 +2175,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2192,7 +2192,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2202,7 +2202,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2219,16 +2219,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2236,13 +2236,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2255,17 +2255,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2276,7 +2276,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2296,9 +2296,9 @@
    diff --git a/development/tables/concomitant-medications/cmt01a_files/figure-html/teal-1.png b/development/tables/concomitant-medications/cmt01a_files/figure-html/teal-1.png index be5cf58fd5a1598529df49a5e1e9c797e1fd335b..951799e1f00fbef07c9d8753c8ecf2997803970b 100644 GIT binary patch delta 12089 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%0AR$|@5n>Iw_; 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 q1DrqkhyQ;VnCI+bT-cC)(-b<46B5$Xm0qY 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�j3Am74-EJDl3tr8a#C+ zQ=hMT7l?mtYyi$V!~6*-wydF2=g#@@LF3S*tF};DLt`j$@sX@-wrWnCbB4nF1q^+x zpzX{z?{hHDM?UxlI(#Ol+F>6s3=ky+9d?N4^?`;4$w%=31~A@Hn3s2zOV88TUo62X zM(1S2apJ17H?kvSZ)*#aSkS_N?)rJn3&qE2X=zS+dw^0&$;oJp9ry`|*w8h!Hp774 zysmcMZ2%Nhkoz9!(Z2iGYs$^d&49)U?6w^uJ8y4-jYdnX?|%vbU53!wC>W4>XRfp6 z>(?KE9FXl@U3Dv*th!s4Q*Ji~|y3!C}zgO-|=l)!q@z`;NL3#e*u;P#^E zZ9wma2|`?7h61vJsm7kzQzigUFgv*|y0$BUQ8p$QwAsOeRA!O&?d>WUReER&Qq;zP z)n5ag9j{YM@r)P@(Cskg7$8B{XZ)Vt1mrk_`DS}$u`d*YCOjOL9_s6JsC`QUs`8!Z z6JKCh4zlL+=ecS&`MJ5@?N$}6({&XT@|`yf*9)O71==sn+``{EU-h8pfWR;;b!QUD z;BW7P?Ia~7VUS{T({5b>x?V6hvH)|t(A)&w)&u%?(5wMpCn6$3i2d0gG2Wmsxl5P? z`5x}1xVU)d*RP8tH86evxC6iX-~}k)ywL7rV0Z@cN8tSt)N9bWxtCX#mPVk*0fR3v zv;*=6E_wIpnV9Ug@sGc~4K8U3azCU@=s{X=T`9Ah|MhhB@`(@U*BqXdfC#WpWdZ)* z|8i_%x_=DD{)@T=zW+~iv43Bnu*5z1-?GyGwh)#^b9HB=*knK#_W@d5_CdCo-pl_1 DT_zyJ diff --git a/development/tables/concomitant-medications/cmt01b.html b/development/tables/concomitant-medications/cmt01b.html index a79187f15..450c53ca9 100644 --- a/development/tables/concomitant-medications/cmt01b.html +++ b/development/tables/concomitant-medications/cmt01b.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1657,7 +1657,7 @@ @@ -1803,7 +1803,7 @@ @@ -1994,7 +1994,7 @@ @@ -2185,7 +2185,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:56:20 UTC"
    +
    [1] "2025-01-08 17:53:16 UTC"

    Session Info

    @@ -2201,7 +2201,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2218,7 +2218,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2228,7 +2228,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2245,16 +2245,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2262,13 +2262,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2281,17 +2281,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2302,7 +2302,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2324,7 +2324,7 @@
    diff --git a/development/tables/concomitant-medications/cmt01b_files/figure-html/teal-1.png b/development/tables/concomitant-medications/cmt01b_files/figure-html/teal-1.png index e78eef5988f0b9957e16575108773bcef7b832cb..c20e6e3a88ebb42c66cec9e6581f6eefbfb560f4 100644 GIT binary patch delta 11459 zcmc(Fby$?^y7%ZZj)?^*C>TSRbO>S*0}|4WARvu&^Rh%#P(TI-L`q5;gkczvQUnAk zY3c6n8sNK!wf{KZwfEWQ`}TG1bKYxRF2tGlect=I;}_3f5am!HrT2>iFAl!=sfRE03(fX9hr9kmOZSN zg+kp4tY(M*p-|qJgEjYmKnY*RlYc-^D7yzH2ljtA^1ANe{twk>BM$HX@a~4Hqaf<* zywmbn{ggHQ++^%Wn?s&_!ZaI>;IHdT)fPpBa4B7p{@7KN0Es7v4w?&)#(oP+NPG4mhF|v zkf)1YDwMjS>^q());vARS|h}+uCCxOb-lcH_4l^aG1$P%!aQ(u>)tP?X!uO)Kk!Q?Ji;RAkeWP``VRvGj}c_ALm%;k zmEzcH>g%HgZS)>Le%u%%_9K8c{QZ08=6Aj)sO2MgjLTmfgXe?=2*TY=o31Z*)z(@x zCt~0&HnaDF>A8f23Op$4A_Wyf>2G_uKwNfrcfWo6madk`bMYi@y~J(RTt%hz`QZ~6 zj{71>&o-AvOG`_`W<#)8M!65I2~t52H?M_nN7v_i(-r+{jJCF>vn9Ar(F)A`in|~0 zG2RgU%R3KHj!z$>&O4k@v* z{jfI;(YKh6+uPaoxzCq)dwYBBY;ow9l8`u0RV5`Jo4(@Lum3|zN=kMx_=c2+rzgiM zyT<2_q%w&zuN_vEr4%-SYu60w-g6KC2+}87M;i~9mzV$f$I(woNq)qZPja%-(n4-4 z6ZR97D3{Z9s2D=Dd1!z=z_tOC9Gc3i`SB%x+l6Tu&k1tmTt@vzXOnS%k(UTV!zEg;+B%O!IEDi^WYq{NNjSUTLEwmqpFix*-(F$54EA##0tgLBE zr8Z?dYfoc6)k@La+&RwkeOE*reoe2M;5Wbd94&EQ*UK@KaC6&&x08H(aS=9AHN|LW zYxR#KCtn8zmD!Isv}bC2dU|H-m3#;f?;zUr=jP_FtgPJiIilGh$j7%5uJ6TCwjCvG z4`J8B(Ye@#bLviY;*oI(Bo7Zye0;nfva_0-%Y*L}^&)Mo_qlU1FpU1hu|aO>dn`(f zdJ5X~i5gbCUSbf5=7bd2CR&T{tb{P1-7(uFRyQTNW-6|U*-jIb$awD7>$87!TaoNug^nvEew7i9vZ4xLvBa~ z_T-thtW37(d#<*aSMT`w zBp8duZmmoXkBlTXnI55_^MKZtk&yu}$Zy^%jZJ)cidGLPaZ|M{beL>jSa^2y=+W9z zR-E~-k9Uil@B+$9DAZLH=D}T+S+^-V*fR+UiN3zRFuF6V`Xz2{m6b_SL3FIRpFe&i zLqEb`FqCVMr*nSinO>f}WXQrz6CfMLeo5FaF)1-6g_)h5T~xHErG;G3K1WWa_51-d zWN!jV2oiCa7?_*84bAiezl9$38_49jxw-cC_L!I$VPWB+@e!!WZrCKqgQX%0D2)D6 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 VRYmDM93p=NBO(7F>)zw%{|Bn;BSHWG delta 11617 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

    Output

    @@ -1552,7 +1552,7 @@
    @@ -1747,7 +1747,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:56:41 UTC"
    +
    [1] "2025-01-08 17:53:36 UTC"

    Session Info

    @@ -1763,7 +1763,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1780,7 +1780,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1790,7 +1790,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1807,16 +1807,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1824,13 +1824,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1843,17 +1843,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1864,7 +1864,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1884,9 +1884,9 @@
    diff --git a/development/tables/concomitant-medications/cmt02_pt_files/figure-html/teal-1.png b/development/tables/concomitant-medications/cmt02_pt_files/figure-html/teal-1.png index 17f9fa016a18a4e2e1664e964a08975b38eaff7b..4a2b1b5fccd8e11cb57054562483c1351e3b5db5 100644 GIT binary patch delta 13402 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 diff --git a/development/tables/deaths/dtht01.html b/development/tables/deaths/dtht01.html index 2d0d67db1..a5f8c5565 100644 --- a/development/tables/deaths/dtht01.html +++ b/development/tables/deaths/dtht01.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1534,7 +1534,7 @@ @@ -1638,7 +1638,7 @@ @@ -1731,7 +1731,7 @@ @@ -1838,7 +1838,7 @@ @@ -1866,7 +1866,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:54:16 UTC"
    +
    [1] "2025-01-08 17:39:45 UTC"

    Session Info

    @@ -1882,7 +1882,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1894,13 +1894,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1914,32 +1914,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1957,9 +1957,9 @@
    diff --git a/development/tables/demography/dmt01.html b/development/tables/demography/dmt01.html index 3a19a6a58..1b954a376 100644 --- a/development/tables/demography/dmt01.html +++ b/development/tables/demography/dmt01.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1578,7 +1578,7 @@ @@ -1677,7 +1677,7 @@ @@ -1771,7 +1771,7 @@ @@ -1860,7 +1860,7 @@ @@ -1943,7 +1943,7 @@ @@ -2158,7 +2158,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:47:40 UTC"
    +
    [1] "2025-01-08 17:38:45 UTC"

    Session Info

    @@ -2174,7 +2174,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2191,7 +2191,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2201,7 +2201,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2218,16 +2218,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2235,13 +2235,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2254,17 +2254,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2275,7 +2275,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2295,9 +2295,9 @@
    diff --git a/development/tables/demography/dmt01_files/figure-html/teal-1.png b/development/tables/demography/dmt01_files/figure-html/teal-1.png index d1bb422dacb6614c56dfde4305d8212f5a3d8503..75b033f44907851a0ce004d4251dc5e53d61272e 100644 GIT binary patch delta 4155 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 delta 4230 zcmcgv2~d++w#M$Z>47IGi`W8Y+69nRlto!WYZFmGXm*fIWs@a_9bzDVYY!?xp##kp z1fIy!tPv1Gz$Do0yR4BlKxCIJvIasj7pH1wYNl%Hy_%Z2mC8;2s{5aFzVn^$+*6hz zx|JdN)9V9@Zy;)EiR4#_>@X|VOtYKBhZ7HHq;QJ;+P`1Rv@H)53rH9k(QN1p9i6L+ zK8uV8te9q`WXmB((HkOW50)IsyeEY(h{(Xu4-%eHk5u`x;f5%2( z=ig@)c**}gpV0rC`(jEwUQ^N6B-q82o`q_1%nfw^0Pm1bORi5honew^mSdP58GZ$s`{M%#kpKR)1a~_P# zdqOmQ{1fOX$=WbHl(X@JpO|<$E+DQB-aJ3o5iFIG5!~!K^*rk<>!}6$-jsD z-IvH>3Fk zgeL5n$8jwU)eMK+9PpvL@fe0lg03>l%c|VTxIyN_!(I6au0?54+2rl{nJ~73q41X3 zT4#%X?lO!w-SnV{bV9)Tou(esZYCtrPv<5{LGX-gr}L~+EIlHvAc2q)F{}*~|EFJW zEH_vgT1&#K%hzVxqxsBY0lwr@o(hgo(zUgb_4(ov}2oFiSE zxM592yJmvu*Tl`jWJFkD&2XXhmSo#0%Nyx#$G(Lfs|Q%oGsT|``=rpCR(uzs{d7O0kiVl~ZEVC?S(9*29P1zb2*iqB8i39!Z~L zThYMxEeLUgz_H4ztaV0-#xnD|MvSJ*#4#R*q_Uklst53Z@tK*$NRjE%v>nB zq@={BE6u^)p8qMG=Jxuojh)?KbEa!;&{TFFxgwO&eB5?&ik12@ogtCWv^ZZkJlnaB^0immRen1 zO_0+{%v)^7pUTol_0EN!Idf)<0YMH94l#l(6qStGVyWPIb4_xsitLK*BO*4MBu!#? z8sQNUtM4nBy9}YgPjDt?eYp?53)*BbpG6K^$cdhfH^yu#K$k*K!$W6&k85C48-Uri zL`5#XzrQ~%Ep4tV-4i}9k9xyxKb7=95)#z)0Sh@zHx+etH);$Tm@yM&kWii{fr!Wg z_&8Bswmm0tdG@Ls&C=G*MAE&{p9yC1#pC7WWhHbqOcxFp^p_Id$mg+J+gzqA>0Wt71$Ao* z!#o8RKq3f(!T9?xK^mk9DOe1*MGi&V+bm6_g)m!3tNo(F!{6+(8rYPrsXRmi++bUm zb{53=&0FuRmO0nT96lLoQ_Xa)uwV2&;Mxy?W_4ReY0+0Ier7llF zsF|6WyZfXoilS>^Krk;zRJdeoZ~v>M64Uz}Nb}ALQOm84Bdvs9U+f2kA?!DU-6*h? z*9&@2!9)R!We|INdn+U5`}9y%QzM}m9xg7t#xEs5tnr}XQm3e>DCLxneHWZ7^YZh( zn;snkrMI}a_yqMqx&q6YeoG(_qM4RK!ND9*gy~xH@p+3ibdQA6=6CPj)gs5Sd?qYC zE$!Y!opz3ci_2(lwqZjSI zL?Dsx4=atUgA1${mYc8*3FPJFwS=O)V!I+hdFgml)l?k)h^dVZHyBr1LL@?;I+Ppg z>#-Z9o_mXCCINwgfdK&o-N2ES1UV<7M|Ov|Z+C_^VBSJ5L@g^TD=hR44n8NCZf|cN zs|g(cyi9KMnQckdxp3oDa|mHGG&WX`Vo(8#@p!zPXG};(@)^4#t7o~v+D1kb!^5(Y z7$9K)0SDHCcf+1?qU^u~oX7DR-&F!FnTQ-ma)-S@a7*F!g@sBi37}A1 zv4oM45fHtSR6LbRt*xyEj?&h84QYF;C}q7zkel}Q({C@#-Uj^deSYcX{Ww0!J&6-M}S@PLEnCC$Rtwpg23ct6sh0^cq6!=b+%4 z&F+-IYdi4n-C;!k$I)ti@K+*LC(r}CQ)j*hiJ zq(SdMP1J<|kphDlb(f`f_UzK)qB9M|9GuzOC?nOQlTNMjtL~4>uQm%8M|CuRA`-x zUC552@;`O;8Le4rrUxRC<-h$_7f|~Im0w%CS>gmccC7A>oFxQ7KqO^

    Patient Disposition Table

    @@ -1655,7 +1655,7 @@ @@ -1699,7 +1699,7 @@

    Demographic Table

    @@ -1783,7 +1783,7 @@ @@ -1815,7 +1815,7 @@

    Enrollment by Country Table

    @@ -1874,7 +1874,7 @@ @@ -1938,7 +1938,7 @@

    Non-Serious Adverse Events Report in \(\geq\) 5% of Patients in Any Treatment Group

    @@ -2014,7 +2014,7 @@ @@ -2049,7 +2049,7 @@

    Death Table

    @@ -2203,7 +2203,7 @@ @@ -2217,7 +2217,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:47:22 UTC"
    +
    [1] "2025-01-08 17:58:15 UTC"

    Session Info

    @@ -2233,7 +2233,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2245,13 +2245,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -2265,33 +2265,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -2309,9 +2309,9 @@
    diff --git a/development/tables/disclosures/eudrat01.html b/development/tables/disclosures/eudrat01.html index 1203d923c..4ec661833 100644 --- a/development/tables/disclosures/eudrat01.html +++ b/development/tables/disclosures/eudrat01.html @@ -1490,7 +1490,7 @@

    Output

    @@ -1573,7 +1573,7 @@ @@ -1637,7 +1637,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:47:06 UTC"
    +
    [1] "2025-01-08 17:58:29 UTC"

    Session Info

    @@ -1653,7 +1653,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1665,13 +1665,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1685,33 +1685,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1729,9 +1729,9 @@
    diff --git a/development/tables/disclosures/eudrat02.html b/development/tables/disclosures/eudrat02.html index 50bf76413..0d7fb9be5 100644 --- a/development/tables/disclosures/eudrat02.html +++ b/development/tables/disclosures/eudrat02.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1550,7 +1550,7 @@ @@ -1585,7 +1585,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:47:13 UTC"
    +
    [1] "2025-01-08 17:58:22 UTC"

    Session Info

    @@ -1601,7 +1601,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1613,13 +1613,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1633,32 +1633,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1676,9 +1676,9 @@
    diff --git a/development/tables/disposition/dst01.html b/development/tables/disposition/dst01.html index a522911af..42c333b1a 100644 --- a/development/tables/disposition/dst01.html +++ b/development/tables/disposition/dst01.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1550,7 +1550,7 @@ @@ -1628,7 +1628,7 @@ @@ -1706,7 +1706,7 @@ @@ -1919,7 +1919,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:03:28 UTC"
    +
    [1] "2025-01-08 17:40:00 UTC"

    Session Info

    @@ -1935,7 +1935,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1952,7 +1952,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1962,7 +1962,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1979,16 +1979,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1996,13 +1996,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2015,17 +2015,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2036,7 +2036,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2056,9 +2056,9 @@
    diff --git a/development/tables/disposition/dst01_files/figure-html/teal-1.png b/development/tables/disposition/dst01_files/figure-html/teal-1.png index 3ef8945fb10c21fdf63203c9dc2cc29f13d928cb..b0c3b5ee824a2c8fe7c51e3df004e49f2b54c060 100644 GIT binary patch delta 8433 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 diff --git a/development/tables/disposition/pdt01.html b/development/tables/disposition/pdt01.html index 5784548d3..2a89f78a8 100644 --- a/development/tables/disposition/pdt01.html +++ b/development/tables/disposition/pdt01.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1573,7 +1573,7 @@ @@ -1748,7 +1748,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:03:49 UTC"
    +
    [1] "2025-01-08 17:40:20 UTC"

    Session Info

    @@ -1764,7 +1764,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1781,7 +1781,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1791,7 +1791,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1808,16 +1808,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1825,13 +1825,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1844,17 +1844,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1865,7 +1865,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1885,7 +1885,7 @@
    diff --git a/development/tables/disposition/pdt01_files/figure-html/teal-1.png b/development/tables/disposition/pdt01_files/figure-html/teal-1.png index 719da147a219b7dd64cfe9bd1aa6096af33a47d4..3fe07626f974020007a259493d20c13e3ec1b725 100644 GIT binary patch delta 3516 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 diff --git a/development/tables/disposition/pdt02.html b/development/tables/disposition/pdt02.html index ac5de62bc..fef7a9d9b 100644 --- a/development/tables/disposition/pdt02.html +++ b/development/tables/disposition/pdt02.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1547,7 +1547,7 @@ @@ -1580,7 +1580,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:03:12 UTC"
    +
    [1] "2025-01-08 17:40:30 UTC"

    Session Info

    @@ -1596,7 +1596,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1608,13 +1608,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1628,32 +1628,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1673,7 +1673,7 @@
    diff --git a/development/tables/efficacy/aovt01.html b/development/tables/efficacy/aovt01.html index 4f2faeedc..52138020c 100644 --- a/development/tables/efficacy/aovt01.html +++ b/development/tables/efficacy/aovt01.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1580,7 +1580,7 @@ @@ -1793,7 +1793,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:46:10 UTC"
    +
    [1] "2025-01-08 17:58:54 UTC"

    Session Info

    @@ -1809,7 +1809,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1826,7 +1826,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1836,7 +1836,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1853,16 +1853,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1870,13 +1870,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1889,17 +1889,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1910,7 +1910,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1930,9 +1930,9 @@
    diff --git a/development/tables/efficacy/aovt01_files/figure-html/teal-1.png b/development/tables/efficacy/aovt01_files/figure-html/teal-1.png index 70c3f1d2c33c448cec128f5dc1152c099340fcdf..7e5cfe5523139c551e49be54fe8ec589d2644c17 100644 GIT binary patch delta 2118 zcmZWqd05if8g7`f%?gvut>J3ka158qs44uEe`zbOkAy$-W1P$ z!BwB9SBc-Xc;71Zy~*pH4|=r3JEqI|jL!EqV^iLAeOW=E`8!=1k)G&tw1U@zhO5Hn zB2T`mxTDlPYg*aHNCHu4pdn{5=W2NP=0?k|lRMHmt`C|9*(CD(kR%ab=Ca z$<6@u*G9$--@iUm97*4(vpZUOo773_=@1=t@;80Y{l5e&pVfNg!j~#_kJF0&9A9JxNzp<>sm=i^4yTA zg@uJc3cyR~311Wo9VHA8 z`9gg0=*rxY0vREu{Z*NkSsH$pCT6CtkxY*9l zjw}ru!9{f>fyZC-s(L1yb1exU zLdHA0y2w?sb6#E&TWc$;2fqxzP%4#aX=y3DpaS12(v&m~24biIfoyMuk74WLt2-tj z$hU9bLLd+yc+QEKDVlOw8esLRvNq`XHY3OI@bKv9Me!wh7SuuDsCnS#eTjsyh0SJH z1U4iq6bezo&Rx59?btyildorHnwpP}j(&F?HdIdc^70A{4D|BqIJSA>!f_1^4Qu_@ zJ5CvklRb>RRH%W$c?#ut>`VX-*W33v1_p!u-K7#+23&7wXc%?ekW>{HAKyJZo6Y6w zX=)ISubvE`(Q3=e!e3_XtAxiyMNz7|e=ePPfxZiOdt>d^KlPf4%O9t6f=!?a(b>D`5m^-%A`g$@k7kI(Yt1SZFR6Y6yyJNem*K8A%V0WW3@bC zP0iTIh>3|wODo*i&CM+;CI*8>)7vO1$;s{Q?F?&u7TDO%uCAoyWl)8iheuau=N4IfjOswQ<#us_N-~&~;v3hpv(G81QB-bAXH__ zE?3F-vrSx9KFr1(GP1{NhA{e{QL-nTW#Y83_ZP{!^6!j zEeVw&E{?bG delta 2565 zcmai$c{r4N8^=pz(n9LkB1ULpav8}Ur!mUb@LD7Lu@1%>C3?iP;9yjeh!B#Uh8Rnd zEyfsQo1|;xFk*h+f-C_`+l~GBrm4myeW^}Yk9vvRJz3W+qml6>MyzQOkj}DV4ZEnv7K^T zz=Br73#o&hm2JiR!$OkQDpv828c>Bo^+ZbrScme{m0qM)uv13*1CdFwRjrAz0do834EsvN+#t#?Xc6h>(>+eeuvPhGjS7FLk@738#m6+_(C{~ z57L)C_H*)BNE#0(m63K6;-vUTc-wvZfPYtiN+bXGX&UmNsj2DS8r9U>+Z!ivSs+By z!OH57_P{3gim|tMA;s(O_4>%|YGn3sxr-j#2rfhnrYDXp>Vz&lH!qaIEon0X)IB^r zAkcI*f5!?}9_XjZ<&e-&Bbmo+c0@W!6+j>Y*&Bf`(O3N|Bez*!zkdDp?c3F))17Y0 z|2e53FW*O{de65!YdEQV^4S94&c_O(IO{A)No@bf1& zsl7$%Z;Ds(n>Toa-E>JNlj-n2V0?y>3-1aI4Gq`MjEm#jQi*OJE3_yGWqk7^*i9x? z6c(O4d)9NL+Aph~`*%m9xZl0%juwzkG2)ldL;>GxgXwJvrw9ZBV~UG$b9I{Z?w!gD zYcq5~)vH&p%FCBX>1rheiabg$) zKpPoJUEIf_V01WT&;NeUAY2_^;KUxFmp_2y7W8hW)Zt zEb8NGJ-T3i-ozq`A8fcKa|o_PV4HahC3Br=m0Z=9+)(BJPxuuJXA8^DAuevyrH4Gs>L z62Kb(GG$Ipr6ncqwu7@FTM>;pIns4_XQk&E84IDr1NWlr75BF0%Wi5q$Oz6ZEY#ne z7iv*bO((f2Qvlt-iBD5gZu?Sa{5u*NiGE(M2#)=B8)Qa){$-KgoAXFf|!J(bW# zp->td8|&&c3#f)S=+o1s4n%7Q2MGwb&JbYCagTxcVG`W6VtAHXFx$x!(`@GGc-mj= z^l4R*BS%`ma>DCe?kX)iMoWFIzkT5(ALZp?93H$E^uCu$IBUVS!7=Oc<4Tv72Ow7- zxcu@r<68rBeyFCVMomR!CZz7HX{Ne(B7cU7sJM7HiIifLhZ6wx-#;?qqa^ZiJiy1t z$JSQ#JZ^k_+tb5?eOGrBflyU__TpC83p+(Dk2N2t zqQR35rh;w<1_su5$U>(Eifop-(iqn(0k=b4l{6X+ClKEnw6n$Be2A*7sv5vBhlj7L zix18-Rq zS9O$|>qyJm`a1v7qqns))6&vtG}~wHeySr*I&Qzqi~{2H*@NCdczC#!fPg+iETPX2 z94Y8M@NL#vVZ>3s`>r5fm!m#l2rMSE)wRM)MGV5d7Tz#4PZ(LufyL!)us4Gn9LokU zG0kIZYbv8xmeH}F!$cCUG<}zhZ=Jczx8?q%xVRW>agaDYs1^d%(9kf=(#e}`1BF2! zN_w882%rirJ>1=QmfI!Q9*ByH;_&(T`N_%0ksVpUt|;Gqb93_uove|?d|u6iyu2Vn zS65cHwzpfx%cUTunc5ZC;j*%_506P`-dY-Kj^WivEGjCRR8QPZZFW|V*iiDTybcFP z1s=PaD4uPjiv4P!`?j)th=Wf2bwJ1SXir%02nGYX6fc_DE z0De0*=8DRm8vPh7xk1j-HPy|k_^UmU-^6>iFK?|(RxtKTu5Ar=bZiWe@_Soc?Ca|b zTH?H-BG%tu_YSLA3L^I;cJlpto6z!oODikdA`2v5t-YhIts$g>=IiI@r@|a2_y~7Z zy1ToF5_kFwEuy80?Fg97l^-}fNZaXYj|VO$a@5Z$3c_^R-xJ@*wm?V*WB&WQGUi|X z$Wsr?+1sZhs(hG}8=yMioK)&Kw2G5Pp>W+?oLunu|2@1WSub@_mU+-X{ns;w`e;-s H(mDDc_q60x diff --git a/development/tables/efficacy/aovt02.html b/development/tables/efficacy/aovt02.html index 9b3c9251d..76e714db6 100644 --- a/development/tables/efficacy/aovt02.html +++ b/development/tables/efficacy/aovt02.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1558,7 +1558,7 @@ @@ -1774,7 +1774,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:45:47 UTC"
    +
    [1] "2025-01-08 18:04:08 UTC"

    Session Info

    @@ -1790,7 +1790,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1807,7 +1807,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1817,7 +1817,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1834,16 +1834,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1851,13 +1851,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1870,17 +1870,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1891,7 +1891,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1911,9 +1911,9 @@
    diff --git a/development/tables/efficacy/aovt02_files/figure-html/teal-1.png b/development/tables/efficacy/aovt02_files/figure-html/teal-1.png index e410fc479618945ee7b58608a58152608c4f331b..fb1156599e00dcf6242aa5e1b76b99b962ae038b 100644 GIT binary patch delta 2835 zcmah~c{G%58<$k1MfUb-NW`SFC0m$5$w;z|8j>Yj+4oE)-m$!fsmu_j(|9E@qeg>l zg*5i1H+v%*nqjiUEQINMs`>u=&iQ`lInTN7=iJY^uix)?-Pbj;AyvOFbvJp_D{+PE zn`EmMuZx??qQ**|QjB*^yoqnIw6T$t*^w=A>5!hggo2N4-N{R%Qui*?| z$GE%M?w=zEqdLoj-6D-toTYuURWF8qj2qyWpwN+f16~UpCbSEg9LF!)y3KN? zo*6vVEIjmc%6=XuSeinw**Klp!*~?OcH2eWbw}vQ(Hnb`9t69}ZF|LB&&+#I)grQD zuw@$X=v8sL@KlwrZ`1OpzZrGWb;x~?)%np4hx|%aqu7{H2Oj1M4b1OVdhg8L3m*{s z1(cZB;(kd%tfEoaM_AtZ2hz7V=(5%OKGxVc;0bGDM8@M)z+kCf!v-Omn=D;@=pv-1 zQtx|y#Bm3Crk5(J&b!^tX{tmsC$zu3I;GerMHjJ0$qt&Qu~Zc(aI4eTz@~mFc4)M2 zI+m$wXlk_&as(V3^l<3svcLVT-0$;&EWmEAc`2X|R5KYRxt#o`ZFY{z+~;ouZa;I& zu=hi56MU%>Ne-G`m6xaRv4V+}FPZI_I$Q2GB;zD!kr6+!9w=BDD>l88-EA*i7)y{BCK7FcfH{z^V6vQ`KVnzmTs^l2=vpa}1e6uksgWok>`b?b&J*`-b z@tDkD1G4=FQWq}Y>JhR}w0wK}czMGS(LzjH^0c%lPKCBH#e8yk!bkQ zOF!Sp$Y_gs_Jv{^jh2>{R?e6VN%%2SQWrJX(c3Fn+nAf1)6vmEgX9$ya`1Rr9BORN zGb%3ks6|DV^02&%&Mq#;2%T z-Rku^V&;Ck_m6=GA&TuLS7;_+6{?(S|F47T6kmT|($3yUWp(z|!>zJCuLYC+L zs{29(pK)!O+j|o(|iaY1M!L~|lGpvUJKw;}pW=L_L(Q$I|5vI6f=5kA(%i#XW~Kpu;q%YYz>3Jo$dvD!MS?)_ zAwzBw_nLZ5*ZvOX^aaqIP)<%yDt!I?Xb1>BR5ndjMdhB}dpaEhUtCS_Ky5^t|Het> zpx|I~X(`S|RrA&RZJ( zWzprnuK&3mVo)q=(Kw?8v)gQ0*FoOpRg5uF?ilC3<;N!ofr*KU8$Wo)y-JFTd_JFg@Icm3=kogOQrgXkh=|XP zciwnY4$<{HlXt-%n{Ir~zdaj)svQ{_`M1R0Y}(>a>UV#h&|bV&qM@MyR7;SQn0wV* z;gne%H#N0~XtIC1R;o?eK;p_IX4~#V#xaYYNF>t7#|McV=W@9NWiEobF~L7?(Tvsw z0Z?Z${XipHURolaRxO14y>vx4f!ytz#)IzT@y^$-k*^$&k3+=`%l?JK?ZF=`FhiMg zLoyXyk2HC{C@xM(QFAWS13Y8`chx{&-wIlN`?D!ZSdXkQ$nQ=%2U6aV$Qy78;$Y~^ z@2d&Nb7nQdX=-Hy9bWR8Rx0VF&S|fTtFL31)yhO;Xad!;oUoO({Tr^p&dzRo3Rq7s z2XYv-0?3e_p02yEdu64jWfEX^IMqh&LBn#7QCYmQva%}z0klZ3!yb2dPGsl!rKxt$ zlkAAISqF`(uDAR(J3CujTMKkobD1wpX7t=B@8J<2Z*S!te|`PxOJvE(%2oxB`Bsh$ zyI2*yEG^a0(FtGU1AS_ao^@DB;)tdu%C__hWv}}Siyd2AI2CUaXFqE2DUSS0_C@`} zqoZd}o&@1+qUJy4<>uCeGT$@lSsA1n|9{mKPn|h{?K5&4D$vBVyd-^i{`@&G17~Jt zG+iiX4(uxGZwvjTSy3PM<((AJC=rObh4BVpd;mmWpw5bn{(M-#ExaQss#vi%8A>$< z5~9_Fi>0qZNn}t%=jLn#)X G=>Gsj++G*} delta 2994 zcma)8XH-+!7FGsEK?kIWf)t4;MT$hEMo{Pw|skl``i1Th7DoXrtssZyQ>5a z-q~GVBYj7}L;@JdF6@Dcjy4B-9`-!k^LK$jtB1`+xNe){7c+C&nKbj0xqbeU)~wZ( z6Zw`y+piX7@kh>KV}^1w{@71@k}f17;8>G@3q7)cJJ$O5iz8W;+GLJeye-GvX(+<9 zT$CQxlQbO`+NKXW-<-UEy_v7$eY2>d%{!Qp~15P@q6-tyPhSRrTO9POT^k7)W zyhFD1Ub=#J{(*3u(N_Ox1 z$AD4&ioq2PJ?$3$?wsgW;Jg9?4u_Igp1Bq?szj$b;vs>b zsFP>7M#vN!5!Q#R8Jgzrk&L@G!X-quqWE)RjCyn&wQFXobE1UfdR^R#YORpivpIAr z;e&_=CLyjLyL^2v!@t>9@+bT*Af0ONA)NzH9xS=6RFfxCZKI@pA*9IXZe_P}M$jHT z4~k$k7`1KX&;!%KM?N#tW86(48K#rn-zzZz!)weMj!^|S11~1Axqe#`30W}3%XRdo ze%WX+=>s_7?v^_+_8+C!N*TtfTW;HLB=^&)ii=^b;WSKKAMo2u@hcRBi0vBEPO^}A zfXdF2%wu{J&(1R1^UYF+znI3tI;%eBWF4~Al04C{T~^;EX;p`v&v<^lNr@EqaJt}(vqCd;hD4Io_sld%Ou$en zKB`tdbO2}VJq#^%>@_*{Ew%I5gkhRldTM@SAj1-l72a@0Q6m`okc<`O-i3{-Hu{&a ze!-tmkEije%3QU&oigs)$d_L8-@B9T+h9!BPDs1bA@0&U+Z9qul{@a^yuAdWA3gwH z8s_gccJ^J=%sl`7q(yRsju^eGE8;85>qIIx4sO*yyY}eoT<=|7=ZGb9D=Vw;@bHFd zG1HAduB%r2vLpfsnVCL5KC?43-&YyeBqb%W?TQZ9d&d%A% z$rQH^QOL~fY&~$FE71|e<#LTf7P83Xt>sQ_hig_+uX;Zt6eHh7&CSox&(0pp;c~st zA8>~fT3iZ?iioB{8J$cP>)Tg$fVQW+v_a(eRg!Utl!%Zxp?eC4!*%eIw0qvZJ%>Q- z5tqTYQ>oBrW@Gn_v{4PJ8J)+GL$$#LEMM}A7kB;qfKLWm((!)74TdTzDsrOw`uf)_ zEya7Q{n);G?9*BMe)95m(Zh-$B>usj${PW)Z`aUhk=vWRw6wH+_o5N^4CFw1@(w0& z{OO&YopgHhBc8vT+eC*V&^2UiWF#RWF-T+2FL1f9U%$3el`6POs=N2;W8H(<@n87B zQitO7)YQ1pK9L_5_j!eGT3%Rq35j%=bkDZdmF3WU2DXXvPh0QQb5J*Kyker+Lqm1- z^)o7%<9V?+91&7+B7#e7ahGDg1&oKRZWdzui@2`MIaI-1kb1B_V?RBjDp7D zQBhGS6bgw%y1I^kTbZ6nTIAH*`Tth&H&JSOKaM|f21iA za}=aU@6R{(8r6T~tK#-acTBGwS5fhyIYK^mcl)8y;h)m%q(sbBrL5J{k}oM68WQ4c z)DN<85?BD9l9Cci4yot(il?Ne-mtcgiH)T&ce-awknG^8gd1lT+nt6&$2DvGIm@9i zCX<2d|Z=klx7bDfuzkWk?i)$Dvg@L?$v zy%_~;ER~g&VK4%<8$qXKL6egMBBn_pps+dqi?g$p_8RcXweaR|Q<*rN2_+$ELfbwGBRUfQLe5zRI2rBo1yuy(b3Tu42BQS>HX{!(3oeV4vI|+)nIRJErErD z5}}ifJA!Tn1yPvj`Gp14_0%@Sl|zUEhR~DqHEcg9!GE|x2G}bYO4dGkvbYqCkd}NY zx2}#Dhk7(mo9Ia5t*-JTn!vh{;?gyp^b8E%pqWMIj-Jxdp}4l;yw>#pnIOA%@#Qu3 zDqmz~8i%i{iX&6pDfX8wEGB9eIQ3o>dxON(5AFm4p+raF3M@qxCmP$j$gA9L2ZQ7F zS!e^?`*oq7I@!udxem(gCFOgY-`Bo1Zzi|5gKbN7hsuaMl-d?Byeam7js?28xgn8Q zmanJEt*2&68J%sz122d~s4V{Ct7JdY^C_CGvT{1@-0PUCk82Q;f-XW3p=9|5TK93;zLFvd037z zGMs2)X=$mRhTh)VgwZ8?M@L8be14uqhS|&Oy0SOb(`51O6H66a0E5Ah#mC$pX$WJW zY1C8WY6u7pQvW3srrpFJf41+Cuig>*imDCw-82OpWu0rl<+qvjD3Pzezz^LZ|TFme5urk0>Fo8j->;$*!P~5 zw5qBKr#+%_fXnp#A{+G@Hi<~A1Lv0Q%a<=(Tu#A)#COt4Z<^+p-l$~3pil_1Z*ES5 z?RpL#eeS3%-h>L+*@5|hJRo344eo#bPs@`%VhXS~4`%;5K+%CoNwByJHU_Qb6?@ zWz$uV)&T)O%6GM3CA{(U>C?Wkd)H0kd+*B0%OB5iIrW*h{=kUD;NCZog9ExcIyz_1 zp4|@C{I`y`=*#nJ+s|YkKYskCogLUB zs#3UPh{TExF*$>`)rY$Z24>@NIIy=35-S}`i|xui=TYSYXqrjTC9n(T>{ejqOtf>< zw@(y`&O;v_u)qOf92^|L`f6%wb|lJ6n)jkMTkM3O>U=cj;%rS^$yt2-?4UyYKd zN`Ko~Jsuehj?mvZdh8nAj`@F&7vTH<>vSOw{qb{^`+;DO+Y;J(=XQANv!KL}HPZYl Jyv)o6^Iypkm39CC diff --git a/development/tables/efficacy/aovt03.html b/development/tables/efficacy/aovt03.html index c0ed21875..92265ea01 100644 --- a/development/tables/efficacy/aovt03.html +++ b/development/tables/efficacy/aovt03.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1585,7 +1585,7 @@ @@ -1614,7 +1614,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:41:53 UTC"
    +
    [1] "2025-01-08 17:58:37 UTC"

    Session Info

    @@ -1630,7 +1630,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1643,14 +1643,14 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM estimability 1.5.1 2024-05-12 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1662,39 +1662,39 @@ lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1) lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1714,7 +1714,7 @@
    diff --git a/development/tables/efficacy/cfbt01.html b/development/tables/efficacy/cfbt01.html index df01aef80..630ac6c83 100644 --- a/development/tables/efficacy/cfbt01.html +++ b/development/tables/efficacy/cfbt01.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1598,7 +1598,7 @@ @@ -1803,7 +1803,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:41:39 UTC"
    +
    [1] "2025-01-08 17:59:14 UTC"

    Session Info

    @@ -1819,7 +1819,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1836,7 +1836,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM data.table 1.16.4 2024-12-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM @@ -1847,7 +1847,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1866,16 +1866,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM plotly 4.10.4 2024-01-13 [1] RSPM @@ -1884,13 +1884,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1903,17 +1903,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1925,7 +1925,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1945,9 +1945,9 @@
    diff --git a/development/tables/efficacy/cfbt01_files/figure-html/teal-1.png b/development/tables/efficacy/cfbt01_files/figure-html/teal-1.png index b9dd7bcfac7a75c8f842e1cd1223d50b51f5fee0..a99f457caaf94d7521022d6a206180b7f182d1b2 100644 GIT binary patch delta 7712 zcmcJUc|6o>-^aBbN|ux2l(kcG97>|>OCk zWRh*{%h(zFGK?|Lcg}e|f86(T-}iH#^SYn;=Nd0_{eIW=y}sM$eLYEG?@eL%58M^F zyLeCV14Mx%FH>=m8T0aW;@;o5e`DGGbJm-8G4=94ANiDOq$=W`EtTsOU0{NBoygc~ z=(thPTadh1-f{1=GKMg6Nn?V8MRtkr8_Z~Lh{qohtD_4H|Erv=ZX-aJqkMM`D zuWZgv3~p3UDorN&B=s-&#WD*fs31F2ZOH@``gU+I65NNXB7d;bQC#};<;4k=29_or z6`J&1+sbmY1bvhT|BI;T^iRI46|;LO$DSKAG0Rxi2D)@yR#U709LCGBEmv>}gTYXQ zgoSPJ`|ARPUdg(SKK}8<x z@aS`DMq(u_aNcWQWrnuZ_~s`)n@^XuypklViRgUW$o{H9R{ih3YRi z5|4?DEEQWz z-`3i!XP2=ZZA?VPIRCb)pC9eV*@IeGW!l>ifn)Lyrk)?al%^S1=r-AUM9kn5X=#0Z zy)jZ`a&pphVUVV-vehIW|IhYw96h!0oz{_v)+j4qXVX8_7XT zO71m9iK=os67xsqs}_>Z*)+Wr)<{BjHd8fXl{fm`mjP z#@KY_nkgVV+osOAwd>J*6T2TbkdW!==|~Zs)|M7N*pernI^a^1exhst;@SlM=I}6_ zV;hlJZu>PpTFfwgG6kgc=_ulTxX8Uz3*5T3T9{FMpm?YLd7JPJ+Sg41avoooy^-*P5U(U!Dwhl0s}--sk1%T)k@V z?2K$pr*o)Cm|&It*l)>g z5S|`wXfEfoK8I{KApOpDTU%RT*7G7FlS>VPDvLQS1OoQFg8@a>w>kX1Lw7E}Us`|= zvBJ#`Z7Mq|BExs~zO*5Wx?3}1R^#jC?!Fc#Gx!QVadBQNUuAfBcozCAq(nqS#J>#= zD%&(gnW8Gj&oYke%h#_18^PC&jEwa4-KE`k`{EkK{U2#)YF1CZ3*{C!%6IH3R9L89 zaqH&7zP;5_BSbZ4KkhM&9QJmO4~OpT}Em-BEgD!k2W=xH^(B)syxUWtm}m~&9!QFZfd7S~=lfG2cNP>B6c(Pl#XJV_4|Tzh6ejcQufHatN1yce z_AZec1i$7?oHb+#@%+{|mv32TRY26$QGx_j3^AV$38O<-hfTpakmusUAWq}jHCtL| zj~!OY{(A}>h`_jZ2*S=UfBS>K&jQY~uhfZQf>4PXbfa)AUs|i5GYO2D2`lm;28GG6 zuuyux5q8U_)c8>+#>SorC~cw1Q%}WmjY{ry2Jx5^A+V6mSR^Ai7c=!X$qoELoehvJdinP^s@Dd9Mb12lLI!#yaH>0DY;a;4z zY_QV<2M$0vt6>&E4@2G6($Rr-Vf6A5S4>f zv4lj0jbL8Xm!>9phC|hgzpLmocr{2!y;gunWKyHdqS~nu**)5MXf|JB4dfhiQ?IRXg)5$|Sr^V^tH6+;h z<&g(d-`=uvi{C||Y9`_xIX-xKd0D`3wJk&tQx5TT;smKhicn2k z@2e|`L$=zn%IidH&p|IcSO;Z^gs0OMLS8>eSRA6wd%lKt!;_-#>bj(ZS&mHZSqNt1 zmG9y+hNGJ6DT4LLIS*F1>!=_!sO(#7d5GDK8Ic*J%<}Y7}3rQ|$4rR)4l&J30&`<^UnFn9b zcl%B%3|+l)MOH77I{0}3w=oF$Hpr${)EyE=(&8~DN~Q)y6Jed(rEWdjl>>3Bw58VS zG2d^jr?+a%qqc`h)_in{QtH$vpSB_!zkL4u`83^K%3{`+n3$OSe|c#P1JjL@MU3Iy z7291f{Ov`{ZWtc_9Jdb!PPKEaFbF-p!wtj5!;RuF{NqIAFVFnXOho=Ki~TFF^e0Jh zhn5r<^DP)KG4bU<5;hX|s5af@OKTJ#rf48qS~*!+T&7G+7W+@1J`HhbZ*SjFb^JrO z#rGu?6DQ;#FucB@VOdED|3WD|LRFkw0~#wWEu}%WT{Sy*xHa#JgG?)Vp`4rl|wDfdAI0Fl%bF7q68(UkLINwu*s5`SV4Lje0 z)R3g)V`6GrR9G19Y3iSs6o^*DRQEAiTyk=9s`6amh9g2qRs}}h-rfcVF$KpzObY$s z`(KEhVDx|Q=Ks=y$X}lMpP2~n{~s~=FBkiNd*!+JuI~et5|T`ZbUn4OMLL zorx-SVJ{32d&r;86#t=B{X=d-{#|nV|9R!#y%G8EL>l$rS)cR!ejM6K-&Aq1OMpO* zy5E*Ba5Mv(-kLg_b%^WGp*#d=g8CLbI+^(BZaq9K@m=Pp$(zcJwfG9k@y@l6I?%=xqMDH-lW&z*t)s$a-ci5L%;I^ z9+!51^$jY=X^A$Y7?b=1EOdv1PuKQE3?H?taUY=?_f}ooJFoxQuAsyfh4g)@*O!O- zE_2LuiRHB?;c|5FxRFoWEzyDtKMhJayF|3Qhe69MJ?D6L@aBLEiHPi|az;fj+;c>+ ziaFl17c(v)2TO|Bq>AMAm?$7?>kEkkB9fBFC6AAcw)=F*lqhdfIXL2tPo6sEnAhXB z`IzhbOY77uW#g(G6y<6K0+T%MZooDz&QM(N@)6_j;ZXePdm7}i^5SX87Sf{ zGnJJ@trOJousI~QEVa^dggJV@D(7BRamlwRo#r5vaKGiR$B$u7z?dfJVSg89lMhj_iYJ6 zEN6~&k=FFF+cpkP4yIH%jQ#snQ3gowoXu<9$U~-mB_`SQ>sv9n#>T{e21ok)`!ytR(sFW}04{ViH8rnXVF?&6ZrA2Le^0NR z+!QS~1QJ4s#e>`%9UXlnwEq76`?=+#PyIM7+tajwG_>j)nz@Tlz9l`5k+9goE%+^b zh>eerH%Dk|0ET{0b%AzsePIX>>MzlAaKD8U3N_!E)eWlysft5@y#)paj*X3lo~e9q zS_bOODU|!PNvUHGerFb+mX-!G+0>MpWkH)!7}{+8@Nf?=FE8ked-v`^clt*4QLEBM zzqJa(jI#6LqD3qLLfoMPpcY0*(CRHS;irUq&q5Rw;vLfzCDe=&@N_TWe3(S%8gydwVH_ zo&Q*kJe;OfDI2kMQtF808DWI){pXW(hzmn%}&6=(3tB zXSPWRK$iC)M^aPA8%3~uvM$4}iZ@~Rly`g%wgq{>$Do(Lz!Gp&$`+Vu8vHmV<<4Yl zBJ6SrU7eqQmL(ug%8s4)g5%=wM-_zfkprYTAT5x2sKzoZN`#GT_{xdT5zA4vMqeERELl%AlUrTS4E&W8v%Cu)@G) z;93vrj~G6f>6iw&NyPbh`uI@yizG0d0@YJ!vxJP+gYBW4g)TSN0^T12+!?5J z&&bFC>~$bu7^EbNPj*LVr~7=r97}+t_2-ndv>Fg_RDoI$r+r0s2%)mFa*+@|D8|Od zwuDv$jrY?aL*YDrDj{BU*V);k$o4BN_}fwoSO=Ug7dQ-%-l6RY8B1GN;Ld3&DNqf9 zAF4Sx%zjVRsB7b+uAO2Dcmoas3;^gb^!L1q=tZD#4)^YzJ9qBdwQC-8#1~ks3IJ^c zoFA>I>^a{LJOKbF*wn_(PB8NY&?9p^hE~#T&Kp{PO+$kbh54rHPEKTi7iX&G3g_nL z>O*<#?CdP=HwrJIeLp`tIzB!Q#0$tJ9$dct`*)bu4agUKbMfLaUS5XA)=W~AQ&M6O z&4U}?zkPE-KJMc=%*`DW8;f7-GVQ(v$yW6v&@kqMKV7%5!240xfi`$Z+c&-x<`U7K zqpUErer*sdke#|`6Cd1enwjBH1C?31m6^rG4~8bOKt_OtvYsgyI;a3<9L}0Ik_v@h z8;IAheEHY)^rT_);jzDpiG@CWdgu^x2wG}lgwWjGZ#Uj#WK7rdSnx^T{RVN(u8+V0 zr(BH$55q$C3kV1hVgWVkL0juiPfw4HiV`=gT%9W-2q<{W0aymrTYP`KiGj{$vhtMm zoPeh=yhNOvHQ)`h47H8nNxv?4o#fRwE!@Mzh(dIY+Dkm`p^T_8j%e*ai{G6Xld zrzo9t5ta!E=Gc1vRC_uhoL>RL<9li|fPJ9b4h{|g06F(2Uk)?Lzx}a@pxg(b>1@@0 zr~YzDxU!IuDI>)(sN`z9js@g1NIWLDZut)PoDmhRfXrTZiP$}cG)BU60Eow7vG|2E z42y})u)ZRUGOJKN{uo+MTB0S{J39LAY)-0&9Xo&L%kxW4ofU4AF7qv*BS)WzK)?VD zI(+zWV4dI(2Y*_eRH4hkl@0F@<+9OEl&*G<^H24bCf^4Kp_|LdkRunj8)O@`;SoBN z1IW4v;I@N&via7LK#xwH67YH$9ew~zq2N0D2}}b|hwm~h0WR8K7ds)Pz?8rUaH_t7 zWH@FZzFazrl9G~3z`4vSA51^2f_!uL?p-vwq`TG@ij2s~lP86Rj~qS>DIh~5_Ke@w zDujI~gA@4YJ(O@oa@x1Iw}G?dSE&-6j&Ix60CW~&VO-|aF>|YO!rELQqM<6}Eny49FaiTAfiS_JG^8t+fy=rqGU%1OVoqg9ED!hv5ZLps)a+ zppsUjmqvwHv}H#E;r=CX`t$ZCvZ9a{M$|zI!O?>su_)*U7Tt%-9N3)8(J0{KD*cAW z#ytW1SOMQdD8Su@yn$YiXKNeybga2|Mrr81E@UF5(l{h&T#Xy zOicj<&tfW66S{rivio@ppNSZZ}Y_{SZkFUFJUH9<+E6N(S|(yE5> zu6cB9D%RayWC~Y_+o0AgO}2`kv2K`%M-wr_2vK9cWURe4)o&(4_tCbLPhzpSz*Q5U zi=>u>vj{C54KMu4_*)?Ln3_ zIC+y&_X+3Xq18*8gF^JT(i;z&Vow~t{G36HLRhqV=}_4t#zsc`lIk8Xp5{~W>ea|A z)W>*q5Oc0Czy7%xw%f$c!n5nnSbY>uJ8(_6Mrz4dqm23~qPwcW!mH255Pzd`sZB!` zmC9P1B}f<0PRq8uo-bb@Qn!0-AS*q^8-s<8JzvudVj8UvMgM;4-cN3B zZZHSJsF7AQFQK*%e{K&~A~KrM>_s??&N881!YGtq^8JmJH5`YD;N*<5ephw7FUUJF zF+nH$FZ}ULNL0aed9hikio;%qk>Bpoot>O2rc(WjT!z-DH3HJh*(jY2j}f%IX~B2i zV{zAx)u1U>?8%@Ut&l53;g&%rMay9q3s??l@h~t6IrKpK$d7U1nuwn&sQJ=Ginq z-6QT58>18%#F%}jA5&d>EOJ?Y`ndOUzav45!&-_tc70d;Sxu_X`cS#Iin8*tn8ulz znYp<+p}<&l@V7r7Y@3>0YvTEi_t(p3bIK8Q?|Ds|rr7@e{^jN6i-%})`6Q`8ivmT9 zG6}z-7gpMs?TsXoK>P&X6LfK^FfNJv3}l-X!@N^CB&aj}=Jxq@U)gJdyv1ZcM@ERI ztHMj)rO7>#>dQW1sCY$->a*wF-Q6R#Ctt%WEId5(!v|PXg6&!}U|?W?)HrVUnCqpz zvIt@?;W(oLh|hfKRPq6L*4M9J%e*N4pj;M8llUP$dqt3tztsaB+t4&QnGl^-Qeogt2b`6fj=m_43=1wdkOE~|5*IU zzGu&bWZB>Kbkv(<^n5q%7ZH(SJpI|!)b!3BPfe@M$>ei0hS-}7k z*B*7Nj=Cf3r6*^cBXRD*&j;jJ=ZDHcJl&Y<$*QzO#~j4|!2=)a=j}M3Z_k8M$&Do| z-DZT6Z(*mc>K=2PHr|z4H@;k@41`Kwog(3I(a~S>?MPd^lT|R}wiJ!}C~0YSenkcA zRWq*yY02vaxzgYG&Ye5AZx>*OwJXf8+`D(r-hNsLrJ0MJYU_SN2buCaU#m|(73$EF zGo*_Xh(Q|1L$>lodTj0Rob3j)$Xqe~0UROs?%XSsd}yTDF5{kZTAg@}w2QN|vyF`n zc#gWq_ZKlSV2_EegzHJlY46@is8^3S#^|u9HQ*%k*z7eX-RX14R+QFCXJ>|?;jLTM z!-=Qbj_rGP@z9sDzI%k@eS?DmTnDH0BP%dsr?<`(2M32@mm%$*06+Tt#%QQ?kzzdq zUQZXK>RGK?ZN@w5nQ{ItqMyJ6x^pbnd#$3hR(q{<1v|UCU2sTA*O zPq8RY5CZOSQcjLe8R+TkylujL`anw=hWJfewrNs7ZAntWSQa{T!Rlg>eFSt>4;l%q zdoCs{EZiKYkfiSEpxWp>P^85ec{E!6LNDN@=aB;--?3&U-!~;ygm^fF? z;Dstqy{CK^$M+t-{0@%~-ENd+T6nTz^S4X_(XYqCyQ`-sln|Gq;T>d8`fUFO0yAuo zLzCv@f;ghI*N$s;X2Lc_(E&6F)uM{#y@P`l_8sr-k&gFI>dhq>kHJwr>GMM>Lmq|< ze^V0^F?O6})a2x(YyA87@5{={nwpxZ>M~aKk+8@-=)>gZOu5OS_n{oyFhm(kI*nM?v1;cSeC zFulpXQ;!6+eZE{06&4W*>O+<^8x)EM_l4K8DZ}h+IO~N_e$WQ}iKyj)oI4i{ZTjn$hLDn+S8#Av%rA{6{en2~b(W){m zA!W&igfiqa7ExMS%C#wj-p!^;L;Fmtg1D~WJDXk14Xvq~zF^UiNSa9`X^08}kaNeR zS)x^pS~$0R%^sCM?&pFwv}k__jk;+G9lMrJAmAWF8yGa(#9OQqIBNuCbhQJIS{Nt> z1q4D;q}0{bL0Zc3Ob02lCsnGL-=ygF>FMd;A$cRqU-arD#N$&^0@=)|Vc)5g(ZU2| ztpleGD}d0vgM!%9(HczI^n2I%ZdsOh)%p;~LO^rFVX(wahuMgVoC<1gZZ;#R<=w9h z1IJ85z@pCDwtOG1;%Lzamp~RDAav+ONpVxDK!Vz&S?f*9A0&pN$+pr^4e7@ms|5K$ zwS{Ij83(QAtbrSj=H9ei2ZWg8Bd)g+fD*J3*p?h>N4YdBDSi zzj`KN5Hi@TyHtICpr>cy#O+{GbLkH}JUl<{w-@=BU&y~X{@)#r{CnH~%gejYKuiGd zGSuSZ2_Ea}?A#w!k6MurMmlh|oA8#GFJHcXJ;G@d59|5^2Zs+C8I3J1nq5MhZXg+W zzs*0sNJ!{wZ~q9k5*HU|s3po1Z1rpXnAo2W-tW+-X;gmjm4=p<<@#MbJi%MkRCqxl zzaDDc{7+xVU-;(#^AqGBw|MK)Pq%n@1hM)Tb#MRUfByHsh(6E|q@_*VCT-@CISJ(u zbQ>9|TdBo*`N2w-;1AGffS7rB-rR?}4U!w)Pvq0ERO@DYOr0s^LHzGGS})!vZMtzmK|#TvKL48nPjD5M=A$VmC#Ry)Q~JZF zo$W9)Pw;VfmmTmHyp*{0|NH{`|JMfohsMGB|I)ty>GByk$62V+m7I^kr#u`v=u%KC z65QYXlY@frk_kJ<$HRmC&-=giLjJyu|JL#{NZ2iuJ7=+}lCS4Z;gJ}HXV&+UmZLY+ zt?iNuN$)DZ1;LMBG~%hE^hvhlZ)$Y9BA7}kKK*r@gJ#3qm?zFq%( z_~b?Ry1Z=GmwU5f4>b#^ChO#{tx-u1(cyps!UAT~0t+x&2 z&qH*Q?U6U#cm3JLMI}x}0cxEZJ`=b;yoN(PlIa~DJd^H!lk~O1xqOCfa%XQ8eh%YM z%1HLID{cLJz=)E=QhPY!29~d z3rk9(*~{$_zGtEi!WkKIsu{M?2_hWRg_l!gg@vDAbY+|>*R!{Dv$PfD#j*>WuMoUa z!umTGFhQ$Bi}_*LxWGK@kHv4W>f>FV=bg!=m>yzXtH$b(y9r%phmmuiMGw-ukH5FQ z^Nd|>k$7loO44sdwzH|eaylDrBZ?lhsVbD;=5L?wx=c} zh~Ucaua`NW-_oXNUg=4)2^OTq)hab6Wn&t%mKmLN zWiJeFApe4;rID#>e`IAuX@Y&JiM_6%hoZ|;T^MDQVzbpmS8&|=z49DJ?d!E&*so_h zzUc}UG+xQZtPQtDp5wZppp9&o{JzFlxfyD5T7~}hF7&U1+IEu&$CmbNu#Sg-L5olhmX*% zvJ&Jyyzc2^RlC|{Mn6}4WSgg4SZzr4V2iN`rs>Lcd*sFurCCGw%Sp>mX0_Kl>Slbd z%FAhy^J~PwbN2G;UN&t?C&aeiB_2J0{^*r$FqbM*k74tCCoCG!$ITF`%3I(!BU3#C zdjWp%5Rd%zG>{>S?pI7%#^aCiqelxaAh>xd3)y^-aSpr!<+pGDkpt;N7Y{`zB&Y$}>t0YaD{^8k zPUs5Gkt;PI9ZE%s?%xm1#rf^pk0ZoYh|uW{Z_In6CVf?$7A5*fGI>{xUa%@ zDa#~(jlM8kg>clcledkH!SpRF{VbrZMXz$D8eH{0#z90^@Q*Q?nM>(WmLHrSitB~C zNJ;;nMOCwaXO*X?AI}ng4Gj+7j+6>Lg)#K=>L8PyLdODD`|JQTmX1CZ2PxpMC&B)R zQ0aS7kp3apnmyV6=T%flzn>n1wnO3MNz*cqX%=${*rHI7=<8EKTov7jO7 zgPuGl;G?V)v~~*>OE;pVv`jI5WuCJ*_A)-nrR+q&1E4K)(4s>(ON2ez+SwsMSolQb z4?v6i`hs)s$5Fs@;+j6x^#!B~4c#t~9;glRxS%rFI-a@-ik(lQ^VUhV4`E)Qeq}N{ z-d{^N4%!G}KNZRV|{q$GX% z{zXAvNe!>(wfCWIH81y~=&)*ZtZi*!6a|B5>_9>wNpCr;C&+u^#0ee7X90IC_K^%2 zp|h_q^NVb$>u5D_UJyG#JUK!|-pVSpvrcQv)6j1Md~qfREVTj$1GaLOq`CCcK#{A> z>L+~RVPOXk9{iA*2~>+q?ACsaQ$n)=sK7bv?&oIal$}&jDK0BR*0PJq0L7p>d$euO z40O{lX9=KdlRVZWurBef})JKP!OL0=0B3QpZUr=r5;xT5B+pKl&31>~T^VUoBI zMN?|8goK1}5rwspM*>d)k^yA+;lfjona&I%k=yu2S!YiaOk^t8DJ9SIXUxOnR|S>1R9U5y$|5a54Z!I;vlas zfHDlSJ^;~RWu|NPcnyd?8z2^x;X6VA5(5VMkd>A7`t>LTO)+(k2SDFTsxJiwZb0K* zbI+U7f9EduIj|b5?A#9pzBJ><#l=NSe@Y=(PhujH2(kjY+M1*Ss9Z-R{K-@s{Nu4f zkiNl1u!Fl# zAZCp$Q@3W>(H=>&Mt)B!RQ~m_zJUSA!qd}pRE-~IQ5$=Hb`e=ztS&q|Mq`-RrQ8Ab zmSzy&eN-8`jY?>>T&Nef=#g9Dv4K&O}J(Ee8wx%Z2A}13-itsJO<1SickqC#+a0H&B`v{(<=H?YP z&2iRefT&7H6$u8N;l}WL#S35F)4Ed!y%cNdRUfpZ1#BHn&!W-2mjQaHmxIak3*V2*Qc+u zo-7lg?g*}{cXmp6rBffy4HPRKK73eC&Ji@_*pstIZ@xFzO7$nmuY;vnfdNMdNVaXs zOt^{4T=^ygHVfnj8P2yuF?R146%`c`fs2y-oE$~XFO#qKf+UN5Xy2#>iJ<8x+n>Ra zKiQ9kn?G8T8GV^d(xRKYxVXSQPfgVPS-ZB~@i_t0Y4Hw@j^g6t$i^(%&dv@EHWqK` zHw`yv#so{rsCu9}l0ggz6YFq?Gz@|Pp&($xT#-OdNU%$NR(l_A9LlNHeBN`tH!UrR zkPa?|i$LT{N!dVgmQi|%x9~Sos>^Ta>vPSAxYk7ghfrX3H$)%C`OlXEloyatr2<3? z7=0oNz#B9M=FXp_P`%w9LKXNKi;i%-jf}cSK0iVuaQ_8riIPxTj8Gxpt@QK6VwYa& zKDwXV3yDWW{_f8ZZm%3^YHr>xAT`+Ad)LfN1CWwy0Wd%Rzu)E|D_zDljwzPD6TkKK z^>G1f>y*HBgV_}r!J~ia#>JeUehK*-D2z

    Output

    @@ -1576,7 +1576,7 @@
    @@ -1741,7 +1741,7 @@ @@ -1914,7 +1914,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:40:32 UTC"
    +
    [1] "2025-01-08 18:01:37 UTC"

    Session Info

    @@ -1930,7 +1930,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1947,7 +1947,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1957,7 +1957,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1974,16 +1974,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1991,13 +1991,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2010,17 +2010,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2031,7 +2031,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2051,9 +2051,9 @@
    diff --git a/development/tables/efficacy/cmht01_files/figure-html/teal-1.png b/development/tables/efficacy/cmht01_files/figure-html/teal-1.png index 11c2d430eb68ce3a01954f4f27db6b38a39a2955..1dfa8e8c032c792b732360705698043ba05f9419 100644 GIT binary patch delta 4486 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 delta 4396 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 diff --git a/development/tables/efficacy/coxt01.html b/development/tables/efficacy/coxt01.html index aa6379a5a..78aa3b433 100644 --- a/development/tables/efficacy/coxt01.html +++ b/development/tables/efficacy/coxt01.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1545,7 +1545,7 @@ @@ -1618,7 +1618,7 @@ @@ -1693,7 +1693,7 @@ @@ -1776,7 +1776,7 @@ @@ -1986,7 +1986,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:40:54 UTC"
    +
    [1] "2025-01-08 18:00:42 UTC"

    Session Info

    @@ -2002,7 +2002,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2022,7 +2022,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2032,7 +2032,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ Formula 1.2-5 2023-02-24 [1] RSPM geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM @@ -2050,16 +2050,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2067,13 +2067,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2086,17 +2086,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2107,7 +2107,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2129,7 +2129,7 @@
    diff --git a/development/tables/efficacy/coxt01_files/figure-html/teal-1.png b/development/tables/efficacy/coxt01_files/figure-html/teal-1.png index 61f22d96ece4ea2bb8d07c8ba9e992a2b6b50901..b31685c50328db3c6008d248e5355d51a9da68d8 100644 GIT binary patch delta 14990 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 I=JCt_19)?jqW}N^ delta 14866 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

    >K<;o3_PpnFNv=0{;OxW5Z|0TwK^^XRbr~ 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�p4Kz{cdP_KEmXVWl0EDZ}6b-`-cO6rPDpOL7VMq}g1TajEmQ0W`Gl01b*S+Kk zfuJBBAPsZWS!8~Kol@>RM_1erq!rvH{5J<+atM?}U!NO{=dd+2wX_VDI?X^c&)sE= z6ZP=~&zd+uBE38K8n<*_-x1JqYCdaCV8|_07%&FHn_!v(2n{}5(X8_JfQcU9T`)nrx3=M&>JxUPX84u!s8w8fD z5HAQ8d@j%gkd;7v#1Nzv29G|rO*199CzX|f?a3x6==uHiMeHBw`muIZbNy(u*ng=r zK(aP>P$b>Wn=k_iK7{xSxa=G)bXrzcGbEK^DK$0sP~XAd2gQ#Y%Cr7`2gc$+9Pqe7 za7M#x`GJ&9KtMB9Sq-MMyu3!C=Jt@SmAsrB8(Y(SO-M98goRxg`cZ1K$RL zG6H9cV&@VOIRMQM^#CCp14HVLH;idEN3f(T#7-|SSNR_7;wQ;3Ub@8PJlhGhXMNrI zMeUP(O%O)lFN=tXOcBlXWcL|`h`^BPZGW%{aLNg54&DL?4dAG6A5GT+OH-OfG#Bph1fo0}4R{Ii+dmMg*7u5xjXk@B-R{DZF$CiitLIZ4dZf>s4 zdI!GE`_UDGa<&(EM=N%CG*~_wRXA{m_)qbSeNkFma&PN5b+Q9WBE<0V#j_U=K1qN7 zbjv`2*|Xc=%2gFgK<#FYZHeN5;B$FpWyZr7s>R8v z+c5vm54zAsm_C7ToLo3vH$R_M`($>0URlk>&~W_EAHRtbm}A*mUpF=}fhyYZu7dp# zBy4cF!VW{49+e}zyPjpCSy`2pz^-AWt}rVru$>p-;<^-6KQK55qhfaOosN;B!6jNz z?@mjMZSmgv`Y#xuEh;+q+}^3}@hxX}_t_0k4t92HJ{=jEv%|M2gW&>;3k&x*#s1M+ zf*a_4TT@gEc6(dkK(<(uwGR=drJ>PcB@33WTl0SU6s5OsLUU3{ZKHQVwLuB;ImFdf zS|h9}rD5V4H8l@qFo-I!a@?HLPQIv3N}@}cxn`uE?c(MJgWcfdzz`z@f0X_g2~S>n zBYA`LQ@zCJ$B^bIDiTjYz{DQ+mWX5duzp@tnqEpyW|z6K7Ti9V{^0QdYc5R8$;p}NNbG*|53&iC z!^Q4&JU{((WXbHBWZ(@#;f{t0ha7demn5E*htqwVo15aF-?vPKncSr&?r3f0;o+He z7EJDHq=0XSthoyxIWh$%bq3iBzRat(Eal1@MVu9V9PmHfk~RWx~&vm z``h`q0zoo;a=nz;5fw9vZ?7=@mbhPU77yw0ix(%<)bet3GpwH_*dq|!I4o>IF+%8> z`9gy9WFYD%NMRB%5YC@p-`IeWA{ZmTLqQk%Q22WK^OrhX^*w~I ziItY(97Bi-ZHv9YGf?^fsY~RC507odPchQa(134Qz-ne@#*gsvCB(%I>4v**>~2`8 zsR;=RW^mG9dXqBk`CriuamN_A+Whw)g8idIL%V;$6O0TYul{}g1OCc&@xQNq5D+v< wHvap{1kAx)M*SNu2SG0H|9^S%HF)+BfgyEVtlYa>`1DLhN>MUb{K@nG16#UB!~g&Q diff --git a/development/tables/efficacy/coxt02.html b/development/tables/efficacy/coxt02.html index ba29cd6ff..f15e6374d 100644 --- a/development/tables/efficacy/coxt02.html +++ b/development/tables/efficacy/coxt02.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1548,7 +1548,7 @@ @@ -1638,7 +1638,7 @@ @@ -1840,7 +1840,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:42:09 UTC"
    +
    [1] "2025-01-08 17:59:55 UTC"

    Session Info

    @@ -1856,7 +1856,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1876,7 +1876,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1886,7 +1886,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ Formula 1.2-5 2023-02-24 [1] RSPM geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM @@ -1904,16 +1904,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1921,13 +1921,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1940,17 +1940,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1961,7 +1961,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1981,9 +1981,9 @@
    diff --git a/development/tables/efficacy/coxt02_files/figure-html/teal-1.png b/development/tables/efficacy/coxt02_files/figure-html/teal-1.png index be0f0d93b4b0f6c12c9655f11119877dcd65a4d8..58bb16106a53c02634dec8ebc8ce837a83392b4c 100644 GIT binary patch delta 4151 zcmcInc{rQt+Shj4IyFjXilPlV9W}OCYTwS#ImXy(X-Nr1OD#c##*%oat=RgNQN>u2 z6jj7lYtSZ!Rt-vuTBAzsf>;xgg!7o|I^T89ALsk7xz6{!|J={=KKFAkzk7L-w}po` zgny1ZRCkyqfB1|8WnKR8En!IHG1*vLe=mZLUzLu|^U7ho3w1d2eS+hAd8NMJKOapz z_QZVJ@%lAYpN(HCo;@BmeqNK23%p+ilLKqF-RiWkW(6KrI) z@YhozY_}T4J?OCBMC3F*mRs@Z z$1L2x=X~0a;SmwYhED8eL`1~5UnNyVOM>HTI-&kO1!S^vdZ+ur-Yu(dnFArMo1aoBl!^*9D7`ZrgYj%Y;EsSR z0H<(6ASJ>t}t6KcN3`)xWs&PcQx(|Nm!9|AZ9Ke|VF#@o!97H$&Z3{}uW? z56xZL=r>3Y>^g=cYEqU_k2<^um;+hSQ!O<9M9Vv3Xse!}N{q4hlKbZ4@T0SO#@mp= z^8;XE@y9->?uKz^8DgfoX!l!D{=!p_I4Qvb-g>s^YqO3k6nB$wdF`gBRLfe9P3bv; z`hJ_`F>p|wa!=>s-uR-s`aZPJFOENjm&)#)7@jcr%6wskNxDWNYSeswpX3yXIj5$a z%ptC}Z0C4Q#}{2|iD}efoZEmDGE|#5@ndQ+4Daet<{K|L*y6~BSD@7$f6n=#;MwiD`qw1Hu&ee3gXZStr8Ef(m9HR$xD3c792_Vd zm_<@?`wf-rUHK0vP&jsJXG=#%V$`XaBgZoC8?9}r*i1rfE5sp>+Yy%*;a`s6nxR=n z0_-KuT^UisyTN0!VBC3WpXqg1W64~jqPgi+TJdmfWUKF~)Q*&!&64AnlpP%FmR4TJ zoV-<>QWnd)!7GQXzUeRh-oApnmZy2VCIDD;(puv^4`CxqA{zVtzSq!;L&>$gXo?!! z*{WM#6rc#qPa#QoadV~Qjv8d~#Ub}<-{HO^D8h8S7_FgFi$uR@{m^54+}-TFPX6

    cWsK@x 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 P$HcFftj%lC?hpP2t9ni- diff --git a/development/tables/efficacy/dort01.html b/development/tables/efficacy/dort01.html index 4bcd81b3f..097c5d3fa 100644 --- a/development/tables/efficacy/dort01.html +++ b/development/tables/efficacy/dort01.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1585,7 +1585,7 @@ @@ -1695,7 +1695,7 @@ @@ -1805,7 +1805,7 @@ @@ -1913,7 +1913,7 @@ @@ -2136,7 +2136,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:41:18 UTC"
    +
    [1] "2025-01-08 18:01:59 UTC"

    Session Info

    @@ -2152,7 +2152,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2169,7 +2169,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2179,7 +2179,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2196,16 +2196,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2213,13 +2213,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2232,17 +2232,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2253,7 +2253,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2273,9 +2273,9 @@
    diff --git a/development/tables/efficacy/dort01_files/figure-html/teal-1.png b/development/tables/efficacy/dort01_files/figure-html/teal-1.png index f2c3cdf82e633ceddc2ab5a5d9b913eae7c8e23c..83372ff52a752d98ddee17f5d7eb773a802b7057 100644 GIT binary patch delta 3573 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 delta 3263 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

    Output

    @@ -1548,7 +1548,7 @@
    @@ -1638,7 +1638,7 @@ @@ -1720,7 +1720,7 @@ @@ -1811,7 +1811,7 @@ @@ -2020,7 +2020,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:45:26 UTC"
    +
    [1] "2025-01-08 17:59:36 UTC"

    Session Info

    @@ -2036,7 +2036,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2056,7 +2056,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2066,7 +2066,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ Formula 1.2-5 2023-02-24 [1] RSPM geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM @@ -2084,16 +2084,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2101,13 +2101,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2120,17 +2120,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2141,7 +2141,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2161,9 +2161,9 @@
    diff --git a/development/tables/efficacy/lgrt02_files/figure-html/teal-1.png b/development/tables/efficacy/lgrt02_files/figure-html/teal-1.png index 4de6889ff393887ac66386be9bab866bcd1986c9..a9114f285c72517a9fcc47b5f3204fa624884446 100644 GIT binary patch delta 3272 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 PQDtR*8BuR`Z)@`Lzel$ z+oif59mvs6x?{ys=5{8GNnM%w(ItYvlP~!B?=JM%*{z;p|+?%~Q9jQSbS|ww$dGxt#Fz6>y?`)wiEUV#2!DP!MBZ@ zlh`I6&jTJhk+UdFc?O-GxZPkPPsJF&4n(Q?Em(LdPl8gV!G;d;766BG{ri*72%7GWec7Kivlx|Fy;6opf_S^1({CbOlB0i2`~j>F!Lm}nlb5g z>~`thh1-kL`=!;{xp$1!6HV)KpUcH=9SR+LdUgn?Avqg!VMaR(ZTGPj;y1gO?aJVd zby+qGrS?tXf?=9fUO}OP72+V(RoHj+E(~z84Xe?@24dS=M7(S9dwwa)bZAF3CS^a# z`P8Pcw#L60-^e&f2B(1_E6B$-igE86mS6C3qf9I2`+!+7@pOq-RJ%zrWjUw(Vf2CU zC)VpN#upFHCn|^6dzeM0=0`_9&6<^r5#mQER5xV3h(3hAdmcWRUHLF6mNnzpMBv#6 zKxB1g{W!#2pF5jpdRe_f9D?4fTPs0@!P?>h8Lcx}>MO`}EAr)(o-J-rgPrxmHXpDQTHp5<;}nXmmQA z4}!ztCOfiet*rsGq&^TtDQ&v{jl-FgSmg@u$!oZlN{VP%X=y2ynkfjJgTp&j4j9wj zNR*c^r@nw^9t7&?HB;wnH`|~eoQb6BY7xYRBkgFfniJr-T!H|tB2CGMFmzz zsk|sP6->CX3Ai+V9vbpc%UoJoDlRJO$ho-5D$ecb?5wV;V%LrMhh9Dgf#gvr8=Z!W z{Qou(q&ZPa>)zO9b93|X_SX}uo0*xJ95jdcbro_|j;zGysFc zN4vU`Qc_5i?Qh?{g@%SsO}WM9Pfbr-n422`C+SPm-0B{S)y_b|&dA6#I1_~sZtm`! z2mBcj?BKu{8j@^Kk!)t&*F;>kwzdulsr~AqBrhKq6GIMIo?yawPqXJu(= z>ESWc6el+938hu&7A*GMw3U*QBB2NB zBlZ^-78Vo~++dJy`7p#T#)Pc{jF@2>`%#%$$kjw{O=*Y66)|rl?NI^_RXQ z{!xMzl;EfaI~DP81OS1^YH3mH>P8*U`S|*dlD+lhM9oD>zVkMbb~(*yT*WOw13mG3 zXcfW1!MX*Q^|rCGXLJ?}`yE89P*qh8a(=@(zr%{@`SO>Ql_cGD!*d%O8%<3*VIRtaHy=E`T1n|<#K*_O{D6hA?bXp@R|=U-rc%*meIf`j7~GKy z2gcs>6q>t|P$>q?xnZhCVkvvz8oMW5Ot$e zN?d%w54MGejs{s2(-RUBtjSnr&FTo%e`z8%BhS>u#pMNslHv5#t9JdPhgxTQJ78>V zJp2|TBYps-kXl)Jfs>m3j=sJ=eEX-xF~Mi90WL1lxtCSMVfTML(LV0#X=7@^_VQ1ve7pV&1^JBhXFM?`EnUW9Gb1+XdfCgZl&IJb;VGJ zH&FFwXqYK6&2y+XIz`(%efSS>Hc;Jc$ z5{V27g4H!dbWRcnXSWKZy}iAUBV|wXhJzY|!L(;6rOBT-5z*-+AbrUQlqYvaQsAbgr3N6GI503^a%nxhZoD8~*C8Zi z2Y>#K<2k%;!M8r!PfT`XdMN*_wRl+BkAelCD)G}*gHQ=ZMGHoU4^k<@0W(cy!V6{cHmB# zoI8L^PHt3|Ut1aUTED11Jv9Y8YI02QMM=ri7Dv5A$@Rr%=_dQdMMm@bV`-S*y?_7; zfzUn)EWJ_CQdf6*bBoivBcq~Bved7bT}L45IfYsezIZb^U?`c>Xx9w)^X`s7EV60J zCPqdJUb6$F>F+JLlem)d@`drHxZ-Qs_DD5VRZFF`vcqTvsQIm1eiLnnGm4-d{pC(H zaBRMfKQm=xBLHu7!^#S#qH=F`KsBzZA|EKSQsT()qR*6QGsfTFpEIQD=F)6KS};Q$ z*;*%rW7?h3Uv@qwNcdV{XpZ)d9bD3ifMq z3A&?aX2S0NXKKISUzOMy$=%uoJO3Z^`P%;*(En?iZ$Lls9h#MWo~`rufAw{)X}?C? Ge)KQnXuqfc diff --git a/development/tables/efficacy/mmrmt01.html b/development/tables/efficacy/mmrmt01.html index db2afa7e9..2f95549bc 100644 --- a/development/tables/efficacy/mmrmt01.html +++ b/development/tables/efficacy/mmrmt01.html @@ -1963,7 +1963,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:44:44 UTC"
    +
    [1] "2025-01-08 18:04:37 UTC"

    Session Info

    @@ -1979,7 +1979,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1997,7 +1997,7 @@ codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM cowplot 1.1.3 2024-01-22 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2007,7 +2007,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2024,18 +2024,18 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM - mmrm 0.3.14.9001 2025-01-01 [1] https://p~ + mmrm 0.3.14.9001 2025-01-08 [1] https://p~ multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) parallelly 1.41.0 2024-12-18 [1] RSPM - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2043,13 +2043,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2062,30 +2062,30 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ - tern.mmrm * 0.3.2.9002 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ + tern.mmrm * 0.3.2.9002 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM - TMB 1.9.15 2024-09-09 [1] RSPM + TMB 1.9.16 2025-01-08 [1] CRAN (R 4.4.1) vctrs 0.6.5 2023-12-01 [1] RSPM webshot 0.5.5 2023-06-26 [1] CRAN (R 4.4.1) webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) diff --git a/development/tables/efficacy/mmrmt01_files/figure-html/teal-1.png b/development/tables/efficacy/mmrmt01_files/figure-html/teal-1.png index 95e910e0e8806077551a70c191d1effd55f0a48b..83d4cb56b6dbabdc206259df5c938d9c6d9fc35d 100644 GIT binary patch delta 10166 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 f|GrKs!+5}2

    Output

    @@ -1542,7 +1542,7 @@
    @@ -1611,7 +1611,7 @@ @@ -1678,7 +1678,7 @@ @@ -1747,7 +1747,7 @@ @@ -1982,7 +1982,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:45:03 UTC"
    +
    [1] "2025-01-08 18:03:47 UTC"

    Session Info

    @@ -1998,7 +1998,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2016,7 +2016,7 @@ codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM cowplot 1.1.3 2024-01-22 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2027,7 +2027,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2045,16 +2045,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2063,13 +2063,13 @@ purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM ragg 1.3.3 2024-09-11 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2083,17 +2083,17 @@ stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM systemfonts 1.1.0 2024-05-15 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM textshaping 0.4.1 2024-12-06 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) @@ -2105,7 +2105,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2125,9 +2125,9 @@
    diff --git a/development/tables/efficacy/onct05_files/figure-html/teal-2.png b/development/tables/efficacy/onct05_files/figure-html/teal-2.png index e06a9b5d5b61901ed22f917d938df05e9b2949ce..acd5b22ef6e35591313dd9646c534d78365d4e12 100644 GIT binary patch delta 58447 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 N7ko88`iu46{{bZh{zL!( delta 56362 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

    Output

    @@ -1592,7 +1592,7 @@
    @@ -1619,7 +1619,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:42:23 UTC"
    +
    [1] "2025-01-08 18:01:18 UTC"

    Session Info

    @@ -1635,7 +1635,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1648,7 +1648,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1656,7 +1656,7 @@ evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1668,39 +1668,39 @@ lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1) lifecycle 1.0.4 2023-11-07 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1722,7 +1722,7 @@
    diff --git a/development/tables/efficacy/rbmit01.html b/development/tables/efficacy/rbmit01.html index a76ad3627..f20b839d0 100644 --- a/development/tables/efficacy/rbmit01.html +++ b/development/tables/efficacy/rbmit01.html @@ -1516,8 +1516,8 @@
    
     SAMPLING FOR MODEL 'rbmi_mmrm' NOW (CHAIN 1).
     Chain 1: 
    -Chain 1: Gradient evaluation took 0.000232 seconds
    -Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 2.32 seconds.
    +Chain 1: Gradient evaluation took 0.000224 seconds
    +Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 2.24 seconds.
     Chain 1: Adjust your expectations accordingly!
     Chain 1: 
     Chain 1: 
    @@ -1534,9 +1534,9 @@
     Chain 1: Iteration: 1160 / 1200 [ 96%]  (Sampling)
     Chain 1: Iteration: 1200 / 1200 [100%]  (Sampling)
     Chain 1: 
    -Chain 1:  Elapsed Time: 0.507 seconds (Warm-up)
    -Chain 1:                1.645 seconds (Sampling)
    -Chain 1:                2.152 seconds (Total)
    +Chain 1:  Elapsed Time: 0.538 seconds (Warm-up)
    +Chain 1:                1.653 seconds (Sampling)
    +Chain 1:                2.191 seconds (Total)
     Chain 1: 
    @@ -1712,7 +1712,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:43:51 UTC"
    +
    [1] "2025-01-08 18:03:29 UTC"

    Session Info

    @@ -1728,7 +1728,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1742,12 +1742,12 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1764,11 +1764,11 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM matrixStats 1.4.1 2024-09-08 [1] CRAN (R 4.4.1) - mmrm 0.3.14.9001 2025-01-01 [1] https://p~ + mmrm 0.3.14.9001 2025-01-08 [1] https://p~ munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgbuild 1.4.5 2024-10-28 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM @@ -1785,24 +1785,24 @@ rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM rstan 2.32.6 2024-03-05 [1] CRAN (R 4.4.1) - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) StanHeaders 2.32.10 2024-07-15 [1] CRAN (R 4.4.1) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.rbmi * 0.1.4.9002 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.rbmi * 0.1.4.9002 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM - TMB 1.9.15 2024-09-09 [1] RSPM + TMB 1.9.16 2025-01-08 [1] CRAN (R 4.4.1) V8 6.0.0 2024-10-12 [1] CRAN (R 4.4.1) vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library diff --git a/development/tables/efficacy/rspt01.html b/development/tables/efficacy/rspt01.html index 19f233911..89166473d 100644 --- a/development/tables/efficacy/rspt01.html +++ b/development/tables/efficacy/rspt01.html @@ -1483,7 +1483,7 @@

    Output

    @@ -1578,7 +1578,7 @@ @@ -1660,7 +1660,7 @@ @@ -1758,7 +1758,7 @@ @@ -1870,7 +1870,7 @@ @@ -1942,7 +1942,7 @@ @@ -2018,7 +2018,7 @@ @@ -2233,7 +2233,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:40:07 UTC"
    +
    [1] "2025-01-08 18:01:05 UTC"

    Session Info

    @@ -2249,7 +2249,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2266,7 +2266,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2276,7 +2276,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2293,16 +2293,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2310,13 +2310,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2329,17 +2329,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2350,7 +2350,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2372,7 +2372,7 @@
    diff --git a/development/tables/efficacy/rspt01_files/figure-html/teal-1.png b/development/tables/efficacy/rspt01_files/figure-html/teal-1.png index 3e74f27e49116d5390a568482aee662e2c4fabc4..6eb28cbd41b1e8b3ed04836ee4fffee15297adb7 100644 GIT binary patch delta 8553 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 delta 9595 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 Ls$9vy+

    Output

    @@ -1606,7 +1606,7 @@
    @@ -1711,7 +1711,7 @@ @@ -1843,7 +1843,7 @@ @@ -1970,7 +1970,7 @@ @@ -2087,7 +2087,7 @@ @@ -2224,7 +2224,7 @@ @@ -2447,7 +2447,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:44:13 UTC"
    +
    [1] "2025-01-08 18:00:21 UTC"

    Session Info

    @@ -2463,7 +2463,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2480,7 +2480,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2490,7 +2490,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2507,16 +2507,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2524,13 +2524,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2543,17 +2543,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2564,7 +2564,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2584,9 +2584,9 @@
    diff --git a/development/tables/efficacy/ttet01_files/figure-html/teal-1.png b/development/tables/efficacy/ttet01_files/figure-html/teal-1.png index 4dd3f27a6d8651a52b0d0326b70cf6f6174fabe2..4275d25d7b279bee953d76dfab184546583c62ca 100644 GIT binary patch delta 9374 zcmY*<2{e@b`+nuENTCJU-%&3mON)IiiI+mjlChQSOZKsQyctmv5n^nGB!Y{>`~=^5y|Yh08uoX+W?>B15AT0#^X8gb817owuon+5{Jq8N zO6%9tpJ^QK+W$1T7I@|4EAF7@{K5RKH(k5DA2@jy6uefTVO-uW{gNr^GG+9S-PB_2 z!zg=MDhY$P20?3vnwsq&cd3GNZTs?a?;avw{bB+*-5lFK?XZg|tV)Vi3+?ax*Tie& zU%CCAYh#8|K4TYVVYxJP9KJo)vP-_Nhe{vJ-xu*5@a zF7?Zosl9>nU1E8hR8Ofl;pgMPkPu?N%3<;X7P_zM`1h9O_MP^2HkpFPhVuBYT&b(B z4$WVm8}KBa_%lFoy?5_*R1^}mbK~-5%Z-KKOL<92Pw$bh*Ku(JyG8oh!h*-h&+5fQDhr|J-0(Pu}D3l05h+lPpXiRH`f{HAxcxEz8% zFXORN8O$bRRO&U;{VjmYryJwEzqflglE2Vn)#~4Wt21=7V`2%8W3{R{(T>i}waK=s z$5(}Ag`fPwj*N_ymn#G-KCKgilO)xISG{JrVcB{SRo;o$%SGcEM*0h#>Y{|?T<7!+ z3=AGWeyp$GUw}A_l0KV~s^2m)GA4K})zHiBeDz#^rW~gD`usJg@q59F7qFN3__juZ zgw$fiA3S_`mYtoQi)$#$h$z)R^Wk-Xv_kLieTulEGdDoU&&g@8sxmJRJRQ!X zYQ?^yU*fTf&mWX@8h=e7czStx!J-W^di;?h)}6`8$>$IzCJzsfHyl!HHM|MMZA1q0 z866^0S2Ub*aCJrYch{+o9O=w5+V9XY8pzbu)$OSX=hfot@I6dLYW}de5(;lbTCRtG{P5w);z&h)F*YG#=t77zH}-3GHk+J} z7vuth6BhU0T7h$gJutDdT3tPVf|iz90KKv~kx-{JJ3H&oz=iBMSXx>_AgrydIx`Ij zP7`YG-oZLX-m6ty$V`9XawzKd^&2-P8gQ<#j+Aty9@FyP_I#FMNpDY&dw+q0Vv+;= zqNb)MxJl*SJ!c1p$>tBYm6dCZ_K>Bh`ucjDr(v<%Vr$A>Sb#@0hBP&`)nlH3*UcWM zi=Z6HLfw6RGZc1VZEbI%jNaSJD^kd4Z=JZm8)>^XH*iH+14;#Q?HC>VC2VMFK($hM zc(?%5-Bh(W*{wfGg|Ol1>nV$cI59gW`PW=>dktbk`UUn+OiU1xfKUsB(P6Zb1_gP1 z=FAyZ`jJop-S5dCKKx#+;xfvyXhHVZktUp&I`uc7U5})eOW6DA9rDyAh6(T9t)$BB zT2_am*Hkz=1uWt*}AgMQew;xb#$V_!`omn*pKXb zztdTsd!figov^GmJmBTamkHi$x{n^cXYUlA?6eSm)|;bDz1XQ|C$n6CW1hHQ3ROAP zkv?xGbDDA_=yzvs(4w$eS@T!2in+0ma;-W9*s7EGNIBg6{Pjaa#802byT3hMYN2Ho zq(*)G_>naHxH<7w-dVhMy7b2n>It$-@s&!*e0+_Gr1w@1gYm-f&!u=kAS+?kpbBmy z12ddkYoU|5yIUXwH#fKOSZzdIq(FF;{-0G3l!CIda`p*(XJ`FVug%(sE4Odoo}QW_ z-MKxsXUpk1a}9-6OoBH$Ew5kXoTkhh9UaXSbSFh)a&^nPD^r)BNluPfTU*=T-;X3L z-lM!uLCCrMc>j!of(<`u*foC;bQnLNO|f-YOUE z&v5G0sRU$i6Y{vWt`4yk7#oZkBg~iT5q-RG-TJS8wjs{V!$Y)GY4fs3A?+r=dmJ6^ z`}gkvbK{){2HKvuF)?>x>`swjQ^*F(9oRvH%0J3svwV;igLz}fx%_OKp6{pFL^rm#iQ97o$+%|# z{ZMWV0>cZx%aGk^BPc>hBaU)>>o@5&XZ(T?ZOpVL6DCCEaxkY1wHWmelu_p`0L1Yv7P-wMNK zgp`1QDyPP`r&V-)g;u$emo8Q3mBZ5J1rD#r^coh^h-HFFZ7bGe35?tpaT{$Hj z6{uSvo;)QkbN#w%_5g>7@zbZw@^-2DA zv!$+XbaAM{sLQ39+1aO0pTdI2-94(|g!Um*CP<{6E@U@~NF>gBvMl|1efol;*Un;< zUY^ZmA)&0y%uzC8<#gE!UQ=RX8ZDWG&Ktf3u~s0 z)NrB=qIx9Eb3eZu*RMl_$7W_?BO}L0N1dPupw8#Jza=S!aJuT=v$y}sFfvjRl;E>v z>EQ59x*<6+@$qD93fvT>z6o#8lpu$!PIb)8*yN&RjLQRgygl6AgV`kk>Rle)UAg zw3ytLr%;J%sRV_^alm`}`ST-jYN;A&=+7|#3eaMa z>jDD!;^O|gy1K_#rMG9Y)zsAFse>xMn>EC|d-v|wFL`zKCa5ggO;Whnv;Omv&Yx#j zzJC1*91d?l=*;82e0g$fb$Y&J-4OWAE5<8Wh6_q>GCqIafGzt#SpieK8zu~?6Me%R zpcz$O5yULFG3-}ge~*hRAr(pRk%YLxg+e{q*;tehG$3H`MnqXTIis-T=H_OoH$^3- z{N|*aL17nbEQF8!^;ZrCMSdyYK8?=)(ELG<>Fs&qeDjAgXcv7smf26rUaSv#s>|lM zEsmtzjp}S~zZWB1)6ub--6X4*Z5CWoQWDEUje2pCWvTlq65=vHD8tPyPyKs-Ue0I7 z4WOMT>T7;Jvpl&1Q&Lg@9k zD_$|$_U4?HKObBP?6Bs8V*ay%N&sizh5(xCvEtX@gdqId=`Ks8nm9?9Gx8)7DOSca z4{#Hba!K=Tr4Hom|2q3c>{m2iZf|4scUeFHJ(mwq}U<)AU= zA!kFlZ&Z1g5#kLLtGc>+u*4Ipb-h%UvVlVjLa+lY!+h~_ z<1c?&Cr3wM!*DQ?K)bP6ERYdxEv*`B28eK)!#1RJLX>U+fl$W=0Ka5Gi&8K(H66Vz zPfbrx-?s*&&B@703{Kf@sMLFVjRxhhicEumFmo^11>s)I80y>~164pb-zk^FpDeSQ6#$ju+fP8D)5`uaa`ctEK^ zeXs^s8h_i^*Z_!(X&8rkD1@u1=md&1|GvGmvvyZ_(|w)Plw??7|Dm9uyQ@nK#F6MV z1?q3`;hCA4q1`#x7Rq(&)-5&u~iKaMrl&#i^<{96>K%Uc)tP zug^2fpF~)NKUc(4n*Jf8<%zA%w5X`Ap}n>IKY#w*4xocz3*NY~{E{~wAcLNrgTtTU z|HI$^2fuPhminEVCY_6li={VjbNU@S1h`tbQ*G@| z(5#n)Dla3*wDWj zzEt6tT3Ra0%Ufk34D7wHrR7^*9tLCrG(0Zvl?R|3&;-eT^{|U9!Ii$gzMX=9kso8P zcOr(Zbt*%9dOC|}XlTgE$qBixv;O+^Yal6bQt?pA7)#2EJL6XyNA_!)nvC*n$cicb z%NOVl#>U2sBACIpmWxN zZ8FVrS!96z#~V;SG+b)gQ~%ucU&>Mo%U8wziaIR|TE3xj38 zFy4UD)rQq#psorE+Pk{)A6@$)lw4Xm*wa&(n@)K|zw+{RS|DTDJ^Ffjbr!TcD!TlU zy}jt{o{SDFJpyHOKjJ=LRJQ7*VG06{`>Oj0Q3JBPr$;xv>>WQW-cIbzY z@BE7>hYM7?QTOGjG?41dLS9%oDl(EaSTVe&{rW#L?*WvYCF2aUT;wY%tze z4s%||Pft$^85ToZ&up8Fjf>O!{`I)3tu4OAA_GWo_qPk*4p!OMUcMf5MJJOQwX?gc z_dWSI3q7Sl`x4rVSNUHnCaI-be>3LvlH`qRv=Gk2Fj5xTIUy{ReKq>tJ(@!1#>U1B zD$0re7#Jp?$W2`sd2q#qsV!CA2=t5)GO#@oEH>!2KH#cHI6?V5rx!+`-Oj*ZfZ53F z8;FUK5#wC+0JJG+kBWEhMm5 z^u@yoWx1*K;?Km2K#;dKC8pm%^X5C#3FCJxL7Cy+QlofJN`-2Bj7+T?k4D!D9cS zrw`$=)#QuluqvrLGBrKTrlY5$liFc5mSYMu9Rgd5^PwEuO{d)I{!m~{;HYTp==80D zfIE8pxY%Hu0z{518MXZxxW&YD@Y>tk+jV!*$*HLc((d0O4S_@eDNuUDJ_(hpm{eHE z1*`t}@dJUs0My;x-E#YzO=4AN4<9}Z^&!R@ywn7I9>mIErZ4n4F!nky&kPOY@!^p2 zeQV5&j02{02kK)^G021ojt1`E_ly?XNooFGRNljNOjINc~ggCbo0ufD$R2pvOR@b;j9WAv?C zJ_6|6frokkSde8m9CIIIGq?j$Mn0QD$Yx#hJ>Zy*j-V~LLsH#9{+Kt!tPXn4vz&YZ z`AtbJ%>TgGUnMM=V7J?*F1Kjr6XN!Q@)G^Qkz1XYDL?)w`8(>Z9F-^ntyf$^0_@_v zN7v{}p|A4trgmmhLgj1p-?%B0B&9*YFJ+TjKDSMx|JQ1Kj>0GZtZso*1#RwX@5e$b zYwIliLJeKrw65v@_2ol8M?o2iOk+V4w6#dKU;7t3-}Hx1G^3$J z)A4T4od^e+zT7Ut;CeiT;@`YWK=SK<8QXqEr|fTUS}5qbmpyt&TqbFu6iRwp^TSKC z6Fi@61{;{a5@vPr_A|Z7oWQ^}`{tpJ3ZJU{8MOKK>5^WKT0yO}a$oy|Wu0`oIH7O( z5B2b^&76B4_|dN8f=As7`#)#D(~g$hCaj+-sd)6dxHV>X|56J<;yr6dWel=){DrK_ zp+hI~l@)GjI(Sp28Su*4!XJgiiLJ7zr;?Mi!e3tQJ}3Qk z>l4x?c`V&m*pmut~u3Gi`Ao#QA4->B)r=hO0mY%b%o zEIJpJ*>|c$g0xPoyK)V-5x*9%^}4hnHFb(c^r?Gs-tu0#U720AGC3`hTDbZMF;*-? z;XfU-#rku*bb24vDJwO%&RNFZ3C!w*EZw@FDed;Nt-?oP{t&AC>%aSOG>uI9VtN_g zw^#Wh7CI&IGG09`YPNYQeiyuC^f}hd4W!;$w|~}Zq>E|X<5UuQcLK#OHrwG)(rYUb zZ)cv$6n36z5}9}HK67w{zLB3m>IlYAYUR+*$2rSq2R749TGRm=&CHFFz|QspZ1X5F zq<)f%c99$a9}}Ry3$NEjMD~4s59!r`ikB1@2O#fV(+3w6=%03aM@`LTK|w$j&_$p| z0MSmMIKhPr4P_`ysW9H0O3yk%MMWOhq<0i~uFu8BvPYU zATt3+r6eVL1;KB@>})uofUo((<1K_iR*~mcUbN5~kJEF;0`@ogP|ufc&lS5bv(D=R zDNnrR2aC*mjX+y#YirZu)4F-{$60l0$alNBDPV|`lauPwi!dR0S^UKF0PUo^=PqY6 z$Xf`)5wRP%1~6))C0)K4X32T1`~g)5v%72{e9$C8*MR`b zweBiiX}#+>3hlGIudl8T1b0M4M3d}x1{yz@WBE`~Q4uVOhZ-6y9^Rul@=P4$O91-_ zS`XRP%Cq$h5%c7Vh>S!yr7$*N3xU4@Okd7(%?6ByXU`(z;y9R@yTH|eE?mooe{isI z{IKDTpi24Mx3j;0x1l-(3O*lL+tQLFUi*r2SVBSqgE6?fZ{NN(C~|gR>oF(K8Rb*k z#z-V;lp=78nHhfU!pcfUdU`e*ZBhw|emw|!z(=_3Mg~70`T7FSk&x)I z%I)mvAbWX|l3Ub* zo;($R90VzxXEzid5y1#4GZg4G3e*kqY^O?Y?`>Gv87?j%;LMi4ur#2dU=&UEao{I# zDSnlev9Yo;382rhu;^-O{UdjnJb6;m(&`W(NP4c#4FB{4-x_=rQg9Y=ulMm)@Xe4? z@H%?Fn{r4xht^R5YWT2IRn9smM!Mfs$P)Ta(<`LhDU0SrAhXq1^uZScWm(G@85QM8x$2&B!<>AKQH*sc zu((nI=H=vy<`ov!r2f!h1!xtlm;_D_pa2X>gjrQ@-}b99vC@yYsLU5Jg)tB@%S8j_ zB~NGbyDWsESeHDw;eC-qhom3Rm3c5h?amNwd6YH6Wq_nU$~IFa`s~7>(Z)6`oIIoe z2uRXSAM0Sx)GrK+k2loQ(=#%fCy~x^atbPkfd`tDG^6mQHnLOjrh}rq$I|`9OfiOozuP zthm?4SNLkgXo%c1T57QV8M(-p+~Xg<0h}JykFV+zFt$)3X4!~t{2x@v>jF>E6#%j@ z7Ufh&AwA_yO?F^;!ydrai>eZjm2y>66C?Zoz&`abri9alXC!(TR#zj|tJn1&K76R9 z1;7sBADf)Kj1_mCi|w(=L*qYu_|VhS!xLTug(vGR$d_sGc7_R#(w;3xnV z6u?_`kPRQf-Dx#fP*4Cf6Uh5zZ1eOgS%?&8nu9G0{tS#Vz@G&p!h;ajn{UT;`t&#W z4o5D6p8fs%G$W(dqeqvxSVe8R!Nm4^{(Ng?G8;-2zC?k>cMcCfc6D9Xt7KXV2K%?- z=TA`Gf6K`1!kmN*VP$m6VUV;i4PN_`6e1}pS<59>Q(aAc>Qr!G;06rcz@+SjKB|?j zou>I^czAeW!9Kmi!%0UB3>Cp{(4%1dSc~Ey9-ei-&mTnjkmin(4CTlBiA=F<2YhHD gJL*3XDlw*g+LztLO^?ZYdgMEl@2Dwc%0GVof99O4S^xk5 delta 9361 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

    Output

    @@ -1576,7 +1576,7 @@
    @@ -1707,7 +1707,7 @@ @@ -1855,7 +1855,7 @@ @@ -2123,7 +2123,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:03:00 UTC"
    +
    [1] "2025-01-08 17:41:19 UTC"

    Session Info

    @@ -2139,7 +2139,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2156,7 +2156,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM data.table 1.16.4 2024-12-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM @@ -2167,7 +2167,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2186,16 +2186,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM plotly 4.10.4 2024-01-13 [1] RSPM @@ -2204,13 +2204,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2223,17 +2223,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2245,7 +2245,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2265,9 +2265,9 @@
    diff --git a/development/tables/exposure/ext01_files/figure-html/teal-1.png b/development/tables/exposure/ext01_files/figure-html/teal-1.png index 927b1e6d2102d0a5b64845fab77745d8e54004c6..430b9b80264578f313bf5d0e154ae39dc4e48ad3 100644 GIT binary patch delta 3360 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 I)OURR9}InBe*gdg delta 3484 zcmbtXc{E#F+gH6c_V%XLDy=DoYF|TZR)iY!Mh#VJtSA+V;+BLEoVMnvy)}eNaceA! z7BLpLhAN@P7)q#`YA%r&f_z8rx7NGfKkxVLb=KL>-fNxxJkM|ce$PI8r;>+S#q&7g zSQWe26AnQb!a&z5ZR07sS=zUF_SiJB1a|Hkj;HMBcmW(U?t3>?{m?2nZyyU%xKBtHNwK#7}7vYIPHrGh{{dv=kx2k&hpo zJyVX=Z*iOzH$6^KMhB7)Z)vs}_P7pY6m@K^MzRc z|IaJw$1DV%G*hOCocfpXE$i>H(-$|BBodnQdZ~fYm?W!re;saT?W{WyL*HpH$DTi^ z4xMF`^<$VB$~ygfyguAu#GwEEny?iXPzL-2^*X?3zFUD?}i;4bhOs^;@)Mns>(fj)vO7KBU~^6dW^r?cIngC z!p-ohwD{yz>lq+(8U4u!TNp0E*YwtPd^15hq5X&8hB8I48Xm>iuOKN|)@#juIoNRC zMj!NioN|}`LMf0c_3(EwSz`zUq51!ts1kw}IU8o*(i`zSd4 zwT43q8UYE;RMwvBHG8&4O5|*m$l8s4!JFA1my_N~V^SuF_p(%E#@v*miy9M6OdL#| zt^Ly>;&PLl3o_f}0Qg%wuG1chJ8nV4Z2qkUW=KULaYKx6kwABDk~m~0*%8;bo(&l-6cQ} z%~*p8=xmvGi1LI9?fe&lO6 z-w)34zR}^NGzr|Sg#ayrUUg#&{Ce2J<3yV^nYaf{N@r72S6m%7;yVv=E%kk-$UZhM zDIO^6mVJZeKXAsY&`HmXtrMRb!=MHuKl3D1#kY8};n^%F--38OUbXKVl#rDCw?fi1 zuuu*0hl9=6BO#zLm?3jv4%wQJ6cAr2M4O#yw$l$)-~#%XogIN7fa3P8hoS38`6Gz= z-$SkahT3rwdR+I@%Uok~>xm=x`nU}re!h9Cv1OtE?}V_El7<#xpPX5a*_w<0n2-9~ z)RO)O1p;9EPpNqUO-XJFJE^^=u8yzaU(f<0?GK#jjooHBUL&*r;8* zCPwl@B9XefA9r?k4i6ajU0jCDhRdCRY&^aiV1{LyNh6XVE*sz5PnOOKhlj19 zZKI>&?tCTielB zC9?}hjTcH^pKA6VuLgps^O3eIy@i*JO-&Os=DDCCzOwuz`s(<_ix(G!u8{n2I7YN+ z*yRXy^pC!0!kTCJ_7})9QFlBn19U=!&c?T3tv*MI|>k z*Sh46MM_?tB($wR7f#*W^z-whuTi{+_K^?;KtVxRSXeJcSTo?wK|*5U*h5ulTawhx zAt;AYu7bF@i>Ie?l4Neb`a=Da8{Za~CBB}XODiiw%e2#{Pq(+XSFY;o>pO+*qU`Km zw!0LSln~O>|3F=rl0x-lsK8(_Q&ZD`2Fe1p?rzz@!0i%pF@F+)F#h#x@WCD?{G%8G z7{JRp4CTl>*3Y6fIyySY|ITk}nw;~?)CwAKtAvH@ysN123klJJLY-$mC1Nm`3RxR# zYk8-p30Fm_OP6?{{BrhNi-pQdGqfiP>aRI#S=a?WY5sK zRGXaK-0Xm43WXB5K1pfB)ga5uOG~}Iy)o)SOIpvCmX^S+H-y90Q~(vQ^ZizyO+zGeH34Q$<*AY1Wujf=YN)vFj434 zK2qjLBoaN(c@4karH}jGG&a6)@uH}9NG)#L2a$A2L~C?xtj>p052_|LHI-OXQ_^d| z6 zGoshXm$eH*LLj@6Bo}FWLqk?X1w}tT&fS@44*m&=du@2IF5`TYT{?jdyHf47e1Ww*e zlfUBt64%Pf31BL%8{kox);T{py5yFE=m5ZE{-Q zl^=Pj1x6NU4K2Qo zkAuQ+lplGm9}QMQ@)b#)#=e5V#g(Nc9**!OEDw!z34uVAH|-VoxOsVcp3wvH^71A= z1X-G@nPqC^mmxOPiIC?V_mwa7xKTmImparu{rG3=GN^XZ&B@6D-*EGl zwKY7-4nNn_q>Z7)jdjdzGdMXoA|N*9$e!-*kPpg+7MG-@$wTvdv}I2yYajP7!AL6V z3%Al{-@bYC&b|~_VtPZ{Y@9+<)6&w?(?|RJrvn;#Gc~0nVq#*j)E>1OAIctW#7RwA z89dS+%@`$jq8A79V`F3E;&_OyJjikJYh=?>~aOVT%`Po?^?GW4Y zk&B6+5-+M9w#nre6wJ@hi@<`d3I`1h4doo`tD2jgC;-v9H7YJHuBxgEMZ$xpn=tqp zer{_EP3WPwjq1rsN=r+ts?sZawUr1xGB#yeL7TIgnt>w1xeC#;q=1IT`ueY{0lfsZ zt1wt-Ky7q=L}9(8yQ}N$d=CM{@YR4M!X6aX`}-Z@;^I6!JZqGOk-olLwzdLan8!y1$WPYZmx_UOj#Q$3hh_o1=})_@mVkhGqt3diS3G51c)H AbpQYW diff --git a/development/tables/lab-results/lbt01.html b/development/tables/lab-results/lbt01.html index f64edbb5d..45de220a3 100644 --- a/development/tables/lab-results/lbt01.html +++ b/development/tables/lab-results/lbt01.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1592,7 +1592,7 @@ @@ -1791,7 +1791,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:49:48 UTC"
    +
    [1] "2025-01-08 17:45:32 UTC"

    Session Info

    @@ -1807,7 +1807,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1824,7 +1824,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM data.table 1.16.4 2024-12-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM @@ -1835,7 +1835,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1854,16 +1854,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM plotly 4.10.4 2024-01-13 [1] RSPM @@ -1872,13 +1872,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1891,17 +1891,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1913,7 +1913,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1933,9 +1933,9 @@
    diff --git a/development/tables/lab-results/lbt01_files/figure-html/teal-1.png b/development/tables/lab-results/lbt01_files/figure-html/teal-1.png index d5f4f66d879da7cb5828524ce01b95b4038ccf9d..20bc888a420e718b588d048f8e2e8726051ab7e8 100644 GIT binary patch delta 11263 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
    IWS+B zm5`8t`)q&{W(EcvFq9GXK3qnI3m*{?zPU(aX==K=-K$_`Z0xnw&IfZy7=)-Zg~0&W zOhV!($m@EwBAd~H$;lcxSSakU)>-ga;PL@RB%==&x9H+R9T%x2bwdiHYemYv=Y?V)bzdvc4>Sl>;7l|YS)B|7xW}x6@YU$~Tns?EIM1Z>n z(9GfP0=xx0hkUii;2yzM4$y+_ZEf2&PnfuPc)$c5`R|&03HAU diff --git a/development/tables/lab-results/lbt02.html b/development/tables/lab-results/lbt02.html index 3d94e403e..003a088ea 100644 --- a/development/tables/lab-results/lbt02.html +++ b/development/tables/lab-results/lbt02.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1568,7 +1568,7 @@ @@ -1762,7 +1762,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:52:20 UTC"
    +
    [1] "2025-01-08 17:43:30 UTC"

    Session Info

    @@ -1778,7 +1778,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1795,7 +1795,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM data.table 1.16.4 2024-12-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr 1.1.4 2023-11-17 [1] RSPM @@ -1806,7 +1806,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1825,16 +1825,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM plotly 4.10.4 2024-01-13 [1] RSPM @@ -1843,13 +1843,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1862,17 +1862,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1884,7 +1884,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1904,9 +1904,9 @@
    diff --git a/development/tables/lab-results/lbt02_files/figure-html/teal-1.png b/development/tables/lab-results/lbt02_files/figure-html/teal-1.png index 8ae66323cc7f26d1abe0ac8b66286524d8997042..d74c8f5328716c239c465f9e20130d7a7ed6d0c1 100644 GIT binary patch delta 10013 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 T`n3jL&!VlVcLn#$?V$ey8R~AV diff --git a/development/tables/lab-results/lbt03.html b/development/tables/lab-results/lbt03.html index 211671a0a..c5f8b145a 100644 --- a/development/tables/lab-results/lbt03.html +++ b/development/tables/lab-results/lbt03.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1569,7 +1569,7 @@ @@ -1675,7 +1675,7 @@ @@ -1921,7 +1921,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:50:48 UTC"
    +
    [1] "2025-01-08 17:44:32 UTC"

    Session Info

    @@ -1937,7 +1937,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1954,7 +1954,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM data.table 1.16.4 2024-12-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM @@ -1965,7 +1965,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1984,16 +1984,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM plotly 4.10.4 2024-01-13 [1] RSPM @@ -2002,13 +2002,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2021,17 +2021,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2043,7 +2043,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2063,9 +2063,9 @@
    diff --git a/development/tables/lab-results/lbt03_files/figure-html/teal-1.png b/development/tables/lab-results/lbt03_files/figure-html/teal-1.png index fdd7ca7c050dc28d514d4df346e26d8bab7a5052..1b72638ebeae893185656aff4fe42cd385718168 100644 GIT binary patch delta 15595 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 delta 15467 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 diff --git a/development/tables/lab-results/lbt04.html b/development/tables/lab-results/lbt04.html index 667473866..1f3bed990 100644 --- a/development/tables/lab-results/lbt04.html +++ b/development/tables/lab-results/lbt04.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1545,7 +1545,7 @@ @@ -1727,7 +1727,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:51:52 UTC"
    +
    [1] "2025-01-08 17:45:52 UTC"

    Session Info

    @@ -1743,7 +1743,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1760,7 +1760,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1770,7 +1770,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1787,16 +1787,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1804,13 +1804,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1823,17 +1823,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1844,7 +1844,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1866,7 +1866,7 @@
    diff --git a/development/tables/lab-results/lbt04_files/figure-html/teal-1.png b/development/tables/lab-results/lbt04_files/figure-html/teal-1.png index 929d40b9718d2e995c92f5c82f0c9216e7ce1458..4cf27fe1d37d1d9a60120bc3cac9c8749ec58db9 100644 GIT binary patch delta 6296 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 a_!8>)gBUI`{kYCSQ5WQ}^D_(*;LA2>z1y zo$3aHN0}QDBz@WaWf6sOqCZ{|{U zdizY*iCOwpd`W4uHNhr3wfalgv8Z#p+WfmjMjhvb#4bzne;=W1DXH>P@$%|0-Oltv zKuulihA*dNx!;vIj(6gG!4t>L`6NS5Z|CDf{x<%94ak3Q zt=rn$BV%H`UfF-g$M;b{wZblfM51b&B|&V=DB&7R0O-)TlN5`Dar0X#-xtG_xXMg!m z@WL+qK-2dy4q6Z5&%^l3v9{y?=L7OTnDmPpbyG=6No-u)?%)fGF?5m)L2Yzw>;+uW z(c>c{<`c!RzmG?M<{fN(z{0|UQMRaOU|?|n{(VbJOGJ;}{x&H|D&kUJL4l?3e02_( z3gPojU33t6^5lt@u%VF=Yy3I7$@ei#*jkRSngVP^a;dlX`Zw!HDAsk zFi;#C>Te6QE2NWZX6SU^6-`T>h7a@?@h9YW=k2I zQ3b@*!UCb_+y6j$R4cwX*0kMEGU`faR~M%pvvKoKL=l&>zRr3BGkw&_sEDmDaO`s` zohi5+DZN?i`i;fCQxklAd#RT%Xc^vE5Jl!iArSZP=X%LqF*feTa#>hhf6*xnhD%3xBB1EOAi~X%s-T_7&i#ru zt*^C>u>^MvAqEaRS8*NDY_Vcaw5H$s@ZjFP35p_apzPK8pukMy40EscYbqZsN({r&7J6z8O%pIl~{%Xo8wmM~;5ol>e2b5#OE z)DZL&SNFL3$4Oe)oq0=DRYa9Sq1ZpXntX%0+KiVcuMA-~ri>BpGQw>qaoieSoM5Ot zrgAyUp`r?826?^fgBgA@IU3#zrAaz;XISLe)Nd?PxkI4}1FkKaRL)YNeuW7f<7GH_ zpWQ@dUo$Xh?Jsu4m9x64Lq&1lvS>_?lkQU;EeL0E^JZkT>sX^Ik-d^_U2Ewxli%Ch z3&$yZ`SQ--$H&x_8kIASy&XM0s$L5t7Ns7WwdTg+a681#JY=uT-~IFrK6);56YaS} zNJuDLW1&vD+uXJ0P^hNQ(!sONgBhi>vNAF;XCDo1+Np8<)~zMtZconYcx^Ze?*z%B>=Afd6si>kQT zSO~-d!uk@5GZ&PcoV*jgGB{Z2?=LxF;k--!`NY%|IPI96oSclz*23_8rw%3PsVFO7 zOVn89tTPyNdOw-4J{pZh-~0M9K^>1Y|8dG1yo6ov?H=$MK-LQppNUsNev+3`+QBpJ zDf-;Lij6*{rTZ|cy!t7YKyXVEPRp6JZ_rv zW;yBcCIR9bEU${PGrO=&hYSr2PT4odtGbTm6&4~J(^&3m3qrov`Wl(j(QF=_%gD%p z>@dD{i#%T=)>nulso*S4O?zUM9S$5g@O%A8a0o zRz_YPZA~&c{^Ck<^P}&f=B2b0K*&;Y z-}`S7QgfTQ&d6S0W-!D@W(ujZ6ynMpLUW}{!tOp6Pej{6sh)@UB0|9sC&?hSY2j#`nT3`+zvRx zivC91aTgaC3E~P3oXH&&z@(<7nP%OoTx`K`lTaHIn_{((i>%LwBmEs6ryaW9Lp?EE(>`CSz*t)FO)#bO=}eV&{7b?fe>nLfOH)9d%|>FQ7#{CA>@a8$BVGYiTBbB2_KM7z3frq}| z$76GkDJb9ohCFf$2LG>7S+JD0`r_WZH-BO?$-K7%)=|7<}1)x-b5Gvr_F?SHZSb9YOhqdx`{ z`F=a}C#L)Rfc*9EfBYZ9gG_(l&3|h7*YD91*uIW} z`6eVubJ9&;*5cMPB?l`b&Mz37#wMR|yU$j};W8NNCQ-~{ucnH*OIM_mSE-i|C7bKo z^UPrHJm$_7o`E-aq}a74T*>V3a;|MOII>w)OIU;3OZ!lP;Kx=%Fn3bZtOZ!M()Rhw z&eQP?K|2%_R_b)Nz?W-g)L3o(DMMK#ij!H0Xpj|sBhI$wdvw2&6f7z6$vAM6SpV#` zf2|(JsfE_q7?yEUv)f$Fvtw{2mhwc$EK*DDw{cslXZ6=6pE&F6!PrOsRCGtd>P%9P z>HajswZN@Lqx0WE*;ILWhg092I94!n#7Nut3A*8S*hbUQGi3L?vXe)>WTVa^t?r9P zojBzJ3CBruu6KLhBmYvLHv6!i=ycvb(OU=)M2dT2lrT55Z3vE?AIoUAtJXn#gk--6 z`3)9}3#2>|(1T8;-%auI3*WP>HEk15)!M8k{XU$o_0nSgV)BE zYO(K1AGoc;y=4`WC+*2w6JdU>XED1RX3i>SyhA)GiB$rz`eE;mu^Y2~cT-DuxPO9BsIF@2G81l5(MYjce|(SC5vk`RUX7W42B^a3 z;KmPiQ)gM!(sJq_V7s56v(il8v}ui}&6dT#KXrb{I`DI?aWs2jbgd;^rsYc*VRR}K z`Q#@o8@_YjsnnOV6Ty!8wH^!%8t=mT*T{bmD55e zw1ng7bPnv^P0e%igOp|(v*_LH9wgdWT%+sJn~ zQQxC5QDZN^7NvFR)uzRDV!*~JX;|wkbuF*i%1~S5(d+5?CU@FU!0&9j*ioVFes{V) zzw1;N!#doXoV{$JT%sYe{mW2s12zNoEDACOt4@AhBxye!r{mFaL{Z7g3sH>$JL5J8 zuEPAAa+Jo*Pq~fC3FPD``njEigrsI>VQP4FYt4*D>Z+XJCm$*uP5F~*ebwht_hxX-Tv&G-QrM>Jw?(vHQ+EG+`tvl+B&f(`yEt z=TivS9ncI70HbBzz1Cm8+w^HySB8a|v2k=n#3_KzfPj}~i`^#MrlzK*Gb_-7emshG zJAdkP@NRtnBb}lu&c-@)W$N4ZNj94ekjBr?&v_jnEMVLyNkQZ(3L_C-tE8kPu;ZX- z!->Lp;#PNecZG6ho8RW`oI!=V%d-@-LZ>IyRy{pE06Gt7csd`7Fe&$T*U`}t=2x~~nKS4B z^!AsDiJQ5Cev$wKo7EXVV0pBnuwrATNrmcrQS@xO`*c@SbaYVuA?8$iriYtbzk9a@ z;C^hOlLapKTi*Sf9v&VHCw@m~3mwYYx29H9qR~O}EWzPWR0?r3``BxM` zcVHj&P+C_8{eh;Y10))*CL7z^kAoRSj+;Cqk+`so)3>a<9QJAjhn2~r7=WXI-zi|p z>;WGj*N=gs0AvG3Lym}w$_MrbJQVAJ^w`P)tt)cA>*ciyNEPcz3ji(>_{0uYn)lSu z$VyM24is}bt9kWdPYw?;50rV$%*^OU%ZsCZS0<^l5P%@BO2pQTGu|U9-eno)3m93CMhU^u;+t!9|gA)Yr^(#Lbm*1Qb8mzXt=WZn#LF< z>ueJMMqq?0kR+Z6?3DO{%iUSnNWx$MIh_ej(g_Do-7+-f*P1JCA==-hYi4FCMy^j8uokiIo=JGfwv|m>gwuN##Acy7X-JpwE>xQwn{h7Oawnpb*5Jp*4rqm zs4O$(9ymF1`p40t{8|X8R1l`HqZ9dH$-$e0Qa*{=vQgd}tnT#mbe}?ivC=;V2W%JZ z>gYK9W3aRJwQJW_P%NMB?+=1I0SN1(S4SY?K^94n6x2&l%ZF&{$+fSw${wIJpUuk8 z&&La$(~w|HObCiqns#<~Gr;kckX$0i>zbMnA;!V2elL@gZAZUEfy;q4_T<>=UcOv! zT(Q;(FLiWxqs}@@N=XfaJAn>nrlqB&rV5r`Wd!^xcYz4y1m4gmp*0^0fc z>v;3f(9kZai%iRN5Z*6Nm`MC=+}ha>AD%A@|g0@B5{ZQJ%qz$l*hQ>65@681s^mbf}f&VB^jL6+-ukHVs_%)2C0)7F9vbZ}6%Y4@LZO^6n?76}4geBO@Xr5)w3RzdYBKFMhN9 zEHE%|SuD4_d;?gjl+M$}y1F8IP6Jf4gNat1?~FiQ1sBg~&M}h@y{f6HF-k{nHGv8- zH&{t~5qVUf143ER+EhB!FBIB)5js$~=8{QK{K$MQiiAOkD+a>+Mn*>So@|g_;0N@B zZ7T9+1rI^2L9H19&HtIn8pb8;IBN^%=PiBuQEN=;w6ig&6^$gtE#b0S; zY~enhfDfep3@bs>hJ=K?khk!L@-}A|2?P;@mRSf)N(rRLK@b>L=7&?b=6}kcE`;YT zgBs^oE;S#~eerpC{>zsy&X22B37lP3G5XQLHb;y&Hs>_olhhQCIeghzz*3UqhWt2G$>x z(p*;uLJ=9Xpq&yL`-nWA59^z|wQAE&^Rn4cR@v(FZ?9j!&b132*p3u))}~3m3-xn_ zdR0N*oLYpf1K8vIPR%{Dt5KQ0N20DkBh54~&ViPllj8z%4ah@qVY98Yi&|0*lBD(G zP0Y;t+S+pNx4)GXTv%LeDUv&U8YB~5%3U6<5yLe$HHkyUCTjZdv

    Output

    @@ -1560,7 +1560,7 @@
    @@ -1650,7 +1650,7 @@ @@ -1746,7 +1746,7 @@ @@ -1828,7 +1828,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:50:32 UTC"
    +
    [1] "2025-01-08 17:44:51 UTC"

    Session Info

    @@ -1844,7 +1844,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1856,13 +1856,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1876,33 +1876,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1920,9 +1920,9 @@
    diff --git a/development/tables/lab-results/lbt06.html b/development/tables/lab-results/lbt06.html index de99e81ed..1d4bb8a4e 100644 --- a/development/tables/lab-results/lbt06.html +++ b/development/tables/lab-results/lbt06.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1582,7 +1582,7 @@ @@ -1780,7 +1780,7 @@ @@ -1817,7 +1817,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:50:03 UTC"
    +
    [1] "2025-01-08 17:42:27 UTC"

    Session Info

    @@ -1833,7 +1833,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1845,13 +1845,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1865,32 +1865,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1908,9 +1908,9 @@
    diff --git a/development/tables/lab-results/lbt07.html b/development/tables/lab-results/lbt07.html index 13f638553..0f5764a5c 100644 --- a/development/tables/lab-results/lbt07.html +++ b/development/tables/lab-results/lbt07.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1576,7 +1576,7 @@ @@ -1797,7 +1797,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:51:10 UTC"
    +
    [1] "2025-01-08 17:42:43 UTC"

    Session Info

    @@ -1813,7 +1813,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1830,7 +1830,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1840,7 +1840,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats * 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1857,16 +1857,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1874,13 +1874,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1893,17 +1893,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1914,7 +1914,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1934,9 +1934,9 @@
    diff --git a/development/tables/lab-results/lbt07_files/figure-html/teal-1.png b/development/tables/lab-results/lbt07_files/figure-html/teal-1.png index 380870b074e892a8cbd4d3a170dcc0c9b7646db7..b5f903db448c3b70bd3e45f5cd02038fe2862e81 100644 GIT binary patch delta 11648 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 delta 11957 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

    DJPjqq&DRPBIu98Rg~YcddVGB34#B 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 C3M9G! diff --git a/development/tables/lab-results/lbt08.html b/development/tables/lab-results/lbt08.html index 03da66ad2..4d58f41c3 100644 --- a/development/tables/lab-results/lbt08.html +++ b/development/tables/lab-results/lbt08.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1558,7 +1558,7 @@ @@ -1603,7 +1603,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:52:04 UTC"
    +
    [1] "2025-01-08 17:44:58 UTC"

    Session Info

    @@ -1619,7 +1619,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1631,13 +1631,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1651,32 +1651,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1694,9 +1694,9 @@
    diff --git a/development/tables/lab-results/lbt09.html b/development/tables/lab-results/lbt09.html index 643ce1595..7a3b0d498 100644 --- a/development/tables/lab-results/lbt09.html +++ b/development/tables/lab-results/lbt09.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1573,7 +1573,7 @@ @@ -1674,7 +1674,7 @@ @@ -1778,7 +1778,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:49:25 UTC"
    +
    [1] "2025-01-08 17:43:42 UTC"

    Session Info

    @@ -1794,7 +1794,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1806,13 +1806,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1826,32 +1826,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1869,9 +1869,9 @@
    diff --git a/development/tables/lab-results/lbt10.html b/development/tables/lab-results/lbt10.html index 395be329e..c40ff6a27 100644 --- a/development/tables/lab-results/lbt10.html +++ b/development/tables/lab-results/lbt10.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1539,7 +1539,7 @@ @@ -1606,7 +1606,7 @@ @@ -1649,7 +1649,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:53:32 UTC"
    +
    [1] "2025-01-08 17:43:15 UTC"

    Session Info

    @@ -1665,7 +1665,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1677,13 +1677,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1697,32 +1697,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1740,9 +1740,9 @@
    diff --git a/development/tables/lab-results/lbt10_bl.html b/development/tables/lab-results/lbt10_bl.html index 04052f9af..e92c5a0cc 100644 --- a/development/tables/lab-results/lbt10_bl.html +++ b/development/tables/lab-results/lbt10_bl.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1539,7 +1539,7 @@ @@ -1606,7 +1606,7 @@ @@ -1649,7 +1649,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:53:39 UTC"
    +
    [1] "2025-01-08 17:46:33 UTC"

    Session Info

    @@ -1665,7 +1665,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1677,13 +1677,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1697,32 +1697,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1740,9 +1740,9 @@
    diff --git a/development/tables/lab-results/lbt11.html b/development/tables/lab-results/lbt11.html index 54cb40a0e..1f579bc7d 100644 --- a/development/tables/lab-results/lbt11.html +++ b/development/tables/lab-results/lbt11.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1556,7 +1556,7 @@ @@ -1625,7 +1625,7 @@ @@ -1718,7 +1718,7 @@ @@ -1958,7 +1958,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:53:20 UTC"
    +
    [1] "2025-01-08 17:46:50 UTC"

    Session Info

    @@ -1974,7 +1974,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1991,7 +1991,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2001,7 +2001,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2018,16 +2018,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2035,13 +2035,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2054,17 +2054,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2075,7 +2075,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2095,9 +2095,9 @@
    diff --git a/development/tables/lab-results/lbt11_bl.html b/development/tables/lab-results/lbt11_bl.html index 78279e6ab..64bab8bff 100644 --- a/development/tables/lab-results/lbt11_bl.html +++ b/development/tables/lab-results/lbt11_bl.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1555,7 +1555,7 @@ @@ -1623,7 +1623,7 @@ @@ -1715,7 +1715,7 @@ @@ -1955,7 +1955,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:51:31 UTC"
    +
    [1] "2025-01-08 17:43:04 UTC"

    Session Info

    @@ -1971,7 +1971,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1988,7 +1988,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1998,7 +1998,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2015,16 +2015,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2032,13 +2032,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2051,17 +2051,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2072,7 +2072,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2092,9 +2092,9 @@
    diff --git a/development/tables/lab-results/lbt11_bl_files/figure-html/teal-1.png b/development/tables/lab-results/lbt11_bl_files/figure-html/teal-1.png index fac51ea326899408e9877f9eb2f24006b4449930..7bc4fedd6429fc6655d2e69ce9e7fa8d62cbeaf6 100644 GIT binary patch delta 9536 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 EKY*DpGynhq delta 9617 zcmZu%c{r49+b=B?MH?bK^AIXh5*k~nl!QcMr<8r)cehGOLfOU=k}U}_#x|IgHDot- z+1D|a?Av$F^uFI8-|@{K4$M9Ga$e{4+s^sC#yGpi=L*SQ==aQ*WM= zcT+0)@G+O+wcg(2>{+7U>faCWm?F5%x!jne0-iEE=tY@6KEG!)6;xVfm7*HYNly*^Hy_dOSwO2PbltTIZ?xkyRdGKzA&P(j4zO|AZ+#tlK zIE3Xx$81Ve@o>_Pe~fmKWAwQ`B=F+R@S~-rie%p05ZV)Q9M#;bX6tw)z#J2m)X-7nO{jg*DgET>GuQu5`$x7k@4}fzkkoQ zD2b$Ne2)E7UsLmz?~IVpmk%Ev?rd)f3kx4UeAw0C+p~R)R@ElBBC;Q&h)8y2Alty2 zu+Mv!|DH`<&t$%e)0R&_z_uqJX=rF5OAyx@ls$ero~sJxBG?aC1+s~7%X+Q8yTzRo z*HB--`KML2?&r_%-@lLjitCx}jyR`j)18+NFGHfw{^yD0^yK8^*RNlPhaV48cw8sK zwEsu4VpvrWr-c2`4OB%(rY>G5lVzwr`cfTMM9y*SuA`$PDNFxW@Tn_4$fnyBi<2@Q zPRhy+w|Kns9LIn45nPo*#Vp!BMPD+t5aU4IaCcwJHLeThk?Zg5WIuXT6zaUawJ|XA zi20OcQ&!X!$FZopsc=)XeT0JC+!hkawe6GIF##1T&OhN15vAMf(^sxsnVp?&O;hE$ z;xK~e)fI}oY}t{VmWGW)B0W4j`1$!|m)g`NHrVK>1^+FOScpf#2Ph?rD);U+tuIXz zSBC;QoijdvM%xeh-AUn)wEJ)hou|+3Fh5jDGDJ#0eG){Y(PCmwgWq3RXKyX{*vjo} zIwmzs+Wr34(a~{QDN=8Rb@%Sw&*_<2Bl7)rZ}YAT~p<*@@bzmB zw9`Zv&eYI-G-7eQabU!<$mSy4`md?>jJUYC>JT1VF%GPdHqTSo-_> zDWxm%+1ZqZ(Yl@O6{2B5V}GgVX+^je7KV#*K;%3X%A* z{8??7KtZX?;#hctk0$!$}cQT-NC`3NAXmys@zr{ z9={~FJuD}?Irl?ubC5Z^WZ^Z7(boEsLXsLoA|~Sni$|&K<;zPe#GS3C#Op6u=$W~X z%a4qY_jGmLR8S~e8;ga@O+!<3Sw*V$)!-||BqZ35ABSi6E`PQUXVP%z&K)F_RF_w3 zG0~KG=FFJ{uLZ>?Pm)h{6=QjQ;)yg(`PR zY`2Io75g(yQnfMnM3y_E@20A!sT@GPWIFk80TYMV?WATcA=b57(Vp*N&{ysruUP&? zqdi7{MkIJIM@x^(XOkFFS$ahdy89&2=<|kUUhvl7;2`Yeh1A4_Rq+s+v z1E}+Qg-teZai)zrLaY&YQb^MxhGkYcT6A=DQ&Uq184*UL!j;zb-}I9Uw}hUYIB|kf zwvoj$B)79Dmo20F;DPhPh$5;2w)1Gw9%pA~hqtK4m!HzpkI2{Ps^rPA$cu@I)r2wh z_V$jj_LN(vXJ=#i6dB-tPz9gbEiy5>>guiH-gd68Smu$fYnhk~mXENo*~r#3wDM;p zBg0x|wArRkV!#XMv$Y-?deptsl79ZrAFGWw3k7YnXGStcywO$wpMXC$1>CgK&;EPb zg!RFL2aT}HM(ePq^-(C1S7xS-@iGe`i!CiJ`Q-cp{~BVuwOsQk!}YPTG5*GvZ;`CJ zX`z|L;&=^lDawn1N(s=j_)SXh{F?AM#@;tuH?LHwsrr&xQMnN5&8_E2x~ zTVD#G2oy}DY}H6nQStu$mOS&;te#s2>$PVH{?jA+P#!Pg%|J@n+_48+FnnrR; zN>|o{jP~;K^8C!xu$9W9B$|7By~x{#Ra8_;Jy#<494|V}%lpFukCv2_p8K{(g6Cd8 zqvJQ<-67Hox1o98mvoNZ={35z@DH4W_g1ji@2B)5wOr)=U8SA{y>1gtDAWyj5t=`K z{5Z0=8X=J+WM#_$$QL$`Xljyl&(LVpH#n)#oz=EvzG`i8+@G1pCy6Z%^WZ@(r(#~8 z|M&iWSy@@1@n3NZ3vZ9`Dr|015D`JaRm#pb<=eNbJsYAUT_=+ig4TaOXD(Zx%78|D z`SN9MZZ78uUW!rE><8HVq<&W@!pb_kr{7@HI-^tdHC=*@Z$Tp zIJg*W+um6#4Gp9X@NpnbHDP9E=FOWoZ{NPf8v3jibK2!y0-9T0T}@3*71qs{1`Gtg zZEkLEZ*RX9!d+VXfc*NTwA);ms_f+KY?*N#tCSR>px?u?x6mGXLq~u zoT7wvaCF?WXOE%xQu}n)>TMO3cv z>C@=ASp{>tIY*RYXtNp9!GlvX^0eYeR3K@4u*`FGGFW7kjuUaBn6ma1*h;W70mD-M zbI>>ILN?LBygaez<#w~ZS9I&tRb`fbp3APOhTgHax4(GtVw~nbwDT2OyTs{#)Bg(l zH=hTzfs&FE!Ig3znSql6Y)Ykz(GHvAP3KcAUh1danM%ri=X;j{0um5p+Z}_!I6LEk zfXW}P0<@4vM)>@`Y6)3(d{I>1kO8rD&_p3q7On-o0a%`P0;m zx3m_9%Hr{OTjG|BmR9HM6X*O`l5T}$rKhh=B!#%l_7-`r*eHf71aVvj?GmKG>n92Q z3)BmZs}0MKn8v&F^U_{duDE~qJ0Sl`pWu>dNGvNX)Cx_Wo0~hMo?1~=<c58RRm;ZWdTFg#$2|X zA(KbNt}$G6nrN!#Mm%RgO1udUW|iN&f4@r91=K(PeCQK~WBz~bfb#3IGWhzi92nUd zt?%UY2Xt3>Z0tF|uQ=Q>`6tH4Tk|1^kcbEm$cm&8*%&N#1r+D#`1sC<;a@R8WH_k9 zX(Sr05{EW6HAS$Yp+>g0w&JmxU$h2?hk5-ja0JDQTZdi`qUUyd2n`A7m!X;MvrsDl zh$&&+{RFQgpd54j$PtvEprD|n_qvmrnVEw_Ziz-RS-;H!&jJ*emYRAH^#wESI^gX( z_q!Zm=9IMC*OC&wq-L+p`Dz~@A5hPYvKwE>$ajD_22|CXlb0S>F`@iGrPtL>zo8tU zc8#y$-hIZbfSvFGptjaj<-m}Tkbr<_Y4_Z~z(AHEz#i7Xn<@7vm)1d@GNOPOUk3&< zGBW=7{@tgd6kLH9%ZU?9eXax0Y_*U4S^kxl?rm&TH84MV>Xg^~(9I&m)XwfJ%aARy z(F0)l*vM%8&*UOVxPf*NTHo&4416Zah^mOSEh_?7@$A_%=V{Qy1-}{^grQ+Nzdl-8 zT3X=VOI55r#Lu6ns*PDed@ekF{`|Rgk354K!18i9%l98Yez-_mb$$gNRE`z*-q~6i zKz2%5hLA*mZku;<`x#A)#fYn9ktoF8X6n3KYf~8T&!zozzZ`S zk)P?z;S~{~XcE^SSkYdfau|_CzjUXqC-PN z=k<&IUc9)1MhA1tcz_fnZuC+1A3hb8kdP1-<_PtxuB@!(w7_U+l&ti7=H%o!j@7>_ zAlLu;MTN~*M|f>YL3HnTb9aBBso5BPNr0b!Y@#^{H1Gn3ZNY{O6oVwlc0^C_eV5g* z`ugMYe0+RPoh!65eG`d!*6%zuI=X}O3?wH0NfEESTBqrKojpCU zK@@J>U=ON7KzfbGd#d!mQTHKDg3AIq^hi7w_F0~Fk2o`P2y`VZQ!X#@KT^I(Bb2Yt zg91`3PDMbZtZ*eSFYoyA<8Uglr64KAFJBJgkt<6~9Hh3`M4~^MfbLZe+9flmE+KOGN-D&?Zfze)FTCXqWAd()Cf_3zq)ojk6wWK+b-Wj*o$*? zoLG@ry8D7%&Jz=(qoZ7C*``P$5i!Nm4k@%mi{pMv@X`KQwb$aL!=mQs&QTdk9QoK& zCq(PQ$*)Gf39l-Rn$5)G^l4Z8ZDJ#Wv$MB1H#eufd0R;-5QlR#)ugRrVKjUa>RWH( zsIGntCp>q_I7cfcCZ^s5hshw%=+Levkrc`|nSUM#2R3pA>uPk1nb@yizjQJq@hIv6 zADHb5;PuDA1X^J|e`V3Mzi+}*c+R{0$CTt}{cyNT z8@{xY*`52(&59vy2cj!MzG5BfgaT{O{AmC|)luZGurtec*uD{gC$InmY2Fq*L$`f`rO_Q3VLPJ{; zC1~rp%T@oDF{`$=Hh3y3+_8LbZC!+bXSy4op|jPP0{&W9gt+NoVv-sdSVvWko--F| z8N*OzplZCdxveeFv15zCc#}@Wz&iB_a&jmXa*bg=c3?C0<42<(FAvGTDk&*RS5KSm z!d2JSrjxzcNaM?y+Um*G*47G!F7`PG$`gII=OSxP;YEZDU4>cB8qi5FPr>12wO%*lh30ZpAnK{9F^lD@sICSCE-EgDASf45uecbPvvuFTeZ(!Y zEkqEdB_;9R%U#|Z%a;)eiR!AVcu9MChIg^CoPbtbT*9~5A={vkvIiP01<#yW+gxm< zKYXgwCiEuIJ&?~AZ5(KC;A2)10}w;rNpvohel9L9>kI7gXZ4$tk9B);-519o@LHN^ zzMj;~&h!$9(x$H%|G4aL(C8C@wy=H$X$JxtNkdKTT||U4kkSiAwkfA#&}OUa>jzO* z$Ig!g9EG+5VG7(3A0O}F3ATh!5%dO-3giml%&UXBs7XXfh^mW=i@dzNi_3DWs+>33 zTW))G7{U$>22j~uR@`D{O%!Bj!^InPxwN#j6{llWbu}Xj0aKf$`wgnRhmOvQw4a{7 zXFo()HQ-aN)1Vn=r!*O;TlSlX4s^e$oE#CH2eqt;iI2MT%)!dZ zeo7n=$mh>z-Lns(ZajLFsFQh^i7C7wPts+kGvJtj$I{e^lP9&cw7{k&0vCZ$v8R%aVP!P~%FWx`8(^3`GxIMmFDX-Z#a05xA`du0{P5v7 zaG@2+2etvQ-xkm((P8usto6s6fkLcxK?h%jgf!OHc7eTV&(M^x>b$3|eTG@|(RV+n z{?^7yY{S@ab%-id61Ju5W&^F7zR1*Dr2cz(`J=8}Jt3ovih=|?+n^NEAiHzXFA54)AhY`V zq&5_gA&)@v=kd`pFpvf12OqKqKR!P{FLCw*KruC8N!b3QlJ@Aw%M-_sGjX9c;#KEs zcth&rq*llU1LEvV(BL4h!VG6<_Hozj!3aLZg8mIqN}Hm@>t6n}+V{Q=_8^_1{rWBL zAM95$urif+9ULqGAHN#SdMhg{!@m6wEANuq13Wh2gidPid{o)H@kSv@C2e}zVvDtYQ%lQzZEbTg4rP9I z{|C;@5HPk(I(d}#bC#DU{_nBB^Dq6SA>V{ulta6*jTAa>s@zD%W|QfTqH1RIJvf7^ z4rkD`&#vEwAfcRH4$*FB7dc0KFLsbZXZgP$P(*SGKc*SaPF-@$*5a!*iYU?NdRe`< zSaLh+BJ+s8T873J@1FwCM^mJOl zOlEuuHQn#;UW{fyxg?z5K@lzN@&-cK&&sxptDG&$Dp@FgS4wbdCG;=7qdoc6TLc7G z|J}$MuamN~v1*n_^m=Gz)n)(jE<>|XzVxZYkb`z2nPtW2()5zl3i5RJFaJ5T*q$0! z;*|1>k1x?VpJ(YFc8`0+*$DQ|A1iv=TTdM|XUJ`s46!eo9}K2f3%uE$mFQ)O>z~Cm#UO~3vbI3vINL z{T8sh75yTt)MU=vr*7r=UXLrTi!K37b}RO-N9C<#3@j!Fdz2~NZARNxs@Gh33cf5p z$QfLZe>&@|sT=s2BZD(G@GPh4;Q$u-k>eyi>-?HMF*?G!IHd$dhE{Y>!kKiW&pmfW zbB}zRMTAZYN3+z|@+aF)q@rmPRtx;+`cAPjLrnqChUFQhq7>(xNBwC^7XH1IY!Z6= z@|GUqB4s3*Ivzg1RnZjyRD$7UXAbh+i^K3dxT?*C(n*?$^tU?o2D-T{9vNYP+s2j&6TvK&&-B5D2(ZX&qy4Tt}_Jw3Ub-!?Jx} zq_?6CWoT5$&(1OT5?;$jBcLGmd043e!{C$|sck*mMuOuQty+RzT*j;zMX`dIIIfw0 z>GF>3?w-hspJq0A6WG*auA#cj9C>VSw81p{(6EkM%EgQi>rW81hQiJ)_5Cj~Z7~aV z(`7Y+Zn--|e%aeY36{!yil4T#)l%*UAh$AYT5qi*X<1VIv@6}qmGU4>zNlL|MYysxO%|bOp?u3b!?~4bml&LQptgC%lMb1a6*rR-{9Anm z2cUyTk#2tXy*!!f&ujHu@edf(+)@$)v2}5Bk8ZvB+uP`Ft_B>#Vk-xyE`~=iTtLLF zxHDwx7@r?I_pw6Zjh4w!9bDzQU7{L znGXR6|E!{j_ZbGwvboppVY7pe_jIMd;5!4mt$*#9OGOmzxjrOOqoWr#v_E#qrAz5> z(v;P%rfXPx3Y`Q(kSbb*Y@a&YFvw<;*UH4isYn=AFu1y|fLTApe&HWM!I}<77~X+0 z2XM@14Xg}(_s$-Y37|f(m_K=eNRz&Py_bn$=9ZQe6}``(hQZ{+n}EdC+@5!-Hoo9V zE!A={i$VgGi6K1tv41V8-NM@39C4p58XpM()e5A2M82)9%?z&-q%b@>dKu_9Kjfa4 zRv`#NkdZqRA}9$7S8(+53_#if@oqp2gWaE=I4v@M|*6ErFMhQyx1USs;H;{xe9^@X*UzQ6WRt24nDj!Vfq(FuFMJo zu>lE#rTkfa^5n?@@0C6vrk+tcQbc@w7HN7kPu}IvL^EhNZJbGaTN{kjZYd~qw6)E2 zpkO*pR$BJ2?CVMg@J~ zci>nz{%(v|dP<5hgepgl9LZ<#%MXs-K)h9WEGHa0e#j(HCZ4Iyi2J^!l^V`4G}x)EF`*bc}R ztjJgq!~PQYMe4W>(bsQnX_=ay&csl44*ekx4GoR(=;(CPv@(BKv)L&*pAyhnJXFOD zHU079IzuzaGzf-4vx0yD9RNcwe15*{`a}}Qc#!FrZ4!VY(aMn>9}1FUeGFm61p=wNSO^c=ZP z+d1JwSpY;COOP>u$;0FSh6a#sYGrmn+Ef!=8FlgTi1Q(m0yA_XC@;|Cpc7ACczD&! z>{Dr}H$fI|2uv~rvqfM!V73YYqs6o%0{f`5Q%i~vE7J_~>cxeHROQ&zX0v?T0UuCl z5ackREG#XFFiZfks;b&pUw;>VswF8XhUQtce;yh#!t3Z`Fyb&p6c9)w_Y{neja5}u zb#o_!0?*C8pG_JcAD4hZl`v#4Zdb2f1%CkJ;xv`Gsqt|v7QwQeJlWOMbPt1J<=}wO z<^gE^sHh1@)}h6|eE9-PEjM3r3=+bXxj8c%n|M)UNY`yh{~~+97C;3Dk`j0) z1yY0jc9w-FPp9vvYp@0yL*fhTn1RWRk@0jP9M~t%0Fw)t2yDy}R8#JIFE&U}L%rL# z-y*d;!#q1?o-5O5g@q3tJ`9>z{uN9T-oJkjm4n$hYz}@tKKN*jlpd`330BshVH}?` zGD>N$Q6oL*KbQb?%hrHsE3oc?%FAEBKFSK&5foZ6wBBS9AFNU1En$p99!7>A6aLyoIYZY+a)E|0{@%%tdg0%t*sp7dPO?`3E-_p-lSS9 zYG&!#J3B|*diClRBt(S#n+!+5ff}A*XNMtYMn(o~Q-~Ge7XYu@w{NSd9f_tr&~NUh zrxf(k{QQ~o=OfcNYg$?TSfDw;Et1GQCr&tz)t_7&{Re@6fo~)&UxA?yI1HE)@J;p> zIYMad;0ftDOpb`cXTb0P!Stu$;HM8x@#@uYF!lx~a_Q2g7c8(LBkJDrnZr~LWH5>A zjt`4sDCUb6(2juOeHf5{**mRhVP^LB`AdjKYF7X?VK{;{d=8ll!aJ}6Rx&6kXkmsK z$_aa`yIaTIK*8KR-5{F?Pdg9Dt5@cw&7cM`xS=6sbTlG1)^qOnHPj7QL^w=ZmnMyU z69|MNdQ+)|$oH^WNEUd2_XVqGFyYYYf9?oK3Qr0ca1QeYGPh_^<2yv3t(F#~MHap; zp&0t|5a-y)2n-`)-@R*YYlArfE_=}xxYqB4r^CFXJ+EbGj_+o z5{22qTp8@?`Z8HpN9Sw;2Yh=4o(BT-QBh2mo;hCUy1aaEUtcz-ZYOs#bOX%TQWTOV z;j0S?vfdC#weyBZLj=RY#)gHjmH<{z`Un!|&z~0%Fa^^EmK_#hfuICKH1Ku8w#!#+ zdL<#22ad`zBpUQ54nzLkWPvB^__4s(i0UGR9g;;Y+5`cM{QUeN>xX>^a}D5(*8Cf^ zzVJ=B+@ATR`>!BbJrv;lyPJjfhc8bMHe{GioORvMJ><1Ny@8D}_5X@DRc>U-KYaE- D)B`ZU diff --git a/development/tables/lab-results/lbt11_files/figure-html/teal-1.png b/development/tables/lab-results/lbt11_files/figure-html/teal-1.png index aa45be575cfdeddc1cdcfedca02d79b7b13aaab9..b566988f0cee1939882cb6e802c4c24a8b6e1003 100644 GIT binary patch delta 12620 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±5Tr)fB$!v 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 delta 12689 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 diff --git a/development/tables/lab-results/lbt12.html b/development/tables/lab-results/lbt12.html index 38651aef1..6701f9dc4 100644 --- a/development/tables/lab-results/lbt12.html +++ b/development/tables/lab-results/lbt12.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1540,7 +1540,7 @@ @@ -1592,7 +1592,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:53:04 UTC"
    +
    [1] "2025-01-08 17:43:49 UTC"

    Session Info

    @@ -1608,7 +1608,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1620,13 +1620,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1640,32 +1640,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1685,7 +1685,7 @@
    diff --git a/development/tables/lab-results/lbt12_bl.html b/development/tables/lab-results/lbt12_bl.html index 83cd3f15d..b136879f4 100644 --- a/development/tables/lab-results/lbt12_bl.html +++ b/development/tables/lab-results/lbt12_bl.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1540,7 +1540,7 @@ @@ -1592,7 +1592,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:49:32 UTC"
    +
    [1] "2025-01-08 17:44:43 UTC"

    Session Info

    @@ -1608,7 +1608,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1620,13 +1620,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1640,32 +1640,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1683,9 +1683,9 @@
    diff --git a/development/tables/lab-results/lbt13.html b/development/tables/lab-results/lbt13.html index 22f7dad2b..180615a7a 100644 --- a/development/tables/lab-results/lbt13.html +++ b/development/tables/lab-results/lbt13.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1702,7 +1702,7 @@ @@ -1929,7 +1929,7 @@ @@ -2153,7 +2153,7 @@ @@ -2379,7 +2379,7 @@ @@ -2713,7 +2713,7 @@ @@ -2915,7 +2915,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:52:51 UTC"
    +
    [1] "2025-01-08 17:46:22 UTC"

    Session Info

    @@ -2931,7 +2931,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2948,7 +2948,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2958,7 +2958,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2975,16 +2975,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2992,13 +2992,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -3011,17 +3011,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -3032,7 +3032,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -3052,9 +3052,9 @@
    diff --git a/development/tables/lab-results/lbt13_files/figure-html/teal-1.png b/development/tables/lab-results/lbt13_files/figure-html/teal-1.png index 3e51cabf51034dd105d50119bef2524dd8e9f8a6..4cecb2822d52f0da31840f847813942846de0e7d 100644 GIT binary patch delta 12368 zcmcI~XHZmIw{4@M2q-8D3MvOZhy)1|mCy)Bkc>phC`e9{X~M=Mm=I795t^J+lc7ls zf&?Y!oD?J{$*JMa_PqM))qUTs`(C}e>xZS->|T4VImaAh%()XppAk&&>qq8y#P6uz zu|o17RYY4edKuYo8vUcM#el5zMcSWf7I7wN@mQ|&f5)1I-+sXu5t#m5$Rw(sQN=v+ zsiIT98o!|8HJ+ZhzazuD3$c$R|5kf_mBKMJ;Ez7<9b%qOmA43m{1H!{UmN=YMZIo0 z8wSjMUkH7kNS_;zUh%?Uku{T$O@F0#d3pI>!o2`QfKdr6R9aeUgb+8fbPDY9VrOP% z1_uWdWrH^z5HjcI2yxyBy}$CMF^m&^ux(;)K3x~UKqoR9v9PdkxSMl`IoO#-AMUTE zrKRCVF`3E9b=}cr)59fCCl>Kz#rgTSTx3z>F~)Xtr%@&Nx0gj-_qTr$_qG_MYU}Ef zQ;-zHa@UrY7Mu&VO=6Gh>eZTo0Ue4wvzExnNX8QULMRco_pu56>+owqN_24oO*}Kn>GfFem$*7K52%XU|Q;;YRXIWQ~oD zt9*!qg>ot?G*ncf2SUQa;V;I0R==^$_vMV0xnw@l@UXD3(9+UUR}bw_Ir7&)1BO;1MlR7LYsi=+~IYMn+K_D~)GO_uUELZO7 z8yK8Yw?BPJBsV!ZIXAa`X5@s!%elF^gM+QAhK2_I?1R%Y8@sEks|3%j>({R@ja8vV zL_}Cv;^X71yNP8lEs6$(N8L@n*C76zo0}<1RH$LjuUx24pLaLrh3$qd?CoKH`}Otp zy;v(ND?eHs`gHM?SC1?$EiXKLWNvP5XJ=?&U|Sn>w8V*(mG#%JU+`eKzpV5vd4PF>l_y`Sj^iMTMBUqE7wtpmj`8Z}ZPB7^#F6%PRV}Tl z@82KIDUWalF{2H&wHcV1bF?yhtX%HhtLscw(9YJkobw@*eB}`5hKCXL% zKHO<5E-sGsT74Z6G4SflHC;TPu<+LEYMH}#DF=rY+?MP28ghh+ipt)8`O1=@Z?r2XH;X^M;2wTVx z8=D23TNn}(BjL5}prFtcv%uqh3YU-J32W{OiZY&t4Bvg-LXpSu|iB9KR(!QK#z(s97myMEHQ-2w6w1S1Ep(= znHd=s6&08gBNT>dssQze=(A_fzJLF&hqoi#!@?n?Yj70l+SdAzp-?DZj$2eH$Mr_e zoJ$g3BK-UXBe=S{I>=OHB2f4oo1%qg-m=C&6ol<#Puxisp+38Nzqj)Xte zA{XG8N?AhrjxGGC3rJZy0z2{FClZxL$WhxyU%7nCX=2&n0jOarccEk9)i1~ukm1_| z!zzdGH8=H&FD$-d3^bc+j@a8=M zUaUtYg|8N%P|n}hXS>*xA~p2%tRFfp4VUtn)DQ1!mb)$6L6#NdCnQ`I5Lh2BbrSDV z-#1HDi46(}U=nq;(a`9w4`dob2;oCT*4j!+Edbg{b&yp6eB0aGy|zBPv#I8>-Xxd> z@H|}aQaLrhwJ@-@JrNwtBy0ybbn)WF&c^2EX88DYEaI~^)$-yaTw+H@2W<9?)F&*q z>R@*sP_z=WVHF&W5zfTnyf=EZ0eu+GocUGHWG^6u2#pR;!EcWi+YT8W?rOu42XW{; zc+zxWv9`7qD2@W?Ah?_%QDN1Xrt0DA6BJs6KbN$?o@*%~At6w7GkfM_nY{)0`0_F`kc`q&9h{c6K%`vgb#Exa(PFhrBjw3C ze6bJ!g@pnvwfRq)v~aqtwo3Byl&4PNva&v0(flOx^fBZW+mo&_-uC77B!ESDD%%ZNyf=RIW zbz(WPIbin4Aj zSQiElaXE&!Hv$-F(@w}-U0dtw>I&yETAH2~HvRgJ2EETKBvh<~&Ck!zsob?1EVS%= zTprfk)`o@>(8N=msu6`Gx$r4d{475HdKafXg= zVrHg4Maj<2Zr-yhF7A)nU$JY`Z8R5e)#gfwh&|1MwO*@pupU7yt`b-%*;$u@-swUkJZMtV6lAHMcps_myeSe+gPPH ztmHaZPLG3q54b*UZEZ`w8#mI*%F0SgN)jpE@a{H! zhKGbW&UPkas}d`nXVu`1a7KDSH0Z>@c@aHK17V6;pjUS zX-E*6pi3Te-RY0MyzpMBJ~32m%X#Alt<=MZ54U%Br+)r)*(!Cd0ya8py(#XwnPo`0 zbMvNcL(pa0LH!E%U&Ub+rH|D-L^B-NINAL!h&YTJJoxsTs{Z}=-*8AljLs)SUqLs);9Fv!s4PhX5GRv>Yj{@4D3)in%u7435i1Riht;lN+BvP{MFmHigI!u)6s5Mko{kJ0@ikROS^eV(SH8^Ps|WAT^${N zKR@aVym7$%D=Q_gT{D3aXn;QUC#QC{7*Mm1H}&j%c>i)-6L(?)9)MeJ$jHcmm`U2e z(PcL_%Cpm5rr1h-qs_icH58K2AJ{B&!VC( zS#~rv&4cWDp|ZBKvqR~hkf=ANx3aowCGKzsjUF2s(re@bqycFFSdgH4W2x%!0CGW4 zNa*wxv68*k*_dM2#lZsew$ZD(xp=(2H@-KUMH+cwYHrR%52p`Do4kRG{f>sHDjYRl z9wh)y0v^6Qz6ys+#X^nu>QtI&kw%-|;N{ItN~(1z_XL8EHP?iv<)o*VZuq>QzNlts zXsD)k^`_aAC#5AN?(Xi+8jqeEs(%wLKn@Qk8iIju7U>c&8*>W_Ho$srAc;w#8&wTC zrYPQ%Kz$_fz`-MKJ52#MNUn>EivzmnHtLa@mzP&j;RU48s%Q|{JkZKACu<9f5)U@e zD0R3Q=Q5xT059;=KpCf%@oJ~(R;3s*oyb2|_jlIJ+hR_gJb6Znnn`G3A{c%8)G5sy z?r!tP2L=WZQMV;UMMWD6iyJpdivWOw6*@RLz)d8Zxa^&w_$+fNzEL-I(tK>{N^t_?8RAFM~#6+ZceL^T*fs*Z6PU z5@2irq>~N0#O~K_AwW(}j^Lx8OP+?aKXHn2ee94p1`-hvVU*zM=Irc@6@n@o9IW#2 zVgJ~{CLVGaasW!TT-ZWdO~{Z|=L!{r4Eu|dz-mpVTcf}IUhwLd#oQen9rM?*DaU_j zf*8{g)QmC+n}ugbPgq%7CzG`u0$GK!iU@kFnp#`W|C(sv(Jj3HMo1?3ia6*?219p} z)U(~pHT@RS8vr|wfRcOnZZ%Y64o*%0;xS;(vulLR%*@cxP{W+?$^@XS+b5X4+B@to z{=naHoV>5D-UY0V+8QXR+u~qPnG#eIh~QH+D{Y_nzVHrv&vhf|Qm>%O3k&1%V?LfO zk%Dj^&TejpZHN0Rvs$*bug>IDtTs-yU=`%$kHZmd4%y>lzOLZ#qmfXgu~=;3_Ci5h zFM;6DEBL}OzkB_*X7 z;^k%c;9C`O(VkN)>yx-=aZ%9*&|Wd~)=MmY^2t_s(lO_kmhLPJ6u`j>J{Eu5xT3(> z=?-d^N?MTmjt-Iyu`5v!be;ByLj#cHACr^aI}PfboSfp~;vP}wKO3Z`r?cO=vs=_> z2*fw*Jq^KT;FhRpd2Q`q*O(FfG?z|(Z9@Ya3rqFa1|>N;Ic4S1Qm4ilR2&NR2TJa* zyBgEt2STP9yJH0He8U_b4h~0G*CnsLj0_I;bTZ#olXYMOCDKs&Aa$@pww<%i^or>UEwgS=8CbrhR`m-tU_Hh7`qAxFLv@?5TL=$W-Rvi#F zNKdINV3FLK7@$R=+RK00P@pD^qr$(NlQV{Yb|z=yFeOcAYBZZ?*h<*_aL>OLBdx6Wk$dfS+oO7hX`ECyd}~lK>ROR z*}mT1E8>{KhFyxdA+CSpLkTbjf}qt-2yt|n$Md2jw{8i$oIni+^y2gwu3Yi?QTy5z z?*m-(%$YN-t*uh81g(3!ySu^Dh?4LwgDd6WumbTeMd9RxtbyPsr7VycA0k2GR@Ejv!WLQ{FceiO4*dWp>;u{~Fu?Bj2NI87p z=g*&gh`SMG>TawYmX3IDs-q}p9>8gttu+dmSLE+J(_`KcIaSH$09EvCtb>ri(X-Ju>QU)7&zwN&K_-2nYZe2?=fX zdMc=>FiUuqBqu*uk5pwFt3jbgniO;Tuw^uo_D(+=&$F?m zwg&fs5L;hgH}%T73)J7s%gf3tBQ#W9*0xaBR#CB;`EXnI%H(m>=k0Zj_k#!T3jjTb zzybB}@YryuLahrmo0Cbp9yxmSA32H%5CYn$o~{A){S}b}1jctX;9VwX!n6%>p|m-p!4E;92u$FJ@Sd(rI2L~QB{@sDDu$enqgiQ$ z3{^D%s*_}bpxUW+_V%!4RH&7zcRDCHW(gG%mXt88*ieL%VZaV4al#OMz^l_Mw&5E* zBgoj&9KpY}IAmUUjj`n=vrma}^$~)hec?3#dPiVCGNMt<7fTNa+W>!de*uWjgn$B2 zi4;gLF7C~p0!<3nTe^|yx;#1pT*B-Lly@kCU}a%aQny=zF5O-Q9p?{Xv$i(NsLBw@ z>=_+4gR~YD6ohgWLSIl&U}9ndUXvbvXErr9#(Q%BO0`O?1hGp6EtoY1d=40mgxzon z@CtKN)BBwK{QU6oSOEPNtT2-qej)slFonwr&Vq@Qr3#Mx3SR&veyzpZpzBZIS&=kb1K4I z0$ldm+FFBh*Tqpnxe_)dB?Y#M-Wqn2N0QYjSc?9~oew#44t78He`9kX|5HB4|E0}= z{MSCm*P5CiaDdo5E*V(t&?i0fB!j~@-U=c{YqGI4ab__Xo;~b@t zkknqf z_#j!t#Yf<}VnzMX!85igZ52u>7T{_%<=ow@d`qoz#G|#-h=tUunPWj*lB# z5~SkaU5ReDDgqgnoct5Ot^q17m;ygbN<_Z+?t^ng$~Hl@$v& z>wgmLI`mgiGsl67-sIs?k(09|++t&6;mp z=VdTEJ)PP&4>SXrZw+|!1|-L+03RP8?Ht36l@$jkr>1Y;b^z*N=d!_9ZUz>>c~DSM z&8Kwzt(w^bx`_uo)4?Ld8qB;Q8(ez&`=uz+oJ0@0bqqnk&;%qLm=>hA4BWG|HR)4E zUcc(Hva(2mr?b-$gi0s6khZ3y<3Xgzcy_z=|MDgnv{&&NIXOl}R+^6=C;0o{leH}g zA(JfrU6&+z&Ro105fZZ6D!MFouswmdKze})Y?#Q2o}{8`YHlvf&!;?j66^&@@FqcX z$;i}0qLuql+}Gd;lTW6kph(Neke8Q-?vPd2_>||A5cm?hW5M79!_CUg>#^yFg@vhA z2pWI(h4!c%=X47;{M|cab91+e`cr@oEPgngt$~378_i8lJZ{n!DJm@pJ8*S$oJ*@A z6opjv!2L-{lU8{NGfC*2gl-h7tObIB=90*}(9ml)F&-X(;+#N8}B$xDc-;TN-DnO@L-ST@}2Jfei8ST@g>nz&pz-ax1caF z(cc8pV^>*_|1W#u|J9ucJ^fXcjZ;Tm-D#dkeeqTj_L6b#C<2o$BfN_V;$hS~7 zDi%0Rpymi@YsgEMT4+H@z|BK@&i`*Wyd6S&_G}2Wj6*^IKvzMC{>jFMUT>GS9o*jA z!v}>nHZ?(r+Ygs?fCZvUS{Xf7;7meD0^J?~NsPz*cl9-V2W5~WL ztp2You=Cj1fXiZ_0~A1iGe0k{W7Zj}lo(tH6;B1P=cdhC1%_Z4`RuTKxl%9J`0nG!KXA;-ccqccek z{78F*zjU_x`3WFkaCz5>H1yC*xUgi`{~SC|u>B(itpVd1+}yTw3d}BE34jL6NSTW@ zxIuAupMT`i>D-mQXb3GPs1aXy)ZzL`#spB-*jrB;p%0SuS^;{GD?h`H1N(hKiIyPnfa#tKn%}gCc z2>9f{;HQM%m?CucMJ|X_fl=@dV9G={UkT*xA2X$aY%@G=01&ZWy1vRx7u*Hu&Mt047xz>HzmqEAa z;)DjzJZakASjIuK&6(%_=!8y$S38qehp#x3hmig_i}=p6hc$luNUy#HvLdbkQU-c# z>7Hb9q%%=$>+D>GvQOG{B6MVQa`W?lG*ObYgaxS~OIp5{z)e7*@Jb%!G-Qb6mO4im=?Mh***hwn zR;C7r(g+nukXux7djtLbV1Z%F7~nr0JBEjCY;A4l3{fR}AW}x!T3eM9J3zwm4#FD@ zPk_LZmVPdi2wV>a9(>D#BcMU+!t85!KeGp-=Byrkw`Y`EdSP*~R=Ni0qw&-4s7PCZ zb^FHvZFsc@d11JuGdb?+`yG2L15M2y6LEMiSli5I7{X|`_wRq8ECS4>@pnDQ1;|LB zW<}PxDZLH)-*4;9W_Aask9fq>8#I;yVC5A z~2?3K9M?sVY0)<@f!_f{MNUXpN>mcp={h{rU;)mf==RP z@phNom);Ma5IYvmCaZM}CtP+zs>p~MClC(qs?i(kQcrBphLvzF; zMq+Sp`p5iFL8XS)uppX+)Q-8Kg#u3VQ@=O)HV)n{%-^ww7Jsv0byrkxucV)PHFw$C zp4IPu(+x)E{dGTnRKdr0QRA9?s5a!3@zJ^9A zcE8*r0eg#`ShLHEbieoURVVxwRkWc%kwwRTo2#FmWlzZ$u=z}L zvQnJY4ogOijE44Cnb4D(2O6qGq^4q`ekZ(F!0<+CjPupy*JH%C&nF1mNL%F0M$N)u zjsQPD9X?UD&?@oJ2s=3Pd+q`Cu7I1^JDZ$8h%+)M>qvV~uVBp>ZL>$g0{7l#kbXw0 zTiEinDgFG$kNMc9!aLr^$R7K(T?S2|4?O~inL)OrQ!XX*u)QxfBP-?ZptMn#ra|Hq z#yf!aYE?yR*Feg=c|YCWKXEROQ<&g7UXq?+CxGlLRSLLQchq0qCF5bKoqTt&#~G$0^D{<($*-9g9x4@Lbobj3T==XuJ zfr%e_dU|MdkVEGke0iwz@FQ^J)tZ=nwpql*4JaNM7~s^>0hJ31)txxzMtU8sW*w$*FSxmC&7)ooxp`Ed28JY7TKy3>XiSqJ|Z!hu>kBkIgLT;-)d^j^bjdxofh54qE(o%1*-heuR zSP5Z#NjfwClPq8p3)>C~0Kwpnu_>?I{tJ`j{-23YBuuDy=MT@1qBrxL#bCF8tq0ac6y`5JXR;+x*z}o16w|@t5eT|zi$il?K(q#KZ(WwiK1vY_;?xx{Cr9s-XC6Y_e#t-nem};(@9v z2$V$C8xRNThKM1IW&AUANP4ueprG7QPM8UV$(Ada85RUNtgn}W$}cUfTjfQXer$x9 z4GsZ;?%!T&8BD1#mUMtge&GShokU44ciBcjDm96#lb5hVYNJ>gl#0s@^bo>hP zuy;eD$TdjqB5<;S3WLiGP9}&}h#pG+A9F}gCK!|W{QNr(o#lB7Qb0+<5u03bjvE-qjvxHvd`f;`aC8F)>{1{xb18Ckiv zR1VfpXLGX+5OuhK7vT!t**F}`6(s25=%v=@`*?VHR}dIlDk>~=c64OC<80wZT>A}F ze+V12aKWq;z|9|i02nbbF`c-gq{6~(7^P`$R!rB}-QK>>xwx=kmnRIp^LqjGKc}Y= z7!Bj8SgC1&EKNvDn}IpnqT*s@1%+At7|cmnraS4 zDo7OwTR3md7Ke`Z_II(dJmMc7=;+M;Ag!x`FLH~DY%MH!qrd>u0cPY&b`*5p7MQI- zwRyO?TOCT+)l*2FP8cj%-Q09_cK&eZ5C1d7-Hp)tu(ynYjWDk_GD3jfH{>=+Qgltj zyzbiz2%pp(SX1A@i3aE39u-vp3=bn;|(gv%e@|AOlRCH*Y8{Eo7`Y!WuyeK)h1$0px-S0sXHk=#mWTs;k3bb6>|F0Yc&+ zmO7asBmpe|q?Zv09cTyuN&;vIx~~|2QAoPYGck(tcc0KfJb)$NKRS87+>73J|BoJ^*GOgoT9UO$7XCp^AZRuQsTrq46j2G3Xyy1U0wT>VX#m ztkWj>M5WTbiZMH7A7WiF#5rSFzwYb7+pg9=;!pQMBnLY zY~+9`S|}}@=gxy^1_Pnc`3aWToq@OlO%JyM{)D}m89f~x%ro4LR)%Tit$vf>kpu+^ z35m{l=q^2fE)65F&|E3BT%G&|9gANupDbwA4FVP>{4%=0e%Xf+ouR;+)NHqqCygJV zNI=cjdH7HGrgMN!3_<4AQ e2YEI9Awz-lakH@a#wpTAvJO-M>Ik0B&e=JBqO-byM{$P^MnnI5wu%9Iew zm^pLineTk`ef#+K-rpa4-^cMDZ}klKeO=GG);iDMT8VzU=AZ1k<3;7Q&TGBbh79T_ zmkFk81!KgLgy4Y#vyZ55@4WK!-h+)A(f7BSaU7Pe&d7>Bdm|*bw&H|^xvO}NVEsiN zVXJ}lhxi)G@{U^ajJ$pk74`bngI5Pi_UC-e($o75)W@4=HggabUtfw%)+B!aj$khCa3dat2rX4#b z%Q+*3goIwWUY-qS7PaKo&HvHd+}ygJ>dxXl?;IM^uN497Umret(m0MZU)!{um9@z5 z^OLTw>x84@Y?(#j@=VK{H%FM5nAkqOI{T=ivU30a{eJtzlr=T??${w{Kd8dy!h)z-#{8AXsgmm`pVs9zW(bTRa8{?GK+4c zrk4EkVZCB=Y<&FrGiNSHYpJVWxN2RrvM|(J8JwzD)P5rABrZY0^pupZJv3CmYUUR^ zR;BbmkOoYA&lwsU_YMx;96jCUFCZYWZ~uPIOD|7g?f>rJ6mfLj-&}*8pB?LvHm+dA z6A+|PCZk=XsskJxH@-Y&3+C0)Of&jdCfYP#E~!Dc&`pe=|66w1=g%hJqE5>^ux!iC z$;sKnTJSUGyx;x%_bY?>!rbOaqsrH=HAt_{*LZnt=xgYp_WXERMJ2IRwvKF z+so@P2S?-g?=M`nXSau65_KGHHLHIucH+bfSAv^lU336juo2&-mvcML)3YSt=+&F% z=FC=He0)qYLLL%7oDSX(3=Fin?j0T;?(Kb6LnCA}&9+~oI~f@dA3p5m<5M(Mr_jez zDOs-1zlklvxi2It>HrOm4;HGXrY1VOEN@C5CTf+Hp3Z#yx>pX(I@0X+2otIgbZ%~L z1pbqem5q7zYTJHsyGg;LdzA`J1-7sMQ1E+ce)4MkrTr2P!;kn1O-J9iCI!gHrKhJC z6cl9qNVv+Wrq=Z8)j?aoArG77g=t~)#<#i!edO6wUCTIXlZIL%*_!QlW(Xp8nISZ zkGakV4;~a3%b5Ab#2oU=$fm^+QIwb8g3oT-rkiuy7}2pXJ7$H@;=68W$m%+Ly!*PF z+fr4CAggoF_VjIANa9igv?Pw{@z1QpL^-EFhhp8(^xeC6BRv)ds`XeISXd$=B3PK1 z92ZmS>gyM0M$8FgTjCD!ooiEth;1}f4ncrzTKYhjJ>+Cze&>U*N3~<8l7xw z135W4Q`6sdaSA-#PJAW@Mb@sevvJA;Jw2aFPEbV^9F6T4qcW9MOVPG*aIl=ex?5ge z9_P{Nre|%4pb0k5VfaVq@Nla(GotWz&zGWQV#G>Rnsz;jlp*T*@o8k_SXWow#7taV zTzh-_$Vpz({;f6XqyrMCPoIAF>=|~lNHJ`rh1}B8lGJc>#}ir-iF8NqnFi@;jAOgA zNk^gko;`cWt@u3~a8zr;CDamnB6s6W-wbT5Hhr7P7TrK1+1+YoUiU$0?!iBJA^5NZ z^>MB={#g=f$&86tn}3#pL^?&o$iSdK%0~LIdin-ctE-bV72f*G<3j;k@F{z0IRbwf z-9vXDhbUPmuhGaAG12|m54X=NpD`8C^O)~NJZ;_RSw3@uSXmOY?R#;{QNW~Y!SR>i z9#S(y2sJ6{+BrWKNxR?QDk|i=L$Se<6JHLISCe_PvXDlFG!kk}i%UwB!o?e;4wXha z^n7_XH#c{8Jx$rCPj9t}oQa^O+c;9Ze0-7o2KO>v1P1P8VhVox^jmf{@{F#_Kpf%~ zH&_U>Dm)Tf?+M$xvP~tT zC+DlFOnfyW@k=6XPni$cpmgVZ$Ug-&!0aR zx%J~6VL#N!VKF#3*!Wgsa-xziNrj8;6Y5ZKK*0B8EpnL!3doKfI}RN>Bx==u(y;6? zyF$>?!ceNrgQ=-0KRotylU_%fv4WkQ-Sz9&&CC)Qu7A8oZIwS>_HgGhgs4G&kXF9a z_?s&+`2_`WrFZV!`SRrpazR+)?&RswyfH#mO^uV2lTRya7zfvNW;iFOnn}-XJ2P`j zoI-FP*HN!I6oiz^M;cRf@=R-AAvRLg-*<`Zw3K5{PEPLb?k<|^qP==)ls_0bVqvf$ zsoJ8za9PZs>I3%|ZW1YZy6X`ia{V+;wx|`?kt38srkU(PInvLc%PSBHLqkIiH#1d} zkTZW{;Z4Olw|=IbUD!RD(;v~2V;j$KeP;M4?Jn-8St(j%-jgTuV`If zLar$-WoKjiSW;s6i}-L?NqRYB%5in3#meyd_4{;tx;i_Ldn`FADb*CX&Te7*8Y#`X zdpGj#^3u}Ra0yO#-Ec^TVp=|-QHQDDwJl_;)TAWyRrw56OG`@^mxY&NwoA*)uCt@d zy}^2ArKQ4Vw#ezM#FEYTH&^Pqc#egHg}EX%kvlwEYHA3+BS%apddd?L5;l59=WHRr zdw%HL<1aNeMe}|w9~l`L-)fO9DerD=e!gJKvHp(6QwlENz_l;QqlTIwGbmK8+GUZzJ6ALcrY zG{-7pm7ercN2=qPWFGGmt1B;0kPE}N2^G#Dy9ZgWin%Y?jkOo}4#~>M#7@h{DaY5# zO*#h18_UX;_^^7MFs=x|>LsM4+D{N{MM{xUG7tPYm9k2r$?qROe*EFXhpo&aZyE*- zO78P$q4EzG-?cF#8tW&+Aogr)B>M*joGX)g5~NK8NH3@<8EfmsP@x27CjVs38kS1~bI&bECg{(O_A50`Y!dj0xbe7&)W z$>-8iIaWp!BO~ZKdsJUVzcG*C&`_80uF^2+m_n!V>-ze?MhNoTw^azh?BBnCtE;MV zRA&_RE=ai(3;V=w$D;US%N@tshZ>WII*L|1OMGNyWz~{31My(N!JJ<2GBTznCo9X# z&4vsuT$@t$f~9UyQXx_c6i|*$cNvETuXeWeXZd#R;|clI*Rs6>8D$Wj-4SnkbR?Yq z=fZ%c#r9<8-_EPlcM;K$D{2i->b?V*3Q0s`^%a z{HIA|+fuo$vvZDJZ|m)9Nzsq`{1+yLAvLh5lg<-8N3XtCQ6*GIf4uKT6051Ia+|6> zpZxai!t@a5apW0&mhr|(hIBB^ro@PwI{gwT=Fj15Ln>%<>m!@qz3j%+41StUp|Q`OV!Sa6pM zKXc}ck&zLhuBGLJ-)*d2Qd+twH+KQz8ad8tnfE{lqUYJ6^GJNIlfG=v!%{=StRV&5 zBvmyv2Zx8bldWD_2L=RO2)Qsj+NPGO%ae>{-M)VPRd{$Cv^S#4iy)N$zJgu1* zvvYIhJ%gQGTz2i;*>+Z1G38cVBs3@ymSp`osi#fj{q?g>YuB;G&WjsK>G~0f)9R{F zVRL-@&!0c*UXjU;Ha73a+uSTIQVIAg41cz5H5TJv~1DOyE&fRTXrWx3~Av zz>1=!UOprtBfY|F7VId<&W zKt=NF*L{7Lg!Wc9oSSlShhai;#Pv zR8nf;7J7O$E@yl5^%@!)VT6bUgk54n!ciP?T)e!NbsPr{MA^Jl!KJS51Uq&A{>A|{ zJ8>PxG4n{Y;OKiqfB-=*1=LvrX9Hnx*qhH zz_E%7TmwTx%-gq*f23jU>FqT(HioLYm}q3XGpP0b^D?V!e!1gS`gq1LtOKG}PA){q zOgUAzKv`Kic1%dP3!(J0tDS*#N((|N*kP<)M?>SNqSMNs5_%?Xb$&Nu&YGDy3JdmR@ixiZ)7?ChLwQp0=n==kKMR<2#b)Jl7G zbv42S2b=ZE%t(u4L*lh+_h7b_w`o$`E zZan{vw*19;&B9G;E=l*cmA=JUC;h(n1 zsJ^U5bMWVnS*6?C+H^GCuqeuV6vISHKYem?bybMG!A!StK!T}fEXGeN6yFZPam&Jj z^Wuv?Q}s%sW`BNp((4v^Nb>R3G&RkN5P?hhhra4CQJbza*a;Z&u2LpFMwuTiEgfma z&m~mT3JX_oCZH|^3?wgB%qbqLbK9bzpkOHcSX2G4;yY_g&#=zADMdS{3yxr-<*LG( zSI7?E`9YFWNFhfHX4{!hSV#TqDCs(LOF|+qHumt2G4gU1@lve5sY&$s@!C&|in!$D zerA}}yRQfsr7U#hnQTl+7$T7lkmSysR!RG)4_$y9VCKA7SEqb5f$C0>;S4lZwgN!M z=FOXv)KVLVreC*OSz3;wf-u)m4Ulx5djoNn&4l(|9nDBdv4j*ssV%HoPixyyBpXq# zP5PEa(PXWhDWRgxP>bJAb9@3_*Bal(+0TIpeEg4rD4Nbc-|NcY`+ybGzA+!`7gDGhJ& zh>0)MO`G!0i#}EB?l{NB#d-VqP(&NKb)kk>5fm5C)hqHKw+{C9PB)vU7EFGXa49GZ z_t_k^H6Sn$+wTe&i0qV#*oK=2Kylp}81QdPkr&lp8zY#FD%w^0h(OA;%Ax30>E)?< zugyCw>t%1?5r2>$s$ zR7+wIvinXtA;5IJ8OF!Qff0`I@;W#=iq2+_N~$Ptvt0dWBYpr1{<(>K*Iq=d0(^v; zKZQfyzMXCPmVp7A;>Ts!27r-5kL3m1{;zUjFlB;*fz8%qM$P1ziQY>1@-ks5DJjp5 zTmO-<8)`&asGj>>%_8Xn1E^i-_EW`><{Q`X_`^ME=vA*>V?TWO4cv)la;+(Z zi!dB;nFTnQZ#s`F7aJhl@0DX9QM`sG+ z;^SvWTAC^<65Th_Mpe5ljem}Gn<$T!^GEfBK#h;|K*0vfN>I~}PNh-}x5o(9bsX68*P!arFu zHAg6k$Ew3JO)|6!WBQl z>So>I{ffwu#}kTnxLr+FrDv5|Lfx#pnOV1>r8@TnCgNhGl;oj9h7c_y&QrIe>jxr; zm3a$ zhtK8Y;0Ou|+QPPrTm4TNvlTi4*FQhmUuK?D`iRMIuW&_6ie&uC3Nq-jt^iHG8cqtRvvdyKhDkMx40J-YLaoJ>5>G>Xi$T0lM z)6>()97zqJ!Bcr-h31{SkaY*$AJ4bi){L~~T-|gWxP_W_7jZ!gMVE<%MORt*U|ZrJ ztTaA8o;<+T?gul|;W}2Z{m{AWygX@Owe=h6PB@Ng`-`9=Tux9yzJ0#y8dn1>7gRVi z83!iv(IW*JnR`AypFiAP4_In8Ft##6?m&H^+avG^$OGycOgAA&zwQ0$+IC}Ib5Zv-?$JqA-|EXb5keI!x43>O6JR_4e(vc8R0EmFF z*n3-8Zg|hCs*4F9feA*(#v-3RWApj~Dv^{#yLGEYq+x;I)M(oxWMja}6HrxH*s@#2 zMotijUSf!Y9dz=AI>f=?YGSp25VqsZvfnqOxHtza&d9VD=J##3rI*v0NP=< z5U8c4y#P&8ZgYQh++Jn_C%$;`;@vxbpidZII17k}lT+VhO==>N6B23%?4Z|eY;5Xi zO0g3L1_t5cg#FF>?mQyy_3LfB`Sp=;KNd2RVJ4_F9EmsZ)pd|DcMma59iM}B@*DX0Ipl>^Qr8_W%- z*TjkrJx3*im)UcBgJ%7?NS)$NQM_Mu@S2ik#k1SIc`J^`G{c!+9SQ z6GK#&Q^dvFx2^9DKM$oAMTCURg9lSM(@>Mrf-Ef?2u&;vP3w;4gy&^)yo!yEzvNdm zKv94!FUZTMWn|n+*$VLVC5X~HB>g@Bj&$|vRZ9P(O0cH&wT3(4?mjfjZvW5r?Eu*Z z78d(=?P^54V@W8;U=e<-(uLD`cRrzw(B6*o3KnFCe2Gk{xVP14i98~-%W+N#aU%6c^YOI6iLhhdbT7s?4sm3k{_ zI7w)uqLOE}9d9d=T3wn1qwL5wH6zTNCj$ck5xSEywFY6ORaJv*jzgLrK72;AV~%A7 zhDCnJH_M{shKY%&(H91@gG%=HnGD5F<(xV~?MvUN_S`gJudJ-J>QDl81f|@vWlL-+ z5&~LwptyZpx4s*2IXePf+W+}=8e&d03GERy8sb!we2oK$jCU)u^Z)Ch2^JO>V%I4R zL<(Kpw|jRs6e}Jb4THdAYKaYl01a9i8k^a8b#hg%UbVI5M5?-Z$fZCE@Sy)|IIx0d zvO`UTB)V{WrQEU^4xT)@G&N8U_CiNXyF&)L(_^|p4e3ChJ=N0U0Kv_D3)Kq*7^xC1 zYIs0r=)};B&6_rv?&I8vYuB#!Y@3+q=;(Kp>vDYk+4JYsR8>7-+3*<%s1`&$jBaeI z!ViQFU;?%vh))mDPs;B1WkWTTqa@X2z@(rIG%i-LK6K2nuQOvEdc>yahMSWU6Qgr< z>%>fxGQwHg=qu_o6bL;177E*NS0)47fNHL%%~` z2Lvzbp|@fuv|*6aG&i8Z#KiTRM@Fxp-5Vid5jq}n4_W~Y zjatG~sAy^8kq{@PbAjxH;|}p1A?5CZ&75{wh97>iUt(r3DHUp{_DA5km}iB$(eE=d zguqOZ?~u5H0s`jd=K%pmqJ3DNXFb^?SOzAc^lKGz8NWhkK!Dw1*wt^hfdjPB>;w?g z(bm3?!VD74LC}k~fos5%IE=O)U8X?*30!g%o%sdM85o!eqlQ;qoSZJc;Q#2P^$E|? zn5w6D`SLgXGs=a?it>Hv8_~muKh0GKARUe6PhL8Ew)Co!B&GKuPtO~ICT!8_venUb z{y7q=6HvW)={r8tKQ!bTCQs~QVyX!f9sBX#5KC7&IsOSNhK6T&g$x<{95RB^=fUGW z-hPfIC^R(JeQ^d%L`b8f7##u88~nQ`CMU5T&Gy2KjPE#w;h(9aV%XA2%`73*cNWj+ z=;++KH4GUcYW?ffjxiT>06kXT*wz36R1=zwl8eLX(EHE?f@@-X`0UU04yW#|=;rv3eBW^I-aTEX zPH#%1@%FZ1ta@Q)BuO<%G3)$K0rzEzL7Y>IN3ODWvOX8Ekw{U7-GE!KKc1u|M>|p* zP!ZchsP#R#0u!U7Keom|=9?yf-UZ4Vk6t1Do`Y1K1R_j)^X5PnUYo^9ypL>QZf=h8 zg;SqRD8QHjB^80W*B5X<#1&+O6BpFEiSwpA~(Be&Q>L48?k}tZkl>d{S z9>P|Uha9Q5QxT@FT!HeG&okl$ie|>onRA}%SG(*Ds*D2UkEW)ku)i-}(bKbnZ^QFt z&%&NqAQ4|mYQTg8e+%4DYd^T7qN1;AQYM)!I;&1w7ILvKvyjmhu2;wttuGs@2--h z7%Ft1U;ih9nOW-$uYH0@GwmJgXH;bozZxsJ+s?%^$s)efKu1EWO)*kBl1G_~k$%>C zF}>)7mHEsRr)%5o_@apVr3ftn?(gY&dCNLrTwPe(6hg?llq ze&wATaT|ZCKb!Y^ur@+RQ}DT#xYp(E^);1E)mhc9f1imMNwyF1zSI%b#JplMKCVwc z;8Vvu-C?4;L*~1={d$+|=?S|pd_cZYJZ=@J*)4{S_ItLoWYg;E=y(W zz)0cDsY_~1%z8~z+w9COG};MC%Q+TY_eNaQ1f{> zct5|3nO$^nLP(S&$#oN38gKBmrh(XP=FD~yf)hJlJhohg|nYB`wuM#%6ltE zJ0LyW*z2^f?ag)VWy+g6n@Szj%C4Ce z1V8d+DE`{~DoeMi^@8?@xQ13DnjosXgtxA?yv>pNyI(IexzfKepV9GbeC>ahUTKjf zV&H@teZD7|=pXJyMr@L-g^>z@YBIMs?wJ)FVa5i4$E9UgLe9FLiWd7bm zd+DB&i+@%xx$!?(Eo}Ov&+u?nBjNIqPvJ)beVcc$)V$W3`5SsYZ?AROyNtW^F0k^o zziE(v#*g^!QSrx%|FvrE@JQ`HdxmOwX=s=xtdpZ_hd(xfbP71(`P^&N@0SB4YHG zUmjD`wH~~+XEBP*aNSA0NoS8*dTM~V{Q`D;i??+qxqYsZ{TOYWs?}whJc(upal5{S z@mA$PWrKRThNPr!tA1gbO`^vXj4u+Y-=`{f?UFZOC@IO!TG`YRvqmsT-`bH2qN%Ib zZce(Gcn#Eb?aJ5@eB6Org!uAGxJX+^r@*xKps1)Qo0o2?ql1ITU_v}(4NyBHtkB4a z#VzMQzdoX2BDwH8rc78od=#*94wjwFH%Idjw+PBaj~R97ec~ z9^Ec;a^{Djq{|d+BgX3@V_BeB-Q3-~ySgagf`B_b$_Q3o2^uYpIW%QY6#v)p@w9Bf zdBY7J*q_AV`h~BvqmF+s;OutQ`r6~TA7^`*S#{|Z`D49Q4BC#P!se5Z?$AW zyjIlJ3GniMrI6HTsL^n{Q##IiZGj2~1?3BB}V z^o(vYY^PjoUg}^17|sBw({z64cs{i$5*h`5U6m^kv_}!QIdt$~T6#JR&&7xVAt~?`PzJuxz<~On1=((U@;3+sO$mz|wdz275Gh^^<>lp|-w=fO zeyFkcC?~t=00LwlU{PG?e4RLP0&KdXVi4S*Oivn~^eLMxC@pMMfP|^g-T~!Sc!ZLY zL+G5G*wG11@-8iHVtRU~43>PM_SD(4-Wa$Wp>h8GEgG~wQ6-T;p_88eezj~G4eM3> zvcfO~7$$>zS5Z|RoOXdV`^@6XjXv17Xjx28Ah59Gh>b?3xLQebv*xDl|NL`%w3Px zZ3KS37KlX5=m9MPLhfc}m2y+hoeSOv8uII-XG%&6T6cNX2l#Yy?I6oA(S&V-0|Nh1 z*s%}%8&2`O@7~^?9<)H%Aa{TKP{(Z9%a?A5f;eU8k>xD7R-eD`c}hn@r@XRchO5PS>x%HUY@Xl!^NOQ_z9cq7&F=H z`x=lHa=a2lXFNPSF)=Y{Qd^~zv=_Kygk>Bi`zYx-BNG!oc_sR?+k9^@6Q3@mQ3jbD zEFvZ@j!sm21MAkc5G3YrTHJv6QBBrl_u}78hu{O{%}#jt?ptN0LiA%lUOB;wVP$0n=My(VC@~YFmX9Ak9IT6bH0AXO(iYZ~?Tm$m1qe32371g9 z$Hqp?ag;e7fNsaF>gZ?*VimKzYXf{8$y%apXG~4ss2uF30&hh3)E&tLL$E&z-CZ$F z;lF(^-F-~*Db)I5V8X^7G%(h{)zy^=C3JqLHz8A-Ce5_A6|;{;oFYmA+ed#?>GQX~ z_r+@L62|)aZdh6AsjBv2{6h+5RDcqdeCSSX<;}H&2&9`knoZ?n8%SP)X~`6`RVG*!4E{ z_B_12I37Wx-p`7uF>XrfSSkHB-FH!4Lj!P3H{1GjbKdx(;@+!A7?s-|@0Z6D$2JWi zCBUQO>|t=AhKP{FaY$+!Qi?ctl&S=PJc&eI*Oaz} z4KqpB$Q}XMTa&WM#lhfSdBHBpc zy*)if-ZGtIW2}sf-yI0iwf!;bY;-)n_9xN{HHmg+N>>K{uPOMwBlQ=im{oc{zQw+~ TT}wA8|15X*(wP(){d@lby&~NC diff --git a/development/tables/lab-results/lbt14.html b/development/tables/lab-results/lbt14.html index 4dd2134ab..f734f826e 100644 --- a/development/tables/lab-results/lbt14.html +++ b/development/tables/lab-results/lbt14.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1632,7 +1632,7 @@ @@ -1786,7 +1786,7 @@ @@ -1940,7 +1940,7 @@ @@ -2093,7 +2093,7 @@ @@ -2317,7 +2317,7 @@ @@ -2519,7 +2519,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:54:03 UTC"
    +
    [1] "2025-01-08 17:44:12 UTC"

    Session Info

    @@ -2535,7 +2535,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2552,7 +2552,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2562,7 +2562,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2579,16 +2579,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2596,13 +2596,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2615,17 +2615,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2636,7 +2636,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2656,9 +2656,9 @@
    diff --git a/development/tables/lab-results/lbt14_files/figure-html/teal-1.png b/development/tables/lab-results/lbt14_files/figure-html/teal-1.png index 867b09c2a9e8c24411a5d8953cf6b794de32f41c..a3d5c0131b566de1a974677281b0fd11aa39c67a 100644 GIT binary patch delta 8313 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 delta 8567 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 G|NjNoYX6%6 diff --git a/development/tables/lab-results/lbt15.html b/development/tables/lab-results/lbt15.html index f14a81ddd..a1e071958 100644 --- a/development/tables/lab-results/lbt15.html +++ b/development/tables/lab-results/lbt15.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1557,7 +1557,7 @@ @@ -1616,7 +1616,7 @@ @@ -1876,7 +1876,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:50:18 UTC"
    +
    [1] "2025-01-08 17:45:13 UTC"

    Session Info

    @@ -1892,7 +1892,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1909,7 +1909,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1919,7 +1919,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats * 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1936,16 +1936,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1953,13 +1953,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1972,17 +1972,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1993,7 +1993,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2013,9 +2013,9 @@
    diff --git a/development/tables/lab-results/lbt15_files/figure-html/teal-1.png b/development/tables/lab-results/lbt15_files/figure-html/teal-1.png index 9d39beeb9c245c50d431b547caf5461929fb218a..be854d4549e1d7fd05a317efc1ceecdba5822b0c 100644 GIT binary patch delta 13527 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 z zPD4kcjMQMjC{ILJ z3|0VJqqD$*{sk#J6l0&ApbflP05=$UJ$b$OcQ9tisF7k0M~@vFg(2-95HLGADGD1p zS%=7jm1WoiAXrv*f%FMt6{tYnYt=;Y{N@N7tQaT};}6NXxvrQprGQc>WBmLS-DU=DX2&F_s|0KhL#M-5nzkLoVT6W-iQ?;n7V2zB9=JTEhWL|<1h(iUo!|;)qs3`cUo}M1*6Q*fC;#FLXZ!yzT5U6^2Q|g1v$BsVG6K^F=+FTzyC2lzF%{5S*fWz$?z8dQiYEn zzZj=7)||!#lL8}SU!I<$rKNS6?4+`^TOqbhC|Kq8i!(zd{8d2wo4kHtBnX3i7`q4! z`wTK;VQ%it7~r?>0_;Z1(axeGibG+Vkqdzns^mvMhT6)?AU`lD@bcbFph5@~E-pES zftawwy0?iZYfzAmv~&sl1R>^XSkU)zQjj)DpP)+@0oi~>;Y!9^vueQ;I5|tqg(~5{^(k+Q_RK5fj6{Z{Mpr6K_V! zK%u<68R(~?Vs%!hXKRX{B<6i`ivI#zR#Ljp`26L|m+9$W2})>xl-e~haN+Z~;wMj@V5VaRnX4cx`%pkFc?kX;OtHtUe0+Q;ZHkJDn1sO@ zKyE-p0D3~_4S>gjDIpHVhi1g@zyGeCYd;jiwmwq)j|0=UG-qTmkrqZYn-_)&V~83W z1p**+0|zJ-P^&dK85jsuSkz$*9C>{>*cuuf491z4ovjV=Ydpt&AyqB0pyS{@&R`Vn zoa@K;i8+nC!(xI5kl2VT7=h*C=j*Gfgh|P!k;`!^8jBAxLLl*dO=nNi0LPU&k*7eDfEGrhB} z&FKsEWGNNo=TA*dp&Cm`d9h|5^nL~Io0ynqw1nt@WpR3OFgE1YwfYyb7*xXxUbsuw z-<$2l2p#BFP<4^f~QYf-;CXea}tRpa-_VoQ<96T)I_jia`#jv zC-elIzrCYl2kHUq8|%fHn_-sborPG%a=1=83wUTQj%S-90uG{gOO_R}Ja3cM?2gH9 zNVCw}F*$09In-ywvvW#H4`W4>WmB58exu)i9oe&$^6Lwjl(=>>3?pt}23A4kS1w-; z!YD|5Sea$tkgd+Yrm$$8?6%i%_CAWlII*3rEy`>#YZt5m$+9>I$l53ZFje#17i>3g z_A`!l=||jvXd{+5+S`li2op#Ee==>JotbfmkJqR9LeWx>?vk!< zhx54qa{dKVQ&Zf})vMnbB$t0y3DnLnE`p<9jjfv*YAD5v>PJDSKwpL;>w=Q#)DyFV zlH9jK;&a0^sK0!JU$RIu3cWN<%ON?l*81)S1#{gxxB9K&`=x!N6h6{bM%ChFsDnbM eY$<}|`%APN7%ch6g{hM@vVSR^PbOcx{l5TquLAf0 delta 13311 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 diff --git a/development/tables/medical-history/mht01.html b/development/tables/medical-history/mht01.html index f134e1e6f..e4418110a 100644 --- a/development/tables/medical-history/mht01.html +++ b/development/tables/medical-history/mht01.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1575,7 +1575,7 @@ @@ -1633,7 +1633,7 @@ @@ -1725,7 +1725,7 @@ @@ -1832,7 +1832,7 @@ @@ -2012,7 +2012,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:54:33 UTC"
    +
    [1] "2025-01-08 17:41:40 UTC"

    Session Info

    @@ -2028,7 +2028,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2045,7 +2045,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2055,7 +2055,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2072,16 +2072,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2089,13 +2089,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2108,17 +2108,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2129,7 +2129,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2149,9 +2149,9 @@
    diff --git a/development/tables/medical-history/mht01_files/figure-html/teal-1.png b/development/tables/medical-history/mht01_files/figure-html/teal-1.png index 8038d6d15a7d78e0298bfd0044d5bba389d52009..c33c390ea381fba8ff81dba6865befc090078b41 100644 GIT binary patch delta 6672 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 mol

    Output

    @@ -1566,7 +1566,7 @@
    @@ -1663,7 +1663,7 @@ @@ -1759,7 +1759,7 @@ @@ -1821,7 +1821,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:04:44 UTC"
    +
    [1] "2025-01-08 17:56:21 UTC"

    Session Info

    @@ -1837,7 +1837,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1849,12 +1849,12 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1868,33 +1868,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1912,9 +1912,9 @@
    diff --git a/development/tables/pharmacokinetic/pkpt02.html b/development/tables/pharmacokinetic/pkpt02.html index 65500eb7b..420a6ce18 100644 --- a/development/tables/pharmacokinetic/pkpt02.html +++ b/development/tables/pharmacokinetic/pkpt02.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1580,7 +1580,7 @@ @@ -1662,7 +1662,7 @@ @@ -1686,7 +1686,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:05:04 UTC"
    +
    [1] "2025-01-08 17:56:34 UTC"

    Session Info

    @@ -1702,7 +1702,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1714,12 +1714,12 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1733,32 +1733,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1776,9 +1776,9 @@
    diff --git a/development/tables/pharmacokinetic/pkpt03.html b/development/tables/pharmacokinetic/pkpt03.html index afd990192..110b3a09c 100644 --- a/development/tables/pharmacokinetic/pkpt03.html +++ b/development/tables/pharmacokinetic/pkpt03.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1610,7 +1610,7 @@ @@ -1696,7 +1696,7 @@ @@ -1773,7 +1773,7 @@ @@ -1847,7 +1847,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:04:57 UTC"
    +
    [1] "2025-01-08 17:55:52 UTC"

    Session Info

    @@ -1863,7 +1863,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1875,12 +1875,12 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1894,33 +1894,33 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1938,7 +1938,7 @@
    diff --git a/development/tables/pharmacokinetic/pkpt04.html b/development/tables/pharmacokinetic/pkpt04.html index 65ea8b614..9e20e42e4 100644 --- a/development/tables/pharmacokinetic/pkpt04.html +++ b/development/tables/pharmacokinetic/pkpt04.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1588,7 +1588,7 @@ @@ -1678,7 +1678,7 @@ @@ -1702,7 +1702,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:04:35 UTC"
    +
    [1] "2025-01-08 17:55:58 UTC"

    Session Info

    @@ -1718,7 +1718,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1730,12 +1730,12 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1749,32 +1749,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1794,7 +1794,7 @@
    diff --git a/development/tables/pharmacokinetic/pkpt05.html b/development/tables/pharmacokinetic/pkpt05.html index 9ecdd89c1..d85b7998d 100644 --- a/development/tables/pharmacokinetic/pkpt05.html +++ b/development/tables/pharmacokinetic/pkpt05.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1586,7 +1586,7 @@ @@ -1650,7 +1650,7 @@ @@ -1674,7 +1674,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:04:07 UTC"
    +
    [1] "2025-01-08 17:56:12 UTC"

    Session Info

    @@ -1690,7 +1690,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1702,12 +1702,12 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1721,32 +1721,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1764,9 +1764,9 @@
    diff --git a/development/tables/pharmacokinetic/pkpt06.html b/development/tables/pharmacokinetic/pkpt06.html index 09cc1bb67..7f32fdf59 100644 --- a/development/tables/pharmacokinetic/pkpt06.html +++ b/development/tables/pharmacokinetic/pkpt06.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1564,7 +1564,7 @@ @@ -1630,7 +1630,7 @@ @@ -1656,7 +1656,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:04:21 UTC"
    +
    [1] "2025-01-08 17:56:05 UTC"

    Session Info

    @@ -1672,7 +1672,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1684,12 +1684,12 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1703,32 +1703,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr * 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1746,9 +1746,9 @@
    diff --git a/development/tables/pharmacokinetic/pkpt07.html b/development/tables/pharmacokinetic/pkpt07.html index 4fed418c8..5ebd56518 100644 --- a/development/tables/pharmacokinetic/pkpt07.html +++ b/development/tables/pharmacokinetic/pkpt07.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1667,7 +1667,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:04:28 UTC"
    +
    [1] "2025-01-08 17:56:27 UTC"

    Session Info

    @@ -1683,7 +1683,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1695,12 +1695,12 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1714,32 +1714,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr * 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1757,9 +1757,9 @@
    diff --git a/development/tables/pharmacokinetic/pkpt08.html b/development/tables/pharmacokinetic/pkpt08.html index 0c0117db3..95e74cfa2 100644 --- a/development/tables/pharmacokinetic/pkpt08.html +++ b/development/tables/pharmacokinetic/pkpt08.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1592,7 +1592,7 @@ @@ -1618,7 +1618,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:04:00 UTC"
    +
    [1] "2025-01-08 17:56:40 UTC"

    Session Info

    @@ -1634,7 +1634,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1646,12 +1646,12 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1665,32 +1665,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1708,9 +1708,9 @@
    diff --git a/development/tables/pharmacokinetic/pkpt11.html b/development/tables/pharmacokinetic/pkpt11.html index b33905fbf..7644519c4 100644 --- a/development/tables/pharmacokinetic/pkpt11.html +++ b/development/tables/pharmacokinetic/pkpt11.html @@ -1465,7 +1465,7 @@

    Output

    @@ -1565,7 +1565,7 @@ @@ -1677,7 +1677,7 @@

    Timestamp

    -
    [1] "2025-01-01 18:04:14 UTC"
    +
    [1] "2025-01-08 17:55:39 UTC"

    Session Info

    @@ -1693,7 +1693,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1705,12 +1705,12 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -1724,32 +1724,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -1767,9 +1767,9 @@
    diff --git a/development/tables/risk-management-plan/rmpt01.html b/development/tables/risk-management-plan/rmpt01.html index e0e554df5..eaacd8bbe 100644 --- a/development/tables/risk-management-plan/rmpt01.html +++ b/development/tables/risk-management-plan/rmpt01.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1548,7 +1548,7 @@ @@ -1805,7 +1805,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:48:01 UTC"
    +
    [1] "2025-01-08 17:57:36 UTC"

    Session Info

    @@ -1821,7 +1821,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1838,7 +1838,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1848,7 +1848,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1865,16 +1865,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1882,13 +1882,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1901,17 +1901,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1922,7 +1922,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1942,9 +1942,9 @@
    diff --git a/development/tables/risk-management-plan/rmpt01_files/figure-html/teal-1.png b/development/tables/risk-management-plan/rmpt01_files/figure-html/teal-1.png index 806b24d87561709100f61b2070819641dbb8305d..35a9e2916f12152cc3f63dd8400cb1c121f79c8f 100644 GIT binary patch delta 2481 zcmcgtc{JPU8g5NbwJ55}OkI?r)Y7Q6)=W`VwTzw8T520ZY>g0+j0ze{GES=*Yi_Hm zr4pJF5=swgEKOSb60ukAo!Ej1vE84}x#!%!?tk~bf4%4X&i8xY=Xsy^`He1%KUx<5 z?cMRQnd7CD@tNbAQm9fLRdFo1I=NfQ+tR*}BxtLEH4&N9W09mRhnsDB^1v*r=05Xj1)8yIR)ZhNZJz}SV| za6g9w0Vm9L>5^LKl4)duR8D7VYAUFGFEP1qnN8UhiKIHUwY8(7qP`f%!r@dh*{IlA zCwG0~S5glth?X2171bTuV72kdD4;3ktnDWjtHL}fA~|_$UpS4YQIY#7(b`)5bM2Ov z7J)!e>q~mdCIz+_8XBsjQ`TlOm=T`d(BT^Iw5=t7t1L&2b>P`5hbBy5b%yqYy{)a) zEppP=)7#!hnlI)lg0KYzmviN$PMXC{>7lwikk%iB7B<~IaqdirpgGHq&VdQc^)SL9ml zR&FsoIl1(}A}1%Ob9Rk*m-c>lh4$0M`h@w97z~ERV#$E_3>5OtoH+w91JcssF7!Mm zlgU|GS<1@FAA;9%RFS{aoT@y0iGkxZ7-=}V4K9dA0paQS7*Shu6i%o3$18EhjW(bGsr6cGAwJ)(LZthR+Gq6Q?d|KO-q~eup<*cvK zS@L;w2}#LAyZR$Q$7X_-5=!ZzypcL3C8cw=@0yxMMnl({bc+v~0=C0vt|K?IVK`gxZIyq1nqm@?SrL5BK;CRYLmK_``={ zYF+HOc75Ey(2zWiL1wCh!9iD=4W#ZzNB2S~hurJZQc`;&9;v40PTh#IWpWsW5!!&o zVy)A* zag5IdFbJKpy%wS^zYcFpPfzEk>@AIxp-^b#=L#1Mxm?uqp`oGe{eviD_`%-J+}zy2 zz<}1a;)x^rI;<-E$OcmLi_B6LoE9w{fv{4+nVFd>W%myZsF%`};#v#w_{avouzJVp z!OYCeQq$Nwetut|cNb5qp*avjaWRH5U-B}2gJ}j}R5Fb@m1S$_p=T``uJ!Glt?!)e zeu*l$DFS4MJlNq1r_$WKhbt;73JcHT`!vyx8gkXHX|^Cm`01^>r2VJU|ut0ZmWvc&*1hr1zpfJ2JjAF)^{T zvjY@88{Z5>L&H^tJb_TSyMHh>HB}ct5$z*?z#LI^Y+IN*8S#uK!UrKQqr1Zlui$@W zH^q)qRyZ_nVvGC@ckjm5)>fl|N+ zxB2spjg6X`n(NYv08BYd_t~j-)bwopwZBP^djd=GxF;-Gy+6up(0B*FyR~fl=);HW zIh`mz%X0OF$LpphQ^IF1KSf7Z7pGz!-FQb?nz6aLIgs%~b^@Ty_-k*pb6e*kqNAhv z_2DG{HaHZR=%vRPdZ?j{KFszn4yx0{gygYy)ZyW7Lri9ONolEN^3vE#mr@-a9keXq zaWyq8Cey#pr)BL~bMqL4(wByctf`>_!$=dZ=iPcYS2`==J~*B zb0G0&Z4I+~ttknBhu#+6Z}3Y@Oq_!A>Xw|&so9$bXy?8~ZJsy?SNPWcUf-S~0eZ*7 zL$1I9aB++Br+o@xp}_JylYI{Ox{}_DY64Ou67bd~u#=O4E`wqj9d6+L7d*H{Io6>P z*9yxd@&K#D*xMrAiA8=`_A=I9ol5L$zNqT*HiB6~rCQK9HUSGqnA`X(r`6v0@Mx>=X;9t>a6R3eVCOwtZVBrp@Oh&o zFk-u&$jkVtgS(+AhnZ*KcvKq`69HW@2(S(+l?v<-;aY;N4etRz)&#Eu0+C+5ii(S) z`03H zzHsY?yRl1cU7cWepTptA#>P^KfX7!?z?~urGsR^9!K7|P_}`mgvm+xSfPKGxJ8w8T z76KuXNUJL=?-S-7EXt*`Y}eJ#z6N@u(P&jwbc6hok_&2GwWRmJvj8uzg=88&;5)Hn zD1fC7@Wfk14|wkN{}!M~-!4#txI`vmoWsPW%Q`~^GM;ZQsuOrJ*JU`t1sZ{2XU JC)x%-{1?PztrY+O delta 2560 zcmbVOeLRzEAFoa|&q=6+y!Ghll~K_!q9l18@uaLwElFXd^1jx2%u9KeOye*!9Z5LI z%S_&qI5W#Mnl*2;ybLq*l9!pyxjCQbkLP?o&p+q)$Nl+z?)$pG*YEm$zt{J=l0+bm z2=usW^VgxxlT_}|=7Wlu-cq^wGjf+2bX*x;yR(O)3i;ZG%(lrrmiDrH99nQ?t5K+( zT1Wky{hG4a^qzmvX0;4(W*Q}52l`y*F~ezwWJBAH@5O!I5?^f~q9wa^8EWw)IG6Wi z^nC0!bXf0wYe8%@`|_Y5_C?aCEt}Tk$ga$78;SdYlb9VFS*~3c`vC$DUzz!+T;f%% za)1OQcKB2Kf=xA3bS%Amd>ZZz|NhA=CMKq`vXUG%mg(Yrj4&w_)K1MQD}o|g6# zc3HN>i~BG%H&>zWXc<2B=FOX=RwSa#EY(3jjo#JOm6es{vUL5pITX6Wv=sZnAIT+x zJ($C=`Zc)}N`j&GX=rF@YpdGY9oQB3A=j%Itmf?L*-dg*h_@AVl0#4^M92MQ=h?`9 z!F&gk`J-O=bicQkSM@h^Vq#(^$?`Dv$dMyoD{s4nhc7laH>>-`?!wtq;K4pVq*i2R zPR^oKM)&h5W;f2Y8>l6Z4t`i;Q8sPD0Lz~dU%BM3hjlMzgOs$Nmq}MvnAsMdzP^~t zMsI)3$!3K5A%qZ4|jy?VMqRnOKNUq3yxh zEAO|S3N@dW!K`$bq%!G}*eufpjYek}`4klv{$uNw(a})?fpEF>+PiQO{NY0iPh3`1 z)LZ*d*w&WB5e`s8cnxtp$-g$Q(;4Yd0;#O&9_t_it%+9=i9{3%1w!l)E-;x)O~vhw z_@_^wVpT{aQXdBRu{!u_aBwgT#^hGsHW|>;)Er56&_|kT#;XMO{Px7|K-k3ueMcZo zUF*Y0Ml(=U>Gz55%tmXn_?;kUUJ{G3pv&d*)YM%RIEhFUhS!;hsHg#G)SREErzZk| zh=^EfZnlMzs{2Hi5!2dQT0*gy3NM+Bw9;0>a5x+-#e`3`sQ#LJ{N`;q`!uI~MD)bL zVz#DI;txMRR{6Fl>NCm+WTb;lOiWU&=8{xw%Q)(4YR_=EJCt6(lTnjj3g5l6(8JP( zz2WdK;liObM}>wZ=yk>r=v$HdlgbEByGfCzkV!)P`R~5>U;HEEM zzRV8OE*)cQh1Ba|BUfi>DY~auW@-Cr$P*ciTM*)?j~<)Nj*5!PMA*oe^XPu~H9C(s zK0dx6QZl-(FN)tgfzp+u#2;FJakx zxhBqDFg6x;|GqJz-rU-{lzrDXlE1Bzd+o{?VIZr@ zfaDzVJwVF3sG6dDj1G7He&V2rrI{m6rFEl)5J zJaokM>$$nPLmg&37yaEjIy$g|`!{Z!RVaTb?2$;K-Z|^&oXW z77N&w!?YBJ+doqsUUg4k%FD|K2N49PgJM!9nT(k%EQpSdex_}K1UQ_sS11RB{4TqN zAG!)?iOc1dHLetO3OtM1Vbi%Dh0Xk#*RI4I^dgs$VH^SM%BrfGfoYT5%xjIYTohFx z5bV(N($-$@(Bs5`AIv+yG2@P}?Qz6Uuf+pW6ZM|LM1io~6JG*M0dc={ZyODxpWhc= zhejfiVPRq6;ngK2V1iTpNB&LPGYb;a?5jCX1)0f&v1bS3Z_@>XTp$b$;kF z>%xB77%`;1y}hEMq6!{-=@L5~eD$Qyp+ko%D!d+jcxsK)ccTBTlK%n)d4c%B$ZWKNM+CMxzjMoPn8#8Y0uuTdujg~Ho_Ku|z78W?ZYjX_a zu%x$DRelg+iI=dY1)FW`;_8a=F7ZmC%`f(aP^+sU5J*oTE<+IVu-A|Oa&){Vxn8B1 zUHkU!@zbZlSPd;LDS$s(*Y=Yk7%Y)Ja>OSjBmgXrbQq^%9PAp!C0D6x>guDDDZp-V z#((MQf!Np>J9afSojHI0JPZZ{%mk-pHo`5vN`)!xQrJ3j?%bngKFFfq`(EgJ12*Y~ zE6*u1>)I}a=|Ug0T|cg>rq<5hS^y*AQ%a|%rv77}_r&g3fJ!qnYJPrxX{nKl!uQ2R zCw$dyOs6ghM!iW>B6o6FtW>A`r^(4?!M#=OM=i9KBt72V-iOjA=!ePK+1W2_dK+Sv zUY<(?h7=bS)z;OeXj|Z61teGjE8yCR>NdkyrKQt=HN#6FB-s1aImVnj;L+^_0|tX( zl;NE30URJZcka}&igeFonVOmgm})v=@Q|RdGwjR0^h9){d_{PSP*hYjInK(vOR0VJ zYUIh`92MJ|0aO_$W^oFj%0S)IYVqq$A0Hn9lVqZy2-wtK+kVUCW8~c%jd03cVfbim zq?^_nF`*#}8+jAY-haboH~sYz0-V3VE#$wK5I?nz;b)$-8Ezzxcc*&)33l*6<)4X@ q-Ty)Qdq6<|>R)U6dr1ES#3Bol4tCtQ5wUN*YRB_1yHeZh|Na9CV&mEX diff --git a/development/tables/risk-management-plan/rmpt03.html b/development/tables/risk-management-plan/rmpt03.html index e93d2612f..dc0817742 100644 --- a/development/tables/risk-management-plan/rmpt03.html +++ b/development/tables/risk-management-plan/rmpt03.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1547,7 +1547,7 @@ @@ -1621,7 +1621,7 @@ @@ -1913,7 +1913,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:48:31 UTC"
    +
    [1] "2025-01-08 17:57:16 UTC"

    Session Info

    @@ -1929,7 +1929,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1946,7 +1946,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1956,7 +1956,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1973,16 +1973,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1990,13 +1990,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2009,17 +2009,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2030,7 +2030,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2050,9 +2050,9 @@
    diff --git a/development/tables/risk-management-plan/rmpt03_files/figure-html/teal-1.png b/development/tables/risk-management-plan/rmpt03_files/figure-html/teal-1.png index d35640452fc4fc43252250998089f8949e7236f7..2db84b1ad2a46a6e88bd86a38f8f0c96cba901a9 100644 GIT binary patch delta 11093 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 diff --git a/development/tables/risk-management-plan/rmpt04.html b/development/tables/risk-management-plan/rmpt04.html index ba979197a..e339ba5a4 100644 --- a/development/tables/risk-management-plan/rmpt04.html +++ b/development/tables/risk-management-plan/rmpt04.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1545,7 +1545,7 @@ @@ -1778,7 +1778,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:48:51 UTC"
    +
    [1] "2025-01-08 17:57:55 UTC"

    Session Info

    @@ -1794,7 +1794,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1811,7 +1811,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1821,7 +1821,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1838,16 +1838,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1855,13 +1855,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1874,17 +1874,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1895,7 +1895,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1915,9 +1915,9 @@
    diff --git a/development/tables/risk-management-plan/rmpt04_files/figure-html/teal-1.png b/development/tables/risk-management-plan/rmpt04_files/figure-html/teal-1.png index 3a130f12d7bcf0d1a3db8955d43bd68d46821487..408dbd3f17277c2b3074744e5c83b7071d6976cb 100644 GIT binary patch delta 3151 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 diff --git a/development/tables/risk-management-plan/rmpt05.html b/development/tables/risk-management-plan/rmpt05.html index 4332a66bc..7381f367e 100644 --- a/development/tables/risk-management-plan/rmpt05.html +++ b/development/tables/risk-management-plan/rmpt05.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1551,7 +1551,7 @@ @@ -1784,7 +1784,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:49:12 UTC"
    +
    [1] "2025-01-08 17:56:56 UTC"

    Session Info

    @@ -1800,7 +1800,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1817,7 +1817,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1827,7 +1827,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1844,16 +1844,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1861,13 +1861,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1880,17 +1880,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1901,7 +1901,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1921,9 +1921,9 @@
    diff --git a/development/tables/risk-management-plan/rmpt05_files/figure-html/teal-1.png b/development/tables/risk-management-plan/rmpt05_files/figure-html/teal-1.png index 845957d1847b8e2e1ad9459168090001f1f8bb9e..120bec599e5af139fa5026377ef949388cecc5eb 100644 GIT binary patch delta 4703 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 PGBTFtw&yF&uK)fonz!}P delta 4704 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 v+T}kdEdK(h`Ct6vBDUmT;Y

    Output

    @@ -1585,7 +1585,7 @@
    @@ -1685,7 +1685,7 @@ @@ -1809,7 +1809,7 @@ @@ -1936,7 +1936,7 @@ @@ -2011,7 +2011,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:48:14 UTC"
    +
    [1] "2025-01-08 17:58:06 UTC"

    Session Info

    @@ -2027,7 +2027,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2039,13 +2039,13 @@ cli 3.6.3 2024-06-21 [1] RSPM codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM evaluate 1.0.1 2024-10-10 [1] RSPM fastmap 1.2.0 2024-05-15 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM glue 1.8.0 2024-09-30 [1] RSPM @@ -2059,32 +2059,32 @@ magrittr * 2.0.3 2022-03-30 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM munsell 0.5.1 2024-04-01 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ - pillar 1.10.0 2024-12-17 [1] RSPM + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ scales 1.3.0 2023-11-28 [1] RSPM sessioninfo 1.2.2 2021-12-06 [1] any (@1.2.2) stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - tern * 0.9.6.9018 2025-01-01 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM tibble 3.2.1 2023-03-20 [1] RSPM tidyr 1.3.1 2024-01-24 [1] RSPM tidyselect 1.2.1 2024-03-11 [1] RSPM vctrs 0.6.5 2023-12-01 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM [1] /usr/local/lib/R/site-library @@ -2102,9 +2102,9 @@
    diff --git a/development/tables/safety/enrollment01.html b/development/tables/safety/enrollment01.html index b443beee1..102bf595c 100644 --- a/development/tables/safety/enrollment01.html +++ b/development/tables/safety/enrollment01.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1650,7 +1650,7 @@ @@ -1811,7 +1811,7 @@ @@ -1981,7 +1981,7 @@ @@ -2142,7 +2142,7 @@ @@ -2383,7 +2383,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:55:08 UTC"
    +
    [1] "2025-01-08 17:42:14 UTC"

    Session Info

    @@ -2399,7 +2399,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -2416,7 +2416,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -2426,7 +2426,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats * 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -2443,16 +2443,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -2460,13 +2460,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2479,17 +2479,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2500,7 +2500,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2520,9 +2520,9 @@
    diff --git a/development/tables/safety/enrollment01_files/figure-html/teal-1.png b/development/tables/safety/enrollment01_files/figure-html/teal-1.png index 363f6cd89ac0d6c10f0043ae2223f1d04ecde113..74083874aba2003107256b8331bb390e672f0c54 100644 GIT binary patch delta 5708 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 e%imee?ct+W8l568;O=jSfBl diff --git a/development/tables/vital-signs/vst01.html b/development/tables/vital-signs/vst01.html index a1b2f753b..583917e8d 100644 --- a/development/tables/vital-signs/vst01.html +++ b/development/tables/vital-signs/vst01.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1609,7 +1609,7 @@ @@ -1922,7 +1922,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:46:55 UTC"
    +
    [1] "2025-01-08 17:39:13 UTC"

    Session Info

    @@ -1938,7 +1938,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1955,7 +1955,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM data.table 1.16.4 2024-12-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM @@ -1966,7 +1966,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1985,16 +1985,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM plotly 4.10.4 2024-01-13 [1] RSPM @@ -2003,13 +2003,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -2022,17 +2022,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -2044,7 +2044,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -2064,9 +2064,9 @@
    diff --git a/development/tables/vital-signs/vst01_files/figure-html/teal-1.png b/development/tables/vital-signs/vst01_files/figure-html/teal-1.png index 8a38e1c222a766bb380861f528d49f829dbde682..54e4b568e139a8f238fa4212791aef530f324311 100644 GIT binary patch delta 9676 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

    U9uwKWzDYfsk`dp!7M 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 diff --git a/development/tables/vital-signs/vst02.html b/development/tables/vital-signs/vst02.html index b0ec785e9..58a4bd76f 100644 --- a/development/tables/vital-signs/vst02.html +++ b/development/tables/vital-signs/vst02.html @@ -1471,7 +1471,7 @@

    Output

    @@ -1552,7 +1552,7 @@ @@ -1629,7 +1629,7 @@ @@ -1821,7 +1821,7 @@

    Timestamp

    -
    [1] "2025-01-01 17:46:32 UTC"
    +
    [1] "2025-01-08 17:39:34 UTC"

    Session Info

    @@ -1837,7 +1837,7 @@ collate en_US.UTF-8 ctype en_US.UTF-8 tz Etc/UTC - date 2025-01-01 + date 2025-01-08 pandoc 3.4 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -1854,7 +1854,7 @@ coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1) codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1) colorspace 2.1-1 2024-07-26 [1] RSPM - curl 6.0.1 2024-11-14 [1] RSPM + curl 6.1.0 2025-01-06 [1] RSPM digest 0.6.37 2024-08-19 [1] RSPM dplyr * 1.1.4 2023-11-17 [1] RSPM emmeans 1.10.6 2024-12-12 [1] RSPM @@ -1864,7 +1864,7 @@ fontawesome 0.5.3 2024-11-16 [1] RSPM forcats 1.0.0 2023-01-29 [1] RSPM formatR 1.14 2023-01-17 [1] CRAN (R 4.4.1) - formatters * 0.5.9.9008 2025-01-01 [1] https://p~ + formatters * 0.5.9.9008 2025-01-08 [1] https://p~ geepack 1.3.12 2024-09-23 [1] RSPM generics 0.1.3 2022-07-05 [1] RSPM ggplot2 3.5.1 2024-04-23 [1] RSPM @@ -1881,16 +1881,16 @@ lifecycle 1.0.4 2023-11-07 [1] RSPM logger 0.4.0 2024-10-22 [1] RSPM magrittr * 2.0.3 2022-03-30 [1] RSPM - MASS 7.3-63 2025-01-01 [1] CRAN (R 4.4.1) + MASS 7.3-64 2025-01-04 [1] RSPM Matrix 1.7-1 2024-10-18 [1] RSPM memoise 2.0.1 2021-11-26 [1] RSPM mime 0.12 2021-09-28 [1] RSPM multcomp 1.4-26 2024-07-18 [1] CRAN (R 4.4.1) munsell 0.5.1 2024-04-01 [1] RSPM mvtnorm 1.3-2 2024-11-04 [1] RSPM - nestcolor 0.1.2.9017 2025-01-01 [1] https://p~ + nestcolor 0.1.2.9017 2025-01-08 [1] https://p~ nlme 3.1-166 2024-08-14 [2] CRAN (R 4.4.1) - pillar 1.10.0 2024-12-17 [1] RSPM + pillar 1.10.1 2025-01-07 [1] RSPM pkgcache 2.2.3 2024-09-12 [1] RSPM pkgconfig 2.0.3 2019-09-22 [1] RSPM processx 3.8.4 2024-03-16 [1] RSPM @@ -1898,13 +1898,13 @@ ps 1.8.1 2024-10-28 [1] RSPM purrr 1.0.2 2023-08-10 [1] RSPM R6 2.5.1 2021-08-19 [1] RSPM - random.cdisc.data 0.3.16.9001 2025-01-01 [1] https://p~ + random.cdisc.data 0.3.16.9001 2025-01-08 [1] https://p~ rbibutils 2.3 2024-10-04 [1] RSPM Rcpp 1.0.13-1 2024-11-02 [1] RSPM Rdpack 2.6.2 2024-11-15 [1] RSPM rlang 1.1.4 2024-06-04 [1] RSPM rmarkdown 2.29 2024-11-04 [1] RSPM - rtables * 0.6.10.9014 2025-01-01 [1] https://p~ + rtables * 0.6.10.9014 2025-01-08 [1] https://p~ sandwich 3.1-1 2024-09-15 [1] CRAN (R 4.4.1) sass 0.4.9 2024-03-15 [1] RSPM scales 1.3.0 2023-11-28 [1] RSPM @@ -1917,17 +1917,17 @@ stringi 1.8.4 2024-05-06 [1] RSPM stringr 1.5.1 2023-11-14 [1] RSPM survival 3.8-3 2024-12-17 [1] RSPM - teal * 0.15.2.9097 2025-01-01 [1] https://p~ - teal.code * 0.5.0.9021 2025-01-01 [1] https://p~ - teal.data * 0.6.0.9023 2025-01-01 [1] https://p~ - teal.logger 0.3.0.9003 2025-01-01 [1] https://p~ - teal.modules.clinical * 0.9.1.9043 2025-01-01 [1] https://p~ - teal.reporter 0.3.1.9021 2025-01-01 [1] https://p~ - teal.slice * 0.5.1.9019 2025-01-01 [1] https://p~ - teal.transform * 0.5.0.9018 2025-01-01 [1] https://p~ - teal.widgets 0.4.2.9025 2025-01-01 [1] https://p~ - tern * 0.9.6.9018 2025-01-01 [1] https://p~ - tern.gee 0.1.5.9004 2025-01-01 [1] https://p~ + teal * 0.15.2.9098 2025-01-08 [1] https://p~ + teal.code * 0.5.0.9022 2025-01-08 [1] https://p~ + teal.data * 0.6.0.9025 2025-01-08 [1] https://p~ + teal.logger 0.3.0.9003 2025-01-08 [1] https://p~ + teal.modules.clinical * 0.9.1.9043 2025-01-08 [1] https://p~ + teal.reporter 0.3.1.9021 2025-01-08 [1] https://p~ + teal.slice * 0.5.1.9019 2025-01-08 [1] https://p~ + teal.transform * 0.5.0.9018 2025-01-08 [1] https://p~ + teal.widgets 0.4.2.9025 2025-01-08 [1] https://p~ + tern * 0.9.6.9018 2025-01-08 [1] https://p~ + tern.gee 0.1.5.9004 2025-01-08 [1] https://p~ testthat 3.2.2 2024-12-10 [1] RSPM TH.data 1.1-2 2023-04-17 [1] CRAN (R 4.4.1) tibble 3.2.1 2023-03-20 [1] RSPM @@ -1938,7 +1938,7 @@ webshot2 0.1.1 2023-08-11 [1] RSPM websocket 1.4.2 2024-07-22 [1] RSPM withr 3.0.2 2024-10-28 [1] RSPM - xfun 0.49 2024-10-31 [1] RSPM + xfun 0.50 2025-01-07 [1] RSPM xtable 1.8-4 2019-04-21 [1] RSPM yaml 2.3.10 2024-07-26 [1] RSPM zoo 1.8-12 2023-04-13 [1] CRAN (R 4.4.1) @@ -1958,9 +1958,9 @@
    diff --git a/development/tables/vital-signs/vst02_files/figure-html/teal-1.png b/development/tables/vital-signs/vst02_files/figure-html/teal-1.png index 756e12e0339624286e8167a1e677c2f7e6c924a7..43975fb5c61300f44402d7728d6e4ae779c0a619 100644 GIT binary patch delta 10689 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 delta 10501 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