Skip to content
Snippets Groups Projects
ranking.R 2.4 KiB
Newer Older
Vincent DUPONT's avatar
Vincent DUPONT committed
### Ranking tab

##################
### Data objects
##################



RANK_tab <- reactive({
  
  date1 <- as.Date(paste0(input$RANKdates[1],"-01-01"))
  date2 <- as.Date(paste0(input$RANKdates[2],"-12-31"))
  
  if(input$RANKtype == "residence_area"){
    consultation_har_filter(JSON_cons_har,
                            new_attack = input$RANKnew_attack,
                            diagn = input$RANKdiagn,
                            sex = input$RANKsex,
                            minAge = input$RANKage[1], maxAge = input$RANKage[2]
    ) %>%
      filter(consultation_date >= date1 & consultation_date <= date2) %>%
      select(residence_place) %>%
      group_by(residence_place) %>%
      dplyr::summarise(count=n()) %>%
      inner_join(JSON_area_har, by = c("residence_place" = "id"))
  } else if(input$RANKtype == "center"){
    consultation_har_filter(JSON_cons_har,
                            new_attack = input$RANKnew_attack,
                            diagn = input$RANKdiagn,
                            sex = input$RANKsex,
                            minAge = input$RANKage[1], maxAge = input$RANKage[2]
    ) %>%
      filter(consultation_date >= date1 & consultation_date <= date2) %>%
      select(id_center) %>%
      group_by(id_center) %>%
      dplyr::summarise(count=n()) %>%
      inner_join(JSON_healthcenter_har, by = c("id_center" = "id_center"))
  } else if(input$RANKtype == "infection_place"){
    consultation_har_filter(JSON_cons_har,
                            new_attack = input$RANKnew_attack,
                            diagn = input$RANKdiagn,
                            sex = input$RANKsex,
                            minAge = input$RANKage[1], maxAge = input$RANKage[2]
    ) %>%
      filter(consultation_date >= date1 & consultation_date <= date2) %>%
      select(infection_place) %>%
      group_by(infection_place) %>%
      dplyr::summarise(count=n()) %>%
      inner_join(JSON_area_har, by = c("infection_place" = "id"))
  }
  
  
})

##################
### Table
##################

output$RANK_table <- renderDataTable({
  RANK_tab() %>%
    select(name, count, source) %>%
    plyr::arrange(-count) %>% 
    mutate(rank = row_number(-count)) %>%
    select(rank, name, count, source) %>%
    mutate(source = ifelse(source == "BR", tr("BR"), tr("FG"))) %>%
    plyr::rename(c("name" = tr("name"), "count" = tr("cases"), "source" = tr("country"), "rank" = tr("rank")))
}, rownames= FALSE)