Mortalidade proporcional segundo o capítulo da CID-10: mudanças entre as edições

De Wiki
Ir para navegação Ir para pesquisar
Linha 119: Linha 119:


== Método de processamento de dados ==
== Método de processamento de dados ==
Consulta [https://pt.wikipedia.org/wiki/PostgreSQL postgreSQL] para criação da tabela <code>cartesiano.mv_codufmun_ano</code>:<syntaxhighlight lang="sql">
CREATE MATERIALIZED VIEW cartesiano.mv_codufmun_ano
AS SELECT vcc.co_municip AS co_municipio_ibge,
    i.i AS ano
  FROM territoriais.mv_municipios vcc
    CROSS JOIN
        unnest('{2015,2016,2017,2018,2019,2020,2021,2022}'::integer[]) i(i)
  ORDER BY vcc.co_municip, i.i;


-- View indexes:
CREATE INDEX mv_codufmun_ano_co_municipio_ibge_idx
    ON cartesiano.mv_codufmun_ano USING btree (co_municipio_ibge, ano);
</syntaxhighlight>
Consulta [https://pt.wikipedia.org/wiki/PostgreSQL postgreSQL] para criação da tabela <code>bd_geral.td_faixa_etaria</code>:<syntaxhighlight lang="sql">
CREATE TABLE bd_geral.td_faixa_etaria (
id int4 NOT NULL,
tipo_faixa_etaria varchar(100) NOT NULL,
inferior int2 NOT NULL,
superior int2 NOT NULL,
faixa_etaria varchar NULL,
sistema varchar NULL,
faixa_referencia int4 NULL,
pop_ibge_range int4range NULL,
CONSTRAINT td_faixa_etaria_pk PRIMARY KEY (id)
);
CREATE INDEX td_faixa_etaria_inferior_idx
  ON bd_geral.td_faixa_etaria USING btree (inferior, superior);
CREATE INDEX td_faixa_etaria_tipo_faixa_etaria_idx
    ON bd_geral.td_faixa_etaria USING btree (tipo_faixa_etaria);
</syntaxhighlight>
== Método de processamento analítico ==
== Método de processamento analítico ==
Consulta [https://pt.wikipedia.org/wiki/PostgreSQL postgreSQL] para criação da tabela <code>mv_obitos</code>:<syntaxhighlight lang="sql">
CREATE MATERIALIZED VIEW pri.mv_obito AS
SELECT
    d.codmunocor,
    d.codmunres,
    d.causabas,
    d.tipobito,
    d.ano_obito,
    to_date(lpad(d.dtobito::text, 8, '0'::text), 'DDMMYYYY'::text) AS dtobito,
    d.idade,
    f.faixa_etaria,
    f.id AS faixa_etaria_id,
    f.faixa_referencia,
    d.racacor,
    d.esc2010,
    d.gravidez,
    d.gestacao,
    d.parto,
    d.obitoparto,
    d.obitograv,
    d.obitopuerp,
    d.morteparto,
    d.tpobitocor,
    d.fonteinv,
    d.escfalagr1
  FROM sim."do" d
    LEFT JOIN bd_geral.td_faixa_etaria f
      ON d.idade >= f.inferior
      AND d.idade <= f.superior
  WHERE f.sistema::text ~~* 'SIM'::text
    AND d.ano_obito > 2014;
</syntaxhighlight>
Consulta [https://pt.wikipedia.org/wiki/PostgreSQL postgreSQL] para criação da tabela <code>mv_cid10_cat_grup</code>:<syntaxhighlight lang="sql">
CREATE FOREIGN TABLE public.mv_cid10_cat_grup (
id int4 NULL,
cid10 varchar(4) NULL,
opc bpchar(1) NULL,
cat bool NULL,
subcat bool NULL,
descr varchar(100) NULL,
restrsexo int2 NULL,
categoria_id int4 NULL,
cod_categoria bpchar(3) NULL,
categoria varchar(100) NULL,
grupo varchar(100) NULL,
grupo_id int4 NULL
)
SERVER lake_saude
OPTIONS (schema_name 'public', table_name 'mv_cid10_cat_grup');
</syntaxhighlight>
Consulta [https://pt.wikipedia.org/wiki/PostgreSQL postgreSQL] para criação da tabela <code>mv_c_4_cartesiano</code>:<syntaxhighlight lang="sql">
CREATE MATERIALIZED VIEW pri.mv_c_4_cartesiano
AS WITH obitos_causas AS (
        SELECT mo.ano_obito AS nu_ano,
            mo.codmunres,
            mo.faixa_etaria_id,
            tdg.id AS grupo_causa_id,
            tdg.ds_grupo_causa,
            count(*) AS nu_obitos_grupo
          FROM pri.mv_obitos mo
            JOIN mv_cid10_cat_grup mccg ON mo.causabas = mccg.id
            JOIN pri.td_cid10_grupo_causas tdg
              ON "left"(mccg.cid10::text, 3) >= tdg.cid_inicial::text
              AND "left"(mccg.cid10::text, 3) <= tdg.cid_final::text
          GROUP BY mo.ano_obito, mo.codmunres, mo.faixa_etaria_id, tdg.ds_grupo_causa, tdg.id
          ORDER BY mo.ano_obito, mo.codmunres, mo.faixa_etaria_id, tdg.ds_grupo_causa
        ), obitos_causas_basicas AS (
        SELECT mo.ano_obito AS nu_ano,
            mo.codmunres,
            mo.faixa_etaria_id,
            count(*) AS nu_obitos_total
          FROM pri.mv_obitos mo
            JOIN mv_cid10_cat_grup mccg ON mo.causabas = mccg.id
          GROUP BY mo.ano_obito, mo.codmunres, mo.faixa_etaria_id
          ORDER BY mo.ano_obito, mo.codmunres, mo.faixa_etaria_id
        ), mv_codufmun_ano_grupos_causa AS (
        SELECT ca.co_municipio_ibge,
            ca.ano,
            tcgc.id AS grupo_causa_id,
            f.id AS faixa_etaria_id
          FROM cartesiano.mv_codufmun_ano ca
            CROSS JOIN pri.td_cid10_grupo_causas tcgc
            CROSS JOIN bd_geral.td_faixa_etaria f
          WHERE f.sistema::text ~~* 'SIM'::text
        )
SELECT 13 AS indicador_id,
    cart.co_municipio_ibge,
    cart.ano,
    cart.grupo_causa_id,
    cart.faixa_etaria_id,
    cgc.ds_grupo_causa,
    COALESCE(gr.nu_obitos_grupo, 0::bigint) AS nu_obitos_grupo,
    COALESCE(cb.nu_obitos_total, 0::bigint) AS nu_obitos_total,
        CASE
            WHEN cb.nu_obitos_total IS NOT NULL
              THEN gr.nu_obitos_grupo::numeric /
                  cb.nu_obitos_total::numeric * 100::numeric
            ELSE 0::numeric
        END AS nu_percentual
  FROM mv_codufmun_ano_grupos_causa cart
    JOIN pri.td_cid10_grupo_causas cgc ON cart.grupo_causa_id = cgc.id
    LEFT JOIN obitos_causas gr
      ON cart.co_municipio_ibge = gr.codmunres
      AND cart.ano = gr.nu_ano
      AND cart.grupo_causa_id = gr.grupo_causa_id
    LEFT JOIN obitos_causas_basicas cb
      ON cart.co_municipio_ibge = cb.codmunres
      AND cart.faixa_etaria_id = cb.faixa_etaria_id
      AND cart.ano = cb.nu_ano;
</syntaxhighlight>





Edição das 13h02min de 16 de janeiro de 2023

Introdução

A nota técnica de indicador descreve o trabalho de processamento e apresentação de dados de Principais Grupo de causas de morte por faixa etária e decorrente extratificação. A metodologia aplicada pelo Centro de Informações Estratégicas para a Gestão do SUS (Cieges) constitui adaptação de fichas da Rede Interagencial de Informações para a Saúde (RIPSA) e de ensejos anteriores da gestão estadual do SUS.

Endereço eletrônico

Essa nota técnica é acessível pelo endereço https://wiki.conass.org.br/index.php?title=Principais_Grupo_de_causas_de_morte_por_faixa_et%C3%A1ria.

Objetivo

Apresentar parâmetros de interpretação, granularidade e reprodutibilidade do indicador.

Ficha do indicador para o sanitarista

Conceituação

Distribuição percentual de óbitos por grupos de causas definidas, na população residente em determinado espaço geográfico, no ano considerado.

Interpretação

Mede a participação relativa dos principais grupos de causas de morte no total de óbitos com causa definida.

De modo geral, é influenciado pela participação de fatores que contribuem para aumentar ou diminuir determinadas causas, alterando a distribuição proporcional das demais: condições socioeconômicas, perfil demográfico, infra-estrutura de serviços públicos, acesso e qualidade dos serviços de saúde.

Usos

  • Analisar variações populacionais, geográficas e temporais da mortalidade por grupos de causas em segmentos populacionais, identificando situações de desigualdade e tendências que demandem ações e estudos específicos.
  • Contribuir na avaliação dos níveis de saúde e de desenvolvimento socioeconômico da população, prestando-se para comparações nacionais e internacionais.
  • Subsidiar processos de planejamento, gestão e avaliação de políticas públicas visando à adoção de medidas preventivas e assistenciais relativas a cada grupo de causas.

Limitações

  • Requer correção da subenumeração de óbitos captados pelo Sistema de Informação sobre Mortalidade, especialmente nas regiões Norte e Nordeste.
  • Apresenta restrição de uso sempre que ocorra elevada proporção de óbitos sem assistência médica ou por causas mal definidas.
  • Depende da composição da população por idade e sexo, que condiciona a freqüência de óbitos por causas em segmentos demográficos específicos.
  • Requer informações adicionais para avaliar o risco de morte, pois o aumento (ou redução) proporcional de óbitos por determinada causa pode ser devido a variações da freqüência de outras causas.

Fontes

Ministério da Saúde. Secretaria de Vigilância em Saúde (SVS): Sistema de Informações sobre Mortalidade (SIM).

Métodos de Cálculo

[Óbitos por grupo de causas]÷[Óbitos totais]×100

Nota: Ver os grupos de causas definidas no item Categorias sugeridas para análise.

Categorias Sugeridas para Análise

  • Unidade geográfica: Brasil, grandes regiões, estados, Distrito Federal, regiões metropolitanas e municípios das capitais.
  • Sexo: masculino e feminino.
  • Faixa etária:
    • menor de 1 ano
      • 0 a 6 dias (neonatal precoce),
      • 7 a 27 dias (neonatal tardio) e
      • 28 a 364 dias completos (pós-neonatal);
    • 1 a 4,
    • 5 a 9,
    • 10 a 19,
    • 20 a 29,
    • 30 a 39,
    • 40 a 49,
    • 50 a 59,
    • 60 a 69,
    • 70 a 79 e
    • 80 anos e mais.
  • Grupos de causas, conforme a seguinte classificação:
Grupos de causas Capítulos e códigos na CID-10 Capítulos e códigos na CID-9
Algumas doenças infecciosas e parasitárias I: A00-B99 I: 001-139
Neoplasias II: C00-D48 II: 140-239
Doenças do aparelho circulatório IX: I00-I99 VII: 390-459
Doenças do aparelho respiratório X: J00-J99 VIII: 460-519
Algumas afecções originadas no período perinatal XVI: P00-P96 XV: 760-779
Causas externas XX: V01-Y98 Suplementar: E800-E999
Demais causas definidas Todos os demais capítulos (III a IX, XI a XV, XVII), exceto o XVIII. Os capítulos XIX e XXI não são utilizados como causa básica de óbito. Todos os demais capítulos (III a VI, IX a XIV), exceto o XVI. Os capítulos XVII e Suplementar não são utilizados como causa básica de óbito.

Nota: Observe-se que algumas doenças, como as infecções provocadas pelo HIV e o tétano neonatal, situam-se em capítulos diferentes na CID-9 e CID-10.

Dados Estatísticos e Comentários

Mortalidade proporcional por grupos de causas (%) Brasil e grandes regiões, 1996 e 2004

Grupos de Causas Brasil Norte Nordeste Sudeste Sul C. Oeste 1996 2004 1996 2004 1996 2004 1996 2004 1996 2004 1996 2004 Doenças infecciosas e parasitárias 6,8 5,1 9,2 7,3 8,6 6,0 6,6 4,9 4,6 4,0 8,1 5,5 Neoplasias 13,4 15,7 11,2 12,7 10,6 12,5 13,6 16,3 16,4 19,2 12,0 14,4 Doenças do aparelho circulatório 32,3 31,8 24,1 24,3 29,9 30,9 33,3 32,7 34,7 33,1 28,9 30,8 Doenças do aparelho respiratório 11,5 11,4 9,5 11,1 9,4 9,5 11,8 12,2 13,4 11,8 9,8 10,1 Algumas afecções originadas no período perinatal 4,8 3,5 10,6 8,2 6,9 5,7 4,2 2,4 3,3 2,2 5,7 3,6 Causas externas 15,4 14,2 20,1 18,9 17,0 15,5 14,9 13,3 13,1 12,6 20,5 17,8 Demais causas definidas 15,7 18,3 15,3 17,6 17,7 19,9 15,6 18,2 14,6 17,1 15,1 17,8 Total 100,0 100,0 100,0 100,0 100,0 100,0 100,0 100,0 100,0 100,0 100,0 100,0 Fonte: Ministério da Saúde/SVS – Sistema de Informações sobre Mortalidade (SIM).

Mais de 60% dos óbitos informados no país em 2004 foram devidos a três grupos de causas: doenças do aparelho circulatório (31,8%), causas externas (14,2%) e neoplasias (13,4%), com pequenas variações em relação aos valores de 1996. Nos anos analisados, as doenças do aparelho circulatório estavam em primeiro lugar em todas as regiões. Em seguida, situavam-se as causas externas nas regiões Norte, Nordeste e Centro-Oeste, sendo que as neoplasias estavam em segundo lugar nas regiões Sul e Sudeste. As doenças infecciosas e parasitárias, as causas externas e as afecções originadas no período perinatal diminuíram sua participação em todas as regiões.

Literatura relacionada

A busca "Sudden Infant Death"[Mesh] no sítio PubMed resultou, em 9/1/2022, em 7.810 resultados.

Ficha do indicador para o cientista de dados

Método de processamento de dados

Consulta postgreSQL para criação da tabela cartesiano.mv_codufmun_ano:

CREATE MATERIALIZED VIEW cartesiano.mv_codufmun_ano
AS SELECT vcc.co_municip AS co_municipio_ibge,
    i.i AS ano
   FROM territoriais.mv_municipios vcc
     CROSS JOIN 
        unnest('{2015,2016,2017,2018,2019,2020,2021,2022}'::integer[]) i(i)
  ORDER BY vcc.co_municip, i.i;

-- View indexes:
CREATE INDEX mv_codufmun_ano_co_municipio_ibge_idx 
    ON cartesiano.mv_codufmun_ano USING btree (co_municipio_ibge, ano);

Consulta postgreSQL para criação da tabela bd_geral.td_faixa_etaria:

CREATE TABLE bd_geral.td_faixa_etaria (
	id int4 NOT NULL,
	tipo_faixa_etaria varchar(100) NOT NULL,
	inferior int2 NOT NULL,
	superior int2 NOT NULL,
	faixa_etaria varchar NULL,
	sistema varchar NULL,
	faixa_referencia int4 NULL,
	pop_ibge_range int4range NULL,
	CONSTRAINT td_faixa_etaria_pk PRIMARY KEY (id)
);
CREATE INDEX td_faixa_etaria_inferior_idx 
   ON bd_geral.td_faixa_etaria USING btree (inferior, superior);
CREATE INDEX td_faixa_etaria_tipo_faixa_etaria_idx 
    ON bd_geral.td_faixa_etaria USING btree (tipo_faixa_etaria);

Método de processamento analítico

Consulta postgreSQL para criação da tabela mv_obitos:

CREATE MATERIALIZED VIEW pri.mv_obito AS 
SELECT 
    d.codmunocor,
    d.codmunres,
    d.causabas,
    d.tipobito,
    d.ano_obito,
    to_date(lpad(d.dtobito::text, 8, '0'::text), 'DDMMYYYY'::text) AS dtobito,
    d.idade,
    f.faixa_etaria,
    f.id AS faixa_etaria_id,
    f.faixa_referencia,
    d.racacor,
    d.esc2010,
    d.gravidez,
    d.gestacao,
    d.parto,
    d.obitoparto,
    d.obitograv,
    d.obitopuerp,
    d.morteparto,
    d.tpobitocor,
    d.fonteinv,
    d.escfalagr1
   FROM sim."do" d
     LEFT JOIN bd_geral.td_faixa_etaria f 
       ON d.idade >= f.inferior 
      AND d.idade <= f.superior
  WHERE f.sistema::text ~~* 'SIM'::text 
    AND d.ano_obito > 2014;

Consulta postgreSQL para criação da tabela mv_cid10_cat_grup:

CREATE FOREIGN TABLE public.mv_cid10_cat_grup (
	id int4 NULL,
	cid10 varchar(4) NULL,
	opc bpchar(1) NULL,
	cat bool NULL,
	subcat bool NULL,
	descr varchar(100) NULL,
	restrsexo int2 NULL,
	categoria_id int4 NULL,
	cod_categoria bpchar(3) NULL,
	categoria varchar(100) NULL,
	grupo varchar(100) NULL,
	grupo_id int4 NULL
)
SERVER lake_saude
OPTIONS (schema_name 'public', table_name 'mv_cid10_cat_grup');

Consulta postgreSQL para criação da tabela mv_c_4_cartesiano:

CREATE MATERIALIZED VIEW pri.mv_c_4_cartesiano
AS WITH obitos_causas AS (
         SELECT mo.ano_obito AS nu_ano,
            mo.codmunres,
            mo.faixa_etaria_id,
            tdg.id AS grupo_causa_id,
            tdg.ds_grupo_causa,
            count(*) AS nu_obitos_grupo
           FROM pri.mv_obitos mo
             JOIN mv_cid10_cat_grup mccg ON mo.causabas = mccg.id
             JOIN pri.td_cid10_grupo_causas tdg 
               ON "left"(mccg.cid10::text, 3) >= tdg.cid_inicial::text 
              AND "left"(mccg.cid10::text, 3) <= tdg.cid_final::text
          GROUP BY mo.ano_obito, mo.codmunres, mo.faixa_etaria_id, tdg.ds_grupo_causa, tdg.id
          ORDER BY mo.ano_obito, mo.codmunres, mo.faixa_etaria_id, tdg.ds_grupo_causa
        ), obitos_causas_basicas AS (
         SELECT mo.ano_obito AS nu_ano,
            mo.codmunres,
            mo.faixa_etaria_id,
            count(*) AS nu_obitos_total
           FROM pri.mv_obitos mo
             JOIN mv_cid10_cat_grup mccg ON mo.causabas = mccg.id
          GROUP BY mo.ano_obito, mo.codmunres, mo.faixa_etaria_id
          ORDER BY mo.ano_obito, mo.codmunres, mo.faixa_etaria_id
        ), mv_codufmun_ano_grupos_causa AS (
         SELECT ca.co_municipio_ibge,
            ca.ano,
            tcgc.id AS grupo_causa_id,
            f.id AS faixa_etaria_id
           FROM cartesiano.mv_codufmun_ano ca
             CROSS JOIN pri.td_cid10_grupo_causas tcgc
             CROSS JOIN bd_geral.td_faixa_etaria f
          WHERE f.sistema::text ~~* 'SIM'::text
        )
 SELECT 13 AS indicador_id,
    cart.co_municipio_ibge,
    cart.ano,
    cart.grupo_causa_id,
    cart.faixa_etaria_id,
    cgc.ds_grupo_causa,
    COALESCE(gr.nu_obitos_grupo, 0::bigint) AS nu_obitos_grupo,
    COALESCE(cb.nu_obitos_total, 0::bigint) AS nu_obitos_total,
        CASE
            WHEN cb.nu_obitos_total IS NOT NULL 
              THEN gr.nu_obitos_grupo::numeric / 
                   cb.nu_obitos_total::numeric * 100::numeric
            ELSE 0::numeric
        END AS nu_percentual
   FROM mv_codufmun_ano_grupos_causa cart
     JOIN pri.td_cid10_grupo_causas cgc ON cart.grupo_causa_id = cgc.id
     LEFT JOIN obitos_causas gr 
       ON cart.co_municipio_ibge = gr.codmunres 
       AND cart.ano = gr.nu_ano 
       AND cart.grupo_causa_id = gr.grupo_causa_id
     LEFT JOIN obitos_causas_basicas cb 
       ON cart.co_municipio_ibge = cb.codmunres 
      AND cart.faixa_etaria_id = cb.faixa_etaria_id 
      AND cart.ano = cb.nu_ano;


Amostra da mv_c_4_cartesiano
indicador_id co_municipio_ibge ano grupo_causa_id faixa_etaria_id ds_grupo_causa nu_obitos_grupo nu_obitos_total nu_percentual
13 221065 2020 2 39 Neoplasias 1 0 0
13 240020 2019 6 52 Causas externas 1 25 4
13 410685 2015 1 52 Algumas doenças infecciosas e parasitárias 0 1 [NULL]
13 150140 2017 2 45 Neoplasias 29 309 9,3851132686
13 230530 2021 3 42 Doenças do aparelho circulatório 1 7 14,2857142857
13 521710 2015 6 39 Causas externas 1 0 0
13 310790 2020 1 51 Algumas doenças infecciosas e parasitárias 1 5 20
13 313320 2015 2 41 Neoplasias 1 1 100
13 293170 2016 5 42 Algumas afecções originadas no período perinatal 0 2 [NULL]
13 352850 2020 4 51 Doenças do aparelho respiratório 2 87 2,2988505747
13 430045 2021 3 43 Doenças do aparelho circulatório 1 1 100
13 260790 2020 6 37 Causas externas 25 13 192,3076923077
13 350560 2018 2 43 Neoplasias 5 4 125
13 351535 2021 3 45 Doenças do aparelho circulatório 5 4 125
13 316340 2019 4 36 Doenças do aparelho respiratório 1 1 100
13 230800 2017 3 47 Doenças do aparelho circulatório 3 4 75
13 315220 2020 6 36 Causas externas 3 7 42,8571428571
13 261070 2018 1 47 Algumas doenças infecciosas e parasitárias 10 130 7,6923076923
13 270550 2020 3 41 Doenças do aparelho circulatório 6 8 75
13 120001 2018 4 42 Doenças do aparelho respiratório 3 1 300

Método de apresentação de dados

O indicador constitui painel analítico na plataforma do CIEGES, empregando-se a ferramenta Tableau.

Método de análise matemática e estatística

Método de descoberta de conhecimento em bancos de dados (KDD)

Não foram aplicados modelos de mineração de dados no presente indicador.

Apêndice

Ver também

Ligações externas

Rastreabilidade

atributo valor
Identificador 13
Código RIPSA C.4
Nome RIPSA Mortalidade proporcional por grupos de causas - C.4
URL RIPSA http://fichas.ripsa.org.br/2012/c-4/?l=pt_BR
tabela CIEGES bd_pri.mv_c_4_cartesiano