Leitos complementares por dez mil habitantes

De Wiki
Revisão de 15h09min de 13 de janeiro de 2023 por Felipe.ferre (discussão | contribs)
Ir para navegação Ir para pesquisar

Introdução

A nota técnica de indicador descreve o trabalho de processamento e apresentação de dados de Leitos UTI por habitante e decorrente estratificaçã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=Leitos_UTI_por_habitante.

Objetivo

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

Ficha do indicador para o sanitarista

Conceituação

Número de leitos hospitalares existentes, por mil habitantes residentes, em determinado espaço geográfico, no ano considerado.

Interpretação

  • Mede a relação entre a oferta de leitos hospitalares conveniados ou contratados pelo SUS e a população residente na mesma área geográfica. Não inclui os leitos privados sem vínculo com o SUS.
  • É influenciado por fatores socioeconômicos, epidemiológicos e demográficos, tais como nível de renda, composição etária, desenvolvimento tecnológico, oferta de profissionais de saúde, políticas públicas assistenciais e preventivas, a exemplo das de incentivo a cirurgias ambulatoriais, desospitalização na saúde mental e programas de internação domiciliar. Em geral, a concentração de leitos está associada ao maior poder aquisitivo da população e à demanda por serviços especializados, condições que atraem investimentos do setor privado de saúde.

Usos

  • Analisar variações geográficas e temporais da oferta de leitos hospitalares pelo SUS, segundo a esfera administrativa, identificando situações de desigualdade e tendências que demandem ações e estudos específicos.
  • Subsidiar processos de planejamento, gestão e avaliação de políticas públicas voltadas para a assistência médico-hospitalar de responsabilidade do SUS.

Limitações

  • Exclui os leitos existentes em hospitais privados sem vínculo com o SUS, embora o indicador se refira à população total.
  • Inclui a demanda hospitalar por parte de pessoas não residentes, alterando a relação de proporcionalidade dos leitos disponíveis para a população residente.
  • Inexistem padrões nacionais ou internacionais validados para análises comparativas, pois o indicador expressa uma combinação de fatores inerentes a realidades regionais ou locais distintas.
  • Até 2003, o indicador tinha como fonte os hospitais participantes do Sistema de Informações Hospitalares do SUS (SIH/SUS); a partir de 2005, passa a ser utilizado o Cadastro Nacional de Estabelecimentos de Saúde (CNES). Esta mudança de fonte pode ter introduzido descontinuidades nos valores dos indicadores.
  • Critérios administrativos, como a manutenção efetuada em 2002, eliminando do cadastro hospitais que não mais apresentavam Autorizações de Internações Hospitalares (AIH), podem provocar quebras na série histórica do indicador.
  • Até 2003, os hospitais com atividades de ensino e pesquisa eram classificados como “universitários”, independentemente de sua vinculação ou não a universidades, não discriminando se públicos ou privados. Com a implantação do CNES, esta categoria foi extinta, sendo os hospitais universitários reclassificados como públicos ou privados, também gerando descontinuidade no indicador.

Fontes

Ministério da Saúde. Secretaria de Atenção à Saúde (SAS): Sistema de Informações Hospitalares do SUS – SIH/SUS (até 2003), Cadastro Nacional de Estabelecimentos de Saúde – CNES (a partir de 2005) e base demográfica do IBGE.

Métodos de Cálculo

[Média anual do número mensal de leitos hospitalares existentes]÷[População total residente]×1000

Categorias Sugeridas para Análise

Unidade geográfica: Brasil, grandes regiões, estados, Distrito Federal, regiões metropolitanas e municípios das capitais. Tipo de leito: existentes SUS, existentes não-SUS, total. Esfera administrativa: federal, estadual, municipal e privado. Tipo de prestador: público, privado e filantrópico.

Dados Estatísticos e Comentários

Número médio de leitos hospitalares por região do Brasil
nu_ano 1 N 2 NE 3 SE 4 S 5 CO Brasil
2.015 10.963 35.183,8 37.208 16.522,3 8.738,3 108.615,4
2.016 10.942,6 34.816,1 36.414,6 16.032,4 8.604,7 106.810,3
2.017 10.854,5 34.471,9 35.714,3 15.596,5 8.550 105.187,3
2.018 10.836,1 33.708,1 34.775,7 15.119,7 9.126,5 103.566
2.019 10.666,8 32.876,8 34.136,2 14.776,8 8.953 101.409,4
2.020 10.364,3 32.454,4 33.536,3 14.114,2 8.819,3 99.288,4
2.021 10.287,6 32.211,4 32.846,9 13.418,4 8.694,8 97.459,2

A média do número absoluto de leitos hospitalares apresenta tendência de queda em todas as regiões do Brasil.

Leitos por mil habitantes por região do Brasil
nu_ano 1 N 2 NE 3 SE 4 S 5 CO Brasil
2.015 0,63 0,63 0,43 0,57 0,57 0,53
2.016 0,62 0,62 0,42 0,55 0,55 0,52
2.017 0,61 0,61 0,41 0,53 0,54 0,51
2.018 0,6 0,59 0,4 0,51 0,57 0,5
2.019 0,58 0,58 0,39 0,49 0,55 0,48
2.020 0,56 0,57 0,38 0,47 0,53 0,47
2.021 0,54 0,56 0,37 0,44 0,52 0,46

O número de leitos por habitantes é inferior à média nacional da região Sudeste ao logo da série histórica observada.

Literatura relacionada

A busca "Beds"[Mesh] no sítio PubMed resultou, em 12/1/2022, em 4.588 resultados.

Ficha do indicador para o cientista de dados

Método de processamento de dados

Código posgreSQL de criação da tabela mv_codufmun_competen_tp_leito:

CREATE MATERIALIZED VIEW cartesiano.mv_codufmun_competen_tp_leito
AS SELECT vcc.co_municipio_ibge,
    vcc.competen,
    tctl.co_tpleito
   FROM territoriais.vw_codufmun_competen vcc
     CROSS JOIN cnv.td_cnes_tp_leito tctl;

-- View indexes:
CREATE INDEX mv_codufmun_competen_tp_leito_co_municipio_ibge_idx 
    ON cartesiano.mv_codufmun_competen_tp_leito USING btree 
    (co_municipio_ibge, competen);
Amostra da tabela mv_codufmun_competen_tp_leito
co_municipio_ibge competen co_tpleito
410180 2020-04-01 2
410290 2016-10-01 5
211240 2021-05-01 5
412000 2018-08-01 5
421250 2020-08-01 6
510622 2022-07-01 2
411330 2021-12-01 5
411580 2020-11-01 7
172049 2021-07-01 6
210005 2022-10-01 6
250790 2021-04-01 5
230200 2019-04-01 2
261540 2016-03-01 1
150720 2016-06-01 1
412120 2020-07-01 2


Amostra da vw_codufmun_competen
co_municipio_ibge competen
312510 2022-08-01
251020 2016-02-01
220620 2021-06-01
431290 2019-01-01
412640 2020-03-01
140002 2019-01-01
316695 2016-09-01
310390 2015-05-01
251360 2021-06-01
314180 2018-09-01
292370 2015-05-01
320455 2018-10-01
241030 2015-11-01
352330 2015-03-01
211050 2019-06-01
Tipo de leito mantido na td_cnes_tp_leito
co_tpleito ds_tpleito
1 Cirúrgico
2 Clínico
3 Complementar
4 Obstétrico
5 Pediátrico
6 Outras Especialidades
7 Hospital Dia

Código posgreSQL de criação da tabela mv_leitos_tipo_mun_cartesiano:

CREATE MATERIALIZED VIEW pri.mv_leitos_tipo_mun_cartesiano
AS SELECT cctu.co_municipio_ibge,
    cctu.competen,
    lpm.dt_atualizacao,
    cctu.co_tpleito,
        CASE cctu.co_tpleito
            WHEN 1 THEN 19
            WHEN 2 THEN 20
            WHEN 4 THEN 21
            WHEN 5 THEN 22
            ELSE NULL::integer
        END AS indicador_id,
    COALESCE(lpm.qt_leito, 0::bigint::numeric) AS qt_leitos,
    lpm.st_sus
   FROM cartesiano.mv_codufmun_competen_tp_leito cctu
     LEFT JOIN pri.mv_leitos_tipo_mun lpm 
       ON cctu.co_municipio_ibge = lpm.co_municipio_ibge 
      AND cctu.competen = lpm.dt_competen 
      AND cctu.co_tpleito = lpm.co_tpleito
  WHERE cctu.co_tpleito = ANY (ARRAY[1, 2, 4, 5])
  ORDER BY cctu.co_municipio_ibge, cctu.competen;
Amostra da tabela mv_leitos_tipo_mun_cartesiano
co_municipio_ibge competen dt_atualizacao co_tpleito indicador_id qt_leitos st_sus
354970 2018-01-01 2022-12-09 5 22 6 false
210440 2016-02-01 2022-12-09 4 21 0 false
251370 2021-07-01 2022-12-09 1 19 5 false
521839 2015-07-01 [NULL] 2 20 0 [NULL]
210390 2016-07-01 2022-12-09 4 21 0 false
313420 2021-05-01 2022-12-09 5 22 8 false
250570 2019-07-01 2022-12-09 1 19 2 true
210980 2018-06-01 2022-12-09 1 19 0 false
312610 2018-07-01 2022-12-09 5 22 12 true
522200 2022-02-01 2022-12-09 4 21 5 true
421660 2019-12-01 2022-12-09 2 20 37 false
411930 2017-05-01 2022-12-09 5 22 1 false
421190 2019-11-01 2022-12-09 4 21 4 false
510523 2021-02-01 [NULL] 5 22 0 [NULL]
312120 2021-09-01 2022-12-09 2 20 5 false

Método de processamento analítico

Código posgreSQL de criação da tabela mv_e_3_cartesiano:

CREATE MATERIALIZED VIEW pri.mv_e_3_cartesiano
AS SELECT 8 AS indicador_id,
    x.co_municipio_ibge,
    date_part('year'::text, x.competen) AS nu_ano,
    x.st_sus,
    sum(x.qt_leitos) / 12::numeric AS vl_media_leitos
   FROM pri.mv_leitos_tipo_mun_cartesiano x
  WHERE x.co_tpleito <> ALL (ARRAY[3, 4, 5, 7])
  GROUP BY 8::integer, x.co_municipio_ibge, (date_part('year'::text, x.competen)), x.st_sus;
Amostra da tabela mv_e_3_cartesiano
indicador_id co_municipio_ibge nu_ano st_sus vl_media_leitos
8 251040 2.022 true 0,8333333333
8 521220 2.022 [NULL] 0
8 290290 2.019 true 20
8 521280 2.017 false 14,25
8 270010 2.015 true 17
8 315230 2.015 [NULL] 0
8 241340 2.022 [NULL] 0
8 251250 2.022 false 0
8 211027 2.017 true 8
8 311400 2.015 [NULL] 0
8 352460 2.017 [NULL] 0
8 220010 2.022 [NULL] 0
8 411080 2.018 false 0
8 150750 2.016 true 10
8 293040 2.019 false 0
8 170510 2.020 [NULL] 0
8 430265 2.017 true 14
8 410220 2.019 [NULL] 0
8 240130 2.021 [NULL] 0
8 431710 2.022 [NULL] 0

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

As consultas postgreSQL abaixo ilustra como foi realizada a extração das tabelas apresentadas na seção Dados Estatísticos e Comentários.

Média de leitos em doze meses:

 select 
       extract(year from competen) nu_ano,
       round(sum(case when left(co_municipio_ibge::text,1)::int=1 
                      THEN qt_leitos ELSE 0 END)::numeric/12
      ,1) "1 N",
       round(sum(case when left(co_municipio_ibge::text,1)::int=2
                      THEN qt_leitos ELSE 0 END)::numeric/12
      ,1) "2 NE",
       round(sum(case when left(co_municipio_ibge::text,1)::int=3
                      THEN qt_leitos ELSE 0 END)::numeric/12
      ,1) "3 SE",
       round(sum(case when left(co_municipio_ibge::text,1)::int=4
                      THEN qt_leitos ELSE 0 END)::numeric/12
      ,1) "4 S",
       round(sum(case when left(co_municipio_ibge::text,1)::int=5 
                      THEN qt_leitos ELSE 0 END)::numeric/12
      ,1) "5 CO",
      ROUND(SUM(qt_leitos)::numeric/12,1) "Brasil"
  from pri.mv_leitos_tipo_mun_cartesiano
 where extract(year from competen) between 2015 and 2021
   and co_tpleito in (3, 4, 5, 7)
 group by 1
 order by 1

Leitos por habitante:

select nu_ano,
       max(case when regiao = 1 then leitos_hab end) "1 N",
       max(case when regiao = 2 then leitos_hab end) "2 NE",
       max(case when regiao = 3 then leitos_hab end) "3 SE",
       max(case when regiao = 4 then leitos_hab end) "4 S",
       max(case when regiao = 5 then leitos_hab end) "5 CO",
       max(case when regiao = 0 then leitos_hab end) "Brasil"
from (       
select A.nu_ano,
       A.regiao,
       round((A.qt_leitos::numeric/12)) qt_leitos,
       B.qt_populacao,
       round((A.qt_leitos::numeric/12)/B.qt_populacao*1000,2) leitos_hab
from (
select extract(year from competen) nu_ano,
       left(A.co_municipio_ibge::text,1)::int regiao,
       sum(qt_leitos) qt_leitos
  from pri.mv_leitos_tipo_mun_cartesiano A
 where extract(year from competen) between 2015 and 2021
   and co_tpleito in (3, 4, 5, 7)
   group by 1,2
union
select extract(year from competen) nu_ano,
       0 regiao,
       round(sum(qt_leitos)::numeric) qt_leitos
  from pri.mv_leitos_tipo_mun_cartesiano A
 where extract(year from competen) between 2015 and 2021
   and co_tpleito in (3, 4, 5, 7)
   group by 1,2
) A
  left join 
  (select nu_ano,
          left(co_municipio_ibge::text,1)::int regiao,
          sum(qt_populacao) qt_populacao
     from bd_geral.tf_populacao_municipio_idade_sexo
     group by 1,2
    union
   select nu_ano,
          0 regiao,
          sum(qt_populacao) qt_populacao
     from bd_geral.tf_populacao_municipio_idade_sexo
     group by 1,2 
   ) B
    on A.regiao = B.regiao 
    and A.nu_ano = B.nu_ano 
   order by 1,2
) x
group by 1
order by 1

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

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

Base de dados

O acesso aos dados processados está em desenvolvimento.

Apêndice

Ver também

Ligações externas

Rastreabilidade

atributo valor
Identificador 10
Código RIPSA E.3.4
Nome RIPSA N° de leitos UTI por habitante
URL RIPSA
tabela CIEGES


10 E.3.4 N° de leitos UTI por habitante