SIM · óbitos (sim_obitos)¶
Em uma frase¶
Declarações de Óbito do Sistema de Informações sobre Mortalidade (SIM), com estrutura documentada pela Coordenação-Geral de Informações e Análise Epidemiológicas da Secretaria de Vigilância em Saúde do Ministério da Saúde e arquivos publicados pelo DATASUS, um por UF e ano.
O que um registro representa¶
- O dicionário da biblioteca descreve a base como declarações de óbito e declara
numerodo(número da DO) como chave primária (src/omnisus/data/dicionarios/sim_obitos.yaml,titleeprimaryKey). tipobitosepara óbito fetal (1) de não fetal (2) e é campo obrigatório (Estrutura do SIM 2025, p. 1).- O documento define óbito fetal como a morte antes da expulsão ou extração completa do corpo da mãe, independentemente da duração da gravidez (Estrutura do SIM 2025, p. 1).
causabasé a causa básica da DO, com 4 caracteres (Estrutura do SIM 2025, p. 5).- O dicionário liga
causabasà tabela CID-10 (aux_cid10, código sem ponto, como o arquivo grava; todos os códigos do exemplo de 2023 resolvem) (src/omnisus/data/dicionarios/sim_obitos.yaml), e o diretório final é/dissemin/publicos/SIM/CID10/DORES(catálogo). - As linhas A a D e a Parte II guardam os CIDs informados em cada linha da DO (Estrutura do SIM 2025, p. 4–5).
- A importação grava as colunas do arquivo com nomes em minúsculas e acrescenta
ano,ufe_source_releasea cada linha (src/omnisus/sources/datasus_ftp/staging.py,dbc_bytes_to_parquet).
Datas e geografia¶
dtobitoé a data em que ocorreu o óbito, no formato ddmmaaaa, e é campo obrigatório (Estrutura do SIM 2025, p. 1).- Em óbito fetal, a data de nascimento (
dtnasc) e a data do óbito devem ser iguais (Estrutura do SIM 2025, p. 1). dtatestadoé a data em que o atestado foi assinado (Estrutura do SIM 2025, p. 5).dtcadastroé a data do cadastro do óbito, edtrecebima data do recebimento (Estrutura do SIM 2025, p. 6).difdataé a diferença entre a data do óbito e a data do recebimento original da DO (Estrutura do SIM 2025, p. 7).- As colunas
anoeufvêm do nome do arquivo (DOSP2024.dbc→ SP, 2024), não dedtobito(tests/unit/sources/datasus_ftp/test_filenames_golden.py;src/omnisus/sources/datasus_ftp/staging.py). - Numa importação real de Roraima, nenhum registro de 2022 ou 2023 tinha ano de
dtobitodiferente do ano do arquivo (evidence/2026-09-10-marimo-real/verification.json,quality;evidence/2026-09-10-notebook-dados-reais.md, "Validações concluídas"). codmunresé o município de residência, com 7 caracteres; em óbito fetal, vale o município de residência da mãe (Estrutura do SIM 2025, p. 3).codmunocoré o município onde ocorreu o óbito, com 8 caracteres (Estrutura do SIM 2025, p. 3).lococordiz o local de ocorrência: 1 = hospital, 2 = outros estabelecimentos de saúde, 3 = domicílio, 4 = via pública, 5 = outros, 6 = aldeia indígena, 9 = ignorado (Estrutura do SIM 2025, p. 3).- A importação não ajusta o comprimento dos códigos de município: o staging preserva os códigos publicados. Confira o comprimento antes de fazer junções.
Cobertura e modalidade¶
Arquivos anuais por UF, de 1996 em diante, no diretório final
/dissemin/publicos/SIM/CID10/DORES e no preliminar
/dissemin/publicos/SIM/PRELIM/DORES; veja o
catálogo de datasets.
Um ano pode estar em só um dos dois diretórios. Para saber qual:
import omnisus as sus
publicados = sus.available_releases("sim_obitos", ufs=["RR"], refresh=True)
Subconjuntos nacionais e a era CID-9¶
| Linha | Prefixo | Diretório | Cobertura |
|---|---|---|---|
sim_obitos_fetais |
DOFET |
SIM/CID10/DOFET |
1996–2025, um arquivo nacional por ano (DOFET23.dbc) |
sim_obitos_externos |
DOEXT |
SIM/CID10/DOFET |
idem |
sim_obitos_infantis |
DOINF |
SIM/CID10/DOFET |
idem |
sim_obitos_maternos |
DOMAT |
SIM/CID10/DOFET |
idem |
sim_obitos_cid9 |
DOR |
SIM/CID9/DORES |
1979–1995, por UF, ano com dois dígitos (DORRR79.DBC) |
Os subconjuntos não leem SIM/PRELIM/DOFET: em 2026-09-22 o ano de 2025 estava nos dois
diretórios, com o mesmo tamanho e data, e a biblioteca recusa um escopo publicado duas
vezes; os arquivos preliminares de 2026 ficam de fora até o DATASUS remover a cópia.
DOREXT (2013–2025, no mesmo diretório) fica de fora enquanto a documentação não disser o
que é. DORBR79–DORBR95 são o Brasil, não uma UF.
sim_obitos_infantis, sim_obitos_maternos e sim_obitos_externos usam os campos de
sim_obitos, copiados por scripts/metadados/gerar_subconjuntos_sim.py: os
registros do DOINF, DOMAT e DOEXT são registros do DO. Em 11 anos de 1996 a 2024, os 7.999
residentes de RR com um único par no DORR (mesmas data e hora do óbito, nascimento, sexo e
causa básica) são iguais a ele, exceto CONTADOR, a numeração do arquivo.
Em 2010 e 2015 o subconjunto deixa vazios CODBAIRES, CODBAIOCOR e NUDIASOBIN, que o
DO preenche; nenhum campo traz um valor não vazio diferente
(evidence/2026-09-23-sim-subconjuntos/). O DOFET é outro registro e o CID-9 é
outra era: os dicionários deles partem do inventário físico do descritor DBF de uma fixture
real (scripts/gen_dicionario.py). Os rótulos de categoria vêm do CNV do TabWin quando o DEF
liga o campo e todo valor não branco da fixture é chave do mapa
(sources/cnv/vinculos.json); calendários, cadastros e faixas não são copiados. sexo
fica sem rótulo no DOFET e no CID-9: SEXO.CNV rotula só com as letras M, F e I.
Armadilhas¶
idadenão está em anos: são 3 caracteres, o primeiro com a unidade e os dois seguintes com a quantidade (Estrutura do SIM 2025, p. 2).- O documento lista as unidades 1 = minuto, 2 = hora, 3 = mês, 4 = ano e 5 = idade maior que 100 anos, e 9 = ignorado (Estrutura do SIM 2025, p. 2).
- A unidade 3 é mês: o documento dá para ela a faixa "de 1 a menos de 12 meses
completos", com quantidade de 01 a 11 (Estrutura do SIM 2025, p. 2). Em SIM Roraima
2022, os 123 registros com unidade 3 tinham quantidade de 01 a 11
(
evidence/2026-09-13-guia-pesquisador-validacao.md, §4.3). - Em óbito fetal,
idadenão deve ser preenchida (Estrutura do SIM 2025, p. 2). sexousa M ou 1 = masculino, F ou 2 = feminino, e I, 0 ou 9 = ignorado (Estrutura do SIM 2025, p. 2).- O contrato declara
sexocomo código textual, preservando letras e dígitos. O exemplo experimental antigo registra a divergência histórica de tipo lógico; a definição atual está no contrato públicodescribe_dataset(). causabas_oguarda a causa básica informada antes da resseleção (Estrutura do SIM 2025, p. 6). Em outro campo,altcausaindica se houve correção ou alteração da causa do óbito após investigação (Estrutura do SIM 2025, p. 8).tp_alteratraz códigos como "CausaBas em branco", "CausaBas com ausência do 4 caractere" e "CausaBas inválida para o Sexo Feminino" (Estrutura do SIM 2025, p. 9).codmunres(residência) ecodmunocor(ocorrência) respondem a perguntas diferentes e têm tamanhos declarados diferentes, 7 e 8 caracteres (Estrutura do SIM 2025, p. 3).- A escolaridade do falecido aparece em mais de um campo:
escem anos de estudo (Estrutura do SIM 2025, p. 5),esc2010pelo nível da última série concluída (p. 2) eescfalagr1para o formulário a partir de 2010 (p. 7). gestacaoé a faixa de semanas de gestação do formulário antigo (Estrutura do SIM 2025, p. 9);semagestactraz as semanas com dois algarismos (p. 4).pesoé o peso ao nascer em gramas (Estrutura do SIM 2025, p. 4).- O documento é a edição atualizada em 07/2025 (Estrutura do SIM 2025, p. 1).
- O documento não descreve
numerodonemcontador, que o dicionário da biblioteca declara (Estrutura do SIM 2025, p. 1–9;src/omnisus/data/dicionarios/sim_obitos.yaml). - Os códigos ficam no lake como publicados: o dicionário decodifica rótulos, datas e
idade na exibição, não na importação (
src/omnisus/transforms/dictionaries.py, docstring do módulo;src/omnisus/sources/datasus_ftp/staging.py, que não decodifica).
Em aberto¶
- Se os arquivos
DOREStrazem óbitos fetais: o documento define os dois valores detipobito(p. 1), mas na importação real de Roraima 2022–2023 nenhum dos 6 557 registros era fetal (evidence/2026-09-10-marimo-real/verification.json,filter_2022_non_fetaleempty_fetal_selection). Não conte óbitos fetais com esta base sem conferirtipobitonos seus dados. - A edição de 07/2025 diverge das unidades dos documentos anterior e DOM. O DOM
confirma 0 = minutos, 1 = horas, 2 = dias e 3 = meses. O documento anterior
distingue
000ignorado e400menor de um ano sem subunidade. Há 91 valores100/200no snapshot fora dos mínimos documentais; a projeção aceita zero anos completos nesses escopos e registra essa decisão, conforme a auditoria abaixo. - Se a edição de 07/2025 vale para arquivos de anos anteriores: o exemplo auditado do
campo
sexodeixa aberta a confirmação de uma referência aplicável a 2023 (docs/dicionario/exemplos/sim_obitos.sexo.json, questãoedition-applicability). - Se um arquivo
DOUFAAAAreúne óbitos de residentes na UF ou óbitos ocorridos na UF: o documento não explica o diretórioDORES. Compare o prefixo decodmunrese decodmunocorcom a UF do arquivo; a consultaresidencia_e_ocorrenciado notebook faz isso. - O comprimento do código de município nos dados: o documento declara 7 e 8
caracteres (p. 3); os arquivos gravam 6, e o dicionário liga esses campos a
aux_municipios.codigo_6(vocabulários). Confira nos seus dados antes de juntar com a população do IBGE.
Como usar¶
import omnisus as sus
alvo = "ducklake:./data/raw/omnisus.ducklake" # o padrão de Lake.local() e load()
escopos = sus.available("sim_obitos", years=[2022], ufs=["RR"], refresh=True)
relatorio = sus.import_dataset(
"sim_obitos", scopes=escopos, target=alvo, policy="skip_same", run_id="sim-rr-2022"
)
with sus.LakeReader(alvo) as leitor:
print(leitor.connect().sql("SELECT ano, count(*) AS obitos FROM lake.sim_obitos GROUP BY ano").pl())
Passo a passo com análise e procedência:
notebooks/sim_obitos.py
.
Fontes¶
- Estrutura do SIM (
Estrutura_do_SIM_2025.pdf), CGIAE/DASNT/SVS/MS, arquivo atualizado em 07/2025: ftp://ftp.datasus.gov.br/dissemin/publicos/SIM/CID10/DOCS/Estrutura_do_SIM_2025.pdf — consultado em 2026-09-10; SHA-256b4195ac8e0f825a794cb487df93db41601a2f430a708172f494f1251b55eeeb1, conferido de novo em 2026-09-13. Registro:src/omnisus/data/dicionarios/sources/registry.json. - Catálogo gerado do registro da biblioteca: Datasets.
- Exemplo auditado do campo
sexo, com as questões abertas citadas acima: sim_obitos.sexo.json.
Detalhes técnicos¶
Linha de comando¶
omnisus inventory sim_obitos --refresh
omnisus import sim_obitos --plan inventory --years 2020-2024 --ufs RR
As importações acrescentam linhas a lake.sim_obitos. Ao terminar, a importação
devolve um ImportReport; o estado de uma transação interrompida aparece em
ImportAbortedError. Veja
resultados e transações.
Dicionário¶
As definições de campo, os metadados de chave estrangeira e as regras de decodificação
ficam em src/omnisus/data/dicionarios/sim_obitos.yaml. A ingestão preserva os valores e tipos do DBF, normaliza nomes de colunas e
acrescenta as partições e a modalidade de origem. O YAML descreve campos e
apresentação; ele não comanda coerções na ingestão. Colunas não listadas no YAML
também são preservadas. A validação do dicionário, sozinha, não
certifica todos os registros recebidos.
Dados preliminares¶
O DATASUS também publica sim_obitos em /dissemin/publicos/SIM/PRELIM/DORES, ao
lado do diretório final. Um ano pode estar disponível apenas em um dos dois;
available_releases() (em Cobertura e modalidade) mostra
qual.
Cada linha carrega _source_release (final ou prelim), então um ano preliminar
convive na mesma tabela com anos finais sem se confundir com eles. Quando o DATASUS
republica um ano preliminar como final:
with sus.LakeReader() as leitor:
movidos = sus.outdated("sim_obitos", lake=leitor)
sus.import_dataset("sim_obitos", scopes=movidos,
policy="replace", run_id="sim-final-2026")
Auditoria do contrato analítico (2026-09-14)¶
Regras, divergências, inventário e limites de aplicabilidade estão na
auditoria reproduzível.
Ela registra o snapshot 5, os hashes das publicações, schemas e consultas agregadas.
A aplicabilidade se restringe aos escopos confirmados; uma edição documental não
valida automaticamente toda a série histórica. A procedência de arquivo é
consultada por LakeReader.publications() no mesmo snapshot.
Extensão de escopo (2026-09-14)¶
A regra 1.1.0 inclui o arquivo final DORR2021.dbc, identificado pelo SHA-256
600b8af449468fec082e4e7ab6e852abae188cac73743c64dd470d122a41213a.
As 4.306 linhas foram auditadas integralmente para idade, sexo e datas.
Os demais arquivos continuam sujeitos à confirmação individual de identidade.
Veja relatório e reprodução.