Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
### 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')
)
)