Skip to content

Commit 02e65df

Browse files
Return row IDs as well
1 parent 5c64e08 commit 02e65df

File tree

4 files changed

+10
-9
lines changed

4 files changed

+10
-9
lines changed

R/fct_tables.R

+4-2
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ create_table.default <- function(
6767
names_from = {{name_column}},
6868
values_from = {{value_column}},
6969
values_fn = ~paste0(., collapse = "; ")
70-
)
70+
)
71+
if ("o_reviewed" %in% names(df))
72+
df <- dplyr::mutate(df, o_reviewed = lapply(dplyr::row_number(), \(x) append(o_reviewed[[x]], list(row_id = x))))
7173
expected_columns <- na.omit(expected_columns) %||% character(0)
7274
if(length(expected_columns) == 0) return(df)
7375
add_missing_columns(df, expected_columns)[
@@ -238,7 +240,7 @@ create_table.adverse_events <- function(
238240
keep_vars, expected_columns) |>
239241
adjust_colnames("^AE ")
240242
df[["Number"]] <- NULL
241-
243+
242244
# create new row when an AE gets worse:
243245
df_worsening <- df[!is.na(df[[worsening_start_column]]), ] |>
244246
dplyr::mutate(

R/mod_common_forms.R

+2-2
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ mod_common_forms_server <- function(
161161
session$userData$review_records[[form]] <-
162162
dplyr::rows_upsert(
163163
session$userData$review_records[[form]],
164-
input$common_form_table_review_selection,
164+
input$common_form_table_review_selection[c("id", "reviewed")],
165165
by = "id"
166166
) |>
167167
dplyr::filter(!is.na(reviewed)) |>
@@ -189,7 +189,7 @@ mod_common_forms_server <- function(
189189
session$userData$review_records[[form]] <-
190190
dplyr::rows_upsert(
191191
session$userData$review_records[[form]],
192-
input$SAE_table_review_selection,
192+
input$SAE_table_review_selection[c("id", "reviewed")],
193193
by = "id"
194194
) |>
195195
dplyr::filter(!is.na(reviewed)) |>

R/mod_study_forms.R

+1-1
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ mod_study_forms_server <- function(
205205
session$userData$review_records[[form]] <-
206206
dplyr::rows_upsert(
207207
session$userData$review_records[[form]],
208-
input$table_review_selection,
208+
input$table_review_selection[, c("id", "reviewed")],
209209
by = "id"
210210
) |>
211211
dplyr::filter(!is.na(reviewed)) |>

R/shiny.R

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
shiny::registerInputHandler('CS.reviewInfo', function(val, ...) {
22
with(val, data.frame(
33
id = unlist(ids),
4-
reviewed = ifelse(isTRUE(review), "Yes", ifelse(isFALSE(review), "No", NA_character_))
4+
reviewed = ifelse(isTRUE(review), "Yes", ifelse(isFALSE(review), "No", NA_character_)),
5+
row_id = row_id
56
))
67
}, TRUE)
78

@@ -19,11 +20,9 @@ checkbox_callback <- DT::JS(
1920
"table.on('click', 'input[type=\"checkbox\"]', function(){",
2021
"var tblId = $(this).closest('.datatables').attr('id');",
2122
"var cell = table.cell($(this).closest('td'));",
22-
"var rowIdx = table.row($(this).closest('tr')).index();",
23-
"var ids = cell.data().ids;",
2423
"var review = $(this).is(':indeterminate') ? null : $(this).is(':checked');",
2524
"cell.data().updated = review;",
26-
"var info = {review: review, ids: ids, row: tblId + '_row_' + rowIdx};",
25+
"var info = {review: review, ids: cell.data().ids, row_id: cell.data().row_id};",
2726
"Shiny.setInputValue(tblId + '_review_selection:CS.reviewInfo', info);",
2827
"});"
2928
)

0 commit comments

Comments
 (0)