Odel
saude publica br

saude publica br

Local
@pedropaulofernandes88-stackPythonUpdated 1w ago

Saúde do Brasil (DataSUS + IBGE) consultável por IA — mortalidade, dengue e internações SUS

🏥 Saúde em Dado

Inteligência epidemiológica aberta sobre os microdados do SUS

Mortalidade · Dengue · Internações · Natalidade · Vulnerabilidade social — do Brasil inteiro, a custo zero.

Site Licença Custo Dados Release DOI

Site · API · Análises · Metodologia


🎯 O que é

Os dados do SUS são públicos por lei, mas inacessíveis na prática: microdados em formato proprietário (DBC), fragmentados por estado e competência, somando dezenas de gigabytes. Pesquisadores, jornalistas e gestores gastam semanas em engenharia de dados antes de qualquer análise.

O Saúde em Dado elimina essa barreira. Ele transforma os microdados oficiais do DataSUS e do IBGE em indicadores agregados, validados e consultáveis por API pública gratuita, painéis navegáveis e downloads abertos — com pipeline 100% reproduzível e custo de manutenção zero.

Mais de 14,4 milhões de óbitos (2015–2024), 6,56 milhões de casos de dengue (recorde de 2024), 40,0 milhões de AIHs aprovadas (R$ 63,4 bi) e 5,2 milhões de nascimentos — em uma consulta.


📊 Fontes de dados

SistemaConteúdoCoberturaIndicadores derivados
SIMMortalidade (óbitos)2015–2024Taxa bruta + IC95%, taxa padronizada por idade, excesso de mortalidade
SINANDengue (notificações)2015–2024Incidência, gravidade, letalidade, canal endêmico
SIHInternações hospitalares (AIH)2022–2024Permanência média e custo por episódio (AIH normal), mortalidade intra-hospitalar
SINASCNascidos vivos2021–2022Baixo peso, prematuridade, pré-natal, mortalidade infantil
IBGEPopulação (Censo 2022, Estimativas) e malhasDenominadores, padronização, mapas
IPEA / IBGEVulnerabilidade social (proxy Censo 2022)2022Cruzamento desigualdade × saúde

Todas as fontes são de domínio público. Apenas agregados são publicados — nenhum microdado individual sai da máquina de processamento (privacidade por desenho).


🧮 Indicadores e métodos

  • Taxa padronizada por idade (método direto, padrão Brasil/Censo 2022) — comparação legítima entre municípios, corrigindo o efeito da estrutura etária.
  • Intervalo de confiança de 95% (método gama / Poisson exato) em toda taxa bruta; alerta para municípios < 10 mil hab.
  • Excesso de mortalidade — observado vs. esperado (baseline 2015–2019 ajustado por população), por UF e Brasil.
  • Canal endêmico de dengue (diagrama de controle) — faixa esperada P25–P75 de 2015–2023 vs. ano observado.
  • Taxa de Mortalidade Infantil — óbitos < 1 ano (SIM) ÷ nascidos vivos (SINASC).
  • Índice de vulnerabilidade social (proxy) — z-score de analfabetismo + falta de água (Censo 2022).
  • Tipo de AIH (SIH) — o arquivo do SIH mistura AIH normal com AIH de continuação, emitida quando a internação se prolonga: uma internação longa vira várias linhas. internacoes conta AIHs aprovadas (produção); permanência e custo médios são por episódio, sobre a AIH normal. Nos capítulos V (transtornos mentais) e VI (sistema nervoso) os dois números divergem muito — 25% e 10% das AIHs são de continuação. AIH não é internação nem paciente.

Documentação completa, fórmulas e limitações declaradas: saudeemdado.com/metodologia.


🏗️ Arquitetura (a custo zero)

   Microdados DataSUS (.dbc/.csv)        IBGE (SIDRA / localidades / malhas)
              │                                      │
              ▼                                      ▼
   ┌───────────────────────────────────────────────────────┐
   │  Pipelines Python (local) — streaming + DuckDB         │
   │  scripts/pipeline_*.py · agregação · validação         │
   └───────────────────────────────────────────────────────┘
              │  (sobem apenas marts agregados, ~400 MB)
              ▼
   ┌───────────────────────────────────────────────────────┐
   │  Supabase (Postgres free tier) — somente leitura (RLS) │
   │     ├── API REST automática (PostgREST)                │
   │     └── Storage (Parquet com SHA-256)                  │
   └───────────────────────────────────────────────────────┘
              │
              ▼
   ┌───────────────────────────────────────────────────────┐
   │  Next.js estático (GitHub Pages) → saudeemdado.com     │
   │  JSON estático no build = egress ~zero no banco        │
   └───────────────────────────────────────────────────────┘

   Automação (GitHub Actions): deploy · keep-alive (≤6 dias) · validação de dados

Princípios: (1) agregar localmente, publicar só o essencial; (2) nenhum servidor de aplicação para manter; (3) reprodutibilidade radical — todo número regenerável das fontes oficiais por um script aberto.


🚀 Como acessar

Site: saudeemdado.com — painéis de mortalidade, dengue, internações, nascimentos, mapa municipal, tendências e boletim por município.

API REST pública (sem cadastro; chave de leitura em .env.example):

URL="https://zekjhmxjamatlxpkykde.supabase.co/rest/v1"; KEY="<anon key>"

# Municípios de MG por taxa padronizada de mortalidade (2023)
curl "$URL/mart_mortalidade_municipio?uf_sigla=eq.MG&ano=eq.2023&capitulo_cid=eq.TOTAL&sexo=eq.TOTAL&order=taxa_padronizada_100k.desc&limit=10" -H "apikey: $KEY"

# Dengue por município/ano (incidência e letalidade)
curl "$URL/mart_dengue_municipio_ano?uf_sigla=eq.SP&ano_epi=eq.2024&order=incidencia_100k.desc&limit=10" -H "apikey: $KEY"

Pacote Python (clients/python):

import saudeemdado as sd
sd.municipios(uf="MG", ano=2023, as_df=True).nlargest(10, "taxa_padronizada_100k")
sd.dengue(uf="SP", ano=2024, as_df=True)

Servidor MCP — a saúde do Brasil consultável por IA (mcp_server/). Conecte o Claude Desktop/Code e pergunte em linguagem natural. Expõe 19 ferramentas: consulta (mortalidade, internações, dengue, ICSAP, fluxo de pacientes, visão hospitalar, excesso) e análise (comparar_com_pares — município vs. estrato de saúde com percentis; canal_endemico_dengue — diagrama de controle por UF; boletim_semanal — a edição vigente do boletim automático) — mais a camada de confiabilidade (avisa quando o registro do município é pouco confiável) e o detector de anomalias para briefing de gestor. Custo zero: roda no seu cliente e consome a API pública — cada usuário traz o próprio Claude. Regras anti-alucinação embutidas: todo número vem de uma ferramenta, com a fonte citada.

{ "mcpServers": { "saudeemdado": { "command": "uvx", "args": ["saudeemdado-mcp"] } } }

Publicado no PyPI e no registry oficial MCP como io.github.pedropaulofernandes88-stack/saudeemdado. Instalação e receitas: mcp_server/README.md.

Downloads — marts completos em Parquet com SHA-256 na página Dados & API.


🔁 Reprodutibilidade

# Python 3.10–3.12 (datasus-dbc não compila no 3.13+)
pip install duckdb pandas pyarrow requests scipy datasus-dbc dbfread

python scripts/pipeline_v2.py        # SIM 2015–2024 (padronização, IC95%, excesso)
python scripts/pipeline_sinan.py     # Dengue 2015–2024
python scripts/pipeline_sih.py       # Internações 2022–2024
python scripts/pipeline_sinasc.py    # Nascimentos + mortalidade infantil
python scripts/pipeline_ivs.py       # Vulnerabilidade social (proxy Censo 2022)
python scripts/validate_data.py      # validação contra âncoras oficiais

Os pipelines fazem download, agregam em streaming com checkpoint resumível e publicam via API. A rotina de validação (.github/workflows/validate-data.yml) confere mensalmente totais oficiais e conciliação entre marts.


📁 Estrutura

saude-publica-br/
│
├── site/               # Next.js 14, export estático → saudeemdado.com
│   ├── app/            # uma pasta por rota: painel, dengue, internacoes,
│   │                   #   nascimentos, mapa, tendencias, artigos, dados,
│   │                   #   metodologia, atencao-basica, boletim, hospitalar
│   ├── components/     # gráficos (Recharts), KPIs, navegação
│   ├── lib/            # regras puras e testáveis: municipios, completude,
│   │                   #   tokens de design, seções da metodologia
│   ├── content/        # artigos assinados (seção Análises)
│   └── scripts/        # gera o JSON estático durante o build
│
├── scripts/            # pipelines: SIM, SINAN, SIH, SINASC, CNES, IVS, SIOPS
├── ingestion/utils/    # bulk load (Parquet → COPY) e ledger de ingestão
├── dbt/                # modelos intermediate → marts
├── migrations/         # SQL versionado do Supabase, incluindo as políticas RLS
├── validation/         # suítes Great Expectations sobre os marts
├── ml/                 # detector de anomalias e scoring em lote
├── data/refs/          # tabelas de referência (CID-10, municípios, população)
│
├── mcp_server/         # servidor MCP → PyPI: saudeemdado-mcp
├── clients/python/     # cliente da API → pacote saudeemdado
├── supabase/functions/ # Edge Functions do boletim por assinatura
│
├── .github/workflows/  # CI, deploy do site, boletim, publicação do MCP
├── docs/               # ADRs e notas de arquitetura
└── archive/            # a primeira arquitetura, aposentada — ver archive/README.md

📰 Análises

A seção Análises reúne artigos que cruzam os dados da plataforma com leitura epidemiológica e estatística — da anatomia da epidemia de dengue de 2024 ao paradoxo do sub-registro na relação vulnerabilidade × mortalidade.


🗺️ Roadmap

  • Mortalidade (SIM) 2015–2024 · taxa padronizada · IC95% · excesso
  • Dengue (SINAN) · Internações (SIH) · Nascimentos/Mortalidade infantil (SINASC)
  • Vulnerabilidade social (proxy Censo 2022) e cruzamento com mortalidade
  • Pacote Python · servidor MCP · boletim municipal · seção de Análises
  • IVS oficial do IPEA (Atlas da Vulnerabilidade Social)
  • SIH anos anteriores (2015–2021) e SINASC 2023+
  • SINAN outros agravos (chikungunya, zika) · CNES (leitos/estabelecimentos)
  • Imagens de capa próprias para a seção de Análises · DOI via Zenodo

🤝 Créditos e projetos relacionados

  • LabSUS (Lucas Amaral Dourado, Universidade Federal do Tocantins) — projeto acadêmico de inteligência em saúde pública que inspirou aqui o cruzamento saúde × vulnerabilidade, a detecção de surtos por canal endêmico e a nota de uso ético. Métodos de domínio público; nenhum código foi copiado.
  • Fontes primárias: DATASUS/Ministério da Saúde (SIM, SINAN, SIH, SINASC), IBGE (Censo 2022, Estimativas, malhas) e IPEA.

⚖️ Uso ético

Os indicadores são agregados e descritivos — não substituem julgamento técnico. Pede-se, de boa-fé, que a plataforma não seja usada para discriminação no acesso à saúde, vigilância em massa de indivíduos ou automação de decisões clínicas/de política pública sem supervisão profissional. Detalhes na LICENSE.

🔒 Segurança

Vulnerabilidades vão por canal privado — ver SECURITY.md. Leia antes a seção sobre o que não é vazamento aqui: a chave anon do Supabase é pública por desenho (é o que permite consultar a API sem cadastro), e os arquivos .env versionados são templates com placeholders.


📄 Licença

Código sob licença MIT. Dados originais em domínio público (DATASUS/MS, IBGE, IPEA) — cite as fontes primárias.

Como citar (DOI 10.5281/zenodo.20706845):

Fernandes, Pedro. Saúde em Dado: inteligência epidemiológica aberta sobre os microdados do SUS. Zenodo, 2026. https://doi.org/10.5281/zenodo.20706845

Metadados legíveis por gerenciadores de referência em CITATION.cff.


👤 Autor

Pedro Fernandes Mestrando em Saúde Coletiva (IAMSPE) · Pós-graduando em Inteligência Artificial e Ciência de Dados em Saúde (Hospital Sírio-Libanês) · Diretor de Tecnologia da Informação — Setor Público (SP)

ORCID Lattes LinkedIn

saudeemdado.com · dados públicos, abertos e a custo zero para a pesquisa em saúde no Brasil