--- title: "Primary Care Coverage with SISAB" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Primary Care Coverage with SISAB} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", eval = FALSE ) ``` ## Overview The **SISAB (Sistema de Informacao em Saude para a Atencao Basica)** provides primary care coverage indicators for Brazil, maintained by the Ministry of Health (SAPS). Unlike other DATASUS modules that use FTP, SISAB data is fetched from a public REST API. | Feature | Details | |---------|---------| | Source | REST API (relatorioaps.saude.gov.br) | | Data type | Aggregated coverage indicators | | Report types | 4 (APS, oral health, community agents, PNS) | | Geographic levels | 4 (Brazil, region, UF, municipality) | | Frequency | Monthly (by CNES competencia) | ## Report types | Code | Name | Availability | |------|------|-------------| | **aps** | APS coverage (primary care teams) | 2019--present | | **sb** | Oral health coverage (dental teams) | 2024--present | | **acs** | Community health agents (ACS) | 2007--present | | **pns** | PNS coverage (National Health Survey) | 2020--2023 | ## Geographic levels | Level | Description | |-------|-------------| | `"brazil"` | National total | | `"region"` | 5 macro-regions | | `"uf"` | 27 states (default) | | `"municipality"` | ~5,570 municipalities | ## Getting started ```{r setup} library(healthbR) library(dplyr) ``` ### Check available years ```{r} sisab_years() ``` ### Module information ```{r} sisab_info() ``` ## Basic download ### APS coverage by state (default) ```{r} # APS coverage by state, January 2024 aps_jan <- sisab_data(year = 2024, month = 1) aps_jan ``` ### Full year ```{r} # APS coverage, all months of 2023 aps_2023 <- sisab_data(year = 2023) aps_2023 ``` ## Other report types ### Oral health coverage ```{r} sb <- sisab_data(year = 2024, type = "sb", month = 6) sb ``` ### Community health agents ```{r} acs <- sisab_data(year = 2023, type = "acs") acs ``` ### PNS coverage ```{r} pns <- sisab_data(year = 2022, type = "pns") pns ``` ## Geographic levels ### National total ```{r} national <- sisab_data(year = 2024, level = "brazil", month = 1) national ``` ### By region ```{r} regions <- sisab_data(year = 2024, level = "region", month = 1) regions ``` ### By state (default) ```{r} states <- sisab_data(year = 2024, level = "uf", month = 1) states ``` ### By municipality ```{r} # filter by UF to avoid large downloads sp_munic <- sisab_data( year = 2024, level = "municipality", uf = "SP", month = 1 ) sp_munic ``` ## Filtering by state and month ```{r} # single state, single month sp_jan <- sisab_data(year = 2024, uf = "SP", month = 1) # specific months sp_q1 <- sisab_data(year = 2024, uf = "SP", month = 1:3) # multiple years sp_multi <- sisab_data(year = 2022:2024, uf = "SP", month = 6) ``` ## Exploring variables ```{r} # APS variables (default) sisab_variables() # oral health variables sisab_variables(type = "sb") # community agents sisab_variables(type = "acs") # PNS variables sisab_variables(type = "pns") # search sisab_variables(search = "cobertura") sisab_variables(search = "equipe") ``` ## Example: APS coverage by state ```{r} aps <- sisab_data(year = 2024, level = "uf", month = 6) # coverage by state aps |> select(sgUf, qtPopulacao, qtCobertura) |> arrange(desc(qtCobertura)) ``` ## Example: coverage trends over time ```{r} # monthly APS coverage, national level, 2020-2024 trend <- sisab_data( year = 2020:2024, level = "brazil" ) trend |> select(year, nuComp, qtCobertura) |> arrange(year, nuComp) ``` ## Example: municipal-level analysis ```{r} # municipality-level APS coverage in Minas Gerais mg_munic <- sisab_data( year = 2024, level = "municipality", uf = "MG", month = 6 ) # distribution of coverage mg_munic |> summarize( n_municipalities = n(), mean_coverage = mean(qtCobertura, na.rm = TRUE), median_coverage = median(qtCobertura, na.rm = TRUE), min_coverage = min(qtCobertura, na.rm = TRUE), max_coverage = max(qtCobertura, na.rm = TRUE) ) ``` ## Differences from other modules SISAB has a few differences from DATASUS FTP modules (SIM, SIH, CNES, etc.): | Feature | SISAB | DATASUS modules | |---------|-------|-----------------| | Data source | REST API | FTP .dbc/.DBF files | | Column names | camelCase (from API) | UPPERCASE | | `lazy` parameter | Not available | Available (arrow/DuckDB) | | `parse` parameter | Not available | Available | | `dictionary()` | Not available | Available | | Data type | Aggregated coverage | Microdata (individual records) | Column names are preserved as returned by the API (e.g., `qtCobertura`, `sgUf`, `noMunicipioIbge`). Use `sisab_variables()` to explore them. ## Cache management Downloaded data is cached locally for faster future access: ```{r} # check cache status sisab_cache_status() # clear cache if needed sisab_clear_cache() ``` ## Additional resources - SISAB reporting portal (`sisab.saude.gov.br`) - relatorioaps portal (`relatorioaps.saude.gov.br`) - Primary care policy (SAPS) (`www.gov.br/saude/pt-br/composicao/saps`) - [Census vignette](censo-denominadores.html) for population denominators