Dados do Sistema de Informação sobre Mortalidade - Declaração de Óbitos Fetais (SIM-DOFET) reunidos pela Plataforma de Ciência de Dados aplicada à Saúde (PCDaS).
Os dados foram obtidos junto ao DATASUS (Ministério da Saúde), tratados e enriquecidos seguindo uma metodologia própria de ETL (Extract, Transform, Load) da PCDaS, resultando em um dataset anual com todos os registros das declarações de óbitos fetais contidas no DOFET de 1996 a 2020.
A atualização dos dados é realizada pelo DATASUS, e a PCDaS extrai os registros anuais assim que disponibilizados. As colunas com nomes em MAIÚSCULAS representam dados originais advindos do DATASUS e colunas com nomes iniciando em minúsculo representam dados resultantes de transformação ou enriquecimento.
O processo de Extração, Transformação e Carregamento (Extract, Transform, Load – ETL) é um processo que envolve:
- Extração de dados de fontes externas;
- Transformação dos dados para atender às necessidades de negócios;
- Carregamento dos dados;
Extract
Transform
Load
A implementação de todo o fluxo ETL descrito foi feita em uma ferramenta criada para agendar e monitorar fluxos de trabalho, tecnologia esta utilizada no momento da criação deste tutorial, mas que se encontra em constante evolução. Este processo ETL foi executado para cada ano selecionado e disponível no servidor FTP do DATASUS através do link: ftp://datasus.gov.br/dissemin/publicos/SIM/CID10/DOFET . Uma visão geral do fluxo ETL é apresentada no diagrama a seguir:
![]() |
Detalhes de código/dados da implementação do fluxo ETL são apresentados a seguir.
![]() |
1: Acessando o servidor FTP do DATASUS através do link: ftp://datasus.gov.br/dissemin/publicos/SIM/CID10/DOFET e baixando os arquivos com extensão .dbc contendo os dados do SIM-DOFET para para cada ano disponível/desejado;
![]() |
![]() |
Detalhes do tratamento dos dados são apresentados a seguir, onde colunas com nomes em maiúsculo representam dados originais advindos do DATASUS e colunas com nomes em minúsculo representam dados resultantes de tratamento:
1. Eliminando valores inválidos:
Coluna | Valores Aceitos | Valores inválidos são substituídos por |
---|---|---|
GESTACAO | [1,2,3,4,5,6,9] | 9 |
TIPOBITO | [1,2] | 9 |
SEXO | [0,1,2,'M','F'] | 0 |
RACACOR | [1,2,3,4,5] | 9 |
LOCOCOR | [1,2,3,4,5,9] | 9 |
ESCMAE | [1,2,3,4,5,9] | 9 |
GRAVIDEZ | [1,2,3,9] | 9 |
PARTO | [1,2,9] | 9 |
OBITOPARTO | [1,2,3,9] | 9 |
ASSISTMED | [1,2,9] | 9 |
ATESTANTE | [1,2,3,4,5,9] | 9 |
IDADEMAE | números inteiros | NULL |
NATURAL | números inteiros | NULL |
OCUP | números inteiros | NULL |
OCUPMAE | números inteiros | NULL |
PESO | números inteiros | NULL |
QTDFILVIVO | números inteiros | NULL |
QTDFILMORT | números inteiros | NULL |
FILHVIVOS | números inteiros | NULL |
FILHMORT | números inteiros | NULL |
As colunas CRM
e MEDICO
foram removidas do conjunto de dados, por se tratar de dados sensíveis.
2. Decodificando e enriquecendo os dados:
Coluna | Códigos | Coluna Resultante |
---|---|---|
TIPOBITO | {1:'óbito fetal', 2:'óbito não fetal'} | def_tipo_obito |
SEXO | {M':1, 'F':2} | SEXO |
SEXO | {0:"Ignorado",1:"Masculino", 2:"Feminino"} | def_sexo |
RACACOR | {1:"Branca",2:"Preta",3:"Amarela",4:"Parda",5:"Indígena", 9:"Ignorado"} | def_raca_cor |
LOCOCOR | {9:"Ignorado",1:"Hospital",2:"Outro Estab. Saúde", 3:"Domicílio", 4:"Via Pública", 5:"Outros"} | def_loc_ocor |
ESCMAE | {1:"Nenhuma",2:"1 a 3 anos",3:"4 a 7 anos",4:"8 a 11 anos",5:"12 e mais",9:"Ignorado"} | def_escol_mae |
GRAVIDEZ | {9:'Ignorado', 1:'Única',2:'Dupla',3:'Tripla ou mais'} | def_gravidez |
PARTO | {9:"Ignorado",1:"Vaginal",2:"Cesáreo"} | def_parto |
OBITOPARTO | {9:'Ignorado', 1:'Antes',2:'Durante',3:'Depois'} | def_obito_parto |
OBITOGRAV | {9:'Ignorado', 1:'Sim',2:'Não'} | def_obito_grav |
OBITOPUERP | {9:'Ignorado', 1:'Sim, até 42 dias',2:'sim, de 43 dias a 01 ano',3:'Não'} | def_obito_puerp |
ASSISTMED | {9:'Ignorado', 1:'Com assitência',2:'Sem assistência'} | def_assist_med |
ATESTANTE | {9:'Ignorado', 1:'Sim',2:'Substituto',3:'IML',4:'SVO',5:'Outros'} | def_atestante |
ESC | {1:"Nenhuma",2:"1 a 3 anos",3:"4 a 7 anos",4:"8 a 11 anos",5:"12 e mais",9:"Ignorado"} | def_escol |
ESTCIV | {1:"Solteiro", 2:"Casado", 3:"Viúvo",4:"Separado Judic./Divorciado",9:"Ignorado"} | def_est_civil |
GESTACAO | {1:'Menos de 22 semanas', 2:'22 a 27 semanas', 3:'28 a 31 semanas', 4:'32 a 36 semanas', 5:'37 a 41 semanas', 6:'42 semanas e mais', 9:'Ignorado'} | def_gestacao |
EXAME | {9:'Ignorado', 1:'Sim',2:'Não'} | def_exame |
CIRURGIA | {9:'Ignorado', 1:'Sim',2:'Não'} | def_cirurgia |
NECROPSIA | {9:'Ignorado', 1:'Sim',2:'Não'} | def_necropsia |
CIRCOBITO | {9:'Ignorado', 1:'Acidente',2:'Suicídio', 3:'Homicídio',4:'Outros'} | def_circ_obito |
ACIDTRAB | {9:'Ignorado', 1:'Sim',2:'Não'} | def_acid_trab |
FONTE | {9:'Ignorado', 1:'Boletim de ocorrência',2:'Hospital',3:'Família',4:'Outra'} | def_fonte |
QTDFILVIVO | {"0":"Sem Filhos", "1 a 3": "1 a 3 filhos", "4 a 6": "4 a 6 filhos", "7 a 8": "7 a 8 filhos", "9 a 13": "9 a 13 filhos", "14 a 98": "14 ou mais filhos","99": "Ignorado"} | def_num_filhos_vivos |
QTDFILMORT | {"0":"Sem Filhos", "1": "1 filho", "2 a 4": "2 a 4 filhos", "5 a 98": "5 ou mais filhos", "99": "Ignorado"} | def_num_filhos_mortos |
3. Enriquecimento de dados com tabelas auxiliares
3.1 Enriquecendo os dados relacionados a município:
O enriquecimento dos dados do SIM-DOFET relacionados a município foram baseados nos dados disponíveis no seguinte arquivo:
Coluna base | Operação | Colunas Resultantes |
---|---|---|
CODMUNRES | Truncar para um máximo de 6 caracteres | CODMUNRES |
CODMUNRES | Fazer junção ("left join") com base na coluna 'MUNCOD' em 'municipios' | ["res_MUNNOME", "res_MUNNOMEX", "res_AMAZONIA", "res_FRONTEIRA", "res_CAPITAL", "res_UFCOD", "res_MSAUDCOD", "res_RSAUDCOD", "res_CSAUDCOD", "res_LATITUDE", "res_LONGITUDE", "res_ALTITUDE", "res_AREA", "res_codigo_adotado"] |
CODMUNOCOR | Truncar para um máximo de 6 caracteres | CODMUNOCOR |
CODMUNOCOR | Fazer junção ("left join") com base na coluna 'MUNCOD' em 'municipios' | ["ocor_MUNNOME", "ocor_MUNNOMEX", "ocor_AMAZONIA", "ocor_FRONTEIRA", "ocor_CAPITAL", "ocor_UFCOD", "ocor_MSAUDCOD", "ocor_RSAUDCOD", "ocor_CSAUDCOD", "ocor_LATITUDE", "ocor_LONGITUDE", "ocor_ALTITUDE", "ocor_AREA", "ocor_codigo_adotado"] |
3.2. Enriquecendo os dados relacionados a UF:
O enriquecimento dos dados do SIM-DOFET relacionados a UF foram baseados nos dados disponíveis no seguinte arquivo:
Coluna base | Operação | Colunas Resultantes |
---|---|---|
res_UFCOD | Fazer junção ("left join") com base na coluna 'CODIGO' em 'ufs' | ["res_SIGLA_UF", "res_CODIGO_UF", "res_NOME_UF"] |
res_CODIGO_UF | Definir a região da UF de acordo com o primeiro dígito de seu código {1:'Norte', 2:'Nordeste', 3:'Sudeste', 4:'Sul', 5:'Centro-Oeste'} | res_REGIAO |
ocor_UFCOD | Fazer junção ("left join") com base na coluna 'CODIGO' em 'ufs' | ["ocor_SIGLA_UF", "ocor_CODIGO_UF", "ocor_NOME_UF"] |
ocor_CODIGO_UF | Definir a região da UF de acordo com o primeiro dígito de seu código {1:'Norte', 2:'Nordeste', 3:'Sudeste', 4:'Sul', 5:'Centro-Oeste'} | ocor_REGIAO |
3.3. Enriquecendo os dados relacionados a CID10:
O enriquecimento dos dados do SIM-DOFET relacionados a CID10 foram baseados nos dados disponíveis nos seguintes arquivos:
Coluna base | Operação | Colunas Resultante |
---|---|---|
CAUSABAS | Truncar para um máximo de 3 caracteres | CAUSABAS_tmp_1 |
CAUSABAS | Truncar para um máximo de 4 caracteres | CAUSABAS_tmp_2 |
CAUSABAS_tmp_1 | Fazer junção ("left join") com base na coluna 'cod_capitulo' em 'CID10' e extração da coluna 'descr_capitulo' | causabas_capitulo |
CAUSABAS_tmp_1 | Fazer junção ("left join") com base na coluna 'cod_grupo' em 'CID10' e extração da coluna 'descr_grupo' | causabas_grupo |
CAUSABAS_tmp_1 | Fazer junção ("left join") com base na coluna 'cod_categoria' em 'CID10' e extração da coluna 'descr_categoria' | causabas_categoria |
CAUSABAS_tmp_2 | Fazer junção ("left join") com base na coluna 'cod_subcategoria em 'CID10' e extração da coluna 'descr_subcategoria' | causabas_subcategoria |
CAUSABAS_tmp_1 e CAUSABAS_tmp_2 | Remoção de colunas | NULL |
3.4 Enriquecendo os dados relacionados à ocupação da mãe:
O enriquecimento dos dados do SIM-DOFET relacionados ao CBO foram baseados nos dados disponíveis no seguinte arquivo:
Coluna base | Operação | Coluna Resultante |
---|---|---|
OCUPMAE | Fazer junção ("left join") com base na coluna OCUPMAE | def_cbo |
4. Enriquecendo os dados relacionados a data:
Para cálculo da semana
e ano
epidemiológico foi utilizado o pacote epiweeks.
Coluna base | Operação | Coluna Resultante |
---|---|---|
DTOBITO | Converter para tipo data | data_obito |
data_obito | Extrair ano (se 1996 <= ano <= 2020) | ano_obito |
data_obito | Extrair dia da semana | dia_semana_obito |
DTNASC | Converter para tipo data | data_nasc |
data_nasc | Extrair ano (se ano < ano_obito) | ano_nasc |
data_nasc | Extrair dia da semana | dia_semana_nasc |
data_obito | Extrair semana e ano epidemiológico | def_semana_ano_epi |
def_semana_ano_epi | Extrair semana epidemiológica | def_semana_epi |
def_semana_ano_epi | Extrair ano epidemiológico | def_ano_epi |
5. Enriquecendo os dados relacionados a coordenadas:
Coluna base | Operação | Coluna Resultante |
---|---|---|
res_LATITUDE e res_LONGITUDE | Concatenar coordenadas | res_coordenadas |
ocor_LATITUDE e ocor_LONGITUDE | Concatenar coordenadas | ocor_coordenadas |
Retorno da fase de tratamento (exemplo):
![]() |
![]() |
1. Indexando dados tratados do SIM-DOFET em um banco de dados NoSQL:
O download e a prévia do conjunto de dados resultante de todo o tratamento realizado e indexado no banco de dados NoSQL estão disponíveis na PCDaS, assim como o dicionário de variáveis.
Para conferir as visualizações de avaliação dos dados acesse o link.
Foi criado um painel composto por diversos gráficos, com intuito de possibilitar a visualização de potenciais inconsistências na base de dados. Duas visualizações funcionam como base da exploração, e portanto existem para serem checadas após a aplicação de filtros. As restantes mostram, uma a uma, variáveis que assumem valores considerados suspeitos.
A visualização Quantidade de óbitos por UF de Ocorrência
é uma tabela que mostra como a quantidade de óbitos (ou registros) está distribuída pelas UFs do país. O campo utilizado do conjunto de dados nesta visualização é "ocor_NOME_UF".
O gráfico Quantidade de Óbitos por Ano
exibi como a quantidade de óbitos (ou registros) varia ao longo dos anos, o campo ilustrado possui o nome "ano_obito" na base de dados.
A visualização Quantidade de Filhos Vivos (Acima de 17 Filhos)
é um gráfico de barras que utiliza a variável "QTDFILVIVO". Esta visualização mostra a quantidade de registros cujas mães possuiam mais de 17 filhos vivos. Cada barra representa um valor referente a uma quantidade de filhos vivos. São excluídos valores menores que '17' e iguais a '99'. Diversas mães existentes na base, possuem mais de 50 filhos vivos, segundo os dados. A visualização Quantidade de Filhos Mortos (Acima de 17 Filhos)
é idêntica a anterior, mas para o caso de filhos mortos e a variável exposta é "QTDFILMORT".
O gráfico Idade da Mãe (Até 10 Anos)
de barras horizontais expõe a variável 'IDADEMAE'. Nos dados, vemos diversas mães com idade de '0', '1', '2', '3', etc.
A visualização Sexo do Feto (Até a 11 Semana de Gestação)
é também um gráfico de barras horizontais que são mostrados casos onde o sexo do feto foi determinado no período de:
Existem muitos registros com sexo definido e menos de 3 semanas de gestação. As variáveis utilizadas nesta construção são "def_sexo" e "SEMAGESTAC".
O histograma Peso dos Fetos em Intervalos de 300g (Acima de 4800g)
mostra a distribuição da variável "PESO" cada barra representa um intervalo de 300 gramas. É possível observar através dele a existência de muitos fetos com mais de 9000g.
Por fim, o mapa Óbitos Sem UF de Residência
exibe o local de ocorrência dos registros que não possuem valor de "res_SIGLA_UF".
Os dados SIM-DOFET indexados possibilitam o desenvovimento de dashboards para a visualização simples, rápida e dinâmica de grandes quantidades de dados. Os dashboards desenvolvidos estão disponíveis para visualização na PCDaS na seção de Análise visual.
Laboratório Nacional de Computação Científica (LNCC)
Plataforma de Ciência de Dados aplicada à Saúde (PCDaS)
Instituto de Comunicação e Informação Científica e Tecnológica em Saúde (ICICT)
Fundação Oswaldo Cruz (Fiocruz)
Sistema Único de Saúde (SUS)