Chapter 3 Demographics variables

##Demographic Collection Form

Demographic Variables

DCF Variables

#Anthrometropretic Measures {#weight}

weight_measures <- comparison1 |> 
  #filter for bmi measures and height measure in label
  filter(grepl("bmi|height", Label, ignore.case = TRUE)) |> 
   mutate(
    Project = case_when(
      In_MAXED ==TRUE & In_MR21 ==TRUE ~ paste(tag_maxed, tag_mr21),
      In_MAXED == TRUE ~ tag_maxed,
      In_MR21 == TRUE ~ tag_mr21))

# ----------------------------------------------------
# TOGGLE BUTTONS
# ----------------------------------------------------
toggle_html1 <- HTML("
<div style='margin-bottom:10px;'>
<button class='toggle-btn btn-shared' onclick=\"filterTable('shared')\">Shared</button>
<button class='toggle-btn btn-maxed' onclick=\"filterTable('maxed')\">MAXED</button>
<button class='toggle-btn btn-mr21' onclick=\"filterTable('mr21')\">MR21</button>
</div>

<script>
function filterTable(category){
  var table = $('#weight_measures').DataTable();
  if(category === 'all'){
    table.column(5).search('').draw();
  } else {
    table.column(5).search(category).draw();
  }
}
</script>
")

# ----------------------------------------------------
# DATATABLE (FULL WIDTH + SCROLLABLE)
# ----------------------------------------------------
tbl_anthro <- htmltools::div(style = "width: 100%; overflow-x: auto;",
  datatable(
    weight_measures %>%
      select(ProjectTag, Variable, Label, In_MAXED, In_MR21, VarFilter),
    escape = FALSE,
    rownames = FALSE,
    filter = "top",
    options = list(
      dom = "Bfrtip",
      buttons = c("csv"),
      pageLength = 20,
      scrollX = TRUE,
      autoWidth = TRUE,
      columnDefs = list(
        list(visible = FALSE, targets = 5),
        list(width = "60px",  targets = 1),  # Status
        list(width = "180px", targets = 2), # Project
        list(width = "250px", targets = 3)  # Variable
      )
    ),
    container = tags$table(id = "weight_measures")
  )
)

# ----------------------------------------------------
# COLLAPSIBLE SECTION
# ----------------------------------------------------
htmltools::tagList(
  HTML("<details><summary><strong> Anthropometric
       Variables </strong></summary>"),
  toggle_html1,
  tbl_anthro,
  HTML("</details>")
  )
Anthropometric Variables