Leitos hospitalares SUS e não SUS (versão preliminar): mudanças entre as edições

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


== Método de processamento de dados ==
== Método de processamento de dados ==
Código [https://pt.wikipedia.org/wiki/PostgreSQL posgreSQL] de criação da tabela mv_codufmun_competen_tp_leito:<syntaxhighlight lang="sql">
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);
</syntaxhighlight>
{| class="wikitable sortable mw-collapsible" style="text-align:center;"
|+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
|}
{| class="wikitable sortable mw-collapsible" style="text-align:center;"
|+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
|}
{| class="wikitable sortable mw-collapsible" style="text-align:center;"
|+Tipo de leito mantido na td_cnes_tp_leito
|-
! co_tpleito
! style="text-align:left;" | ds_tpleito
|-
| 1
| style="text-align:left;" | Cirúrgico
|-
| 2
| style="text-align:left;" | Clínico
|-
| 3
| style="text-align:left;" | Complementar
|-
| 4
| style="text-align:left;" | Obstétrico
|-
| 5
| style="text-align:left;" | Pediátrico
|-
| 6
| style="text-align:left;" | Outras Especialidades
|-
| 7
| style="text-align:left;" | Hospital Dia
|}
Código [https://pt.wikipedia.org/wiki/PostgreSQL posgreSQL] de criação da tabela mv_leitos_tipo_mun_cartesiano:<syntaxhighlight lang="sql">
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;
</syntaxhighlight>
{| class="wikitable sortable mw-collapsible" style="text-align:center;"
|+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 ==
== Método de processamento analítico ==


==Método de apresentação de dados==
 
Código [https://pt.wikipedia.org/wiki/PostgreSQL posgreSQL] de criação da tabela mv_e_3_cartesiano:<syntaxhighlight lang="sql">
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;
</syntaxhighlight>
 
{| class="wikitable sortable mw-collapsible" style="text-align:center;"
|+Amostra da tabela mv_e_3_cartesiano
|-
! indicador_id
! co_municipio_ibge
! nu_ano
! st_sus
! style="text-align:right;" | vl_media_leitos
|-
| 8
| 251040
| 2.022
| true
| style="text-align:right;" | 0,8333333333
|-
| 8
| 521220
| 2.022
| [NULL]
| style="text-align:right;" | 0
|-
| 8
| 290290
| 2.019
| true
| style="text-align:right;" | 20
|-
| 8
| 521280
| 2.017
| false
| style="text-align:right;" | 14,25
|-
| 8
| 270010
| 2.015
| true
| style="text-align:right;" | 17
|-
| 8
| 315230
| 2.015
| [NULL]
| style="text-align:right;" | 0
|-
| 8
| 241340
| 2.022
| [NULL]
| style="text-align:right;" | 0
|-
| 8
| 251250
| 2.022
| false
| style="text-align:right;" | 0
|-
| 8
| 211027
| 2.017
| true
| style="text-align:right;" | 8
|-
| 8
| 311400
| 2.015
| [NULL]
| style="text-align:right;" | 0
|-
| 8
| 352460
| 2.017
| [NULL]
| style="text-align:right;" | 0
|-
| 8
| 220010
| 2.022
| [NULL]
| style="text-align:right;" | 0
|-
| 8
| 411080
| 2.018
| false
| style="text-align:right;" | 0
|-
| 8
| 150750
| 2.016
| true
| style="text-align:right;" | 10
|-
| 8
| 293040
| 2.019
| false
| style="text-align:right;" | 0
|-
| 8
| 170510
| 2.020
| [NULL]
| style="text-align:right;" | 0
|-
| 8
| 430265
| 2.017
| true
| style="text-align:right;" | 14
|-
| 8
| 410220
| 2.019
| [NULL]
| style="text-align:right;" | 0
|-
| 8
| 240130
| 2.021
| [NULL]
| style="text-align:right;" | 0
|-
| 8
| 431710
| 2.022
| [NULL]
| style="text-align:right;" | 0
|}
 
== Método de apresentação de dados ==
 
O indicador constitui painel analítico na plataforma do CIEGES, empregando-se a ferramenta <code>Tableau</code>.
O indicador constitui painel analítico na plataforma do CIEGES, empregando-se a ferramenta <code>Tableau</code>.


==Método de análise matemática e estatística==
== Método de análise matemática e estatística ==
Dados Estatísticos e Comentários obtidos diretamente do TabNet e calculados com planilha de cálculo.
 
As consultas <code>postgreSQL</code> abaixo ilustra como foi realizada a extração das tabelas apresentadas na seção [[#dados_estatisticos|Dados Estatísticos e Comentários]].
 
Média de leitos em doze meses:<syntaxhighlight lang="sql">
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
</syntaxhighlight>Leitos por habitante:<syntaxhighlight lang="sql">
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
</syntaxhighlight>
 
== Método de descoberta de conhecimento em bancos de dados (KDD) ==


==Método de descoberta de conhecimento em bancos de dados (KDD)==
Não foram aplicados modelos de mineração de dados no presente indicador.
Não foram aplicados modelos de mineração de dados no presente indicador.


==Base de dados==
== Base de dados ==
 
O acesso aos dados processados está em desenvolvimento.
O acesso aos dados processados está em desenvolvimento.



Edição das 17h20min de 3 de fevereiro de 2023


Introdução

A nota técnica de indicador descreve o trabalho de processamento e apresentação de dados relacionados ao identificador 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 ancorados no Guia de Apoio à Gestão Estadual do SUS.

Endereço eletrônico

Essa nota técnica é acessível pelo endereço

Objetivo

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

Ficha do indicador para o sanitarista

Conceituação

  • Apresenta o quantitativo de leitos hospitalares disponibilizados para atendimento pelo SUS e atendimento Não SUS contidos no Cadastro Nacional de Estabelecimentos de Saúde - CNES.
  • Consideram-se como leitos hospitalares as camas destinadas à internação de um paciente no hospital. Não são considerados os leitos de observação.

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.
  • É 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

  • Propicia ao gestor o quantitativo de leitos em ambientes hospitalares, podendo auxiliar no planejamento das ações assistenciais nas diversas esferas de governo, bem como dar maior visibilidade ao controle social a ser exercido pela população.

Limitações

  • O TabNet do CNES reflete a série histórica do Cadastro, por mês de competência, estando disponível com defasagem de até 45 dias. Dados mais recentes podem ser obtidos no site do CNES (http://cnes.datasus.gov.br/).
  • O indicador depende da qualidade do preenchimento e agilidade na atualização do sistema de Informação do CNES.

Fontes

As informações disponíveis são geradas a partir dos dados enviados pelas Secretarias Municipais e Estaduais de Saúde através do Sistema de Cadastro Nacional de Estabelecimentos de Saúde (CNES/SUS) e consolidadas no Banco de Dados Nacional pelo DATASUS, conforme determina a Portaria MS/SAS nº 51 de 21/06/1995.

Métodos de Cálculo

Número absoluto de leitos hospitalares disponibilizados para atendimento pelo SUS e atendimento Não SUS.

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

CNES - RECURSOS FÍSICOS - HOSPITALAR - LEITOS DE INTERNAÇÃO - BRASIL


http://tabnet.datasus.gov.br/cgi/tabcgi.exe?cnes/cnv/leiintbr.def


Quantidade SUS por Região segundo Ano/mês compet.

Especialidade: Cirúrgicos, Clínicos, Obstétrico, Pediátrico

Período: 2020


A partir da competência de Janeiro 2010 os dados referentes a leitos Complementares foram retirados da consulta referente a leitos de Internação, passando a constituir uma consulta específica conforme descrito na Nota Técnica.

Fonte: Ministério da Saúde - Cadastro Nacional dos Estabelecimentos de Saúde do Brasil - CNES

Nota:

A partir do processamento de junho de 2012, houve mudança na classificação da natureza e esfera dos estabelecimentos. Com isso, temos que:

  • Até maio de 2012 estas informações estão disponíveis como "Natureza" e "Esfera Administrativa".
  • De junho de 2012 a outubro de 2015, estão disponíveis tanto como "Natureza" e "Esfera Administrativa", como "Natureza Jurídica" e "Esfera Jurídica".
  • A partir de novembro de 2015, estão disponíveis como "Natureza Jurídica" e "Esfera Jurídica".
Ano/mês compet. 1 Região Norte 2 Região Nordeste 3 Região Sudeste 4 Região Sul 5 Região Centro-Oeste Total
2020/Jan 23.535 83.832 86.594 42.759 20.784 257.504
2020/Fev 23.583 83.866 86.422 42.786 20.680 257.337
2020/Mar 23.814 85.584 90.045 43.387 20.991 263.821
2020/Abr 25.180 88.814 92.925 44.289 21.138 272.346
2020/Mai 25.867 90.997 95.177 44.190 21.814 278.045
2020/Jun 25.875 91.780 96.533 44.045 22.270 280.503
2020/Jul 26.144 91.924 96.304 44.146 22.459 280.977
2020/Ago 26.329 91.980 95.904 43.892 22.574 280.679
2020/Set 26.252 91.408 95.216 43.958 22.677 279.511
2020/Out 25.997 91.173 94.175 43.877 22.646 277.868
2020/Nov 25.840 90.778 93.353 43.802 22.462 276.235
2020/Dez 25.783 90.766 93.391 43.950 22.757 276.647
CNES - RECURSOS FÍSICOS - HOSPITALAR - LEITOS DE INTERNAÇÃO - BRASIL


http://tabnet.datasus.gov.br/cgi/tabcgi.exe?cnes/cnv/leiintbr.def


Quantidade Não SUS por Região segundo Ano/mês compet.

Especialidade: Cirúrgicos, Clínicos, Obstétrico, Pediátrico

Período: 2020


A partir da competência de Janeiro 2010 os dados referentes a leitos Complementares foram retirados da consulta referente a leitos de Internação, passando a constituir uma consulta específica conforme descrito na Nota Técnica.

Fonte: Ministério da Saúde - Cadastro Nacional dos Estabelecimentos de Saúde do Brasil - CNES

Nota:

A partir do processamento de junho de 2012, houve mudança na classificação da natureza e esfera dos estabelecimentos. Com isso, temos que:

  • Até maio de 2012 estas informações estão disponíveis como "Natureza" e "Esfera Administrativa".
  • De junho de 2012 a outubro de 2015, estão disponíveis tanto como "Natureza" e "Esfera Administrativa", como "Natureza Jurídica" e "Esfera Jurídica".
  • A partir de novembro de 2015, estão disponíveis como "Natureza Jurídica" e "Esfera Jurídica".
Ano/mês compet. 1 Região Norte 2 Região Nordeste 3 Região Sudeste 4 Região Sul 5 Região Centro-Oeste Total
2020/Jan 5.969 18.514 55.480 19.314 11.295 110.572
2020/Fev 5.896 18.536 55.638 19.396 11.351 110.817
2020/Mar 6.136 18.531 56.050 19.329 11.348 111.394
2020/Abr 5.977 18.387 56.396 18.908 11.306 110.974
2020/Mai 5.719 18.316 56.214 18.967 11.170 110.386
2020/Jun 5.908 18.073 56.293 18.960 11.032 110.266
2020/Jul 5.946 18.560 56.697 18.847 11.080 111.130
2020/Ago 6.028 18.394 56.597 18.828 10.970 110.817
2020/Set 6.017 18.596 57.006 18.754 10.929 111.302
2020/Out 6.115 18.716 56.924 18.573 11.047 111.375
2020/Nov 6.112 18.734 57.014 18.480 11.085 111.425
2020/Dez 6.238 18.806 57.329 18.292 11.073 111.738

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 código mantido na tabela bd_geral.td_indicador
Código RIPSA
Nome RIPSA
URL RIPSA http://fichas.ripsa.org.br/2012/
tabela CIEGES