Autor: Martín Alalú

Accesibilidad a centros de salud

Con el objetivo de garantizar el acceso a la salud y descomprimir la creciente demanda hacia los grandes hospitales el Gobierno de la Ciudad Autónoma de Buenos Aires impulsó la creación de Centros Médicos Barriales y Centros de Salud (CeSAC) en la Ciudad. Con esta estrategia se buscó poder establecer un primer nivel de atención de la salud que, según datos del Ministerio de Salud porteño, potencialmente puede resolver el 80 % de los problemas de salud de la población.

Más allá de si esta estrategia logró o no descromprimir los grandes hospitales el propósito del presente trabajo será poder analizar la cobertura de los centros de salud a lo largo del territorio de la Ciudad y la accesibilidad a ellos por parte de la población. ¿La cobertura de los centros de salud está equilibrada entre los barrios? ¿Cuál es la distancia promedio a los centros de salud en los distintos barrios? ¿Es la misma entre los barrios del sur y del norte? ¿Cuál es la potencial demanda de cada uno de los centros de salud?

Para poder responder estas preguntas se usarán datos abiertos publicados en el portal de datos abiertos del Gobierno de la Ciudad, data.buenosaires.gob.ar.

Principalmente se usarán los datasets de: - Radios Censales - Barrios - Hospitales - Centros Médicos Barriales - CeSAC

library(sf)
library(osmdata)
library(tidyverse)
library(ggmap)
library(knitr)
library(leaflet)

#Levantamos los datos de BA Data

radios <- st_read("http://cdn.buenosaires.gob.ar/datosabiertos/datasets/informacion-censal-por-radio/CABA_rc.geojson")
## Reading layer `CABA_rc' from data source `http://cdn.buenosaires.gob.ar/datosabiertos/datasets/informacion-censal-por-radio/CABA_rc.geojson' using driver `GeoJSON'
## Simple feature collection with 3554 features and 8 fields
## geometry type:  MULTIPOLYGON
## dimension:      XY
## bbox:           xmin: -58.53092 ymin: -34.70574 xmax: -58.33455 ymax: -34.528
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs
hospitales<- read.csv("http://cdn.buenosaires.gob.ar/datosabiertos/datasets/hospitales/hospitales.csv", fileEncoding = "UTF-8")
centros_barriales <- read.csv("http://cdn.buenosaires.gob.ar/datosabiertos/datasets/centros-medicos-barriales/centros-medicos-barriales.csv",fileEncoding = "UTF-8")    
cesac <- read.csv("http://cdn.buenosaires.gob.ar/datosabiertos/datasets/centros-de-salud-y-accion-comunitaria-cesac/centros-de-salud-y-accion-comunitaria.csv",fileEncoding = "UTF-8")
barrios <- st_read("http://cdn.buenosaires.gob.ar/datosabiertos/datasets/barrios/barrios.geojson")
## Reading layer `barrios_badata' from data source `http://cdn.buenosaires.gob.ar/datosabiertos/datasets/barrios/barrios.geojson' using driver `GeoJSON'
## Simple feature collection with 48 features and 4 fields
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: -58.53152 ymin: -34.70529 xmax: -58.33515 ymax: -34.52649
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs
#Filtramos los nulos, definimos los campos de coordenadas y la proyección, creamos una columna con la zona del barrio (norte-sur) y con el tipo de establecimiento. Nos quedamos con las columnas que nos interesan
 
#Para CESAC borramos la palabra "COMUNA" de la columna asi nos queda todo igual
cesac <- cesac %>% 
  mutate(tipo="cesac") %>%
  mutate(region = case_when(grepl("NUÑEZ",barrio) | 
                              grepl("SAAVEDRA",barrio) | 
                              grepl("COGHLAN",barrio) | 
                              grepl("BELGRANO",barrio) | 
                              grepl("VILLA URQUIZA",barrio) | 
                              grepl("VILLA PUEYRREDON",barrio) | 
                              grepl("PARQUE CHAS",barrio) | 
                              grepl("VILLA ORTUZAR",barrio) | 
                              grepl("COLEGIALES",barrio) | 
                              grepl("PALERMO",barrio) | 
                              grepl("RECOLETA",barrio) | 
                              grepl("RETIRO",barrio) | 
                              grepl("SAN NICOLAS",barrio) | 
                              grepl("BALVANERA",barrio) | 
                              grepl("ALMAGRO",barrio) | 
                              grepl("PATERNAL",barrio) | 
                              grepl("VILLA DEL PARQUE",barrio) |
                              grepl("AGRONOMÍA",barrio) | 
                              grepl("VILLA DEVOTO",barrio) | 
                              grepl("VILLA REAL",barrio) | 
                              grepl("MONTE CASTRO",barrio) | 
                              grepl("VILLA SANTA RITA",barrio) | 
                              grepl("VILLA GRAL. MITRE",barrio) | 
                              grepl("CABALLITO",barrio) | 
                              grepl("FLORESTA",barrio) | 
                              grepl("BALVANERA",barrio) | 
                              grepl("VELEZ SARSFIELD",barrio) | 
                              grepl("VILLA LURO",barrio) ~ "NORTE",
                            TRUE~"SUR")) %>% 
  mutate(barrio=str_to_upper(barrio)) %>% 
  mutate(comuna=gsub("COMUNA","",comuna)) %>% 
  filter(!is.na(long), !is.na(lat)) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  select(nombre,comuna,barrio,tipo, calle, altura,region)

centros_barriales <- centros_barriales %>% 
  mutate(tipo="centro_barrial") %>%
  mutate(barrio=str_to_upper(barrio)) %>%
  mutate(region = case_when(grepl("NUÑEZ",barrio) | 
                              grepl("SAAVEDRA",barrio) | 
                              grepl("COGHLAN",barrio) | 
                              grepl("BELGRANO",barrio) | 
                              grepl("VILLA URQUIZA",barrio) | 
                              grepl("VILLA PUEYRREDON",barrio) | 
                              grepl("PARQUE CHAS",barrio) | 
                              grepl("VILLA ORTUZAR",barrio) | 
                              grepl("COLEGIALES",barrio) | 
                              grepl("PALERMO",barrio) | 
                              grepl("RECOLETA",barrio) | 
                              grepl("RETIRO",barrio) | 
                              grepl("SAN NICOLAS",barrio) | 
                              grepl("BALVANERA",barrio) | 
                              grepl("ALMAGRO",barrio) | 
                              grepl("PATERNAL",barrio) | 
                              grepl("VILLA DEL PARQUE",barrio) |
                              grepl("AGRONOMÍA",barrio) | 
                              grepl("VILLA DEVOTO",barrio) | 
                              grepl("VILLA REAL",barrio) | 
                              grepl("MONTE CASTRO",barrio) | 
                              grepl("VILLA SANTA RITA",barrio) | 
                              grepl("VILLA GRAL. MITRE",barrio) | 
                              grepl("CABALLITO",barrio) | 
                              grepl("FLORESTA",barrio) | 
                              grepl("BALVANERA",barrio) | 
                              grepl("VELEZ SARSFIELD",barrio) | 
                              grepl("VILLA LURO",barrio) ~ "NORTE",
                            TRUE~"SUR")) %>% 
  filter(!is.na(long), !is.na(lat)) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  select(nombre,comuna,barrio,tipo,calle, altura, region)

hospitales <- hospitales %>%
  mutate(tipo="hospital") %>% 
  mutate(barrio=str_to_upper(barrio)) %>% 
  mutate(region = case_when(grepl("NUÑEZ",barrio) | 
                              grepl("SAAVEDRA",barrio) | 
                              grepl("COGHLAN",barrio) | 
                              grepl("BELGRANO",barrio) | 
                              grepl("VILLA URQUIZA",barrio) | 
                              grepl("VILLA PUEYRREDON",barrio) | 
                              grepl("PARQUE CHAS",barrio) | 
                              grepl("VILLA ORTUZAR",barrio) | 
                              grepl("COLEGIALES",barrio) | 
                              grepl("PALERMO",barrio) | 
                              grepl("RECOLETA",barrio) | 
                              grepl("RETIRO",barrio) | 
                              grepl("SAN NICOLAS",barrio) | 
                              grepl("BALVANERA",barrio) | 
                              grepl("ALMAGRO",barrio) | 
                              grepl("PATERNAL",barrio) | 
                              grepl("VILLA DEL PARQUE",barrio) |
                              grepl("AGRONOMÍA",barrio) | 
                              grepl("VILLA DEVOTO",barrio) | 
                              grepl("VILLA REAL",barrio) | 
                              grepl("MONTE CASTRO",barrio) | 
                              grepl("VILLA SANTA RITA",barrio) | 
                              grepl("VILLA GRAL. MITRE",barrio) | 
                              grepl("CABALLITO",barrio) | 
                              grepl("FLORESTA",barrio) | 
                              grepl("BALVANERA",barrio) | 
                              grepl("VELEZ SARSFIELD",barrio) | 
                              grepl("VILLA LURO",barrio) ~ "NORTE",
                            TRUE~"SUR")) %>% 
  filter(!is.na(long), !is.na(lat)) %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>% 
  select(nombre,comuna,barrio,tipo, calle, altura, region)

radios <- radios %>% 
  st_as_sf(coords = c("long", "lat"), crs = 4326)

#Unimos centros de salud y centros medicos barriales
establecimientos_salud <- rbind(cesac,centros_barriales,hospitales)

#Contamos cantidad
tipos_establecimientos <-  establecimientos_salud %>% 
  count(tipo)
  
cantidad_tipo <- ggplot(tipos_establecimientos) +
    geom_col(aes(x=reorder(tipo, n),
               y=n,
               fill=tipo))+
  coord_flip()+
  labs(title = "Tipos de establecimientos de salud",
       subtitle = "Ciudad Autónoma de Buenos Aires",
       color = "Tipo",
       fill="Tipo",
       y="Cantidad")+
  theme_minimal()

print(cantidad_tipo)