### download.R ### Module de téléchargement des données ### Ce module permet aux utilisateurs de télécharger les données filtrées pour la région ### frontalière entre le Brésil et la Colombie. ################## ### Préparation des listes de sélection ################## # Préparation des zones résidentielles colombiennes # Cette section filtre et organise les zones résidentielles de Colombie pour la sélection DOWN_residencial_area_co <- JSON_area_har %>% filter(source == "CO") %>% select(id, name) %>% arrange(name) DOWN_residencial_area_list_co <- as.list(DOWN_residencial_area_co$id) names(DOWN_residencial_area_list_co) <- DOWN_residencial_area_co$name # Préparation des zones résidentielles brésiliennes # Similaire à la Colombie, mais pour les zones du Brésil DOWN_residencial_area_br <- JSON_area_har %>% filter(source == "BR") %>% select(id, name) %>% arrange(name) DOWN_residencial_area_list_br <- as.list(DOWN_residencial_area_br$id) names(DOWN_residencial_area_list_br) <- DOWN_residencial_area_br$name # Préparation des centres de santé colombiens DOWN_health_center_co <- JSON_healthcenter_har %>% filter(source == "CO") %>% select(id_center, name) %>% arrange(name) DOWN_health_center_list_co <- as.list(DOWN_health_center_co$id_center) names(DOWN_health_center_list_co) <- DOWN_health_center_co$name # Préparation des centres de santé brésiliens DOWN_health_center_br <- JSON_healthcenter_har %>% filter(source == "BR") %>% select(id_center, name) %>% arrange(name) DOWN_health_center_list_br <- as.list(DOWN_health_center_br$id_center) names(DOWN_health_center_list_br) <- DOWN_health_center_br$name ################## ### Interface utilisateur réactive ################## # Interface pour la sélection des zones colombiennes # Cette fonction génère dynamiquement les options de sélection selon le type choisi output$DOWNlocation_co <- renderUI({ switch(input$DOWNtype, "residence_area" = selectInput("DOWNselection_co", tr("CO"), DOWN_residencial_area_list_co, multiple = TRUE), "center" = selectInput("DOWNselection_co", tr("CO"), DOWN_health_center_list_co, multiple = TRUE), "infection_place" = selectInput("DOWNselection_co", tr("CO"), DOWN_residencial_area_list_co, multiple = TRUE) ) }) # Interface pour la sélection des zones brésiliennes output$DOWNlocation_br <- renderUI({ switch(input$DOWNtype, "residence_area" = selectInput("DOWNselection_br", tr("BR"), DOWN_residencial_area_list_br, multiple = TRUE), "center" = selectInput("DOWNselection_br", tr("BR"), DOWN_health_center_list_br, multiple = TRUE), "infection_place" = selectInput("DOWNselection_br", tr("BR"), DOWN_residencial_area_list_br, multiple = TRUE) ) }) ################## ### Préparation des données pour le téléchargement ################## # Tableau réactif principal # Cette fonction filtre les données selon les critères sélectionnés DOWN_tab <- reactive({ # Conversion des dates sélectionnées date1 <- as.Date(paste0(input$DOWNdates[1],"-01-01")) date2 <- as.Date(paste0(input$DOWNdates[2],"-12-31")) # Application des filtres de base df <- consultation_har_filter(JSON_cons_har, new_attack = input$DOWNnew_attack, diagn = input$DOWNdiagn, sex = input$DOWNsex, minAge = input$DOWNage[1], maxAge = input$DOWNage[2] ) %>% filter(consultation_date >= date1 & consultation_date <= date2) # Filtrage selon le type de localisation if(input$DOWNtype == "center"){ df <- df %>% filter(id_center %in% c(input$DOWNselection_co, input$DOWNselection_br)) } else if(input$DOWNtype == "residence_area"){ df <- df %>% filter(residence_place %in% c(input$DOWNselection_co, input$DOWNselection_br)) } else if(input$DOWNtype == "infection_place"){ df <- df %>% filter(infection_place %in% c(input$DOWNselection_co, input$DOWNselection_br)) } # Sélection des colonnes pertinentes df <- df %>% select( source, id_center, residence_place, infection_place, consultation_date, patient_sex, patient_age, new_attack, diagnosis_result ) return(df) }) ################## ### Interface de téléchargement ################## # Rendu du tableau de données avec options de téléchargement output$DOWN_table <- renderDataTable( DOWN_tab(), server = FALSE, rownames = FALSE, extensions = 'Buttons', options = list( dom = 'Bfrtip', buttons = c('copy', 'csv', 'excel', 'pdf', 'print') ) )