Skip to contents

O microdatasus baixa, lê e prepara microdados dos Sistemas de Informação em Saúde publicados pelo DataSUS. O pacote trabalha diretamente com arquivos DBC, seleciona os arquivos efetivamente disponíveis no servidor e oferece funções específicas para recodificar variáveis de SIM, SINASC, SIH, SIA, CNES e SINAN.

O pacote resolve a parte operacional do acesso aos dados. Para compreender a unidade de análise, a cobertura, os fluxos de produção e os cuidados de interpretação de cada sistema, consulte o livro Sistemas de Informação em Saúde no Brasil.

O que o pacote oferece

  • fetch_datasus() localiza, baixa e combina microdados publicados pelo DataSUS.
  • read_dbc() lê um arquivo DBC já disponível no computador.
  • As funções process_*() recodificam campos conhecidos, normalizam textos e, quando implementado, acrescentam informações municipais ou tabelas auxiliares.
  • fetch_cadger() e fetch_sigtab() obtêm tabelas auxiliares atuais de CNES e SIA.

Os downloads são sequenciais, usam arquivos temporários e fazem novas tentativas em falhas transitórias. Quando stop_on_error = FALSE, os arquivos válidos podem ser retornados mesmo que parte da solicitação falhe.

Instalação

Instale a versão estável publicada no CRAN:

install.packages("microdatasus")

Ou instale a versão de desenvolvimento:

# install.packages("remotes")
remotes::install_github("rfsaldanha/microdatasus", ref = "dev")

A leitura de DBC é interna ao pacote e não depende mais de read.dbc. A implementação foi adaptada do pacote healthbR.

No Windows, a instalação pelo GitHub requer uma versão do Rtools compatível com o R instalado. A versão binária distribuída pelo CRAN não requer ferramentas de compilação.

Primeiro download

O fluxo mais comum tem duas etapas: baixar os arquivos e aplicar o processador do sistema.

library(microdatasus)

sim_raw <- fetch_datasus(
  year_start = 2022,
  year_end = 2022,
  uf = "AC",
  information_system = "SIM-DO",
  vars = c("CODMUNRES", "DTOBITO", "CAUSABAS"),
  track_source = TRUE
)

sim <- process_sim(sim_raw)

Os processadores retornam um tibble com colunas de texto após a normalização Unicode. Converta explicitamente os campos necessários à análise:

sim$DTOBITO <- as.Date(sim$DTOBITO)

Os anos, meses e UFs solicitados identificam as partições publicadas pelo DataSUS. A data e o local analíticos devem ser escolhidos nas variáveis do registro. O capítulo sobre o SIM, por exemplo, distingue residência, ocorrência e outras dimensões territoriais e temporais do óbito.

Sistemas mensais, como SIH, SIA e CNES, exigem os meses inicial e final:

sih_raw <- fetch_datasus(
  year_start = 2023,
  month_start = 1,
  year_end = 2023,
  month_end = 2,
  uf = c("AC", "RO"),
  information_system = "SIH-RD",
  timeout = 600
)

sih <- process_sih(sih_raw)

Sistemas suportados

Sistema Periodicidade dos arquivos Download Processamento Livro de SIS
SIM Anual SIM-DO, SIM-DOFET, SIM-DOEXT, SIM-DOINF, SIM-DOMAT process_sim() SIM
SINASC Anual SINASC process_sinasc() SINASC
SIH Mensal SIH-RD, SIH-RJ, SIH-SP, SIH-ER process_sih() para SIH-RD SIH
SIA Mensal Doze layouts SIA-* process_sia() para SIA-PA SIA
CNES Mensal Treze layouts CNES-* process_cnes() para CNES-ST e CNES-PF CNES
SINAN Anual e nacional Dengue, chikungunya, Zika, malária, Chagas, leishmanioses e leptospirose Processadores específicos, exceto leptospirose SINAN

A lista completa dos identificadores está na referência de fetch_datasus().

Controle do download

Algumas opções úteis de fetch_datasus():

  • vars limita as colunas lidas e reduz o uso de memória.
  • track_source = TRUE acrescenta o nome do DBC de origem de cada registro.
  • timeout controla o limite de cada operação de rede, sem alterar opções globais do R.
  • o nome do arquivo, o progresso da transferência, a leitura e o resumo final são exibidos; use quiet = TRUE para ocultar o progresso e todas as mensagens de status.
  • stop_on_error = FALSE preserva sucessos parciais; TRUE interrompe a solicitação na primeira falha.
  • uf aceita uma UF, várias UFs ou "all". Arquivos nacionais, como os do SINAN, ignoram esse argumento com um alerta.

Consulte o artigo Download e rastreabilidade para exemplos de todas essas opções.

Arquivos DBC locais

Use read_dbc() quando o arquivo já estiver no computador:

dados <- read_dbc("arquivo.dbc")

# Preserva os tipos inferidos dos metadados DBF
dados_tipados <- read_dbc("arquivo.dbc", as_character = FALSE)

Como citar

Ao utilizar o pacote, cite:

SALDANHA, Raphael de Freitas; BASTOS, Ronaldo Rocha; BARCELLOS, Christovam. Microdatasus: pacote para download e pré-processamento de microdados do Departamento de Informática do SUS (DATASUS). Cadernos de Saúde Pública, v. 35, n. 9, e00032419, 2019. https://doi.org/10.1590/0102-311x00032419.

Quando o livro apoiar a descrição ou a interpretação dos sistemas, cite também:

SALDANHA, Raphael de Freitas. Sistemas de Informação em Saúde no Brasil. Rio de Janeiro: Edição do autor, 2026. ISBN 978-65-01-37841-1. https://rfsaldanha.github.io/sis/.

Agradecimentos

O suporte a DBC foi construído a partir de contribuições de código aberto dos projetos read.dbc, de Daniela Petruzalek, e healthbR, de Sidney Bissoli.

Dúvidas e sugestões

Crie uma issue ou envie um e-mail para raphael.saldanha@fiocruz.br.