Open guigui351 opened 2 years ago
Thanks for the note @guigui351. I've had issues with the timing of those update functions in the past. Will take a look and see if I can figure out what's going on.
Here's the image above converted to text:
meta_aes_custom<- read_csv("meta_aes.csv")[]
custom_meta <- bind_rows (safetyGraphics::meta %>% filter (domain != "aes"), meta_aes_custom)
#Chart Configuration
sdtm_dm <- safetyData:: sdtm_dm %>%
filter (ARMCD != "Scrnfail") %>%
mutate (ARM if_else (ARM != "Placebo", "Treatment", "Placebo"))
sdtm <- list(
dm=sdtm_dm,
aes=safetyData::sdtm_ae,
labs safetyData:: sdtm_lb
)
charts <- makeChartConfig()
charts$tornadoshiny<-prepareChart (read_yaml ('mod_tornadoPlot.yaml'))
#options (shiny.error = browser)
safetyGraphicsApp (domainData = sdtm, charts charts, meta=custom_meta)
Hey @guigui351 - that observer seems to be working as expected for me (see test code below). If you're able to share your tornadoPlot code, I'd be happy to help debug further. Would also be happy to collaborate on a PR that adds it to safetyCharts as a new chart if that is of interest.
Here's the reprex with the working observer:
library(safetyGraphics)
library(tidyverse)
tornadoPlot_shiny <- function(data, settings, group){
plot(-1:1, -1:1)
text(0, 0, group)
}
tp<-list(
env="safetyGraphics",
name="Tornadoplot",
label="Tornadoplot",
type="module",
domain=list("aes","dm"),
workflow=list(
server="tornadoExplorer_server",
ui="tornadoExplorer_ui"
)
)
tornadoExplorer_ui <- function(id) {
ns <- NS(id)
sidebar <- sidebarPanel(
width = 3,
style = "font-family: monospace; position: fixed; width: 20%; top: 88px; height: 300px; overflow-y: auto;",
selectizeInput(
ns('groupvar'),
"AE Grouping:",
choices = NULL,
multiple = FALSE
),
)
main <- mainPanel(
width = 9,
style = "position: fixed; left: 21%; top: 88px; height: 800px; overflow-y: auto;",
plotOutput(ns("tornadoExplorer"))
)
ui<-fluidPage(
sidebarLayout(
sidebar,
main,
position = c("left"),
fluid=TRUE
)
)
return(ui)
}
tornadoExplorer_server <- function(input, output, session, params) {
ns <- session$ns
observe({
# Define choices for AE grouping
updateSelectizeInput(
session,
'groupvar',
choices = c(
'None',
rlang::sym(params()$settings$aes$severity_col),
rlang::sym(params()$settings$aes$serious_col)
),
selected = 'None'
)
})
settingsR <- reactive({
settings <- params()$settings
settings$group <- input$groupvar
return(settings)
})
#draw the chart
output$tornadoExplorer <- renderPlot({
tornadoPlot_shiny(params()$data,
params()$settings,
input$groupvar)
}, width = 1100, height = 800, res = 80)
}
#meta_aes_custom<- read_csv("meta_aes.csv")[]
#custom_meta <- bind_rows (safetyGraphics::meta %>% filter (domain != "aes"), meta_aes_custom)
#Chart Configuration
sdtm_dm <- safetyData:: sdtm_dm %>% filter (ARMCD != "Scrnfail") %>%
mutate (ARM = if_else(ARM != "Placebo", "Treatment", "Placebo"))
sdtm <- list(
dm=sdtm_dm,
aes=safetyData::sdtm_ae,
labs=safetyData:: sdtm_lb
)
charts <- makeChartConfig()
charts$tornadoshiny<-prepareChart(tp)
#safetyGraphicsApp (domainData = sdtm, charts=charts, meta=custom_meta)
safetyGraphicsApp (domainData = sdtm, charts=charts)
Hi Jeremy,
Thanks for looking at it. In the meantime I tried to create a standalone package (tornadoplot) and make it in a way that it could be integrated in the safetyGraphics app, unfortunately it failed at some point and I'm unable to find the reason. When you'll have some time you'll mind to have a quick look at it? I pushed the package to Github and updated the readme with the pre-process steps I'm making.
https://github.com/guigui351/tornadoplot
The package doesn't do much yet, my initial goal is have something that could run in a standalone way and that could be integrated in safetyGraphicsApp before going to more customization.
I would really appreciate your help to help me understand what I'm doing wrong to have this package loaded in your shiny app.
Please note that the yaml configuration file is located in "inst/config". As I'm using golem, I'm not sure how the different modules are read by the app, can it contains multiple ui/server modules in the "workflow"?
Thank you very much.
That's great @guigui351 - I'll take a look soon and see if I can get it running in safetyGraphics!
@guigui351 You might take a look at https://github.com/SafetyGraphics/volcanoPlot for reference. It's also a standalone Shiny application that is designed to be integrated with the safetyGraphics app.
Hi to the SafetyGraphics team,
First of all I would like to thank you the work you've done. It's incredibly amazing !
I would need your help on the following issue. I am trying to include a new shiny module within SafetyGraphicsApp. It works well as you see below. However I don't figured out why when I include the following commented code in my shiny server the application breaks (the observe function doesn't work even without anything inside..). I followed exactly what has been done with the "mod_timeToAE.R" module you've created in the past.
I'm using the following pre-process code to run it:
Would you be able to help me on that issue?
Thanks.