Tabulação de microdados públicos do DATASUS no navegador. Sem instalar nada. Sem enviar dados para lugar nenhum.
Reimplementação local e auditável dos fluxos analíticos do TabWin 4.15 do
DATASUS. Lê os arquivos que você já usa — .DBC, .DBF, .CSV — e os
metadados legados .DEF, .CNV e .MAP. Roda igual no Windows, macOS,
Linux e Android, porque roda no navegador.
Esforço independente e não oficial de modernização. Não é afiliado ao DATASUS nem ao Ministério da Saúde, e não é endossado por eles.
Não é slogan, é como o programa funciona. A leitura e o cálculo acontecem no navegador; nenhum microdado, resultado ou consulta sai da máquina. Quando você busca no catálogo oficial, o que trafega é o download do DATASUS para você.
Depois que o arquivo abriu, nem internet é necessária.
| Tabular | o painel do TabWin — Linhas, Colunas, Incremento e Seleções — montado do DEF, com Não classificados, log e "Restaurar consulta"; conferido contra o TabWin 4.15 real |
| Formato leve | DBC → Parquet: metade do tamanho, leitura só das colunas usadas, mesmos números (paridade registro a registro) |
| Transformar | pipeline de 11 verbos no estilo dplyr — inclusive semana epidemiológica (MMWR/MS) e código IBGE de município |
| Calcular | fórmulas estilo Excel, 57 funções, com nomes em português e inglês |
| Visualizar | gráficos editáveis e mapas temáticos, com exportação SVG/PNG |
| Analisar | descritivas, correlação, regressão, e taxas com IC de Byar, padronização direta (DSR) e indireta (SMR) |
| Auditar | procedência com SHA-256, histórico da sessão, e detecção estatística de anomalias |
| Salvar | receitas .twrecipe, tabelas .twtable, CSV/JSON/XLSX/XML, DBF filtrado, CSV para o microdatasus do R |
O manual do usuário cobre tudo isso com o passo a passo:
docs/product/MANUAL_DO_USUARIO.md.
Para entender os arquivos (DBC, DBF, DEF, CNV, Parquet):
docs/product/GUIA_ARQUIVOS_DATASUS.md.
Engenharia reversa do painel do TabWin (Wine + rea/Ghidra):
docs/reverse-engineering/RE_002_PAINEL_TABULA.md.
Este projeto distingue três coisas, e diz qual é qual:
- Compatível — verificado contra o TabWin 4.15 real, com arquivo real,
resultado capturado do programa original e comparação com tolerância zero.
São 16 casos em
fixtures/golden/, cada um com manifesto, evidência e hashes, e mais 6 casos do painel emfixtures/oracle/painel-2026-10-13/(npm run verify:painel). - Moderno — funcionalidade nova, que o TabWin 4.15 não tinha. Não afirma equivalência com nada.
- Não verificado — existe e funciona, mas ninguém conferiu contra o original.
Nada vira "compatível" por suposição. Um golden é imutável: quando um teste falha, muda a implementação ou registra-se um desconhecido — nunca o golden.
- Zero nunca é fabricado. Denominador zero, célula ilegível ou valor
ausente viram
null/ "—". Zero é uma afirmação sobre o mundo. - Nada é amostrado em silêncio.
- Um padrão pode existir; um padrão invisível não.
npm install
npm run web:dev| Comando | O que faz |
|---|---|
npm run check |
testes unitários + typecheck + build web |
npm run e2e |
testes ponta a ponta (Playwright) |
npm run web:build |
build de produção em dist-web/ |
npm run seed:differential |
gera casos determinísticos para conferir contra o TabWin real |
npm run verify:painel -- <pasta> |
confere o painel contra as capturas do TabWin real |
npm run parquet:converter -- <arquivo.dbc> |
converte para o formato leve (.parquet, mesmo nome-base) |
npm run verify:parquet -- <arquivo.dbc> <arquivo.parquet> |
prova que os registros são idênticos |
npm run bridge:start |
sobe o auxiliar local de download (o que é) |
apps/web a aplicação
apps/datasus-proxy Worker Cloudflare para o CORS do catálogo oficial
apps/tabwin-bridge auxiliar local e OPCIONAL de download (Windows/Unix)
packages/core modelo, plano normalizado, execução, receitas
packages/formats DEF, CNV, .TAB, Windows-1252, mapas, BIFF
packages/analysis estatística, epidemiologia, transformação, fórmulas
packages/acquisition catálogo DATASUS, lote resiliente, fallback e limites
packages/export CSV, JSON, XLSX, XML, DBF
fixtures/golden as capturas do TabWin 4.15 que sustentam a compatibilidade
docs/ manual, ADRs, protocolos de captura, engenharia reversa
Regra de camadas: analysis → core. core nunca importa analysis.
Os microdados são públicos e do DATASUS/Ministério da Saúde, sujeitos aos
termos de uso do órgão. Este repositório não redistribui microdados nem o
binário original do TabWin 4.15 — as capturas em fixtures/golden/ são
resultados de referência, não os arquivos de origem.
Cinco dependências de runtime, e vale nomear o que cada uma faz:
@precisa-saude/datasus-dbcdecodifica o formato.DBC— xBase DBF comprimido com PKWARE DCL Implode. É a capacidade que este projeto anuncia primeiro, e quem a entrega é ele. TypeScript puro, navegador e Node, sem dependências próprias.fflatelê e escreve os.zipque o portal do DATASUS monta.@duckdb/duckdb-wasmmove a aba de consulta SQL, carregado sob demanda.hyparquetefzstdleem o formato leve (Parquet com ZSTD) coluna por coluna, em JavaScript puro.
GNU AGPL v3 ou posterior (AGPL-3.0-or-later).
Escolhida porque o TabSis é um sistema web: a AGPL vale também para quem só o hospeda e oferece a outras pessoas pela internet, não apenas para quem distribui o código. Qualquer versão modificada que seja publicada precisa abrir o código-fonte das modificações sob a mesma licença e manter os créditos.
As dependências (@precisa-saude/datasus-dbc em Apache-2.0, fflate e
@duckdb/duckdb-wasm em MIT) têm licenças compatíveis com a AGPL v3.
Até a versão 0.8 o projeto se chamava TabWin Web e era distribuído sob MIT; as cópias obtidas naquela época continuam valendo sob a MIT.