Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .lintr
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ linters: all_linters(
packages = c("lintr", "etdev"),
object_name_linter = NULL,
implicit_integer_linter = NULL,
extraction_operator_linter = NULL,
todo_comment_linter = NULL,
library_call_linter = NULL,
brace_linter = NULL,
Expand Down
2 changes: 2 additions & 0 deletions R/globals.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Declaración de variables globales para evitar NOTEs en R CMD check
utils::globalVariables(c("codigo", "enfermedad", "aa"))
113 changes: 57 additions & 56 deletions R/import_data.R
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
library(httr2)
library(dplyr)

#' @title Realizar petición HTTP
#' @description Función que gestiona las peticiones HTTP a la API del
#' SIVIGILA.
Expand Down Expand Up @@ -66,6 +69,7 @@ realizar_peticion_http <- function(url) {
#' }
#' @export
import_geo_cods <- function(descargar = FALSE) {
# TODO Simplificar y remover restricciones y datos quemados en config.yml
stopifnot("El parametro descargar debe ser un booleano"
= is.logical(descargar))
if (descargar) {
Expand Down Expand Up @@ -97,63 +101,60 @@ import_geo_cods <- function(descargar = FALSE) {
#' }
#' @export
list_events <- function() {
ruta_consulta_event_year <-
obtener_val_config("query_diseases_by_year_path")
conten_consulta_event_year <-
realizar_peticion_http(ruta_consulta_event_year)
conten_consulta_event_year <- httr2::resp_body_xml(conten_consulta_event_year)
children <- xml2::xml_children(conten_consulta_event_year)
children <- xml2::xml_children(children)
children <- xml2::xml_children(children)
children <- xml2::xml_children(children)
text_children <- xml2::xml_text(children)
ruta_consulta_event_year <-
obtener_val_config("query_diseases_by_year_path")
conten_consulta_event_year <-
realizar_peticion_http(ruta_consulta_event_year)
conten_consulta_event_year <- httr2::resp_body_xml(conten_consulta_event_year)

i <- 2
nomb_events <- NULL
years_events <- NULL
children <- children[-base::seq(3, length(children), 3)]
text_children <- text_children[-base::seq(3, length(text_children), 3)]
while (i < base::length(children)) {
event <- xml2::xml_text(children[i])
nomb_events <- c(nomb_events, event)
events <- base::which(text_children == event)
years <- events - 1
years_events <-
c(years_events,
base::toString(base::sort(text_children[years],
decreasing = FALSE)))
children <- children[-years]
text_children <- text_children[-(events - 1)]
children <- children[-base::which(text_children == event)]
text_children <- text_children[-base::which(text_children == event)]
i <- i + 2
}
events_adicionales <- obtener_val_config("additional_diseases")
nomb_events_ad <- list()
years_ad <- list()
for (adicional in events_adicionales) {
nomb_events_ad[[length(nomb_events_ad) + 1]] <- adicional$event
years_ad[[length(years_ad) + 1]] <- toString(seq(adicional$start_year,
adicional$final_year))
}
nomb_events <- c(stringr::str_to_title(nomb_events),
unlist(nomb_events_ad))
years_events <- c(years_events, unlist(years_ad))
eventos <- obtener_val_config("list_diseases")
cod_events <- NULL
for (nomb in nomb_events) {
for (event in eventos) {
if (stringr::str_equal(nomb, event$event)) {
cod_events <- c(cod_events, event$cod_eve)
}
}
}
list_events <- data.frame(codigo = cod_events,
enfermedad = nomb_events,
aa = years_events)
list_events <- list_events[order(list_events$enfermedad,
decreasing = FALSE), ]
list_events
# Define namespaces including the default one with a prefix (e.g., "atom")
ns <- c(
atom = "http://www.w3.org/2005/Atom",
d = "http://schemas.microsoft.com/ado/2007/08/dataservices",
m = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
)


cod_evento <- xml2::xml_text(
xml2::xml_find_all(
conten_consulta_event_year,
"//atom:entry//m:properties/d:CodigoEvento",
ns
)
)

nom_evento <- xml2::xml_text(
xml2::xml_find_all(
conten_consulta_event_year,
"//atom:entry//m:properties/d:NombreEvento",
ns
)
)

anno_evento <- xml2::xml_text(
xml2::xml_find_all(
conten_consulta_event_year,
"//atom:entry//m:properties/d:A_x00f1_o",
ns
)
)


lista_eventos <- data.frame(
codigo = cod_evento,
enfermedad = nom_evento,
aa = anno_evento
)
lista_eventos <- lista_eventos[
order(lista_eventos$enfermedad, lista_eventos$aa, decreasing = FALSE),
]

lista_eventos <- lista_eventos %>%
group_by(.data$codigo, .data$enfermedad) %>%
summarize(aa = toString(.data$aa), .groups = "drop")


lista_eventos
}

#' @title Importar los datos de una enfermedad o evento por año
Expand Down
163 changes: 3 additions & 160 deletions inst/extdata/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ default:
file_path_parameters_microdata: "/$value?binaryStringResponseBody=true"
path_microdata: "web/lists/GetByTitle('Microdatos')/"
query_path_microdata: "items?$select=*,FileRef&$filter=(A_x00f1_o%20eq%20%27_year_%27)and(NombreEvento%20eq%20%27_disease_%27)"
query_diseases_by_year_path: "https://portalsivigila.ins.gov.co/_api/web/lists/GetByTitle('Microdatos')/items?$select=Evento,A_x00f1_o,NombreEvento&$orderby=NombreEvento%20asc&$top=1000"
query_diseases_by_year_path: "https://portalsivigila.ins.gov.co/_api/web/lists/GetByTitle('Microdatos')/items?$select=CodigoEvento,A_x00f1_o,NombreEvento&$orderby=NombreEvento%20asc&$top=5000"
data_delim: ["|", "," , ";", ":", "-"]
cols_remover: ["particion", "consecutive", "consecutive2", "separacion", "consecutive_12"]
geo_data_path: "https://www.datos.gov.co/api/views/gdxc-w37w/rows.csv?accessType=DOWNLOAD"
Expand Down Expand Up @@ -171,162 +171,5 @@ default:
months: ["enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"]
special_events: [{"cod_eve": 465, "event": "malaria"}]
request_timeout: 2000000
list_diseases:
- cod_eve: 100
event: "Accidente Ofídico"
- cod_eve: 300
event: "Agresiones Por Animales Potencialmente Transmisores De Rabia"
- cod_eve: 735
event: "Anomalías Congénitas"
- cod_eve: 110
event: "Bajo Peso Al Nacer"
- cod_eve: 155
event: "Cáncer De La Mama Y Cuello Uterino"
- cod_eve: 459
event: "Cáncer Infantil"
- cod_eve: 205
event: "Chagas"
- cod_eve: 217
event: "Chikunguya"
- cod_eve: 210
event: "Dengue"
- cod_eve: 220
event: "Dengue Grave"
- cod_eve: 112
event: "Desnutrición Aguda En Menores De 5 Años"
- cod_eve: 230
event: "Difteria"
- cod_eve: 290
event: "Encefalitis Equina Venezolana En Humanos"
- cod_eve: 345
event: "Esi - Irag (Vigilancia Centinela)"
- cod_eve: 346
event: "Ira Por Virus Nuevo"
- cod_eve: 349
event: "Eta Colectivo"
- cod_eve: 298
event: "Evento Adverso Grave Posterior A La Vacunación"
- cod_eve: 228
event: "Exposición A Flúor"
- cod_eve: 310
event: "Fiebre Amarilla"
- cod_eve: 320
event: "Fiebre Tifoidea Y Paratifoidea"
- cod_eve: 330
event: "Hepatitis A"
- cod_eve: 340
event: "Hepatitis B, C Y Coinfección Hepatitis B Y Delta"
- cod_eve: 341
event: "Hepatitis C"
- cod_eve: 343
event: "Hipotiroidismo Congénito"
- cod_eve: 348
event: "Infección Respiratoria Aguda Grave Irag Inusitada"
- cod_eve: 356
event: "Intento De Suicidio"
- cod_eve: 412
event: "Intoxicación Por Gases"
- cod_eve: 370
event: "Intoxicación Por Medicamentos"
- cod_eve: 390
event: "Intoxicación Por Metales Pesados"
- cod_eve: 380
event: "Intoxicación Por Metanol"
- cod_eve: 410
event: "Intoxicación Por Otras Sustancias Químicas"
- cod_eve: 360
event: "Intoxicación Por Plaguicidas"
- cod_eve: 400
event: "Intoxicación Por Solventes"
- cod_eve: 414
event: "Intoxicación Por Sustancias Psicoactivas"
- cod_eve: 420
event: "Leishmaniasis Cutánea"
- cod_eve: 430
event: "Leishmaniasis Mucosa"
- cod_eve: 440
event: "Leishmaniasis Visceral"
- cod_eve: 450
event: "Lepra"
- cod_eve: 455
event: "Leptospirosis"
- cod_eve: 452
event: "Lesiones Por Artefactos Explosivos (Pólvora Y Minas Antipersonal)"
- cod_eve: 458
event: "Lesiones Por Pólvora Y Explosivos"
- cod_eve: 456
event: "Leucemia Aguda Pediátrica Linfoide"
- cod_eve: 457
event: "Leucemia Aguda Pediátrica Mieloide"
- cod_eve: 465
event: "Malaria"
- cod_eve: 460
event: "Malaria Asociada (Formas Mixtas)"
- cod_eve: 495
event: "Malaria Complicada"
- cod_eve: 470
event: "Malaria Falciparum"
- cod_eve: 490
event: "Malaria Vivax"
- cod_eve: 500
event: "Meningitis Meningocócica"
- cod_eve: 510
event: "Meningitis Por Haemophilus Influenzae"
- cod_eve: 520
event: "Meningitis Por Neumococo"
- cod_eve: 530
event: "Meningitis Tuberculosa"
- cod_eve: 549
event: "Morbilidad Materna Extrema"
- cod_eve: 998
event: "Morbilidad Por Eda"
- cod_eve: 995
event: "Morbilidad Por Ira"
- cod_eve: 550
event: "Mortalidad Materna"
- cod_eve: 560
event: "Mortalidad Perinatal Y Neonatal Tardía"
- cod_eve: 580
event: "Mortalidad Por Dengue"
- cod_eve: 590
event: "Mortalidad Por Eda 0-4 Años"
- cod_eve: 600
event: "Mortalidad Por Ira"
- cod_eve: 540
event: "Mortalidad Por Malaria"
- cod_eve: 610
event: "Parálisis flácida Aguda (Menores De 15 Años)"
- cod_eve: 620
event: "Parotiditis"
- cod_eve: 670
event: "Rabia Humana"
- cod_eve: 710
event: "Rubeola"
- cod_eve: 730
event: "Sarampión"
- cod_eve: 739
event: "Síndrome Inflamatorio Multisistémico En Niños Asociado A Sars-Cov2"
- cod_eve: 760
event: "Tétanos Accidental"
- cod_eve: 790
event: "Tifus Endémico Trasmitido Por Pulgas"
- cod_eve: 780
event: "Tifus Epidémico Transmitido Por Piojos"
- cod_eve: 770
event: "Tétanos Neonatal"
- cod_eve: 800
event: "Tos Ferina"
- cod_eve: 305
event: "Tracoma"
- cod_eve: 810
event: "Tuberculosis Extra Pulmonar"
- cod_eve: 825
event: "Tuberculosis Farmacorresistente"
- cod_eve: 820
event: "Tuberculosis Pulmonar"
- cod_eve: 831
event: "Varicela Individual"
- cod_eve: 875
event: "Vigilancia En Salud Pública De La Violencia De Género E Intrafamiliar"
- cod_eve: 895
event: "Zika"
list_diseases_url: http://localhost:8080/eventos_sivigila.xlsx