1 Introdução

O uso dos medicamentos disponibilizados pelo SUS para medicamentos biológicos é regido pelo respectivo Protocolo Clínico e Diretrizes Terapêuticas (PCDT). A Secretaria de Ciência, Tecnologia, Inovação e Insumos Estratégicos em Saúde do Ministério da Saúde (SCTIE) por meio do Departamento de Gestão e Incorporação de Tecnologias e Inovação em Saúde (DGITIS) coordena o processo de formulação do PCDT e oferece suporte para incorporação e desincorporação de tecnologias no âmbito da Comissão Nacional de Incorporação de Tecnologias no SUS (CONITEC). Os medicamentos são disponibilizados pela assistência farmacêutica nas três esferas federadas (municipal, estadual e federal). Contudo, as informações de transparência, isto é, com dados abertos no âmbito nacional, restringem-se ao Sistema de Informações Ambulatoriais, onde o controle do Estado torna-se mandatório devido ao alto custo das terapias (Ferré et al. 2020; Ferré 2021).

O acesso a medicamentos do Componente Especializado é regulado via Portarias do Ministério da Saúde. Nas respectivas portarias constam o PCDT, o qual enquadra a doença nos diagnósticos segundo a CID10. Trabalhar com dados de mundo real com foco na demanda aferida é essencial para o planejamento do Sistema Único de Saúde. A demanda baseada em prevalência, segundo identificado na literatura, pode não estar atrelada à capacidade do sistema em diagnosticar, disponibilizar e dar acesso ao tratamento em todo o território. Para além das variáveis apresentadas em ensaios clínicos e revisões sistemáticas, a operacionalização do sistema de saúde é essencial para o sucesso do tratamento. Apenas a padronização do tratamento no elenco não implica na sua efetividade na saúde da população devido à relação do gestor com o Complexo Econômico-Industrial da Saúde, incluindo a cadeia logística e demais prestadores; com os profissionais de saúde envolvidos na terapêutica e com o compromisso com usuário visando sua adesão (Perini et al. 1999). Toda a cadeia assistencial deve ser contemplada visando eficiência dos gastos públicos (Meiners et al. 2017) antes de pautar a incorporação ou desincorporação de tratamentos no elenco do SUS.

Os dados de mundo real de medicamentos regulados por PCDT para análise de medicamentos regulados por PCDT são disponibilizados pela Secretaria de Atenção Especializada à Saúde - SAES, a qual dissemina dados abertos com apoio do Departamento de Informática do SUS pelo diretório ftp://ftp.datasus.gov.br/dissemin/publicos/.

A Sala Aberta de Situação em Saúde é uma plataforma livre que viabiliza a gestão do conhecimento, análise e visualização de dados do SUS. A presente versão tabula dados de dispensação de medicamentos regulados por Protocolos Clínicos e Diretrizes Terapêuticas (PCDT) e classificados segundo a tabela mantida pelo SIGTAP - Sistema de Gerenciamento da Tabela de Procedimentos, Medicamentos e OPM do SUS. No presente produto são apresentados os resultados da versão 24, de 09/09/2021 da Sala Aberta de Situação em Saúde para medicamentos regulados por PCDT, em grande parte, derivados do Componente Especializado da Assistência Farmacêutica.

O presente relato foi editado em R Markdown e está disponível em https://rpubs.com/labxss/858478.

1.1 Objetivos

Realizar análise da projeção do quantitativo de usuários, unidades dispensadas e valor gasto apresentados na sala de situação aberta de medicamentos biológicos cujo acesso é regulado por PCDT

1.1.1 Objetivos específicos

  • Estabelecer processo transparente de extração, engenharia e processamento de dados abertos da assistência farmacêutica.
  • Estabelecer processo transparente de repositórios analíticos e visualização.
  • Estabelecer indicadores transparentes de monitoramento de medicamentos regidos pelo Protocolo Clínico e Diretrizes Terapêuticas de medicamentos biológicos.

2 Método

2.1 Coleta

A extração, transformação e carga (do inglês, Extract, Transform, Load - ETL) foi realizada via algoritmos em linguagem GNU bash, versão 4.4.20 com carga no Sistema de Gerenciamento de Banco de Dados (SGBD) PostgreSQL 10.8 a partir dos dados disseminados pelo Departamento de Informática do SUS, Secretaria Executiva, Ministério da Saúde - DATASUS/SE/MS, disponível em ftp://ftp.datasus.gov.br. A tabela 2.1 mostra exemplos de arquivos DBC.

log = pg_obtem_mapa_ftp()
query=paste0("SELECT no_dbc, dt_dbc, sg_sistema, 
                    sg_subsistema, qt_registros_dbc_local, qt_bytes_dbc
               FROM ", log, 
             "  order by random() limit 30")
  
kb=pg_roda_query(query)

kb$qt_registros_dbc_local=formata(kb$qt_registros_dbc_local)
kb$qt_bytes_dbc=formata(kb$qt_bytes_dbc)

colnames(kb)=set_colnames(colnames(kb))


library(kableExtra)

kbl(kb, 
    align = c(rep("r",ncol(kb))),
    caption = "Amostra de arquivos DBC disponíveis no repositório do DataSUS") %>%
    kable_classic()  
Table 2.1: Amostra de arquivos DBC disponíveis no repositório do DataSUS
no dbc dt dbc sg sistema sg subsistema qt registros dbc local qt bytes dbc
RDPI9811.dbc 13-10-31 SIH RD 20.411 661.112
ATDGO1911.dbc 21-01-13 SIA ATD 4.204 281.307
EFSP1512.dbc 16-08-15 CNES EF 157 5.767
CRPE1101.dbc 16-11-04 CIH CR 4 1.084
EFMA1604.dbc 16-08-15 CNES EF 6 1.292
RDSP9608.dbc 13-10-31 SIH RD 214.197 8.074.395
BIAC2104.dbc 22-01-07 SIA BI 43.042 1.714.695
ADGO1606.dbc 17-08-03 SIA AD 6.527 353.281
AQRO1503.dbc 16-09-12 SIA AQ 916 69.683
PFPR1510.dbc 19-05-15 CNES PF 193.412 9.657.132
SPPA9707.dbc 13-10-31 SIH SP 137.203 1.448.342
EPMG2105.dbc 21-07-14 CNES EP 11.313 409.914
ERCE1806.dbc 20-01-09 SIH ER 3.579 77.731
GMSP1206.dbc 16-08-09 CNES GM 52 3.817
EQRJ1310.dbc 16-08-09 CNES EQ 44.985 432.346
RJRR1405.dbc 15-10-05 SIH RJ 23 4.499
EEES1810.dbc 18-11-14 CNES EE 2 1.186
SADGO1508.dbc 16-10-07 SIA SAD 3.002 37.973
LTRJ2005.dbc 20-07-15 CNES LT 3.607 41.825
RAIVBR17.dbc 21-11-23 SINAN RAIV 6 3.475
ARCE1409.dbc 15-11-11 SIA AR 937 78.175
EQPB0608.dbc 14-06-04 CNES EQ 3.387 39.304
EQRJ1103.dbc 14-06-04 CNES EQ 37.371 342.439
PAGO0601.dbc 13-10-24 SIA PA 153.330 1.759.041
AQMS1804.dbc 19-09-16 SIA AQ 2.712 215.765
DCCE2005.dbc 20-07-15 CNES DC 78 10.635
STMS1009.dbc 14-06-05 CNES ST 3.109 147.654
GMDF1711.dbc 18-01-16 CNES GM 9 1.573
ATDRO2102.dbc 22-01-07 SIA ATD 1.047 60.261
RDRS9305.dbc 13-10-31 SIH RD 87.726 3.565.489
# obtem o nome da tabela de log de regitros do DATASUS
log = pg_obtem_mapa_ftp()
log
## [1] "public.tf_coleta_20220128"
# obtem data a partir tabela de log de regitros do DATASUS
log_data = format(as.Date(gsub("[^0-9]","",log),"%Y%m%d"),"%B/%Y")
  
# sumario dos dados abertos do DATASUS
query=paste0("SELECT count(distinct no_dbc) qt_dbc, 
       sum(qt_bytes_dbc) qt_bytes, 
       sum(qt_registros_dbc_local) qt_registros,
       min(case when nu_competencia > 100 then nu_competencia else null end) cmpmin,
       max(nu_competencia) cmpmax
 FROM ", log)
  
sumariodbc=pg_roda_query(query)
sumariodbc[1:3]=formata(sumariodbc[1:3])
sumariodbc[4:5]=formata_mes(sumariodbc[4:5])

O dataSUS disponibilizou, em janeiro/2022, 12.995.366.451 registros em 141.306 arquivos DBC com dados de 01/1992 à 12/2021. A tabela 2.2 resume o conteúdo disponível.

# sumario dos dados abertos do DATASUS
query=paste0("SELECT sg_sistema as sistema,
       string_agg(distinct sg_subsistema, ' ') as subsistema,  
       count(distinct no_dbc) dbc, 
       sum(qt_bytes_dbc) bytes, 
       sum(qt_registros_dbc_local) registros,
       min(case when nu_competencia > 100 then nu_competencia else null end) mes_inicial,
       max(nu_competencia) mes_final
 FROM ", log, " group by 1")
  
kbsumariodbc=pg_roda_query(query)
kbsumariodbc[3:5]=formata(kbsumariodbc[3:5])
kbsumariodbc$mes_inicial=formata_mes(kbsumariodbc$mes_inicial)
kbsumariodbc$mes_final=formata_mes(kbsumariodbc$mes_final)
colnames(kbsumariodbc)=set_colnames(colnames(kbsumariodbc))

library(kableExtra)

kbl(kbsumariodbc, 
    align = c(rep("r",ncol(kbsumariodbc))),
    caption = "Sumário dos arquivos DBC segundo o sistema de informação do SUS") %>%
    kable_classic()  
Table 2.2: Sumário dos arquivos DBC segundo o sistema de informação do SUS
sistema subsistema dbc bytes registros mes inicial mes final
CIH CR 868 165.114.178 7.676.888 01/2008 04/2011
CIHA CIHA 3.298 2.531.356.398 182.835.268 01/2011 09/2021
CMD CT PR 1.509 35.180.663.302 2.420.091.846 01/2017 04/2019
CNES DC EE EF EFUFAA EP EQ GM GMUFAA HB HBUFAA IN INUFAA LT PF RC RCUFAA SR ST 62.880 34.887.657.927 910.323.933 08/2005 12/2021
SIA AB ABO ACF AD AM AMP AN AQ AR ATD BI PA PS SAD 43.560 197.110.238.637 6.601.789.261 07/1994 11/2021
SIH CH CM ER RD RJ SP 25.963 61.106.374.431 2.711.627.148 01/1992 11/2021
SIM DO DOE DOF DOI DOM 745 2.211.278.790 33.027.587 12/1996 12/2019
SINAN ACBI ACGR ANIM ANTR BOTU CANC CHAG CHIK COLE COQU DENG DERM DIFT ESQU FAMA FMAC FTIF HANS HANT IEXO LEIV LEPT LERD LTAN MALA MENI MENT PAIR PEST PFAN PNEU RAIV TETA TETN TUBE VIOL ZIKA 779 1.348.651.026 28.164.511 12/2001 12/2020
SINASC DN DNR 760 3.545.635.104 94.238.796 12/1994 12/2019
SISPRENATAL PN 944 232.410.320 5.591.213 01/2012 12/2014

Os dados originam-se do Sistema de Informações Ambulatoriais (SIA), sumarizados na tabela 2.3, e dados populacionais foram coletados a partir do sítio do Instituto Brasileiro de Geografia e Estatística (IBGE). O território foi caracterizado segundo o código IBGE do município e do gestor estadual. A população residente foi caracterizada segundo o sexo e faixa etária.

# sumario dos dados abertos do DATASUS
query=paste0("SELECT sg_subsistema as subsistema,
       count(distinct no_dbc) dbc, 
       sum(qt_bytes_dbc) bytes, 
       sum(qt_registros_dbc_local) registros,
       min(case when nu_competencia > 100 then nu_competencia else null end) mes_inicial,
       max(nu_competencia) mes_final
 FROM ", log, "
 where sg_sistema = 'SIA' 
   and qt_registros_dbc_local > 0
 group by 1
 order by registros desc ")
  
# formata decimal, milhar e data
kbsumariodbcsia=pg_roda_query(query)
kbsumariodbcsia[2:4]=formata(kbsumariodbcsia[2:4])
kbsumariodbcsia$mes_inicial=formata_mes(kbsumariodbcsia$mes_inicial)
kbsumariodbcsia$mes_final=formata_mes(kbsumariodbcsia$mes_final)
colnames(kbsumariodbcsia)=set_colnames(colnames(kbsumariodbcsia))

library(kableExtra)

kbl(kbsumariodbcsia, 
    align = c(rep("r",ncol(kbsumariodbcsia))),
    caption = "Sumário dos arquivos DBC segundo o sistema de informação do do Sistema de Informações Ambulatoriais (SIA)") %>%
    kable_classic()  
Table 2.3: Sumário dos arquivos DBC segundo o sistema de informação do do Sistema de Informações Ambulatoriais (SIA)
subsistema dbc bytes registros mes inicial mes final
PA 9.023 108.221.942.768 4.457.894.503 07/1994 11/2021
BI 4.509 69.384.961.114 1.717.758.601 01/2008 11/2021
AM 4.465 10.866.040.538 228.825.229 01/2008 11/2021
PS 2.883 1.704.083.894 91.338.663 11/2012 11/2021
AD 4.507 2.186.748.913 41.913.035 01/2008 11/2021
AQ 4.476 3.274.111.804 40.860.281 01/2008 11/2021
ATD 2.371 605.607.817 9.363.343 08/2014 11/2021
AN 2.145 458.824.790 6.534.272 01/2008 10/2014
SAD 1.088 53.440.628 3.524.141 04/2012 10/2018
AR 4.060 291.844.025 3.307.044 01/2008 11/2021
ACF 2.279 19.343.149 242.090 08/2014 11/2021
AB 544 14.622.114 211.252 01/2008 04/2017
AMP 300 1.523.881 16.807 03/2016 11/2021

Os procedimentos de saúde do grupo medicamentos foram categorizados, respectivamente como, subgrupo e forma de organização, cuja lista é mantida via Sistema de Gerenciamento da Tabela de Procedimentos, Medicamentos e OPM do SUS (SIGTAP) pela Secretaria de Atenção Especializada à Saúde (SAES/MS). A tabela 2.4 lista os medicamentos biológicos considerados no presente estudo.

# sumario dos dados abertos do DATASUS
query=paste0("select sg_procedimento, no_procedimento, co_procedimento
             from bd_medicamento.td_medicamento where st_biologico = 'sim'")
  
# formata decimal, milhar e data
kbbiologicos=pg_roda_query(query)
colnames(kbbiologicos)=set_colnames(colnames(kbbiologicos))

library(kableExtra)

kbl(kbbiologicos, 
    caption = "Medicamentos biológicos listados no presente estudo") %>%
    kable_classic()  
Table 2.4: Medicamentos biológicos listados no presente estudo
sg procedimento no procedimento co procedimento
ABAT125 ABATACEPTE 125 MG INJETÁVEL (POR SERINGA PREENCHIDA) 604320140
ABAT250 ABATACEPTE 250 MG INJETÁVEL (POR FRASCO AMPOLA). 604320124
ADAL40 ADALIMUMABE 40 MG INJETAVEL (POR SERINGA PREENCHIDA) 601010019 604380011 604380062 604380097
CERT200 CERTOLIZUMABE PEGOL 200 MG/ML INJETÁVEL (POR SERINGA PREENCHIDA) 604380070
CITR5 CITRATO DE TOFACITINIBE 5 MG (POR COMPRIMIDO) 604320159
ETAN25 ETANERCEPTE 25 MG INJETAVEL (POR FRASCO-AMPOLA) 601010027 604380020
ETAN50 ETANERCEPTE 50 MG INJETAVEL (POR FRASCO-AMPOLA OU SERINGA PREENCHIDA) 601010051 604380038
ETAN50A ETANERCEPTE 50 MG INJETÁVEL (POR FRASCO-AMPOLA OU SERINGA PREENCHIDA)(BIOSSIMILAR A) 604380100
FING05 FINGOLIMODE 0.5 MG (POR CÁPSULA) 604320132
GOLI50 GOLIMUMABE 50 MG INJETÁVEL (POR SERINGA PREENCHIDA 604380089
INFL1010 INFLIXIMABE 10 MG/ML INJETAVEL (POR FRASCO-AMPOLA COM 10 ML) 601010035 601010043 604380046 604380054
RITU50050 RITUXIMABE 500 MG INJETÁVEL (POR FRASCO-AMPOLA DE 50 ML) 604680023
RITU50050A RITUXIMABE 500 MG INJETÁVEL (POR FRASCO- AMPOLA DE 5O ML ) (BIOSSIMILAR A) 604680031
SECU150 SECUQUINUMABE 150 MG/ML SOLUÇÃO INJETÁVEL (POR SERINGA PREENCHIDA) 604690029
TOCI204 TOCILIZUMABE 20 MG/ML INJETAVEL (POR FRASCO-AMPOLA DE 4 ML) 604690010
USTEQ45 USTEQUINUMABE 45 MG/0,5ML SOLUÇÂO INJETÀVEL (POR SERINGA PREENCHIDA) 604690037
VEDO300 VEDOLIZUMABE 300 MG PÓ LIOFILIZADO PARA SOLUÇĂO INJETÁVEL 604320167

Os diagnósticos foram registrados conforme a Classificação Internacional de Doenças e Problemas Relacionados à Saúde (CID-10) segundo a subcategoria. O estabelecimento foi identificado segundo o Cadastro Nacional de Estabelecimentos de Saúde (CNES, SAES/MS).

2.2 Processamento

As agregações foram realizadas com Linguagem de Consulta Estruturada, (do inglês, Structured Query Language - SQL) sob os paradigmas da modelagem de processamento analítico online, do inglês, Online Analytical Processing (OLAP) e normas de nomenclatura do Departamento de Informática do SUS (DATASUS).

Os dados foram transpostos em tabelas de dimensão e fatos de modo que cada agregação constitui a soma simples da frequência e valores em Reais relativos a eventos discretos (procedimento, diagnóstico, território, características sociodemográficas). A performance de consultas foi otimizada com o recurso da desnormalização das tabelas fato, de modo a reduzir a demanda por cruzamentos com tabelas de dimensão.

A Extração, Transformação e Carga (extract, transform and load - ETL) de dados de dispensação de medicamentos de usuários com medicamentos biológicos em linguagem estruturada de consulta (structured query language - SQL) utilizando-se o Sistema Gerenciador de Banco de Dados (SGBD) PostgreSQL 10.10 (Ubuntu 10.10-0ubuntu0.18.04.1). Na wiki é disponibilizado o endereço para baixar o código-fonte e repositório de dados sob a licença General Public License - GPL 3.014 e Open Database License (ODbL).

Foram escritos painéis com a ferramenta Shiny, do projeto R, a qual adota conceitos do tema Bootstrap de visualização. O painel analítico foi composto de indicadores na forma de cartões de visualização com tabela, histograma, série temporal.

Os registros foram selecionados segundo o diagnóstico primário e código de procedimento SIGTAP entre 2009 e março de 2021. Foram selecionados usuários residentes segundo o sexo (‘F,’‘M’) e idade entre 0 e 130, a partir de informações prestadas pela Secretaria Estadual de Saúde - SES, cujo critério de quantidade aprovada contemplou todos os registros > 0.

3 Resultados

3.1 Extração

A tabela 3.1 resume o conteúdo disponível na Sala Aberta de Inteligência em Saúde - SABEIS relativo ao SIA processado.

# sumario dos dados abertos do DATASUS
query=paste0("SELECT sg_subsistema as subsistema,
       count(distinct no_dbc) dbc, 
       sum(qt_bytes_dbc) bytes, 
       sum(qt_registros_dbc_local) registros,
       min(case when nu_competencia > 100 then nu_competencia else null end) mes_inicial,
       max(nu_competencia) mes_final
 FROM ", log, "
 where sg_sistema = 'SIA' 
   and qt_registros_dbc_local > 0
   and sg_subsistema in ('PA','AM','AQ','AN','AR','BI','PS')
   and nu_ano >= 2008
 group by 1
 order by registros desc")
  

kbsumariodbcsiaprocessado=pg_roda_query(query)

# valores totais
query=paste0(" SELECT 'total' as subsistema,
       count(distinct no_dbc) dbc, 
       sum(qt_bytes_dbc) bytes, 
       sum(qt_registros_dbc_local) registros,
       min(case when nu_competencia > 100 then nu_competencia else null end) mes_inicial,
       max(nu_competencia) mes_final
 FROM ", log, "
 where sg_sistema = 'SIA' 
   and qt_registros_dbc_local > 0
   and sg_subsistema in ('PA','AM','AQ','AN','AR','BI','PS')
   and nu_ano >= 2008
 group by 1
 order by registros desc
")

kbsumariodbcsiatotal=pg_roda_query(query)


kbsumariodbcsiaprocessado=rbind(
  kbsumariodbcsiaprocessado,
  kbsumariodbcsiatotal
)

# formata decimal, milhar e data
kbsumariodbcsiaprocessado[2:4]=formata(kbsumariodbcsiaprocessado[2:4])
kbsumariodbcsiaprocessado$mes_inicial=formata_mes(kbsumariodbcsiaprocessado$mes_inicial)
kbsumariodbcsiaprocessado$mes_final=formata_mes(kbsumariodbcsiaprocessado$mes_final)

# extrai valores totais formatados
kbsumariodbcsiatotal=kbsumariodbcsiaprocessado[kbsumariodbcsiaprocessado$subsistema=='total',]

colnames(kbsumariodbcsiaprocessado)=set_colnames(colnames(kbsumariodbcsiaprocessado))

library(kableExtra)

kbl(kbsumariodbcsiaprocessado, 
    align = c(rep("r",ncol(kbsumariodbcsiaprocessado))),
    caption = "Sumário dos arquivos DBC processados na Sala Aberta de Inteligência em Saúde - SABEIS segundo o sistema de informação do Sistema de Informações Ambulatoriais (SIA)") %>%
    kable_classic()   %>%
    footnote(
    general = paste(
      "Dados a partir de 2008."
    )
  )
Table 3.1: Sumário dos arquivos DBC processados na Sala Aberta de Inteligência em Saúde - SABEIS segundo o sistema de informação do Sistema de Informações Ambulatoriais (SIA)
subsistema dbc bytes registros mes inicial mes final
PA 4.650 102.197.093.653 3.861.477.817 01/2008 11/2021
BI 4.509 69.384.961.114 1.717.758.601 01/2008 11/2021
AM 4.465 10.866.040.538 228.825.229 01/2008 11/2021
PS 2.883 1.704.083.894 91.338.663 11/2012 11/2021
AQ 4.476 3.274.111.804 40.860.281 01/2008 11/2021
AN 2.145 458.824.790 6.534.272 01/2008 10/2014
AR 4.060 291.844.025 3.307.044 01/2008 11/2021
total 27.188 188.176.959.818 5.950.101.907 01/2008 11/2021
Note:
Dados a partir de 2008.

O dataSUS disponibilizou, em janeiro/2022, 5.950.101.907 registros em 27.188 arquivos DBC com dados de 01/2008 à 11/2021. Foram identificados 0 arquivos discrepantes (NA), isto é, com mais de 1% de variação, representando, no conjunto, 0 registros.

Verificou-se 11.517.191.609 de quantidade aprovada persistida na SABEIS, enquanto, no tabnet, o valor foi de 11.541.893.541 (-0,2%).

3.2 Processamento

A tabela 3.2 resume o volume de atendimentos relacionados aos medicamentos registrados no SIA.

# sumario dos dados abertos do DATASUS
query=paste0("select round(nu_competencia::decimal/100)::text ano ,
       round(sum(qt_usuariosus_medicamento)/12) usuários_ao_mes,
       sum(qt_registros_medicamento) dispensações,
       sum(qt_aprovada_medicamento) unidades,
       sum(qt_aprovada_tabnet) unidades_no_tabnet,
       100-round(sum(qt_aprovada_medicamento)::decimal/sum(qt_aprovada_tabnet)*100,1) percentual
  from bd_medicamento.tf_coleta_medicamento 
 group by 1
 union
 select 'total' ano ,
       round(sum(qt_usuariosus_medicamento)/12) usuários_ao_mes,
       sum(qt_registros_medicamento) dispensações,
       sum(qt_aprovada_medicamento) unidades,
       sum(qt_aprovada_tabnet) unidades_no_tabnet,
       100-round(sum(qt_aprovada_medicamento)::decimal/sum(qt_aprovada_tabnet)*100,1)
  from bd_medicamento.tf_coleta_medicamento 
 group by 1
 order by 1")
  
kbprocessamento=pg_roda_query(query)

# formata decimal, milhar e data
kbprocessamento[2:5]=formata(kbprocessamento[2:5])
kbprocessamento$percentual=formata(kbprocessamento$percentual)

# formata os títulos
colnames(kbprocessamento)=str_replace_all(colnames(kbprocessamento),'_',' ')

library(kableExtra)

kbl(kbprocessamento, 
    align = c(rep("r",ncol(kbprocessamento))),
    caption = "Sumário anual dos usuários, dispensações e unidades farmacotécnicas  processadas na Sala Aberta de Inteligência em Saúde - SABEIS segundo o sistema de informação do Sistema de Informações Ambulatoriais (SIA)") %>%
    kable_classic() 
Table 3.2: Sumário anual dos usuários, dispensações e unidades farmacotécnicas processadas na Sala Aberta de Inteligência em Saúde - SABEIS segundo o sistema de informação do Sistema de Informações Ambulatoriais (SIA)
ano usuários ao mes dispensações unidades unidades no tabnet percentual
2008 698.734 11.254.430 531.971.227 534.784.455 0,5
2009 812.231 13.283.721 633.489.233 634.564.790 0,2
2010 796.544 12.797.876 617.829.441 619.586.472 0,3
2011 886.837 14.137.231 659.564.631 659.586.655 0,0
2012 969.459 15.877.469 722.674.241 723.246.845 0,1
2013 1.003.520 16.500.303 734.808.232 736.095.454 0,2
2014 1.140.760 19.036.599 815.769.214 817.056.265 0,2
2015 1.238.775 20.832.059 838.670.041 840.185.315 0,2
2016 1.205.815 19.719.557 862.737.054 865.622.710 0,3
2017 1.283.544 21.089.371 924.031.162 925.916.483 0,2
2018 1.321.852 21.804.066 972.957.989 975.316.986 0,2
2019 1.439.017 23.917.563 1.020.101.583 1.022.200.782 0,2
2020 1.530.392 25.507.262 1.124.959.611 1.127.084.548 0,2
2021 1.433.127 24.143.640 1.057.627.950 1.060.645.781 0,3
total 15.760.606 259.901.147 11.517.191.609 11.541.893.541 0,2

3.3 Análise

Abatacepte 125 mg injetável (por seringa preenchida) - ABAT125

A partir do código SIGTAP (604320140) foi observado o período de dezembro/2016 a novembro/2021. O maior número de usuários foi 4.115 em novembro/2021. A maior quantidade aprovada foi 17.817 em novembro/2021. A mediana (e quartis) de quantidade aprovada por usuário foi 4,0 (4,0-4,1) variando de 3,7 a 4,5 unidades por usuário. .

Table 3.3: Previsão ABAT125 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
23 1665 1568 1761 1517 1812 novembro/2021 1
24 1720 1624 1817 1573 1868 dezembro/2021 1
25 1800 1698 1903 1644 1957 janeiro/2022 1
26 1872 1767 1977 1711 2033 fevereiro/2022 1
27 1946 1838 2055 1780 2112 março/2022 1
28 2020 1908 2131 1849 2190 abril/2022 1
29 2094 1979 2208 1919 2269 maio/2022 1
30 2168 2050 2285 1988 2347 junho/2022 1
31 2241 2121 2362 2057 2425 julho/2022 1
32 2315 2192 2438 2127 2503 agosto/2022 1
33 2389 2263 2515 2196 2581 setembro/2022 1
34 2463 2334 2591 2266 2659 outubro/2022 1
35 2536 2405 2667 2336 2737 novembro/2022 2
36 2610 2476 2744 2406 2815 dezembro/2022 2
37 2684 2548 2820 2476 2892 janeiro/2023 2
38 2758 2619 2896 2546 2970 fevereiro/2023 2
39 2831 2690 2972 2616 3047 março/2023 2
40 2905 2762 3049 2686 3125 abril/2023 2
41 2979 2833 3125 2756 3202 maio/2023 2
42 3053 2905 3201 2826 3279 junho/2023 2
43 3126 2976 3277 2896 3356 julho/2023 2
44 3200 3048 3353 2967 3434 agosto/2023 2
45 3274 3119 3429 3037 3511 setembro/2023 2
46 3348 3191 3505 3108 3588 outubro/2023 2
47 3422 3262 3581 3178 3665 novembro/2023 3
48 3495 3334 3657 3249 3742 dezembro/2023 3
49 3569 3406 3732 3319 3819 janeiro/2024 3
50 3643 3477 3808 3390 3896 fevereiro/2024 3
51 3717 3549 3884 3461 3973 março/2024 3
52 3790 3621 3960 3531 4050 abril/2024 3
53 3864 3693 4036 3602 4126 maio/2024 3
54 3938 3764 4111 3673 4203 junho/2024 3
55 4012 3836 4187 3743 4280 julho/2024 3
56 4085 3908 4263 3814 4357 agosto/2024 3
57 4159 3980 4338 3885 4433 setembro/2024 3
58 4233 4052 4414 3956 4510 outubro/2024 3
59 4307 4124 4490 4027 4586 novembro/2024 4
60 4380 4196 4565 4098 4663 dezembro/2024 4
61 4454 4268 4641 4169 4740 janeiro/2025 4
62 4528 4340 4716 4240 4816 fevereiro/2025 4
63 4602 4412 4792 4311 4893 março/2025 4
64 4676 4484 4868 4382 4969 abril/2025 4
65 4749 4556 4943 4453 5046 maio/2025 4
66 4823 4628 5019 4524 5122 junho/2025 4
67 4897 4700 5094 4595 5198 julho/2025 4
68 4971 4772 5170 4666 5275 agosto/2025 4
69 5044 4844 5245 4738 5351 setembro/2025 4
70 5118 4916 5320 4809 5428 outubro/2025 4
71 5192 4988 5396 4880 5504 novembro/2025 5
72 5266 5060 5471 4951 5580 dezembro/2025 5
73 5339 5132 5547 5022 5656 janeiro/2026 5
74 5413 5204 5622 5094 5733 fevereiro/2026 5
75 5487 5276 5697 5165 5809 março/2026 5
76 5561 5349 5773 5236 5885 abril/2026 5
77 5635 5421 5848 5308 5961 maio/2026 5
78 5708 5493 5924 5379 6038 junho/2026 5
79 5782 5565 5999 5450 6114 julho/2026 5
80 5856 5637 6074 5522 6190 agosto/2026 5
81 5930 5710 6150 5593 6266 setembro/2026 5
82 6003 5782 6225 5665 6342 outubro/2026 5

É previsto, no total de cinco anos, o atendimento de 229.645 usuários/mês (219.653-239.641).

Table 3.3: Previsão ABAT125 -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 99.611 90.803 108.418 86.142 113.080
2 142.233 127.966 156.499 120.415 164.053
3 184.915 166.828 203.003 157.255 212.577
4 227.597 206.375 248.820 195.142 260.054
5 270.281 246.333 294.229 233.653 306.906

É previsto, no total de cinco anos, a quantidade aprovada de 924.637 (838.305-1.010.969).

Previsão de gasto ao mes - Abatacepte 125 mg injetável (por seringa preenchida) - ABAT125

Table 3.3: Previsão ABAT125 - valor total
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 21.722.913 13.957.966 29.487.861 9.847.451 33.598.376
2 20.904.204 12.324.836 29.483.572 7.783.193 34.025.215
3 20.831.104 12.246.070 29.416.137 7.701.430 33.960.778
4 20.824.576 12.239.499 29.409.655 7.694.834 33.954.320
5 20.823.994 12.238.915 29.409.074 7.694.250 33.953.740

Com o método arima, é previsto, no total de cinco anos, o valor de R$ 105.106.791 (63.007.286-147.206.299).

Table 3.3: Previsão ABAT125 - valor total com base nas unidades aprovadas × R$ 246,28
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 17.267.770 12.445.049 22.090.500 9.892.043 24.643.506
2 17.232.828 12.215.016 22.250.652 9.558.732 24.906.936
3 17.232.828 12.215.016 22.250.652 9.558.732 24.906.936
4 17.232.828 12.215.016 22.250.652 9.558.732 24.906.936
5 17.232.828 12.215.016 22.250.652 9.558.732 24.906.936

Com o método arima para quantidade aprovada e o último valor pago pela unidade farmacotécnica, é previsto, no total de cinco anos, o valor de R$ 86.199.082 (61.305.113-111.093.108).

Abatacepte 250 mg injetável (por frasco ampola). - ABAT250

A partir do código SIGTAP (604320124) foi observado o período de abril/2013 a novembro/2021. O maior número de usuários foi 2.804 em novembro/2019. A maior quantidade aprovada foi 8.474 em fevereiro/2019. A mediana (e quartis) de quantidade aprovada por usuário foi 2,9 (2,9-3,0) variando de 2,8 a 4,5 unidades por usuário. .

Table 3.3: Previsão ABAT250 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
38 2415 2319 2511 2269 2562 fevereiro/2023 1
39 2454 2345 2564 2287 2622 março/2023 1
40 2501 2370 2632 2300 2702 abril/2023 1
41 2545 2399 2691 2321 2768 maio/2023 1
42 2590 2429 2750 2344 2835 junho/2023 1
43 2634 2460 2808 2368 2900 julho/2023 1
44 2678 2492 2864 2394 2963 agosto/2023 1
45 2723 2525 2920 2421 3025 setembro/2023 1
46 2767 2559 2976 2448 3086 outubro/2023 1
47 2812 2593 3030 2477 3146 novembro/2023 1
48 2856 2628 3085 2507 3206 dezembro/2023 1
49 2901 2663 3139 2537 3265 janeiro/2024 1
50 2945 2698 3192 2567 3323 fevereiro/2024 2
51 2990 2734 3245 2598 3381 março/2024 2
52 3034 2770 3298 2630 3438 abril/2024 2
53 3078 2806 3351 2662 3495 maio/2024 2
54 3123 2842 3403 2694 3552 junho/2024 2
55 3167 2879 3456 2727 3608 julho/2024 2
56 3212 2916 3508 2759 3664 agosto/2024 2
57 3256 2953 3559 2793 3720 setembro/2024 2
58 3301 2990 3611 2826 3775 outubro/2024 2
59 3345 3028 3663 2860 3831 novembro/2024 2
60 3390 3065 3714 2894 3886 dezembro/2024 2
61 3434 3103 3765 2928 3940 janeiro/2025 2
62 3479 3141 3816 2962 3995 fevereiro/2025 3
63 3523 3179 3867 2997 4049 março/2025 3
64 3568 3217 3918 3032 4103 abril/2025 3
65 3612 3255 3969 3067 4157 maio/2025 3
66 3656 3294 4019 3102 4211 junho/2025 3
67 3701 3332 4070 3137 4265 julho/2025 3
68 3745 3371 4120 3172 4318 agosto/2025 3
69 3790 3409 4170 3208 4372 setembro/2025 3
70 3834 3448 4221 3244 4425 outubro/2025 3
71 3879 3487 4271 3279 4478 novembro/2025 3
72 3923 3526 4321 3315 4531 dezembro/2025 3
73 3968 3565 4371 3351 4584 janeiro/2026 3
74 4012 3604 4421 3387 4637 fevereiro/2026 4
75 4057 3643 4470 3424 4689 março/2026 4
76 4101 3682 4520 3460 4742 abril/2026 4
77 4145 3721 4570 3497 4794 maio/2026 4
78 4190 3760 4619 3533 4847 junho/2026 4
79 4234 3800 4669 3570 4899 julho/2026 4
80 4279 3839 4718 3607 4951 agosto/2026 4
81 4323 3879 4768 3643 5003 setembro/2026 4
82 4368 3918 4817 3680 5055 outubro/2026 4
83 4412 3958 4867 3717 5107 novembro/2026 4
84 4457 3997 4916 3754 5159 dezembro/2026 4
85 4501 4037 4965 3792 5211 janeiro/2027 4
86 4546 4077 5014 3829 5262 fevereiro/2027 5
87 4590 4117 5063 3866 5314 março/2027 5
88 4635 4156 5113 3903 5366 abril/2027 5
89 4679 4196 5162 3941 5417 maio/2027 5
90 4723 4236 5211 3978 5469 junho/2027 5
91 4768 4276 5260 4016 5520 julho/2027 5
92 4812 4316 5309 4054 5571 agosto/2027 5
93 4857 4356 5357 4091 5622 setembro/2027 5
94 4901 4396 5406 4129 5674 outubro/2027 5
95 4946 4436 5455 4167 5725 novembro/2027 5
96 4990 4477 5504 4205 5776 dezembro/2027 5
97 5035 4517 5553 4243 5827 janeiro/2028 5

É previsto, no total de cinco anos, o atendimento de 223.390 usuários/mês (202.184-244.595).

Table 3.3: Previsão ABAT250 -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 97.196 90.277 104.113 86.615 107.774
2 112.337 102.326 122.347 97.028 127.647
3 127.478 115.142 139.813 108.615 146.342
4 142.620 128.338 156.900 120.779 164.462
5 157.762 141.770 173.753 133.304 182.220

É previsto, no total de cinco anos, a quantidade aprovada de 637.393 (577.853-696.926).

Previsão de gasto ao mes - Abatacepte 250 mg injetável (por frasco ampola). - ABAT250

Table 3.3: Previsão ABAT250 - valor total
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 39.509.996 35.832.381 43.187.609 33.885.573 45.134.421
2 39.359.605 35.545.875 43.173.337 33.527.010 45.192.202
3 39.358.533 35.544.799 43.172.272 33.525.928 45.191.141
4 39.358.524 35.544.792 43.172.268 33.525.924 45.191.136
5 39.358.524 35.544.792 43.172.268 33.525.924 45.191.136

Com o método arima, é previsto, no total de cinco anos, o valor de R$ 196.945.182 (178.012.639-215.877.754).

Table 3.3: Previsão ABAT250 - valor total com base nas unidades aprovadas × R$ 386,61
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 39.779.110 37.131.041 42.427.180 35.729.237 43.828.981
2 42.967.453 39.224.243 46.710.663 37.242.710 48.692.194
3 46.155.796 41.577.438 50.734.154 39.153.803 53.157.790
4 49.344.140 44.062.168 54.626.111 41.266.061 57.422.215
5 52.532.483 46.630.589 58.434.376 43.506.317 61.558.649

Com o método arima para quantidade aprovada e o último valor pago pela unidade farmacotécnica, é previsto, no total de cinco anos, o valor de R$ 230.778.982 (208.625.479-252.932.484).

Adalimumabe 40 mg injetavel (por seringa preenchida) - ADAL40

A partir do código SIGTAP (601010019 604380011 604380062 604380097) foi observado o período de janeiro/2008 a novembro/2021. O maior número de usuários foi 49.027 em novembro/2021. A maior quantidade aprovada foi 116.194 em novembro/2021. A mediana (e quartis) de quantidade aprovada por usuário foi 2,0 (2,0-2,1) variando de 1,0 a 2,6 unidades por usuário. .

Table 3.3: Previsão ADAL40 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
75 35169 34212 36126 33705 36632 março/2026 1
76 35757 34629 36886 34031 37483 abril/2026 1
77 36215 35014 37415 34378 38051 maio/2026 1
78 36603 35363 37843 34707 38500 junho/2026 1
79 36956 35689 38222 35018 38893 julho/2026 1
80 37289 36001 38577 35320 39258 agosto/2026 1
81 37612 36307 38918 35615 39610 setembro/2026 1
82 37931 36608 39253 35908 39953 outubro/2026 1
83 38246 36908 39584 36199 40293 novembro/2026 1
84 38560 37206 39914 36490 40630 dezembro/2026 1
85 38873 37505 40242 36780 40966 janeiro/2027 1
86 39186 37803 40570 37070 41302 fevereiro/2027 1
87 39499 38101 40897 37361 41637 março/2027 2
88 39811 38399 41224 37651 41971 abril/2027 2
89 40124 38697 41550 37942 42306 maio/2027 2
90 40436 38995 41877 38233 42639 junho/2027 2
91 40748 39294 42203 38524 42973 julho/2027 2
92 41061 39592 42529 38815 43307 agosto/2027 2
93 41373 39891 42855 39106 43640 setembro/2027 2
94 41686 40190 43181 39398 43973 outubro/2027 2
95 41998 40489 43507 39690 44306 novembro/2027 2
96 42310 40788 43833 39982 44639 dezembro/2027 2
97 42623 41087 44158 40274 44971 janeiro/2028 2
98 42935 41386 44484 40566 45304 fevereiro/2028 2
99 43248 41686 44809 40859 45636 março/2028 3
100 43560 41985 45135 41152 45968 abril/2028 3
101 43872 42285 45460 41445 46300 maio/2028 3
102 44185 42585 45785 41738 46632 junho/2028 3
103 44497 42884 46110 42031 46963 julho/2028 3
104 44809 43184 46435 42324 47295 agosto/2028 3
105 45122 43484 46759 42617 47626 setembro/2028 3
106 45434 43784 47084 42911 47957 outubro/2028 3
107 45747 44085 47409 43205 48288 novembro/2028 3
108 46059 44385 47733 43499 48619 dezembro/2028 3
109 46371 44685 48057 43793 48950 janeiro/2029 3
110 46684 44986 48382 44087 49281 fevereiro/2029 3
111 46996 45286 48706 44381 49611 março/2029 4
112 47308 45587 49030 44675 49941 abril/2029 4
113 47621 45888 49354 44970 50272 maio/2029 4
114 47933 46188 49678 45265 50602 junho/2029 4
115 48246 46489 50002 45559 50932 julho/2029 4
116 48558 46790 50326 45854 51262 agosto/2029 4
117 48870 47091 50650 46149 51592 setembro/2029 4
118 49183 47392 50973 46444 51921 outubro/2029 4
119 49495 47693 51297 46739 52251 novembro/2029 4
120 49808 47995 51621 47035 52580 dezembro/2029 4
121 50120 48296 51944 47330 52910 janeiro/2030 4
122 50432 48597 52267 47626 53239 fevereiro/2030 4
123 50745 48899 52591 47921 53568 março/2030 5
124 51057 49200 52914 48217 53897 abril/2030 5
125 51369 49502 53237 48513 54226 maio/2030 5
126 51682 49803 53560 48809 54555 junho/2030 5
127 51994 50105 53884 49105 54884 julho/2030 5
128 52307 50407 54207 49401 55212 agosto/2030 5
129 52619 50708 54530 49697 55541 setembro/2030 5
130 52931 51010 54852 49993 55869 outubro/2030 5
131 53244 51312 55175 50290 56198 novembro/2030 5
132 53556 51614 55498 50586 56526 dezembro/2030 5
133 53868 51916 55821 50883 56854 janeiro/2031 5
134 54181 52218 56144 51179 57183 fevereiro/2031 5

É previsto, no total de cinco anos, o atendimento de 2.696.712 usuários/mês (2.600.158-2.793.267).

Table 3.3: Previsão ADAL40 -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 1.109.921 1.074.685 1.145.158 1.056.030 1.163.812
2 1.203.177 1.166.135 1.240.218 1.146.527 1.259.825
3 1.296.432 1.257.673 1.335.194 1.237.151 1.355.713
4 1.389.689 1.349.280 1.430.098 1.327.891 1.451.488
5 1.482.945 1.440.954 1.524.934 1.418.724 1.547.163

É previsto, no total de cinco anos, a quantidade aprovada de 6.482.164 (6.288.727-6.675.602).

Previsão de gasto ao mes - Adalimumabe 40 mg injetavel (por seringa preenchida) - ADAL40

Table 3.3: Previsão ADAL40 - valor total
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 803.954.830 731.924.494 875.985.170 693.793.937 914.115.727
2 815.711.671 742.118.670 889.304.672 703.160.889 928.262.452
3 815.724.812 742.131.809 889.317.814 703.174.028 928.275.596
4 815.724.828 742.131.828 889.317.828 703.174.044 928.275.612
5 815.724.828 742.131.828 889.317.828 703.174.044 928.275.612

Com o método arima, é previsto, no total de cinco anos, o valor de R$ 4.066.840.969 (3.700.438.629-4.433.243.312).

Table 3.3: Previsão ADAL40 - valor total com base nas unidades aprovadas × R$ 185,31
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 175.276.928 169.244.718 181.309.139 166.051.461 184.502.398
2 192.779.831 186.414.274 199.145.388 183.044.551 202.515.110
3 210.282.732 203.600.449 216.965.016 200.063.063 220.502.403
4 227.785.634 220.800.983 234.770.286 217.103.533 238.467.739
5 245.288.537 238.014.082 252.562.991 234.163.217 256.413.855

Com o método arima para quantidade aprovada e o último valor pago pela unidade farmacotécnica, é previsto, no total de cinco anos, o valor de R$ 1.051.413.662 (1.018.074.506-1.084.752.820).

Certolizumabe pegol 200 mg/mL injetável (por seringa preenchida) - CERT200

A partir do código SIGTAP (604380070) foi observado o período de agosto/2013 a novembro/2021. O maior número de usuários foi 9.654 em novembro/2021. A maior quantidade aprovada foi 21.548 em novembro/2021. A mediana (e quartis) de quantidade aprovada por usuário foi 2,1 (2,1-2,2) variando de 1,7 a 2,9 unidades por usuário. .

Table 3.3: Previsão CERT200 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
29 2329 2244 2414 2198 2459 maio/2022 1
30 2421 2324 2519 2272 2571 junho/2022 1
31 2476 2359 2593 2297 2655 julho/2022 1
32 2547 2417 2678 2348 2746 agosto/2022 1
33 2611 2468 2755 2392 2831 setembro/2022 1
34 2678 2523 2834 2441 2916 outubro/2022 1
35 2744 2578 2910 2490 2998 novembro/2022 1
36 2810 2634 2987 2541 3080 dezembro/2022 1
37 2877 2690 3063 2592 3161 janeiro/2023 1
38 2943 2747 3138 2644 3242 fevereiro/2023 1
39 3009 2805 3213 2697 3321 março/2023 1
40 3075 2862 3288 2750 3400 abril/2023 1
41 3141 2920 3362 2804 3479 maio/2023 2
42 3207 2979 3436 2858 3557 junho/2023 2
43 3274 3037 3510 2912 3635 julho/2023 2
44 3340 3096 3583 2967 3712 agosto/2023 2
45 3406 3155 3656 3023 3789 setembro/2023 2
46 3472 3214 3730 3078 3866 outubro/2023 2
47 3538 3274 3802 3134 3942 novembro/2023 2
48 3604 3333 3875 3190 4019 dezembro/2023 2
49 3671 3393 3948 3246 4095 janeiro/2024 2
50 3737 3453 4020 3303 4170 fevereiro/2024 2
51 3803 3513 4093 3360 4246 março/2024 2
52 3869 3573 4165 3417 4321 abril/2024 2
53 3935 3634 4237 3474 4396 maio/2024 3
54 4001 3694 4309 3531 4471 junho/2024 3
55 4067 3754 4381 3589 4546 julho/2024 3
56 4134 3815 4452 3646 4621 agosto/2024 3
57 4200 3876 4524 3704 4695 setembro/2024 3
58 4266 3936 4595 3762 4770 outubro/2024 3
59 4332 3997 4667 3820 4844 novembro/2024 3
60 4398 4058 4738 3878 4918 dezembro/2024 3
61 4464 4119 4810 3937 4992 janeiro/2025 3
62 4531 4180 4881 3995 5066 fevereiro/2025 3
63 4597 4242 4952 4054 5140 março/2025 3
64 4663 4303 5023 4112 5214 abril/2025 3
65 4729 4364 5094 4171 5287 maio/2025 4
66 4795 4426 5165 4230 5361 junho/2025 4
67 4861 4487 5236 4289 5434 julho/2025 4
68 4928 4548 5307 4348 5507 agosto/2025 4
69 4994 4610 5378 4407 5581 setembro/2025 4
70 5060 4672 5448 4466 5654 outubro/2025 4
71 5126 4733 5519 4525 5727 novembro/2025 4
72 5192 4795 5590 4585 5800 dezembro/2025 4
73 5258 4857 5660 4644 5873 janeiro/2026 4
74 5325 4919 5731 4704 5946 fevereiro/2026 4
75 5391 4980 5801 4763 6018 março/2026 4
76 5457 5042 5872 4823 6091 abril/2026 4
77 5523 5104 5942 4883 6164 maio/2026 5
78 5589 5166 6012 4942 6236 junho/2026 5
79 5655 5228 6083 5002 6309 julho/2026 5
80 5722 5290 6153 5062 6381 agosto/2026 5
81 5788 5352 6223 5122 6454 setembro/2026 5
82 5854 5415 6293 5182 6526 outubro/2026 5
83 5920 5477 6363 5242 6598 novembro/2026 5
84 5986 5539 6434 5302 6670 dezembro/2026 5
85 6052 5601 6504 5362 6742 janeiro/2027 5
86 6119 5663 6574 5423 6815 fevereiro/2027 5
87 6185 5726 6644 5483 6887 março/2027 5
88 6251 5788 6714 5543 6959 abril/2027 5

É previsto, no total de cinco anos, o atendimento de 257.930 usuários/mês (238.981-276.881).

Table 3.3: Previsão CERT200 -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 68.844 64.983 72.709 62.936 74.754
2 89.403 83.512 95.292 80.394 98.410
3 109.959 102.595 117.323 98.697 121.218
4 130.515 121.931 139.101 117.387 143.646
5 151.074 141.419 160.726 136.311 165.835

É previsto, no total de cinco anos, a quantidade aprovada de 549.795 (514.440-585.151).

Previsão de gasto ao mes - Certolizumabe pegol 200 mg/mL injetável (por seringa preenchida) - CERT200

Table 3.3: Previsão CERT200 - valor total
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 39.539.697 37.303.252 41.776.140 36.119.352 42.960.042
2 50.786.316 47.439.434 54.133.200 45.667.697 55.904.936
3 62.032.938 57.869.269 66.196.602 55.665.157 68.400.715
4 73.279.556 68.436.254 78.122.861 65.872.364 80.686.749
5 84.526.176 79.087.959 89.964.392 76.209.142 92.843.210

Com o método arima, é previsto, no total de cinco anos, o valor de R$ 310.164.683 (290.136.168-330.193.195).

Table 3.3: Previsão CERT200 - valor total com base nas unidades aprovadas × R$ 494,77
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 45.328.501 42.158.300 48.498.701 40.480.097 50.176.904
2 55.343.439 50.471.486 60.215.394 47.892.429 62.794.450
3 65.358.379 59.255.052 71.461.708 56.024.144 74.692.614
4 75.373.319 68.250.527 82.496.109 64.479.950 86.266.685
5 85.388.257 77.375.373 93.401.142 73.133.608 97.642.909

Com o método arima para quantidade aprovada e o último valor pago pela unidade farmacotécnica, é previsto, no total de cinco anos, o valor de R$ 326.791.895 (297.510.738-356.073.054).

Citrato de tofacitinibe 5 mg (por comprimido) - CITR5

A partir do código SIGTAP (604320159) foi observado o período de outubro/2018 a novembro/2021. O maior número de usuários foi 8.051 em outubro/2021. A maior quantidade aprovada foi 488.804 em novembro/2021. A mediana (e quartis) de quantidade aprovada por usuário foi 60,3 (59,1-60,9) variando de 50,3 a 64,9 unidades por usuário. .

Table 3.3: Previsão CITR5 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
10 1270 1063 1477 953 1587 outubro/2020 1
11 1410 1117 1703 962 1858 novembro/2020 1
12 1550 1191 1909 1001 2099 dezembro/2020 1
13 1690 1275 2105 1056 2324 janeiro/2021 1
14 1830 1367 2293 1121 2539 fevereiro/2021 1
15 1970 1462 2478 1194 2746 março/2021 1
16 2110 1562 2658 1271 2949 abril/2021 1
17 2250 1664 2836 1353 3147 maio/2021 1
18 2390 1768 3012 1439 3341 junho/2021 1
19 2530 1875 3185 1528 3532 julho/2021 1
20 2670 1983 3357 1619 3721 agosto/2021 1
21 2810 2092 3528 1712 3908 setembro/2021 1
22 2950 2203 3697 1807 4093 outubro/2021 2
23 3090 2314 3866 1904 4276 novembro/2021 2
24 3230 2427 4033 2002 4458 dezembro/2021 2
25 3370 2541 4199 2102 4638 janeiro/2022 2
26 3510 2655 4365 2203 4817 fevereiro/2022 2
27 3650 2771 4529 2305 4995 março/2022 2
28 3790 2887 4693 2408 5172 abril/2022 2
29 3930 3003 4857 2512 5348 maio/2022 2
30 4070 3120 5020 2617 5523 junho/2022 2
31 4210 3238 5182 2723 5697 julho/2022 2
32 4350 3356 5344 2830 5870 agosto/2022 2
33 4490 3475 5505 2937 6043 setembro/2022 2
34 4630 3594 5666 3045 6215 outubro/2022 3
35 4770 3713 5827 3154 6386 novembro/2022 3
36 4910 3833 5987 3263 6557 dezembro/2022 3
37 5050 3953 6147 3373 6727 janeiro/2023 3
38 5190 4074 6306 3483 6897 fevereiro/2023 3
39 5330 4195 6465 3594 7066 março/2023 3
40 5470 4316 6624 3705 7235 abril/2023 3
41 5610 4438 6782 3817 7403 maio/2023 3
42 5750 4559 6941 3929 7571 junho/2023 3
43 5890 4681 7099 4042 7738 julho/2023 3
44 6030 4804 7256 4155 7905 agosto/2023 3
45 6170 4926 7414 4268 8072 setembro/2023 3
46 6310 5049 7571 4382 8238 outubro/2023 4
47 6450 5172 7728 4496 8404 novembro/2023 4
48 6590 5296 7884 4610 8570 dezembro/2023 4
49 6730 5419 8041 4725 8735 janeiro/2024 4
50 6870 5543 8197 4840 8900 fevereiro/2024 4
51 7010 5667 8353 4956 9064 março/2024 4
52 7150 5791 8509 5071 9229 abril/2024 4
53 7290 5915 8665 5187 9393 maio/2024 4
54 7430 6040 8820 5304 9556 junho/2024 4
55 7570 6164 8976 5420 9720 julho/2024 4
56 7710 6289 9131 5537 9883 agosto/2024 4
57 7850 6414 9286 5654 10046 setembro/2024 4
58 7990 6539 9441 5771 10209 outubro/2024 5
59 8130 6664 9596 5889 10371 novembro/2024 5
60 8270 6790 9750 6006 10534 dezembro/2024 5
61 8410 6915 9905 6124 10696 janeiro/2025 5
62 8550 7041 10059 6242 10858 fevereiro/2025 5
63 8690 7167 10213 6361 11019 março/2025 5
64 8830 7293 10367 6479 11181 abril/2025 5
65 8970 7419 10521 6598 11342 maio/2025 5
66 9110 7545 10675 6717 11503 junho/2025 5
67 9250 7672 10828 6836 11664 julho/2025 5
68 9390 7798 10982 6955 11825 agosto/2025 5
69 9530 7925 11135 7075 11985 setembro/2025 5

É previsto, no total de cinco anos, o atendimento de 324.000 usuários/mês (259.022-388.978).

Table 3.3: Previsão CITR5 -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 1.429.722 1.057.614 1.801.836 860.628 1.998.822
2 2.607.282 1.953.558 3.261.012 1.607.494 3.607.076
3 3.784.842 2.943.075 4.626.615 2.497.473 5.072.217
4 4.962.402 3.967.964 5.956.846 3.441.539 6.483.271
5 6.139.962 5.013.484 7.266.446 4.417.162 7.862.768

É previsto, no total de cinco anos, a quantidade aprovada de 18.924.210 (14.935.695-22.912.755).

Previsão de gasto ao mes - Citrato de tofacitinibe 5 mg (por comprimido) - CITR5

Table 3.3: Previsão CITR5 - valor total
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 36.156.161 26.628.080 45.684.244 21.584.216 50.728.108
2 65.723.097 48.984.120 82.462.073 40.123.041 91.323.152
3 95.290.032 73.736.193 116.843.868 62.326.283 128.253.780
4 124.856.965 99.393.909 150.320.022 85.914.582 163.799.350
5 154.423.900 125.579.893 183.267.907 110.310.798 198.537.004

Com o método arima, é previsto, no total de cinco anos, o valor de R$ 476.450.155 (374.322.195-578.578.114).

Table 3.3: Previsão CITR5 - valor total com base nas unidades aprovadas × R$ 13,57
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 89.734.883 76.326.682 103.143.084 69.228.808 110.240.956
2 116.295.501 92.739.916 139.851.086 80.270.342 152.320.658
3 142.856.118 112.524.920 173.187.317 96.468.554 189.243.684
4 169.416.735 133.584.368 205.249.106 114.615.860 224.217.614
5 195.977.354 155.387.212 236.567.497 133.900.087 258.054.621

Com o método arima para quantidade aprovada e o último valor pago pela unidade farmacotécnica, é previsto, no total de cinco anos, o valor de R$ 714.280.591 (570.563.098-857.998.090).

Etanercepte 25 mg injetavel (por frasco-ampola) - ETAN25

A partir do código SIGTAP (601010027 604380020) foi observado o período de janeiro/2008 a novembro/2021. O maior número de usuários foi 3.035 em julho/2012. A maior quantidade aprovada foi 22.513 em agosto/2010. A mediana (e quartis) de quantidade aprovada por usuário foi 5,3 (4,7-6,0) variando de 1,0 a 9,3 unidades por usuário. .

Table 3.3: Previsão ETAN25 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
87 914 737 1092 643 1186 março/2027 1
88 910 697 1122 585 1235 abril/2027 1
89 891 661 1120 540 1242 maio/2027 1
90 872 627 1117 497 1247 junho/2027 1
91 853 593 1113 455 1251 julho/2027 1
92 834 560 1108 415 1253 agosto/2027 1
93 815 527 1102 375 1255 setembro/2027 1
94 796 496 1096 337 1255 outubro/2027 1
95 777 464 1089 299 1255 novembro/2027 1
96 758 434 1082 262 1254 dezembro/2027 1
97 739 403 1075 226 1252 janeiro/2028 1
98 720 373 1066 190 1250 fevereiro/2028 1
99 701 344 1058 154 1247 março/2028 2
100 682 314 1049 120 1244 abril/2028 2
101 663 285 1041 85 1240 maio/2028 2
102 644 256 1031 51 1236 junho/2028 2
103 625 228 1022 18 1232 julho/2028 2
104 606 200 1012 -16 1227 agosto/2028 2
105 587 171 1002 -49 1222 setembro/2028 2
106 568 143 992 -81 1217 outubro/2028 2
107 549 116 982 -114 1211 novembro/2028 2
108 530 88 972 -146 1205 dezembro/2028 2
109 511 61 961 -178 1199 janeiro/2029 2
110 492 33 950 -209 1193 fevereiro/2029 2
111 473 6 939 -241 1186 março/2029 3
112 454 -21 928 -272 1179 abril/2029 3
113 435 -47 917 -303 1172 maio/2029 3
114 416 -74 906 -334 1165 junho/2029 3
115 397 -101 894 -364 1158 julho/2029 3
116 378 -127 883 -395 1150 agosto/2029 3
117 359 -154 871 -425 1142 setembro/2029 3
118 340 -180 859 -455 1135 outubro/2029 3
119 321 -206 848 -485 1127 novembro/2029 3
120 302 -232 836 -515 1118 dezembro/2029 3
121 283 -258 824 -544 1110 janeiro/2030 3
122 264 -284 812 -574 1101 fevereiro/2030 3
123 245 -310 799 -603 1093 março/2030 4
124 226 -336 787 -633 1084 abril/2030 4
125 207 -361 775 -662 1075 maio/2030 4
126 188 -387 762 -691 1066 junho/2030 4
127 169 -412 750 -720 1057 julho/2030 4
128 150 -438 737 -749 1048 agosto/2030 4
129 131 -463 724 -777 1039 setembro/2030 4
130 112 -488 712 -806 1029 outubro/2030 4
131 93 -514 699 -834 1020 novembro/2030 4
132 74 -539 686 -863 1010 dezembro/2030 4
133 55 -564 673 -891 1001 janeiro/2031 4
134 36 -589 660 -919 991 fevereiro/2031 4
135 17 -614 647 -948 981 março/2031 5
136 -2 -639 634 -976 971 abril/2031 5
137 -21 -664 621 -1004 961 maio/2031 5
138 -40 -688 608 -1031 951 junho/2031 5
139 -59 -713 594 -1059 941 julho/2031 5
140 -78 -738 581 -1087 930 agosto/2031 5
141 -97 -763 568 -1115 920 setembro/2031 5
142 -116 -787 554 -1142 910 outubro/2031 5
143 -135 -812 541 -1170 899 novembro/2031 5
144 -154 -836 528 -1197 888 dezembro/2031 5
145 -173 -861 514 -1225 878 janeiro/2032 5
146 -192 -885 500 -1252 867 fevereiro/2032 5

É previsto, no total de cinco anos, o atendimento de 23.162 usuários/mês (1.118-45.182).

Table 3.3: Previsão ETAN25 -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 53.426 31.322 75.530 19.620 87.232
2 28.150 5.603 50.700 -6.336 62.633
3 4.826 -8.484 18.137 -15.531 25.183

É previsto, no total de cinco anos, a quantidade aprovada de 86.402 (28.441-144.367).

Previsão de gasto ao mes - Etanercepte 25 mg injetavel (por frasco-ampola) - ETAN25

Table 3.3: Previsão ETAN25 - valor total
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 47.392.104 36.491.061 58.293.146 30.720.401 64.063.808
2 48.555.264 36.931.157 60.179.367 30.777.729 66.332.796
3 48.595.570 36.970.693 60.220.448 30.816.854 66.374.287
4 48.596.967 36.972.088 60.221.847 30.818.250 66.375.687
5 48.597.012 36.972.138 60.221.892 30.818.300 66.375.732

Com o método arima, é previsto, no total de cinco anos, o valor de R$ 241.736.917 (184.337.137-299.136.700).

Table 3.3: Previsão ETAN25 - valor total com base nas unidades aprovadas × R$ 147,42
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 9.902.380 7.016.396 12.788.363 5.488.648 14.316.110
2 5.832.020 2.758.918 8.905.122 1.132.117 10.531.923
3 1.770.320 -1.201.839 4.742.478 -2.775.204 6.315.845

Com o método arima para quantidade aprovada e o último valor pago pela unidade farmacotécnica, é previsto, no total de cinco anos, o valor de R$ 17.504.720 (8.573.475-26.435.963).

Etanercepte 50 mg injetavel (por frasco-ampola ou seringa preenchida) - ETAN50

A partir do código SIGTAP (601010051 604380038) foi observado o período de dezembro/2008 a novembro/2021. O maior número de usuários foi 21.461 em janeiro/2018. A maior quantidade aprovada foi 96.909 em setembro/2017. A mediana (e quartis) de quantidade aprovada por usuário foi 4,0 ( 3,9- 4,0) variando de 0,9 a 22,1 unidades por usuário. .

Table 3.3: Previsão ETAN50 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
69 21644 20949 22339 20581 22707 setembro/2025 1
70 21649 20844 22454 20418 22880 outubro/2025 1
71 21826 21000 22651 20563 23088 novembro/2025 1
72 22002 21157 22848 20709 23295 dezembro/2025 1
73 22179 21314 23044 20856 23502 janeiro/2026 1
74 22355 21471 23239 21003 23707 fevereiro/2026 1
75 22531 21628 23434 21150 23913 março/2026 1
76 22708 21787 23629 21299 24117 abril/2026 1
77 22884 21945 23824 21448 24321 maio/2026 1
78 23061 22104 24018 21597 24525 junho/2026 1
79 23237 22263 24212 21747 24728 julho/2026 1
80 23414 22422 24405 21897 24930 agosto/2026 1
81 23590 22582 24599 22048 25132 setembro/2026 2
82 23767 22742 24792 22199 25334 outubro/2026 2
83 23943 22902 24984 22351 25535 novembro/2026 2
84 24120 23062 25177 22503 25736 dezembro/2026 2
85 24296 23223 25369 22655 25937 janeiro/2027 2
86 24472 23384 25561 22808 26137 fevereiro/2027 2
87 24649 23545 25753 22961 26337 março/2027 2
88 24825 23707 25944 23114 26536 abril/2027 2
89 25002 23868 26136 23268 26736 maio/2027 2
90 25178 24030 26327 23422 26935 junho/2027 2
91 25355 24192 26518 23576 27133 julho/2027 2
92 25531 24354 26708 23731 27332 agosto/2027 2
93 25708 24516 26899 23886 27530 setembro/2027 3
94 25884 24679 27090 24041 27728 outubro/2027 3
95 26061 24841 27280 24196 27925 novembro/2027 3
96 26237 25004 27470 24351 28123 dezembro/2027 3
97 26413 25167 27660 24507 28320 janeiro/2028 3
98 26590 25330 27850 24663 28517 fevereiro/2028 3
99 26766 25493 28039 24819 28713 março/2028 3
100 26943 25657 28229 24976 28910 abril/2028 3
101 27119 25820 28418 25132 29106 maio/2028 3
102 27296 25984 28608 25289 29302 junho/2028 3
103 27472 26147 28797 25446 29498 julho/2028 3
104 27649 26311 28986 25603 29694 agosto/2028 3
105 27825 26475 29175 25761 29890 setembro/2028 4
106 28002 26639 29364 25918 30085 outubro/2028 4
107 28178 26804 29553 26076 30280 novembro/2028 4
108 28355 26968 29741 26234 30475 dezembro/2028 4
109 28531 27132 29930 26392 30670 janeiro/2029 4
110 28707 27297 30118 26550 30865 fevereiro/2029 4
111 28884 27461 30306 26708 31059 março/2029 4
112 29060 27626 30495 26867 31254 abril/2029 4
113 29237 27791 30683 27026 31448 maio/2029 4
114 29413 27956 30871 27184 31642 junho/2029 4
115 29590 28121 31059 27343 31836 julho/2029 4
116 29766 28286 31246 27502 32030 agosto/2029 4
117 29943 28451 31434 27661 32224 setembro/2029 5
118 30119 28616 31622 27821 32417 outubro/2029 5
119 30296 28782 31809 27980 32611 novembro/2029 5
120 30472 28947 31997 28140 32804 dezembro/2029 5
121 30648 29113 32184 28299 32997 janeiro/2030 5
122 30825 29278 32372 28459 33190 fevereiro/2030 5
123 31001 29444 32559 28619 33383 março/2030 5
124 31178 29609 32746 28779 33576 abril/2030 5
125 31354 29775 32933 28939 33769 maio/2030 5
126 31531 29941 33120 29100 33962 junho/2030 5
127 31707 30107 33307 29260 34154 julho/2030 5
128 31884 30273 33494 29421 34347 agosto/2030 5

É previsto, no total de cinco anos, o atendimento de 1.600.862 usuários/mês (1.526.316-1.675.409).

Table 3.3: Previsão ETAN50 -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 876.954 834.177 919.730 811.533 942.378
2 1.009.503 954.215 1.064.793 924.947 1.094.058
3 1.142.052 1.076.634 1.207.473 1.042.003 1.242.104
4 1.274.603 1.200.430 1.348.773 1.161.168 1.388.037
5 1.407.150 1.325.159 1.489.142 1.281.758 1.532.544

É previsto, no total de cinco anos, a quantidade aprovada de 5.710.262 (5.390.615-6.029.911).

Previsão de gasto ao mes - Etanercepte 50 mg injetavel (por frasco-ampola ou seringa preenchida) - ETAN50

Table 3.3: Previsão ETAN50 - valor total
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 63.425.496 -47.777.519 174.628.503 -106.644.836 233.495.821
2 63.425.496 -131.936.431 258.787.415 -235.354.786 362.205.770
3 63.425.496 -188.131.040 314.982.021 -321.297.022 448.148.006
4 63.425.496 -233.755.849 360.606.831 -391.074.145 517.925.131
5 63.425.496 -273.215.199 400.066.181 -451.422.016 578.273.001

Com o método arima, é previsto, no total de cinco anos, o valor de R$ 317.127.480 (-874.816.038-1.509.070.951).

Table 3.3: Previsão ETAN50 - valor total com base nas unidades aprovadas × R$ 161,91
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 159.901.458 153.246.933 166.555.982 149.724.240 170.078.676
2 177.954.378 169.387.139 186.521.617 164.851.916 191.056.844
3 196.007.300 185.886.933 206.127.668 180.529.532 211.485.069
4 214.060.224 202.596.532 225.523.910 196.528.022 231.592.421
5 232.113.144 219.448.357 244.777.932 212.744.021 251.482.265

Com o método arima para quantidade aprovada e o último valor pago pela unidade farmacotécnica, é previsto, no total de cinco anos, o valor de R$ 980.036.504 (930.565.894-1.029.507.109).

Etanercepte 50 mg injetável (por frasco-ampola ou seringa preenchida)(biossimilar a) - ETAN50A

A partir do código SIGTAP (604380100) foi observado o período de setembro/2020 a novembro/2021. O maior número de usuários foi 14.394 em dezembro/2020. A maior quantidade aprovada foi 59.557 em dezembro/2020. A mediana (e quartis) de quantidade aprovada por usuário foi 4,1 (4,0-4,3) variando de 4,0 a 4,6 unidades por usuário. .

Table 3.3: Previsão ETAN50A - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
16 10296 7768 12823 6430 14161 março/2023 1
17 9843 6449 13238 4652 15035 abril/2023 1
18 9843 6449 13238 4652 15035 maio/2023 1
19 9843 6449 13238 4652 15035 junho/2023 1
20 9843 6449 13238 4652 15035 julho/2023 1
21 9843 6449 13238 4652 15035 agosto/2023 1
22 9843 6449 13238 4652 15035 setembro/2023 1
23 9843 6449 13238 4652 15035 outubro/2023 1
24 9843 6449 13238 4652 15035 novembro/2023 1
25 9843 6449 13238 4652 15035 dezembro/2023 1
26 9843 6449 13238 4652 15035 janeiro/2024 1
27 9843 6449 13238 4652 15035 fevereiro/2024 1
28 9843 6449 13238 4652 15035 março/2024 2
29 9843 6449 13238 4652 15035 abril/2024 2
30 9843 6449 13238 4652 15035 maio/2024 2
31 9843 6449 13238 4652 15035 junho/2024 2
32 9843 6449 13238 4652 15035 julho/2024 2
33 9843 6449 13238 4652 15035 agosto/2024 2
34 9843 6449 13238 4652 15035 setembro/2024 2
35 9843 6449 13238 4652 15035 outubro/2024 2
36 9843 6449 13238 4652 15035 novembro/2024 2
37 9843 6449 13238 4652 15035 dezembro/2024 2
38 9843 6449 13238 4652 15035 janeiro/2025 2
39 9843 6449 13238 4652 15035 fevereiro/2025 2
40 9843 6449 13238 4652 15035 março/2025 3
41 9843 6449 13238 4652 15035 abril/2025 3
42 9843 6449 13238 4652 15035 maio/2025 3
43 9843 6449 13238 4652 15035 junho/2025 3
44 9843 6449 13238 4652 15035 julho/2025 3
45 9843 6449 13238 4652 15035 agosto/2025 3
46 9843 6449 13238 4652 15035 setembro/2025 3
47 9843 6449 13238 4652 15035 outubro/2025 3
48 9843 6449 13238 4652 15035 novembro/2025 3
49 9843 6449 13238 4652 15035 dezembro/2025 3
50 9843 6449 13238 4652 15035 janeiro/2026 3
51 9843 6449 13238 4652 15035 fevereiro/2026 3
52 9843 6449 13238 4652 15035 março/2026 4
53 9843 6449 13238 4652 15035 abril/2026 4
54 9843 6449 13238 4652 15035 maio/2026 4
55 9843 6449 13238 4652 15035 junho/2026 4
56 9843 6449 13238 4652 15035 julho/2026 4
57 9843 6449 13238 4652 15035 agosto/2026 4
58 9843 6449 13238 4652 15035 setembro/2026 4
59 9843 6449 13238 4652 15035 outubro/2026 4
60 9843 6449 13238 4652 15035 novembro/2026 4
61 9843 6449 13238 4652 15035 dezembro/2026 4
62 9843 6449 13238 4652 15035 janeiro/2027 4
63 9843 6449 13238 4652 15035 fevereiro/2027 4
64 9843 6449 13238 4652 15035 março/2027 5
65 9843 6449 13238 4652 15035 abril/2027 5
66 9843 6449 13238 4652 15035 maio/2027 5
67 9843 6449 13238 4652 15035 junho/2027 5
68 9843 6449 13238 4652 15035 julho/2027 5
69 9843 6449 13238 4652 15035 agosto/2027 5
70 9843 6449 13238 4652 15035 setembro/2027 5
71 9843 6449 13238 4652 15035 outubro/2027 5
72 9843 6449 13238 4652 15035 novembro/2027 5
73 9843 6449 13238 4652 15035 dezembro/2027 5
74 9843 6449 13238 4652 15035 janeiro/2028 5
75 9843 6449 13238 4652 15035 fevereiro/2028 5

É previsto, no total de cinco anos, o atendimento de 591.033 usuários/mês (388.259-793.865).

Table 3.3: Previsão ETAN50A -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 560.148 369.816 750.480 269.064 851.232
2 560.148 369.816 750.480 269.064 851.232
3 560.148 369.816 750.480 269.064 851.232
4 560.148 369.816 750.480 269.064 851.232
5 560.148 369.816 750.480 269.064 851.232

É previsto, no total de cinco anos, a quantidade aprovada de 2.800.740 (1.849.080-3.752.400).

Previsão de gasto ao mes - Etanercepte 50 mg injetável (por frasco-ampola ou seringa preenchida)(biossimilar a) - ETAN50A

Table 3.3: Previsão ETAN50A - valor total
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 164.346.972 109.622.100 219.071.832 80.652.504 248.041.428
2 164.346.972 109.622.100 219.071.832 80.652.504 248.041.428
3 164.346.972 109.622.100 219.071.832 80.652.504 248.041.428
4 164.346.972 109.622.100 219.071.832 80.652.504 248.041.428
5 164.346.972 109.622.100 219.071.832 80.652.504 248.041.428

Com o método arima, é previsto, no total de cinco anos, o valor de R$ 821.734.860 (548.110.500-1.095.359.160).

Table 3.3: Previsão ETAN50A - valor total com base nas unidades aprovadas × R$ 161,91
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 90.691.896 59.876.388 121.507.392 43.563.648 137.820.132
2 90.691.896 59.876.388 121.507.392 43.563.648 137.820.132
3 90.691.896 59.876.388 121.507.392 43.563.648 137.820.132
4 90.691.896 59.876.388 121.507.392 43.563.648 137.820.132
5 90.691.896 59.876.388 121.507.392 43.563.648 137.820.132

Com o método arima para quantidade aprovada e o último valor pago pela unidade farmacotécnica, é previsto, no total de cinco anos, o valor de R$ 453.459.480 (299.381.940-607.536.960).

Fingolimode 0.5 mg (por cápsula) - FING05

A partir do código SIGTAP (604320132) foi observado o período de fevereiro/2015 a novembro/2021. O maior número de usuários foi 4.501 em novembro/2021. A maior quantidade aprovada foi 146.062 em novembro/2021. A mediana (e quartis) de quantidade aprovada por usuário foi 29,3 (29,0-29,7) variando de 26,7 a 34,5 unidades por usuário. .

Table 3.3: Previsão FING05 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
24 2069 1771 2368 1612 2526 dezembro/2021 1
25 2117 1811 2422 1650 2583 janeiro/2022 1
26 2164 1853 2476 1688 2641 fevereiro/2022 1
27 2212 1894 2530 1725 2698 março/2022 1
28 2259 1935 2583 1764 2755 abril/2022 1
29 2307 1977 2637 1802 2812 maio/2022 1
30 2354 2018 2690 1840 2868 junho/2022 1
31 2402 2060 2744 1879 2925 julho/2022 1
32 2449 2101 2797 1917 2981 agosto/2022 1
33 2497 2143 2850 1956 3037 setembro/2022 1
34 2544 2185 2903 1995 3093 outubro/2022 1
35 2592 2227 2956 2034 3149 novembro/2022 1
36 2639 2269 3009 2074 3205 dezembro/2022 2
37 2687 2312 3062 2113 3260 janeiro/2023 2
38 2734 2354 3115 2152 3316 fevereiro/2023 2
39 2782 2396 3167 2192 3371 março/2023 2
40 2829 2439 3220 2232 3427 abril/2023 2
41 2877 2481 3273 2272 3482 maio/2023 2
42 2924 2524 3325 2311 3537 junho/2023 2
43 2972 2566 3377 2351 3592 julho/2023 2
44 3019 2609 3430 2392 3647 agosto/2023 2
45 3067 2652 3482 2432 3702 setembro/2023 2
46 3114 2694 3534 2472 3757 outubro/2023 2
47 3162 2737 3587 2512 3811 novembro/2023 2
48 3209 2780 3639 2553 3866 dezembro/2023 3
49 3257 2823 3691 2593 3921 janeiro/2024 3
50 3304 2866 3743 2634 3975 fevereiro/2024 3
51 3352 2909 3795 2674 4030 março/2024 3
52 3399 2952 3847 2715 4084 abril/2024 3
53 3447 2995 3899 2756 4138 maio/2024 3
54 3494 3038 3951 2797 4192 junho/2024 3
55 3542 3081 4003 2838 4246 julho/2024 3
56 3589 3125 4054 2878 4300 agosto/2024 3
57 3637 3168 4106 2920 4355 setembro/2024 3
58 3685 3211 4158 2961 4408 outubro/2024 3
59 3732 3254 4210 3002 4462 novembro/2024 3
60 3780 3298 4261 3043 4516 dezembro/2024 4
61 3827 3341 4313 3084 4570 janeiro/2025 4
62 3875 3385 4364 3125 4624 fevereiro/2025 4
63 3922 3428 4416 3167 4677 março/2025 4
64 3970 3472 4467 3208 4731 abril/2025 4
65 4017 3515 4519 3250 4785 maio/2025 4
66 4065 3559 4570 3291 4838 junho/2025 4
67 4112 3602 4622 3333 4892 julho/2025 4
68 4160 3646 4673 3374 4945 agosto/2025 4
69 4207 3690 4725 3416 4998 setembro/2025 4
70 4255 3733 4776 3458 5052 outubro/2025 4
71 4302 3777 4827 3499 5105 novembro/2025 4
72 4350 3821 4878 3541 5158 dezembro/2025 5
73 4397 3865 4930 3583 5212 janeiro/2026 5
74 4445 3908 4981 3625 5265 fevereiro/2026 5
75 4492 3952 5032 3666 5318 março/2026 5
76 4540 3996 5083 3708 5371 abril/2026 5
77 4587 4040 5134 3750 5424 maio/2026 5
78 4635 4084 5186 3792 5477 junho/2026 5
79 4682 4128 5237 3834 5530 julho/2026 5
80 4730 4172 5288 3876 5583 agosto/2026 5
81 4777 4216 5339 3918 5636 setembro/2026 5
82 4825 4260 5390 3961 5689 outubro/2026 5
83 4872 4304 5441 4003 5742 novembro/2026 5

É previsto, no total de cinco anos, o atendimento de 208.243 usuários/mês (181.402-235.085).

Table 3.3: Previsão FING05 -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 1.048.097 904.234 1.191.955 828.080 1.268.110
2 1.249.364 1.092.236 1.406.493 1.009.055 1.489.670
3 1.450.633 1.281.274 1.619.990 1.191.620 1.709.644
4 1.651.902 1.471.140 1.832.662 1.375.450 1.928.352
5 1.853.170 1.661.682 2.044.657 1.560.319 2.146.022

É previsto, no total de cinco anos, a quantidade aprovada de 7.253.166 (6.410.566-8.095.757).

Golimumabe 50 mg injetável (por seringa preenchida - GOLI50

A partir do código SIGTAP (604380089) foi observado o período de julho/2013 a novembro/2021. O maior número de usuários foi 14.583 em novembro/2021. A maior quantidade aprovada foi 15.809 em novembro/2021. A mediana (e quartis) de quantidade aprovada por usuário foi 1,0 (1,0-1,0) variando de 0,9 a 1,2 unidades por usuário. .

Table 3.3: Previsão GOLI50 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
36 5392 5031 5754 4839 5946 dezembro/2022 1
37 5484 5115 5853 4919 6048 janeiro/2023 1
38 5575 5199 5951 5000 6151 fevereiro/2023 1
39 5666 5283 6050 5080 6253 março/2023 1
40 5758 5368 6148 5161 6354 abril/2023 1
41 5849 5452 6246 5242 6456 maio/2023 1
42 5940 5537 6344 5323 6558 junho/2023 1
43 6032 5621 6442 5404 6659 julho/2023 1
44 6123 5706 6540 5486 6760 agosto/2023 1
45 6214 5791 6637 5567 6861 setembro/2023 1
46 6306 5876 6735 5649 6962 outubro/2023 1
47 6397 5962 6832 5731 7063 novembro/2023 1
48 6488 6047 6930 5813 7164 dezembro/2023 2
49 6580 6132 7027 5895 7264 janeiro/2024 2
50 6671 6217 7124 5977 7365 fevereiro/2024 2
51 6762 6303 7222 6060 7465 março/2024 2
52 6854 6389 7319 6142 7565 abril/2024 2
53 6945 6474 7416 6225 7665 maio/2024 2
54 7036 6560 7513 6308 7765 junho/2024 2
55 7128 6646 7610 6390 7865 julho/2024 2
56 7219 6731 7706 6473 7965 agosto/2024 2
57 7310 6817 7803 6556 8064 setembro/2024 2
58 7402 6903 7900 6639 8164 outubro/2024 2
59 7493 6989 7997 6723 8263 novembro/2024 2
60 7584 7075 8093 6806 8363 dezembro/2024 3
61 7676 7161 8190 6889 8462 janeiro/2025 3
62 7767 7248 8286 6973 8561 fevereiro/2025 3
63 7858 7334 8383 7056 8660 março/2025 3
64 7950 7420 8479 7140 8759 abril/2025 3
65 8041 7506 8575 7223 8858 maio/2025 3
66 8132 7593 8672 7307 8957 junho/2025 3
67 8224 7679 8768 7391 9056 julho/2025 3
68 8315 7766 8864 7475 9155 agosto/2025 3
69 8406 7852 8960 7559 9254 setembro/2025 3
70 8497 7939 9056 7643 9352 outubro/2025 3
71 8589 8025 9153 7727 9451 novembro/2025 3
72 8680 8112 9249 7811 9550 dezembro/2025 4
73 8771 8198 9345 7895 9648 janeiro/2026 4
74 8863 8285 9441 7979 9746 fevereiro/2026 4
75 8954 8372 9536 8063 9845 março/2026 4
76 9045 8459 9632 8148 9943 abril/2026 4
77 9137 8545 9728 8232 10041 maio/2026 4
78 9228 8632 9824 8317 10140 junho/2026 4
79 9319 8719 9920 8401 10238 julho/2026 4
80 9411 8806 10016 8486 10336 agosto/2026 4
81 9502 8893 10111 8570 10434 setembro/2026 4
82 9593 8980 10207 8655 10532 outubro/2026 4
83 9685 9067 10303 8740 10630 novembro/2026 4
84 9776 9154 10398 8824 10728 dezembro/2026 5
85 9867 9241 10494 8909 10826 janeiro/2027 5
86 9959 9328 10589 8994 10923 fevereiro/2027 5
87 10050 9415 10685 9079 11021 março/2027 5
88 10141 9502 10781 9164 11119 abril/2027 5
89 10233 9589 10876 9249 11217 maio/2027 5
90 10324 9677 10972 9334 11314 junho/2027 5
91 10415 9764 11067 9419 11412 julho/2027 5
92 10507 9851 11162 9504 11509 agosto/2027 5
93 10598 9938 11258 9589 11607 setembro/2027 5
94 10689 10026 11353 9674 11704 outubro/2027 5
95 10781 10113 11448 9759 11802 novembro/2027 5

É previsto, no total de cinco anos, o atendimento de 485.191 usuários/mês (453.413-516.973).

Table 3.3: Previsão GOLI50 -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 73.525 68.105 78.946 65.234 81.815
2 89.051 81.673 96.429 77.766 100.333
3 104.577 95.667 113.485 90.953 118.201
4 120.101 109.891 130.311 104.487 135.716
5 135.627 124.266 146.990 118.248 153.006

É previsto, no total de cinco anos, a quantidade aprovada de 522.881 (479.602-566.161).

Previsão de gasto ao mes - Golimumabe 50 mg injetável (por seringa preenchida - GOLI50

Table 3.3: Previsão GOLI50 - valor total
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 100.417.788 85.554.097 115.281.490 77.685.733 123.149.855
2 100.417.788 81.821.749 119.013.837 71.977.600 128.857.988
3 100.417.788 78.728.792 122.106.794 67.247.327 133.588.258
4 100.417.788 76.027.039 124.808.549 63.115.352 137.720.236
5 100.417.788 73.596.986 127.238.600 59.398.910 141.436.678

Com o método arima, é previsto, no total de cinco anos, o valor de R$ 502.088.940 (395.728.663-608.449.270).

Table 3.3: Previsão GOLI50 - valor total com base nas unidades aprovadas × R$ 1.313,19
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 112.244.734 100.611.810 123.877.657 94.453.712 130.035.753
2 130.138.433 117.435.840 142.841.026 110.711.495 149.565.376
3 148.086.320 134.440.525 161.732.114 127.216.878 168.955.763
4 166.034.209 151.506.405 180.562.012 143.815.848 188.252.567
5 183.982.096 168.622.905 199.341.287 160.492.242 207.471.950

Com o método arima para quantidade aprovada e o último valor pago pela unidade farmacotécnica, é previsto, no total de cinco anos, o valor de R$ 740.485.792 (672.617.485-808.354.096).

Infliximabe 10 mg/mL injetavel (por frasco-ampola com 10 mL) - INFL1010

A partir do código SIGTAP (601010035 601010043 604380046 604380054) foi observado o período de janeiro/2008 a novembro/2021. O maior número de usuários foi 11.045 em maio/2021. A maior quantidade aprovada foi 44.576 em março/2021. A mediana (e quartis) de quantidade aprovada por usuário foi 2,3 (2,2-3,2) variando de 1,5 a 4,5 unidades por usuário. .

Table 3.3: Previsão INFL1010 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
87 7079 6779 7379 6620 7538 março/2027 1
88 6992 6673 7312 6503 7481 abril/2027 1
89 7137 6743 7530 6534 7739 maio/2027 1
90 7135 6712 7558 6488 7781 junho/2027 1
91 7225 6756 7694 6508 7942 julho/2027 1
92 7257 6758 7757 6494 8021 agosto/2027 1
93 7326 6792 7861 6509 8144 setembro/2027 1
94 7372 6808 7936 6510 8235 outubro/2027 1
95 7433 6839 8027 6524 8341 novembro/2027 1
96 7484 6863 8105 6534 8434 dezembro/2027 1
97 7541 6893 8189 6550 8532 janeiro/2028 1
98 7594 6921 8268 6564 8624 fevereiro/2028 1
99 7650 6952 8348 6582 8718 março/2028 2
100 7704 6982 8426 6600 8808 abril/2028 2
101 7759 7014 8504 6620 8899 maio/2028 2
102 7814 7047 8581 6640 8987 junho/2028 2
103 7869 7080 8658 6662 9075 julho/2028 2
104 7923 7113 8734 6685 9162 agosto/2028 2
105 7978 7148 8809 6708 9249 setembro/2028 2
106 8033 7182 8884 6732 9334 outubro/2028 2
107 8088 7218 8958 6757 9419 novembro/2028 2
108 8143 7253 9032 6782 9503 dezembro/2028 2
109 8197 7289 9106 6808 9586 janeiro/2029 2
110 8252 7326 9179 6835 9669 fevereiro/2029 2
111 8307 7362 9252 6862 9752 março/2029 3
112 8362 7399 9324 6890 9834 abril/2029 3
113 8417 7437 9396 6918 9915 maio/2029 3
114 8471 7474 9468 6947 9996 junho/2029 3
115 8526 7512 9540 6976 10076 julho/2029 3
116 8581 7551 9611 7005 10156 agosto/2029 3
117 8636 7589 9682 7035 10236 setembro/2029 3
118 8690 7628 9753 7066 10315 outubro/2029 3
119 8745 7667 9823 7096 10394 novembro/2029 3
120 8800 7706 9894 7127 10473 dezembro/2029 3
121 8855 7746 9964 7159 10551 janeiro/2030 3
122 8910 7785 10034 7190 10629 fevereiro/2030 3
123 8964 7825 10103 7222 10706 março/2030 4
124 9019 7865 10173 7255 10784 abril/2030 4
125 9074 7906 10242 7287 10861 maio/2030 4
126 9129 7946 10311 7320 10937 junho/2030 4
127 9183 7987 10380 7353 11014 julho/2030 4
128 9238 8027 10449 7386 11090 agosto/2030 4
129 9293 8068 10518 7420 11166 setembro/2030 4
130 9348 8109 10586 7454 11242 outubro/2030 4
131 9403 8151 10655 7488 11317 novembro/2030 4
132 9457 8192 10723 7522 11393 dezembro/2030 4
133 9512 8233 10791 7557 11468 janeiro/2031 4
134 9567 8275 10859 7591 11543 fevereiro/2031 4
135 9622 8317 10927 7626 11617 março/2031 5
136 9676 8359 10994 7661 11692 abril/2031 5
137 9731 8401 11062 7697 11766 maio/2031 5
138 9786 8443 11129 7732 11840 junho/2031 5
139 9841 8485 11196 7768 11914 julho/2031 5
140 9896 8528 11264 7804 11988 agosto/2031 5
141 9950 8570 11331 7840 12061 setembro/2031 5
142 10005 8613 11398 7876 12135 outubro/2031 5
143 10060 8655 11464 7912 12208 novembro/2031 5
144 10115 8698 11531 7948 12281 dezembro/2031 5
145 10170 8741 11598 7985 12354 janeiro/2032 5
146 10224 8784 11664 8022 12427 fevereiro/2032 5

É previsto, no total de cinco anos, o atendimento de 516.548 usuários/mês (457.175-575.924).

Table 3.3: Previsão INFL1010 -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 273.179 256.158 290.200 247.149 299.207
2 293.255 270.163 316.345 257.940 328.570
3 313.330 285.483 341.179 270.740 355.920
4 333.405 301.510 365.304 284.622 382.189
5 353.480 317.994 388.965 299.211 407.751

É previsto, no total de cinco anos, a quantidade aprovada de 1.566.649 (1.431.308-1.701.993).

Previsão de gasto ao mes - Infliximabe 10 mg/mL injetavel (por frasco-ampola com 10 mL) - INFL1010

Table 3.3: Previsão INFL1010 - valor total
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 216.863.040 196.600.308 237.125.772 185.873.868 247.852.212
2 216.863.040 196.600.308 237.125.772 185.873.868 247.852.212
3 216.863.040 196.600.308 237.125.772 185.873.868 247.852.212
4 216.863.040 196.600.308 237.125.772 185.873.868 247.852.212
5 216.863.040 196.600.308 237.125.772 185.873.868 247.852.212

Com o método arima, é previsto, no total de cinco anos, o valor de R$ 1.084.315.200 (983.001.540-1.185.628.860).

Table 3.3: Previsão INFL1010 - valor total com base nas unidades aprovadas × R$ 3.536,66
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 939.284.614 879.270.031 999.299.192 847.500.230 1.031.068.994
2 1.015.481.340 937.188.196 1.093.774.483 895.742.311 1.135.220.368
3 1.091.678.066 998.678.691 1.184.677.442 949.447.798 1.233.908.337
4 1.167.874.794 1.062.209.688 1.273.539.899 1.006.273.960 1.329.475.629
5 1.244.071.522 1.127.109.630 1.361.033.412 1.065.193.744 1.422.949.298

Com o método arima para quantidade aprovada e o último valor pago pela unidade farmacotécnica, é previsto, no total de cinco anos, o valor de R$ 5.458.390.336 (5.004.456.236-5.912.324.428).

Rituximabe 500 mg injetável (por frasco-ampola de 50 mL) - RITU50050

A partir do código SIGTAP (604680023) foi observado o período de abril/2013 a novembro/2021. O maior número de usuários foi 721 em janeiro/2020. A maior quantidade aprovada foi 1.581 em agosto/2020. A mediana (e quartis) de quantidade aprovada por usuário foi 2,2 (1,8-2,3) variando de 1,5 a 3,7 unidades por usuário. .

Table 3.3: Previsão RITU50050 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
26 497 422 572 383 611 fevereiro/2022 1
27 438 354 523 309 567 março/2022 1
28 438 354 523 309 567 abril/2022 1
29 438 354 523 309 567 maio/2022 1
30 438 354 523 309 567 junho/2022 1
31 438 354 523 309 567 julho/2022 1
32 438 354 523 309 567 agosto/2022 1
33 438 354 523 309 567 setembro/2022 1
34 438 354 523 309 567 outubro/2022 1
35 438 354 523 309 567 novembro/2022 1
36 438 354 523 309 567 dezembro/2022 1
37 438 354 523 309 567 janeiro/2023 1
38 438 354 523 309 567 fevereiro/2023 2
39 438 354 523 309 567 março/2023 2
40 438 354 523 309 567 abril/2023 2
41 438 354 523 309 567 maio/2023 2
42 438 354 523 309 567 junho/2023 2
43 438 354 523 309 567 julho/2023 2
44 438 354 523 309 567 agosto/2023 2
45 438 354 523 309 567 setembro/2023 2
46 438 354 523 309 567 outubro/2023 2
47 438 354 523 309 567 novembro/2023 2
48 438 354 523 309 567 dezembro/2023 2
49 438 354 523 309 567 janeiro/2024 2
50 438 354 523 309 567 fevereiro/2024 3
51 438 354 523 309 567 março/2024 3
52 438 354 523 309 567 abril/2024 3
53 438 354 523 309 567 maio/2024 3
54 438 354 523 309 567 junho/2024 3
55 438 354 523 309 567 julho/2024 3
56 438 354 523 309 567 agosto/2024 3
57 438 354 523 309 567 setembro/2024 3
58 438 354 523 309 567 outubro/2024 3
59 438 354 523 309 567 novembro/2024 3
60 438 354 523 309 567 dezembro/2024 3
61 438 354 523 309 567 janeiro/2025 3
62 438 354 523 309 567 fevereiro/2025 4
63 438 354 523 309 567 março/2025 4
64 438 354 523 309 567 abril/2025 4
65 438 354 523 309 567 maio/2025 4
66 438 354 523 309 567 junho/2025 4
67 438 354 523 309 567 julho/2025 4
68 438 354 523 309 567 agosto/2025 4
69 438 354 523 309 567 setembro/2025 4
70 438 354 523 309 567 outubro/2025 4
71 438 354 523 309 567 novembro/2025 4
72 438 354 523 309 567 dezembro/2025 4
73 438 354 523 309 567 janeiro/2026 4
74 438 354 523 309 567 fevereiro/2026 5
75 438 354 523 309 567 março/2026 5
76 438 354 523 309 567 abril/2026 5
77 438 354 523 309 567 maio/2026 5
78 438 354 523 309 567 junho/2026 5
79 438 354 523 309 567 julho/2026 5
80 438 354 523 309 567 agosto/2026 5
81 438 354 523 309 567 setembro/2026 5
82 438 354 523 309 567 outubro/2026 5
83 438 354 523 309 567 novembro/2026 5
84 438 354 523 309 567 dezembro/2026 5
85 438 354 523 309 567 janeiro/2027 5

É previsto, no total de cinco anos, o atendimento de 26.339 usuários/mês (21.308-31.429).

Table 3.3: Previsão RITU50050 -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 17.862 15.544 20.180 14.319 21.406
2 19.687 17.234 22.141 15.934 23.439
3 21.547 18.984 24.109 17.628 25.464
4 23.406 20.739 26.073 19.328 27.480
5 25.266 22.499 28.032 21.033 29.496

É previsto, no total de cinco anos, a quantidade aprovada de 107.768 (95.000-120.535).

Rituximabe 500 mg injetável (por frasco- ampola de 5o mL ) (biossimilar a) - RITU50050A

A partir do código SIGTAP (604680031) foi observado o período de setembro/2020 a novembro/2021. O maior número de usuários foi 324 em novembro/2020. A maior quantidade aprovada foi 1.177 em novembro/2020. A mediana (e quartis) de quantidade aprovada por usuário foi 3,5 (3,2-3,7) variando de 3,2 a 4,7 unidades por usuário. .

Table 3.3: Previsão RITU50050A - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
16 270 189 350 146 393 março/2023 1
17 199 99 300 46 353 abril/2023 1
18 199 99 300 46 353 maio/2023 1
19 199 99 300 46 353 junho/2023 1
20 199 99 300 46 353 julho/2023 1
21 199 99 300 46 353 agosto/2023 1
22 199 99 300 46 353 setembro/2023 1
23 199 99 300 46 353 outubro/2023 1
24 199 99 300 46 353 novembro/2023 1
25 199 99 300 46 353 dezembro/2023 1
26 199 99 300 46 353 janeiro/2024 1
27 199 99 300 46 353 fevereiro/2024 1
28 199 99 300 46 353 março/2024 2
29 199 99 300 46 353 abril/2024 2
30 199 99 300 46 353 maio/2024 2
31 199 99 300 46 353 junho/2024 2
32 199 99 300 46 353 julho/2024 2
33 199 99 300 46 353 agosto/2024 2
34 199 99 300 46 353 setembro/2024 2
35 199 99 300 46 353 outubro/2024 2
36 199 99 300 46 353 novembro/2024 2
37 199 99 300 46 353 dezembro/2024 2
38 199 99 300 46 353 janeiro/2025 2
39 199 99 300 46 353 fevereiro/2025 2
40 199 99 300 46 353 março/2025 3
41 199 99 300 46 353 abril/2025 3
42 199 99 300 46 353 maio/2025 3
43 199 99 300 46 353 junho/2025 3
44 199 99 300 46 353 julho/2025 3
45 199 99 300 46 353 agosto/2025 3
46 199 99 300 46 353 setembro/2025 3
47 199 99 300 46 353 outubro/2025 3
48 199 99 300 46 353 novembro/2025 3
49 199 99 300 46 353 dezembro/2025 3
50 199 99 300 46 353 janeiro/2026 3
51 199 99 300 46 353 fevereiro/2026 3
52 199 99 300 46 353 março/2026 4
53 199 99 300 46 353 abril/2026 4
54 199 99 300 46 353 maio/2026 4
55 199 99 300 46 353 junho/2026 4
56 199 99 300 46 353 julho/2026 4
57 199 99 300 46 353 agosto/2026 4
58 199 99 300 46 353 setembro/2026 4
59 199 99 300 46 353 outubro/2026 4
60 199 99 300 46 353 novembro/2026 4
61 199 99 300 46 353 dezembro/2026 4
62 199 99 300 46 353 janeiro/2027 4
63 199 99 300 46 353 fevereiro/2027 4
64 199 99 300 46 353 março/2027 5
65 199 99 300 46 353 abril/2027 5
66 199 99 300 46 353 maio/2027 5
67 199 99 300 46 353 junho/2027 5
68 199 99 300 46 353 julho/2027 5
69 199 99 300 46 353 agosto/2027 5
70 199 99 300 46 353 setembro/2027 5
71 199 99 300 46 353 outubro/2027 5
72 199 99 300 46 353 novembro/2027 5
73 199 99 300 46 353 dezembro/2027 5
74 199 99 300 46 353 janeiro/2028 5
75 199 99 300 46 353 fevereiro/2028 5

É previsto, no total de cinco anos, o atendimento de 12.011 usuários/mês (6.030-18.050).

Table 3.3: Previsão RITU50050A -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 8.484 4.596 12.372 2.532 14.424
2 8.484 4.596 12.372 2.532 14.424
3 8.484 4.596 12.372 2.532 14.424
4 8.484 4.596 12.372 2.532 14.424
5 8.484 4.596 12.372 2.532 14.424

É previsto, no total de cinco anos, a quantidade aprovada de 42.420 (22.980-61.860).

Secuquinumabe 150 mg/mL solução injetável (por seringa preenchida) - SECU150

A partir do código SIGTAP (604690029) foi observado o período de fevereiro/2019 a novembro/2021. O maior número de usuários foi 8.482 em novembro/2021. A maior quantidade aprovada foi 18.163 em novembro/2021. A mediana (e quartis) de quantidade aprovada por usuário foi 2,0 (2,0-2,1) variando de 1,9 a 2,3 unidades por usuário. .

Table 3.3: Previsão SECU150 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
27 6244 5834 6655 5616 6872 fevereiro/2024 1
28 6295 5859 6731 5628 6961 março/2024 1
29 6483 6039 6927 5804 7161 abril/2024 1
30 6861 6340 7383 6064 7659 maio/2024 1
31 7039 6485 7593 6191 7887 junho/2024 1
32 7238 6667 7808 6366 8110 julho/2024 1
33 7537 6927 8147 6604 8471 agosto/2024 1
34 7760 7119 8400 6780 8739 setembro/2024 1
35 7974 7314 8635 6964 8985 outubro/2024 1
36 8238 7549 8927 7184 9292 novembro/2024 1
37 8475 7759 9190 7380 9569 dezembro/2024 1
38 8701 7964 9437 7574 9827 janeiro/2025 1
39 8949 8188 9709 7786 10112 fevereiro/2025 2
40 9189 8405 9973 7990 10387 março/2025 2
41 9422 8617 10226 8191 10652 abril/2025 2
42 9664 8838 10489 8401 10926 maio/2025 2
43 9904 9057 10751 8609 11199 junho/2025 2
44 10140 9273 11006 8815 11465 julho/2025 2
45 10380 9493 11266 9024 11735 agosto/2025 2
46 10619 9714 11525 9234 12004 setembro/2025 2
47 10857 9933 11781 9443 12271 outubro/2025 2
48 11096 10153 12039 9654 12538 novembro/2025 2
49 11335 10374 12296 9866 12805 dezembro/2025 2
50 11574 10595 12552 10077 13071 janeiro/2026 2
51 11813 10816 12809 10289 13336 fevereiro/2026 3
52 12052 11038 13065 10502 13601 março/2026 3
53 12290 11260 13320 10715 13866 abril/2026 3
54 12529 11482 13576 10928 14130 maio/2026 3
55 12768 11705 13831 11142 14394 junho/2026 3
56 13007 11928 14086 11356 14657 julho/2026 3
57 13245 12150 14341 11571 14920 agosto/2026 3
58 13484 12374 14595 11786 15183 setembro/2026 3
59 13723 12597 14849 12001 15445 outubro/2026 3
60 13962 12821 15103 12216 15707 novembro/2026 3
61 14201 13044 15357 12432 15969 dezembro/2026 3
62 14440 13268 15611 12648 16231 janeiro/2027 3
63 14678 13493 15864 12865 16492 fevereiro/2027 4
64 14917 13717 16117 13082 16753 março/2027 4
65 15156 13942 16370 13299 17013 abril/2027 4
66 15395 14166 16623 13516 17274 maio/2027 4
67 15634 14391 16876 13733 17534 junho/2027 4
68 15872 14616 17129 13951 17794 julho/2027 4
69 16111 14841 17381 14169 18053 agosto/2027 4
70 16350 15067 17633 14387 18313 setembro/2027 4
71 16589 15292 17886 14606 18572 outubro/2027 4
72 16828 15518 18138 14824 18831 novembro/2027 4
73 17066 15743 18390 15043 19090 dezembro/2027 4
74 17305 15969 18641 15262 19349 janeiro/2028 4
75 17544 16195 18893 15481 19607 fevereiro/2028 5
76 17783 16421 19144 15700 19865 março/2028 5
77 18022 16647 19396 15920 20123 abril/2028 5
78 18260 16874 19647 16140 20381 maio/2028 5
79 18499 17100 19898 16360 20639 junho/2028 5
80 18738 17327 20149 16580 20897 julho/2028 5
81 18977 17553 20400 16800 21154 agosto/2028 5
82 19216 17780 20651 17020 21411 setembro/2028 5
83 19454 18007 20902 17241 21668 outubro/2028 5
84 19693 18234 21153 17461 21925 novembro/2028 5
85 19932 18461 21403 17682 22182 dezembro/2028 5
86 20171 18688 21654 17903 22439 janeiro/2029 5

É previsto, no total de cinco anos, o atendimento de 787.678 usuários/mês (725.021-850.327).

Table 3.3: Previsão SECU150 -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 147.012 129.400 164.623 120.077 173.944
2 217.269 190.265 244.272 175.972 258.566
3 287.714 253.912 321.517 236.016 339.412
4 358.159 318.723 397.598 297.845 418.473
5 428.605 384.246 472.963 360.766 496.443

É previsto, no total de cinco anos, a quantidade aprovada de 1.438.759 (1.276.546-1.600.973).

Tocilizumabe 20 mg/mL injetavel (por frasco-ampola de 4 mL) - TOCI204

A partir do código SIGTAP (604690010) foi observado o período de abril/2013 a novembro/2021. O maior número de usuários foi 6.920 em novembro/2021. A maior quantidade aprovada foi 54.267 em novembro/2021. A mediana (e quartis) de quantidade aprovada por usuário foi 7,0 (6,8-7,2) variando de 3,0 a 8,4 unidades por usuário. .

Table 3.3: Previsão TOCI204 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
31 3810 3703 3917 3647 3973 julho/2022 1
32 3876 3761 3991 3700 4052 agosto/2022 1
33 3942 3819 4064 3755 4129 setembro/2022 1
34 4008 3878 4137 3810 4206 outubro/2022 1
35 4074 3937 4210 3865 4282 novembro/2022 1
36 4140 3997 4282 3921 4358 dezembro/2022 1
37 4205 4057 4354 3978 4433 janeiro/2023 1
38 4271 4117 4426 4035 4508 fevereiro/2023 1
39 4337 4177 4498 4092 4583 março/2023 1
40 4403 4237 4569 4149 4657 abril/2023 1
41 4469 4298 4640 4207 4731 maio/2023 1
42 4535 4358 4712 4265 4805 junho/2023 1
43 4601 4419 4782 4323 4879 julho/2023 2
44 4667 4480 4853 4382 4952 agosto/2023 2
45 4733 4541 4924 4440 5025 setembro/2023 2
46 4799 4603 4994 4499 5098 outubro/2023 2
47 4864 4664 5065 4558 5171 novembro/2023 2
48 4930 4726 5135 4617 5244 dezembro/2023 2
49 4996 4787 5205 4676 5316 janeiro/2024 2
50 5062 4849 5276 4736 5389 fevereiro/2024 2
51 5128 4911 5346 4795 5461 março/2024 2
52 5194 4972 5416 4855 5533 abril/2024 2
53 5260 5034 5486 4915 5605 maio/2024 2
54 5326 5096 5555 4975 5677 junho/2024 2
55 5392 5158 5625 5035 5749 julho/2024 3
56 5458 5220 5695 5095 5821 agosto/2024 3
57 5523 5282 5765 5155 5892 setembro/2024 3
58 5589 5345 5834 5215 5964 outubro/2024 3
59 5655 5407 5904 5275 6035 novembro/2024 3
60 5721 5469 5973 5336 6107 dezembro/2024 3
61 5787 5532 6043 5396 6178 janeiro/2025 3
62 5853 5594 6112 5457 6249 fevereiro/2025 3
63 5919 5656 6181 5517 6320 março/2025 3
64 5985 5719 6251 5578 6391 abril/2025 3
65 6051 5781 6320 5639 6462 maio/2025 3
66 6117 5844 6389 5700 6533 junho/2025 3
67 6182 5907 6458 5761 6604 julho/2025 4
68 6248 5969 6527 5822 6675 agosto/2025 4
69 6314 6032 6597 5883 6746 setembro/2025 4
70 6380 6095 6666 5944 6817 outubro/2025 4
71 6446 6158 6735 6005 6887 novembro/2025 4
72 6512 6220 6804 6066 6958 dezembro/2025 4
73 6578 6283 6873 6127 7029 janeiro/2026 4
74 6644 6346 6941 6188 7099 fevereiro/2026 4
75 6710 6409 7010 6250 7170 março/2026 4
76 6776 6472 7079 6311 7240 abril/2026 4
77 6841 6535 7148 6372 7310 maio/2026 4
78 6907 6598 7217 6434 7381 junho/2026 4
79 6973 6661 7286 6495 7451 julho/2026 5
80 7039 6724 7354 6557 7521 agosto/2026 5
81 7105 6787 7423 6618 7592 setembro/2026 5
82 7171 6850 7492 6680 7662 outubro/2026 5
83 7237 6913 7561 6742 7732 novembro/2026 5
84 7303 6976 7629 6803 7802 dezembro/2026 5
85 7369 7039 7698 6865 7872 janeiro/2027 5
86 7435 7103 7767 6927 7942 fevereiro/2027 5
87 7500 7166 7835 6989 8012 março/2027 5
88 7566 7229 7904 7050 8082 abril/2027 5
89 7632 7292 7972 7112 8152 maio/2027 5
90 7698 7356 8041 7174 8222 junho/2027 5

É previsto, no total de cinco anos, o atendimento de 345.246 usuários/mês (330.548-359.946).

Table 3.3: Previsão TOCI204 -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 312.885 303.766 322.004 298.936 326.832
2 379.062 366.370 391.753 359.653 398.471
3 445.239 429.795 460.682 421.621 468.856
4 511.415 493.645 529.186 484.238 538.593
5 577.592 557.766 597.417 547.274 607.909

É previsto, no total de cinco anos, a quantidade aprovada de 2.226.193 (2.151.342-2.301.042).

Ustequinumabe 45 mg/0,5mL soluçâo injetàvel (por seringa preenchida) - USTEQ45

A partir do código SIGTAP (604690037) foi observado o período de maio/2020 a novembro/2021. O maior número de usuários foi 1.205 em novembro/2021. A maior quantidade aprovada foi 1.679 em outubro/2021. A mediana (e quartis) de quantidade aprovada por usuário foi 1,4 (1,3-1,5) variando de 1,2 a 1,8 unidades por usuário. .

Table 3.3: Previsão USTEQ45 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia ano
12 433 215 651 99 767 novembro/2022 1
13 433 125 741 -39 905 dezembro/2022 1
14 433 55 811 -145 1011 janeiro/2023 1
15 433 -3 869 -234 1100 fevereiro/2023 1
16 433 -55 921 -313 1179 março/2023 1
17 433 -101 967 -384 1250 abril/2023 1
18 433 -144 1010 -450 1316 maio/2023 1
19 433 -184 1050 -511 1377 junho/2023 1
20 433 -221 1087 -568 1434 julho/2023 1
21 433 -257 1123 -622 1488 agosto/2023 1
22 433 -290 1156 -673 1539 setembro/2023 1
23 433 -323 1189 -723 1589 outubro/2023 1
24 433 -353 1219 -770 1636 novembro/2023 2
25 433 -383 1249 -815 1681 dezembro/2023 2
26 433 -412 1278 -859 1725 janeiro/2024 2
27 433 -440 1306 -901 1767 fevereiro/2024 2
28 433 -466 1332 -943 1809 março/2024 2
29 433 -492 1358 -982 1848 abril/2024 2
30 433 -518 1384 -1021 1887 maio/2024 2
31 433 -543 1409 -1059 1925 junho/2024 2
32 433 -567 1433 -1096 1962 julho/2024 2
33 433 -590 1456 -1132 1998 agosto/2024 2
34 433 -613 1479 -1167 2033 setembro/2024 2
35 433 -636 1502 -1201 2067 outubro/2024 2
36 433 -658 1524 -1235 2101 novembro/2024 3
37 433 -679 1545 -1268 2134 dezembro/2024 3
38 433 -700 1566 -1300 2166 janeiro/2025 3
39 433 -721 1587 -1332 2198 fevereiro/2025 3
40 433 -742 1608 -1364 2230 março/2025 3
41 433 -762 1628 -1394 2260 abril/2025 3
42 433 -782 1648 -1424 2290 maio/2025 3
43 433 -801 1667 -1454 2320 junho/2025 3
44 433 -820 1686 -1483 2349 julho/2025 3
45 433 -839 1705 -1512 2378 agosto/2025 3
46 433 -858 1724 -1541 2407 setembro/2025 3
47 433 -876 1742 -1569 2435 outubro/2025 3
48 433 -894 1760 -1596 2462 novembro/2025 4
49 433 -912 1778 -1624 2490 dezembro/2025 4
50 433 -929 1795 -1650 2516 janeiro/2026 4
51 433 -947 1813 -1677 2543 fevereiro/2026 4
52 433 -964 1830 -1703 2569 março/2026 4
53 433 -981 1847 -1729 2595 abril/2026 4
54 433 -997 1863 -1755 2621 maio/2026 4
55 433 -1014 1880 -1780 2646 junho/2026 4
56 433 -1030 1896 -1805 2671 julho/2026 4
57 433 -1046 1912 -1830 2696 agosto/2026 4
58 433 -1062 1928 -1854 2720 setembro/2026 4
59 433 -1078 1944 -1878 2744 outubro/2026 4
60 433 -1094 1960 -1902 2768 novembro/2026 5
61 433 -1109 1975 -1926 2792 dezembro/2026 5
62 433 -1125 1991 -1949 2815 janeiro/2027 5
63 433 -1140 2006 -1973 2839 fevereiro/2027 5
64 433 -1155 2021 -1996 2862 março/2027 5
65 433 -1170 2036 -2019 2885 abril/2027 5
66 433 -1185 2051 -2041 2907 maio/2027 5
67 433 -1199 2065 -2063 2929 junho/2027 5
68 433 -1214 2080 -2086 2952 julho/2027 5
69 433 -1228 2094 -2108 2974 agosto/2027 5
70 433 -1243 2109 -2129 2995 setembro/2027 5
71 433 -1257 2123 -2151 3017 outubro/2027 5

É previsto, no total de cinco anos, o atendimento de 25.980 usuários/mês (-42.407-94.367).

Table 3.3: Previsão USTEQ45 -unidades aprovadas
ano Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 7.788 -1.481 17.057 -6.386 21.962
2 7.788 -8.493 24.069 -17.112 32.688
3 7.788 -13.179 28.755 -24.276 39.852
4 7.788 -16.980 32.556 -30.093 45.669
5 7.788 -20.269 35.845 -35.123 50.699

É previsto, no total de cinco anos, a quantidade aprovada de 38.940 (-60.402-138.282).

Vedolizumabe 300 mg pó liofilizado para soluçăo injetável - VEDO300

A partir do código SIGTAP (604320167) foi observado o período de junho/2021 a novembro/2021. O maior número de usuários foi 285 em novembro/2021. A maior quantidade aprovada foi 391 em novembro/2021. A mediana (e quartis) de quantidade aprovada por usuário foi 1,4 (1,4-1,6) variando de 1,3 a 1,8 unidades por usuário. .

Table 3.3: Previsão VEDO300 - usuários SUS
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia
7 336 318 354 309 364 junho/2022
8 388 362 413 349 427 julho/2022
9 439 408 470 392 487 agosto/2022
10 491 455 527 436 546 setembro/2022
11 542 502 582 480 604 outubro/2022
12 593 549 637 526 661 novembro/2022
13 645 597 692 572 718 dezembro/2022
14 696 645 747 618 774 janeiro/2023
15 748 694 802 665 830 fevereiro/2023
16 799 742 856 712 886 março/2023
17 850 791 910 759 942 abril/2023
18 902 839 964 806 997 maio/2023
19 953 888 1018 854 1052 junho/2023
20 1005 937 1072 902 1108 julho/2023
21 1056 986 1126 949 1163 agosto/2023
22 1107 1035 1179 997 1218 setembro/2023
23 1159 1085 1233 1045 1272 outubro/2023
24 1210 1134 1287 1093 1327 novembro/2023
25 1262 1183 1340 1142 1382 dezembro/2023
26 1313 1232 1394 1190 1436 janeiro/2024
27 1364 1282 1447 1238 1491 fevereiro/2024
28 1416 1331 1500 1287 1545 março/2024
29 1467 1381 1554 1335 1599 abril/2024
30 1519 1430 1607 1384 1653 maio/2024
31 1570 1480 1660 1432 1708 junho/2024
32 1621 1530 1713 1481 1762 julho/2024
33 1673 1579 1766 1530 1816 agosto/2024
34 1724 1629 1819 1579 1870 setembro/2024
35 1776 1679 1873 1627 1924 outubro/2024
36 1827 1728 1926 1676 1978 novembro/2024
37 1878 1778 1979 1725 2032 dezembro/2024
38 1930 1828 2032 1774 2086 janeiro/2025
39 1981 1878 2085 1823 2139 fevereiro/2025
40 2033 1928 2138 1872 2193 março/2025
41 2084 1978 2190 1921 2247 abril/2025
42 2135 2027 2243 1970 2301 maio/2025
43 2187 2077 2296 2019 2354 junho/2025
44 2238 2127 2349 2068 2408 julho/2025
45 2290 2177 2402 2118 2462 agosto/2025
46 2341 2227 2455 2167 2515 setembro/2025
47 2392 2277 2508 2216 2569 outubro/2025
48 2444 2327 2560 2265 2622 novembro/2025
49 2495 2377 2613 2315 2676 dezembro/2025
50 2547 2427 2666 2364 2729 janeiro/2026
51 2598 2477 2719 2413 2783 fevereiro/2026
52 2649 2527 2771 2463 2836 março/2026
53 2701 2577 2824 2512 2890 abril/2026
54 2752 2627 2877 2561 2943 maio/2026
55 2804 2678 2930 2611 2996 junho/2026
56 2855 2728 2982 2660 3050 julho/2026
57 2906 2778 3035 2710 3103 agosto/2026
58 2958 2828 3088 2759 3156 setembro/2026
59 3009 2878 3140 2809 3210 outubro/2026
60 3061 2928 3193 2858 3263 novembro/2026
61 3112 2979 3245 2908 3316 dezembro/2026
62 3163 3029 3298 2957 3369 janeiro/2027
63 3215 3079 3351 3007 3423 fevereiro/2027
64 3266 3129 3403 3057 3476 março/2027
65 3318 3179 3456 3106 3529 abril/2027
66 3369 3230 3508 3156 3582 maio/2027

É previsto, no total de cinco anos, o atendimento de 111.162 usuários/mês (105.515-116.804).

Table 3.3: Previsão VEDO300 -unidades aprovadas
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 competencia
7 459 419 500 398 521 junho/2022
8 528 471 585 441 615 julho/2022
9 596 526 666 489 703 agosto/2022
10 665 584 745 541 788 setembro/2022
11 733 643 823 595 871 outubro/2022
12 801 703 900 650 953 novembro/2022
13 870 763 977 707 1033 dezembro/2022
14 938 824 1052 764 1113 janeiro/2023
15 1007 886 1128 821 1192 fevereiro/2023
16 1075 947 1203 880 1270 março/2023
17 1143 1010 1277 939 1348 abril/2023
18 1212 1072 1352 998 1426 maio/2023
19 1280 1135 1426 1058 1503 junho/2023
20 1349 1198 1500 1118 1579 julho/2023
21 1417 1261 1573 1178 1656 agosto/2023
22 1485 1324 1647 1239 1732 setembro/2023
23 1554 1387 1720 1299 1808 outubro/2023
24 1622 1451 1793 1360 1884 novembro/2023
25 1691 1515 1866 1422 1960 dezembro/2023
26 1759 1579 1939 1483 2035 janeiro/2024
27 1827 1642 2012 1545 2110 fevereiro/2024
28 1896 1707 2085 1606 2185 março/2024
29 1964 1771 2158 1668 2260 abril/2024
30 2033 1835 2230 1730 2335 maio/2024
31 2101 1899 2303 1792 2410 junho/2024
32 2169 1964 2375 1855 2484 julho/2024
33 2238 2028 2447 1917 2558 agosto/2024
34 2306 2093 2520 1980 2633 setembro/2024
35 2375 2157 2592 2042 2707 outubro/2024
36 2443 2222 2664 2105 2781 novembro/2024
37 2511 2287 2736 2168 2855 dezembro/2024
38 2580 2352 2808 2231 2929 janeiro/2025
39 2648 2416 2880 2294 3003 fevereiro/2025
40 2717 2481 2952 2357 3076 março/2025
41 2785 2546 3024 2420 3150 abril/2025
42 2853 2611 3095 2483 3224 maio/2025
43 2922 2676 3167 2546 3297 junho/2025
44 2990 2741 3239 2610 3371 julho/2025
45 3059 2807 3311 2673 3444 agosto/2025
46 3127 2872 3382 2737 3517 setembro/2025
47 3195 2937 3454 2800 3591 outubro/2025
48 3264 3002 3525 2864 3664 novembro/2025
49 3332 3068 3597 2928 3737 dezembro/2025
50 3401 3133 3668 2991 3810 janeiro/2026
51 3469 3198 3740 3055 3883 fevereiro/2026
52 3537 3264 3811 3119 3956 março/2026
53 3606 3329 3882 3183 4029 abril/2026
54 3674 3395 3954 3247 4102 maio/2026
55 3743 3460 4025 3311 4175 junho/2026
56 3811 3526 4096 3375 4247 julho/2026
57 3879 3591 4168 3439 4320 agosto/2026
58 3948 3657 4239 3503 4393 setembro/2026
59 4016 3722 4310 3567 4465 outubro/2026
60 4085 3788 4381 3631 4538 novembro/2026
61 4153 3854 4452 3695 4611 dezembro/2026
62 4221 3919 4523 3760 4683 janeiro/2027
63 4290 3985 4594 3824 4756 fevereiro/2027
64 4358 4051 4665 3888 4828 março/2027
65 4427 4117 4737 3953 4901 abril/2027
66 4495 4182 4808 4017 4973 maio/2027

É previsto, no total de cinco anos, a quantidade aprovada de 148.632 (135.983-161.281).

4 Considerações

Bases consolidadas a partir de dados administrativos devem ser validadas com padrões amplamente aceitos. A comparação da quantidade aprovada ao mês com os dados disponíveis do tabnet se mostrou como o mais importante controle de qualidade da extração, transformação e carga (ETL), por se tratar do insumo mais amplamente utilizado e amplamente conhecidos na gestão do SUS.

A avaliação com técnicas iterativas de visualização da série histórica de usuários, quantidade aprovada e do produto do valor pago pela quantidade aprovada contribui para o conhecimento de cada procedimento do SUS e, consequentemente para o cálculo do impacto orçamentário.

Existem limitações relativas ao método arima, sobretudo diante de oscilações no atendimento como as que ocorreram no decorrer da pandemia por covid-19. Outra limitação do método arima ocorre quando a tendência decrescente leva à previsão de valores negativos.

Outra limitação é a disponibilidade sistemática de valores pagos pela unidade farmacotécnica, podendo haver oscilações que são corrigidas quando se obtêm mais de um valor de referência em dado ano.

O número de usuários distintos ao ano não foi avaliado, apenas o número de usuários ao mês, cujo número é próximo ou equivalente ao número de dispensações. A presente abordagem objetivou tecer um paralelo entre o número de usuários e a quantidade aprovada, cuja manutenção da granularidade ao mês contribui com mais observações para a avaliação do modelo do que agregada ao ano.

Outras metodologias de regressão combinando regressão linear, regressão logística, redes neurais ou deep learning podem ser mais resolutivas do que a adotada no presente trabalho. Devem ser utilizadas técnicas que permitam a utilização de mais variáveis do que a mera progressão histórica do valor em questão. Adicionalmente, outras técnicas e modelagens devem ser utilizadas para remoção de ruído.

Apêndice

4.1 Funções auxiliares

# OBTEM ARQUIVOS DO REPOSITORIO DO DATASUS E CARREGA NO POSTGRESQL
# Baixa os arquivos DBC do ftp do datasus para o Brasil.
# Recupera a quantidade aprovada do arquivo AM para o PA com procedimento 06
# Incorpora no PostgreSQL

# voce deve rodar no linux tendo instalado:
# wine
# dbview
# postgresql cliente

library("RCurl") # funcao getURL
library("downloader") # funcao download
library("RPostgreSQL") # conexao com SGBF
# library("read.dbc") # leitura de arquivo dbc
# library(foreign)
library(data.table)
library(gsubfn)
library(dplyr)
library(stringr) # para str_replace
library(read.dbc)
library(googledrive)
    library(scales)

options(scipen = 100) # Evita notacao cientifica

dirdbc="/home/ferre/Downloads/dbc/"
# setwd(dirdbc)
url="ftp://ftp.datasus.gov.br/dissemin/publicos/SIASUS/200801_/Dados/" # filezilla
# http://tabnet.datasus.gov.br/cgi/menu_baixa_tabwin.htm
exe="/home/ferre/Downloads/dbc/Tab415/dbf2dbc.exe"
tabnetcsv="/home/ferre/Dropbox/sabeis_pcdt29/tabnet.csv"

listaftp_diretriz="/home/ferre/Dropbox/sabeis_pcdt29/dados/listaftp_diretriz.csv.gz"


# CONEXAO COM O SGBD
pg_conecta = function(
  dbname,
  host,
  port,
  user,
  password
){
  con = DBI::dbConnect(
    dbDriver(drvName = "PostgreSQL"),
    dbname = dbname,
    host = host,
    port = port,
    user = user,
    password = password
  )
  return(con)
}

pg_roda_query = function(query){
  con = pg_conecta(dbname, host, port, user, password)
  x=dbGetQuery(
    con,
    query
  )
  
  dbDisconnect(con)
  rm(con)
  
  return(x)
}

# adiciona coisa no banco de dados
pg_persiste = function(dataframe, no_banco, no_tabela, overwrite, append){
  
  con = pg_conecta(dbname, host, port, user, password)
  x=dbWriteTable(
    con, 
    c(no_banco,no_tabela), 
    dataframe, 
    overwrite = overwrite,
    append = append
  )
  
  dbDisconnect(con)
  rm(con)
  
  return(x)
}

# retorna o none da ultima tabela de log
pg_obtem_mapa_ftp = function(){
  query="SELECT table_schema || '.' || table_name as log
           FROM information_schema.tables 
          WHERE table_schema = 'public' 
            and table_name like 'tf_coleta%' 
            and table_name not like '%tabnet%'
            and table_name not like '%procedimento%' 
            and table_name not like '%medicamento%' 
          order by 1"
  x=tail(pg_roda_query(query),1)$log
  return(x)
}

pg_get_lista_tabela_medicamento = function(){
  query="select no_schema || '.' || no_tabela as tabela 
  from bd_medicamento.tf_coleta_medicamento  
  where no_schema || '.' || no_tabela in (  
  SELECT table_schema || '.' || table_name as tabela
           FROM information_schema.tables 
          WHERE table_schema like 'bd_medicamento_%')"
  tabelas=pg_roda_query(query)$tabela
  
  return(tabelas)
}

library(stringr)
set_colnames = function(vetor){
  x=str_replace_all(
    str_replace_all(
      str_replace_all(
        str_replace_all(
        str_replace_all(iconv(tolower(vetor), from = 'UTF-8', to = 'ASCII//TRANSLIT'),'[^a-z0-9]','_')
        ,'__','_')
      ,'__','_')
    ,'_$','')
,'_',' ')
  
  return(x)
}

formata <- function(x) {
  y = format(x, big.mark = ".", decimal.mark = ",", scientific = F)
  return(y)
}

formata_mes <- function(x) {
  y = format(as.Date(paste0(x,"15"),"%Y%m%d"),"%m/%Y")
  return(y)
}


firstup <- function(x) {
  substr(x, 1, 1) <- toupper(substr(x, 1, 1))
  x
}

library(gsheet)
get_gsheet = function(url,planilha){
  ds=as.data.frame(gsheet2tbl(url, sheetid = planiha))
  colnames(ds)=set_colnames(colnames(ds))
  # ds[is.na(ds)] <- 0
  return(ds)
}

# atualiza um registro de bd_medicamento.tf_coleta_medicamento
pg_update_tf_coleta_medicamento = function(tabela){
  query=paste0("update bd_medicamento.tf_coleta_medicamento A
   set qt_registros_medicamento = B.qt_registros_medicamento,
       qt_usuariosus_medicamento = B.qt_usuariosus_medicamento,
       qt_aprovada_medicamento = B.qt_aprovada_medicamento
  from (
select
       COUNT(*) as qt_registros_medicamento,
       COUNT(distinct nu_usuariosus) as qt_usuariosus_medicamento,
       sum(qt_aprovada) as qt_aprovada_medicamento
  from ", tabela,"
      ) B
      where A.no_schema || '.' || A.no_tabela = '", tabela,"'")
  pg_roda_query(query)
}

# atualiza todos os registro de bd_medicamento.tf_coleta_medicamento
pg_update_tf_coleta_medicamentos <- function() {
  tabela=pg_get_lista_tabela_medicamento()
  for (tabela in sort(tabelas,decreasing = TRUE)) {
    pg_update_tf_coleta_medicamento(tabela)
  }  
}


pg_set_log_coleta_medicamento = function(){
  log=pg_obtem_mapa_ftp()
  
  # colocar timestamp
  pg_roda_query("delete from bd_medicamento.tf_coleta_medicamento
  where (vl_discrepancia_tabnet > 5 
         or qt_registros_medicamento = 0
         or qt_registros_medicamento is null)")
    
  # insere novos registros na tabela de coleta
  query=paste0("insert into bd_medicamento.tf_coleta_medicamento
  select 'bd_medicamento_' || nu_ano as no_schema,
         lower('pa' || sg_uf || nu_competencia::text) as no_tabela,
         sg_uf ,
         nu_competencia ,
         string_agg(distinct case when sg_subsistema = 'PA' then no_dbc else null end, ' ') as no_dbc_pa, 
         max(case when split_part(dt_dbc,'-',1)::int > 70 
            then (19 || dt_dbc)::DATE
            else (20 || dt_dbc)::DATE
         end) as dt_dbc,
         current_date as dt_carga_sabeis,
         sum(case when sg_subsistema = 'PA' then qt_bytes_dbc else 0 end) as qt_bytes_dbc_pa, 
         sum(case when sg_subsistema = 'PA' then qt_registros_dbc_local else 0 end) as qt_registros_dbc_local_pa,
         string_agg(distinct case when sg_subsistema = 'AM' then no_dbc else null end, ' ') as no_dbc_am, 
         sum(case when sg_subsistema = 'AM' then qt_bytes_dbc else 0 end) as qt_bytes_dbc_am, 
         sum(case when sg_subsistema = 'AM' then qt_registros_dbc_local else 0 end) as qt_registros_dbc_local_am         
    from ", log,"
   where sg_subsistema in ('PA','AM')
     and sg_sistema = 'SIA'
     and nu_ano >= 2008
     and lower('pa' || sg_uf || nu_competencia::text) not in (select distinct no_tabela from bd_medicamento.tf_coleta_medicamento)
   group by 1,2,3,4
   order by 1,2,3 ;")
  pg_roda_query(query)

  
  # lista tabelas persistidas
  query="select no_schema || '.' || no_tabela as tabela from bd_medicamento.tf_coleta_medicamento  
  where no_schema || '.' || no_tabela in (  
  SELECT table_schema || '.' || table_name as tabela
           FROM information_schema.tables 
          WHERE table_schema like 'bd_medicamento_%')
  "
  tabelas=pg_roda_query(query)$tabela
  
  for (tabela in tabelas) {
      print(tabela)
     pg_update_tf_coleta_medicamento(tabela)
  }

}

# TABNET

pg_tabnet_ufcmp = function(tabnetcsv,listaftp){
  # processa o CSV obtido do TABNET 
  # em http://tabnet.datasus.gov.br/cgi/tabcgi.exe?sia/cnv/qauf.def
  # com a quantidade aprovada de 
  # procedimento 06
  # por UF
  # por ano e mes de processamento
  
  tabnetcsv=
    get_gsheet("https://docs.google.com/spreadsheets/d/1lnZsswLNEe1_2YbV95MZLM8ECl_seP-f9xpgBptcxZI/edit?usp=sharing",
    planilha = 'ufcmp')
  
  tabnet=tabnetcsv
  tabnet[tabnet == '-'] <- 0
  
  # transpoe a tabela de colunas para linhas
  aux=tabnet[,c(1,2)]
  colnames(aux)=c("nu_competencia","qt_aprovada_tabnet")
  aux$sg_uf=colnames(tabnet)[2]
  colnames(tabnet)[1]="nu_competencia"
  
  for (uf in colnames(tabnet)[3:ncol(tabnet)-1]) {
    aux2=tabnet[,c("nu_competencia",uf)]
    colnames(aux2)=c("nu_competencia","qt_aprovada_tabnet")
    aux2$sg_uf=uf
    aux=rbind(
      aux,
      aux2
    )
  }
  
  aux$nu_competencia=as.numeric(substr(str_replace(aux$nu_competencia,'-',''),1,6))
  aux$sg_uf=toupper(aux$sg_uf)
  
  #pg_persiste(listaftp,"public","tm_tabnet",TRUE,FALSE)
  pg_persiste(aux,"public","tf_tabnet",TRUE,FALSE)
  
  # atualiza quantidade aprovada do tabnet  
  pg_roda_query("   update bd_medicamento.tf_coleta_medicamento A
                    set qt_aprovada_tabnet = B.qt_aprovada_tabnet::int 
                   from public.tf_tabnet B
                  where A.nu_competencia = B.nu_competencia::int
                    and A.sg_uf = B.sg_uf")

  # atualiza indice de discrepancia em relacao ao tabnet  
  pg_roda_query("update bd_medicamento.tf_coleta_medicamento
set vl_discrepancia_tabnet = case when qt_aprovada_medicamento > 0 and qt_aprovada_tabnet > 0 
            then ROUND(ABS(qt_aprovada_tabnet - qt_aprovada_medicamento)::decimal / (qt_aprovada_tabnet + qt_aprovada_medicamento)*100)
            when qt_aprovada_medicamento is null and qt_aprovada_tabnet = 0 then 0
            else 100
            end 
")
}

pg_qt_procedimento_mes <- function() {
  
  pg_roda_query("DROP TABLE IF EXISTS bd_medicamento.tf_procedimento_uf_mes;
  CREATE TABLE bd_medicamento.tf_procedimento_uf_mes (
    nu_competencia int4 NULL,
    sg_uf VARCHAR(2) NULL,
    co_procedimento int8 NULL,
    qt_registros int8 NULL,
    qt_usuariosus int8 NULL,
    qt_cnes int8 NULL,
    qt_municipio_ibge_residencia int8 NULL,
    qt_aprovada INT8 NULL
);")
  
  tabelas=pg_get_lista_tabela_medicamento()
  for (tabela in sort(tabelas,decreasing = FALSE)) {
    print(tabela)
    pg_roda_query(paste0("INSERT INTO bd_medicamento.tf_procedimento_uf_mes
   select nu_competencia
       ,sg_uf
       ,co_procedimento
       ,count(*) qt_registros
       ,count(distinct nu_usuariosus) qt_usuariosus
       ,count(distinct co_cnes) qt_cnes
       ,count(distinct co_municipio_ibge_residencia) as qt_municipio_ibge_residencia
       ,sum(qt_aprovada) qt_aprovada
  from ",tabela,"
  group by 1,2,3
  order by 3"))
  }
  
  pg_roda_query("drop table if exists bd_medicamento.tf_procedimento_mes;
create table bd_medicamento.tf_procedimento_mes as
select A.nu_competencia
       ,A.co_procedimento
       ,sum(qt_registros) qt_registros
       ,sum(qt_usuariosus) qt_usuariosus
       ,sum(qt_cnes) qt_cnes
       ,sum(qt_municipio_ibge_residencia) as qt_municipio_ibge_residencia
       ,sum(qt_aprovada) as qt_aprovada
       ,sum(qt_aprovada_tabnet) as qt_aprovada_tabnet
  from bd_medicamento.tf_procedimento_uf_mes A
  left join bd_medicamento.tf_tabnet_procedimento B
  on A.co_procedimento = B.co_procedimento 
  and A.nu_competencia = B.nu_competencia 
  group by 1,2
  order by 1,2")
  
  pg_roda_query("  GRANT ALL ON SCHEMA bd_medicamento TO conitec;
 GRANT SELECT ON ALL TABLES IN SCHEMA bd_medicamento TO conitec;")
  
}



pg_tabnet_sigtapcp = function(){
  # processa o CSV obtido do TABNET 
  # em http://tabnet.datasus.gov.br/cgi/tabcgi.exe?sia/cnv/qauf.def
  # com a quantidade aprovada de 
  # procedimento 06
  # por UF
  # por ano e mes de processamento
  
  tabnet=
    get_gsheet("https://docs.google.com/spreadsheets/d/1EmGWPp9xXwn_PqefazyDpdpYwoqwdABQ0eN7cwE4edk/edit?usp=sharing",
               planilha = 3)
  
  # transpoe a tabela de colunas para linhas
  aux=tabnet[,c(1,2)]
  colnames(aux)=c("no_procedimento","qt_aprovada_tabnet")
  aux$nu_competencia=colnames(tabnet)[2]
  
  for (cp in colnames(tabnet)[4:ncol(tabnet)-1]) {
    aux2=tabnet[,c("procedimento",cp)]
    colnames(aux2)=c("no_procedimento","qt_aprovada_tabnet")
    aux2$nu_competencia=cp
    aux=rbind(
      aux,
      aux2
    )
  }
  
  aux$nu_competencia=as.numeric(substr(str_replace(aux$nu_competencia,'_',''),1,6))
  aux$co_procedimento=as.numeric(substr(aux$no_procedimento,1,10))
  
  #pg_persiste(listaftp,"public","tm_tabnet",TRUE,FALSE)
  pg_persiste(aux,"bd_medicamento","tf_tabnet_procedimento",TRUE,FALSE)
  
  pg_roda_query("CREATE INDEX tf_tabnet_procedimento_nu_competencia_idx ON bd_medicamento.tf_tabnet_procedimento (nu_competencia);
CREATE INDEX tf_tabnet_procedimento_co_procedimento_idx ON bd_medicamento.tf_tabnet_procedimento (co_procedimento);
")
  
  # atualiza quantidade aprovada do tabnet  
  pg_roda_query("   update bd_medicamento.tf_coleta_medicamento A
                    set qt_aprovada_tabnet = B.qt_aprovada_tabnet::int 
                   from public.tf_tabnet B
                  where A.nu_competencia = B.nu_competencia::int
                    and A.sg_uf = B.sg_uf")
  
  # atualiza indice de discrepancia em relacao ao tabnet  
  pg_roda_query("update bd_medicamento.tf_coleta_medicamento
set vl_discrepancia_tabnet = case when qt_aprovada_medicamento > 0 and qt_aprovada_tabnet > 0 
            then ROUND(ABS(qt_aprovada_tabnet - qt_aprovada_medicamento)::decimal / (qt_aprovada_tabnet + qt_aprovada_medicamento)*100)
            when qt_aprovada_medicamento is null and qt_aprovada_tabnet = 0 then 0
            else 100
            end 
")
}


# faz limpeza em todas as tabelas listadas

pg_set_vacuum_full = function(tabelas){
  for (tabela in tabelas) {
    print(tabela)
    query=paste0("vacuum full ", tabela)
    pg_roda_query(query)
  }
}
# para rodar o vacuum nas tabelas de medicamento: 
# pg_set_vacuum_full(pg_get_lista_tabela_medicamento())


# converte CNS em caracteres numericos
set_cns = function(cns){
  x=gsubfn(
    ".", 
    list(
      "{" = "0", "}" = "9", "~" = "8", 
      "\177" = "7", "Ç" = "6", "ä" = "5", 
      "ü" = "4", "é" = "3", "|" = "2", "â" = "1"
    ), 
    iconv(cns, "CP861", "UTF-8")
  )
}


get_estrutura = function(fdbf){
  
  # estrutura do dbf
  str=system(paste("dbview -e -o ", fdbf," | awk -F'\t' '{ gsub(/[ \t]+$/,\"\",$1);gsub(\" \",\"_\",$1); print tolower($1)\",\"$2\",\"$3}' | sed 1d | sed 's/ //g' | nl | awk '{print $1\",\"$2}' | sed ':a;N;$!ba;s/\\n/,/g'"), intern = TRUE)
  str=as.data.frame(matrix(as.vector(strsplit(str, ",")[[1]]),ncol=4, byrow=TRUE))
  
  return(str)
  
}

# transforma o DBC e faz a carga no POSTGRESQL

pg_set_dbc_file = function(file,col,schema,tabela,exe,orverwrite,append,removedbc){
  # file="/media/ferre/ferre1tb/Downloads/dbc/PARS2011.dbc"
  
  fdbc=tail(str_split(file,"/")[[1]],1)
  dbc=tools::file_path_sans_ext(file)
  if (!file.exists(file)) {
    fdbc=file
    # file=paste0("/tmp/",fdbc)
    if (!file.exists(file)) {
      print(paste("baixando...",file))
      download.file(
        paste0(url,fdbc),
        destfile = file
      )      
    }
  }
  setwd(dirname(file))
  
  if (file.exists(file)) {
    # dbc para dbf
    system(paste("wine", exe, file))
    fdbf=system(paste0("ls ",dirname(file), " | grep -i ", tools::file_path_sans_ext(fdbc) ," | grep -i dbf | head -1"), intern = TRUE)
    str=get_estrutura(fdbf)
    
    # obtem as colunas de interesse 
    cols=paste(str[str$V2 %in% tolower(unlist(col)),"V1"], collapse='","$')
    system(paste0("echo '",paste(str$V2[str$V2 %in% tolower(col)], collapse = ","), "'> /tmp/tmp.csv"))
    system(paste("dbview -b -d\"^\" -t ", fdbf, " | iconv -f \"CP861\" -t \"UTF-8\" | sed 's/,//g' | awk -F'^' '{print $",cols,"}' | grep ,06 | sed 's/{/0/g' | sed 's/}/9/g' | sed 's/~/8/g' | sed 's/ /7/g' | sed 's/Ç/6/g' | sed 's/ä/5/g' | sed 's/ü/4/g' | sed 's/é/3/g' | sed 's/|/2/g' | sed 's/â/1/g' | sed 's/[^A-Z0-9,]/ /g'  | sed 's/ /4/g' | sed 's/,0000,/,,/g' | sed 's/,0000000000000,/,,/g' | sort -u >> /tmp/tmp.csv"))
    
    # persiste tabela
    pg_persiste(read.csv(file="/tmp/tmp.csv"),schema,tabela,orverwrite,append)
    # system(paste0("PGPASSWORD=",password," psql -U ",user," -h ",host," -d ",dbname," -p ",port," -c 'COPY ", schema,'.',tabela," FROM STDIN csv HEADER' < /tmp/tmp.csv"))
    
    if (removedbc) {
      file.remove(file)
    }
    file.remove(fdbf)
  }
}

pg_get_set_dbc = function(fdbc,url,schema,tabela,overwrite,append,remove){
  file=paste0("/tmp/",fdbc)
  if (!file.exists(file)) {
    print(paste("baixando...",file))
    download.file(
      paste0(url,fdbc),
      destfile = file
    )
  }
  
  pg_persiste(
    read.dbc(file), 
    schema,tabela,overwrite,append
  )
  
  if (file.exists(file) & remove) {
    # deleta arquivo se existir
    file.remove(file)
  }
  
}


pg_get_set_dbc_cns = function(fdbc,url,cns,schema,tabela,overwrite,orverwrite,append){
  file=paste0("/tmp/",fdbc)
  download.file(
    paste0(url,fdbc),
    destfile = file
  )
  
  x=read.dbc(file)[,c("AP_CODUNI","AP_AUTORIZ","AP_CNSPCN")]
  
  x$AP_CNSPCN=set_cns(x$AP_CNSPCN)
    
  pg_persiste(
    x, 
    schema,tabela,overwrite,append
  )
  
  if (file.exists(file)) {
    # deleta arquivo se existir
    file.remove(file)
  }
  
}



# persiste dado registro listado em bd_medicamento.tf_coleta_medicamento
pg_set_medicamento = function(tabela){
  # FTP do datasus
  url="ftp://ftp.datasus.gov.br/dissemin/publicos/SIASUS/200801_/Dados/"
  
  # lista de parametros para a coleta e carga
  tf_coleta_medicamento=pg_roda_query(
    paste0("SELECT * FROM bd_medicamento.tf_coleta_medicamento WHERE no_tabela='", tabela,"'")
  )

  
  # persiste arquivos PA, concatenando quando ha mais de um  
  dbc_pa=strsplit(tf_coleta_medicamento$no_dbc_pa, " ")[[1]]
  col=tolower(c("PA_CODUNI","PA_AUTORIZ","PA_PROC_ID","PA_CIDPRI","PA_QTDAPR","PA_UFMUN","PA_MUNPCN","PA_IDADE","PA_SEXO","PA_CIDSEC"))
  for (i in 1:length(dbc_pa)) {
    # pg_get_set_dbc(dbc_pa[i],url,"public","tmp_pa",i==1,i>1)
    pg_set_dbc_file(paste0(dirdbc,dbc_pa[i]),col,"public","tmp_pa",exe,i==1,i>1,TRUE)
  }
  
  pg_roda_query("delete from tmp_pa where substr(pa_proc_id::text,1,1)<>'6' or pa_qtdapr = 0 or pa_qtdapr is null; 
 alter table tmp_pa add pa_cnspcn int8 default null;")
  
  pg_roda_query(paste0(
    "drop table if exists 
    ", tf_coleta_medicamento$no_schema,".", tf_coleta_medicamento$no_tabela,
    ";create table ", tf_coleta_medicamento$no_schema,".", tf_coleta_medicamento$no_tabela,
    " () inherits (bd_medicamento.tf_dispensacao)",
    ";insert into ", tf_coleta_medicamento$no_schema,".", tf_coleta_medicamento$no_tabela," 
    (co_procedimento, co_cidpri, nu_usuariosus, nu_idade, sg_sexo, qt_aprovada, 
    co_cnes, co_municipio_ibge, co_municipio_ibge_residencia, co_cidsec, nu_apac) 
    select  pa_proc_id, pa_cidpri, pa_cnspcn, pa_idade, pa_sexo, pa_qtdapr, pa_coduni, pa_ufmun, pa_munpcn, pa_cidsec, pa_autoriz 
      from tmp_pa order by 1,2,3; drop table if exists tmp_pa,tmp_am;"
  ))
  
  pg_roda_query(paste0("UPDATE ", tf_coleta_medicamento$no_schema,".", tf_coleta_medicamento$no_tabela," SET nu_competencia = ", tf_coleta_medicamento$nu_competencia, ", sg_uf = '", tf_coleta_medicamento$sg_uf,"'"))

  if (!is.na(tf_coleta_medicamento$no_dbc_am)) {
    # persiste arquivos AM
    # pg_get_set_dbc(tf_coleta_medicamento$no_dbc_am,url,"public","tmp_am",TRUE,FALSE)
    col=tolower(c("AP_CODUNI","AP_AUTORIZ","AP_CNSPCN"))
    pg_set_dbc_file(paste0(dirdbc,tf_coleta_medicamento$no_dbc_am),col,"public","tmp_am",exe,TRUE,FALSE,TRUE)
    pg_roda_query("update ", tf_coleta_medicamento$no_schema,".", tf_coleta_medicamento$no_tabela," set nu_usuariosus = tmp_am.ap_cnspcn from tmp_am where pa_autoriz::text = nu_apac and co_cnes = ap_coduni::bigint;")
  }
  
pg_roda_query(paste0(
  "update bd_medicamento.tf_coleta_medicamento A
set dt_carga_sabeis = current_date,
    qt_registros_medicamento = B.qt_registros_medicamento,
    qt_usuariosus_medicamento = B.qt_usuariosus_medicamento,
    qt_aprovada_medicamento = B.qt_aprovada_medicamento,
    vl_discrepancia_tabnet = case when B.qt_aprovada_medicamento > 0 and qt_aprovada_tabnet > 0 
            then ROUND(ABS(qt_aprovada_tabnet - B.qt_aprovada_medicamento)::decimal / (qt_aprovada_tabnet + B.qt_aprovada_medicamento)*100)
            when B.qt_aprovada_medicamento is null and qt_aprovada_tabnet = 0 then 0
            else 100
            end 
from (
select 
count(*) qt_registros_medicamento, 
count(distinct nu_usuariosus) qt_usuariosus_medicamento, 
sum(qt_aprovada) qt_aprovada_medicamento 
from ",tf_coleta_medicamento$no_schema,".", tf_coleta_medicamento$no_tabela,"
      ) B      
  where A.no_tabela = '", tf_coleta_medicamento$no_tabela,"';
"
))
  

    
}

remove_dbc_discrepante <- function(dirdbc) {
  dbcs = unlist(strsplit(pg_roda_query(
    " select case when no_dbc_pa is null then '' else no_dbc_pa end  || ' ' || case when no_dbc_am is null then '' else no_dbc_am end as dbc
      from bd_medicamento.tf_coleta_medicamento 
     where (vl_discrepancia_tabnet > 5 
        or qt_registros_medicamento = 0
        or qt_registros_medicamento is null)
    order by nu_competencia desc, sg_uf"
  )$dbc, " "), recursive = TRUE)
  
  for (dbc in dbcs) {
    file=paste0(dirdbc,"/",dbc)
    print(file)
    if (file.exists(file)) {
      file.remove(file)
    }
     
  }
}


baixa_dbc_discrepante <- function(dirdbc,url) {
  dbcs = unlist(strsplit(pg_roda_query(
    " select case when no_dbc_pa is null then '' else no_dbc_pa end  || ' ' || case when no_dbc_am is null then '' else no_dbc_am end as dbc
      from bd_medicamento.tf_coleta_medicamento 
     where (vl_discrepancia_tabnet > 5 
        or qt_registros_medicamento = 0
        or qt_registros_medicamento is null)
    order by nu_competencia desc, sg_uf"
  )$dbc, " "), recursive = TRUE)
  
  for (dbc in dbcs) {
    file=paste0(dirdbc,"/",dbc)
    print(file)
    if (file.exists(file)) {
      file.remove(file)
    } 
    
    download.file(
      paste0(url,"/",dbc),
      destfile = file
    )
  }
}


baixa_dbc_discrepante_bash <- function(dirdbc) {
  setwd(dirdbc)
  system("wget --ignore-case --no-clobber ftp://ftp.datasus.gov.br/dissemin/publicos/SIASUS/200801_/Dados/PA*")
  system("wget --ignore-case --no-clobber ftp://ftp.datasus.gov.br/dissemin/publicos/SIASUS/200801_/Dados/AM*")
}


pg_set_medicamentos <- function() {
  tabelas = pg_roda_query(
    "select no_tabela 
      from bd_medicamento.tf_coleta_medicamento 
     where (vl_discrepancia_tabnet > 5 
        or qt_registros_medicamento = 0
        or qt_registros_medicamento is null)
    order by nu_competencia desc, sg_uf"
  )$no_tabela

  # and qt_aprovada_tabnet > 0
  setwd(dirdbc)  
  for (tabela in tabelas) {
    print(tabela)
    try(pg_set_medicamento(tabela))
  }
  
}

pg_obtem_procedimento_por_sigla <- function(sigla) {
  ds=pg_roda_query(paste0("select no_procedimento, co_procedimento from bd_medicamento.td_medicamento where sg_procedimento = '",sigla,"'"))
  
  ds$no_procedimento=tolower(ds$no_procedimento)
  ds$no_procedimento=str_replace_all(ds$no_procedimento,"ml","mL")
  ds$no_procedimento=str_replace_all(ds$no_procedimento," ui "," UI ")
  
  return(ds)
}

pg_preco_medicamento <- function() {
  url="https://docs.google.com/spreadsheets/d/1bD4c8bs3MLwKSGWzCf_lay2q9kz9KNr-lfP6Ivqdg0A/edit?usp=sharing"
  ds=as.data.frame(gsheet2tbl(url, sheetid = "valor_medicamento"))
  pg_persiste(ds,"bd_medicamento", "tm_medicamento_preco", TRUE,FALSE)
  query=paste0("drop table if exists bd_medicamento.tf_medicamento_preco;
  create table bd_medicamento.tf_medicamento_preco AS 
  select A.sg_procedimento, A.dt_compra as dt_inicio,
  case when B.dt_compra is null then A.dt_compra + 400 else B.dt_compra-1 
       end as dt_fim, round(A.vl_unitario_centavos::decimal/100,2) as vl_unitario,
       A.vl_unitario_centavos from (select DENSE_RANK () OVER (partition by sg_procedimento ORDER BY dt_compra::date) co_seq_abrev_data ,* from (select distinct sg_procedimento, dt_compra::date, vl_unitario_centavos from bd_medicamento.tm_medicamento_preco ) x order by sg_procedimento ,  dt_compra::date ) A left join ( select DENSE_RANK () OVER (partition by sg_procedimento ORDER BY dt_compra::date) co_seq_abrev_data,* from (select distinct sg_procedimento, dt_compra::date, vl_unitario_centavos from bd_medicamento.tm_medicamento_preco ) x order by sg_procedimento ,  dt_compra::date ) B on A.sg_procedimento=B.sg_procedimento and A.co_seq_abrev_data=B.co_seq_abrev_data-1")
pg_roda_query(query)

# try(pg_roda_query("alter table bd_medicamento.tf_procedimento_mes add vl_total decimal(21,2);"))

query=paste0("update bd_medicamento.tf_procedimento_mes A
   set vl_total = qt_aprovada * vl_unitario
  from bd_medicamento.tf_medicamento_preco B
  where A.sg_procedimento = B.sg_procedimento
    and to_date(nu_competencia::text || '15', 'yyyymmdd') 
        between dt_inicio and dt_fim;")
pg_roda_query(query)

}


# resumo da ETL
resumo=pg_roda_query(
  "select sum(case when vl_discrepancia_tabnet > 1 then 1 else 0  end) arquivos_discrepantes, 
   string_agg(distinct case when vl_discrepancia_tabnet > 1 then no_dbc_pa else null end, ' ') as dbc,
          count(*) arquivos,
       sum(case when vl_discrepancia_tabnet > 1 then qt_registros_medicamento else 0 end) as qt_registros_medicamento_discrepante,
       sum(qt_registros_medicamento) as qt_registros_medicamento,
       sum(qt_aprovada_tabnet) qt_aprovada_tabnet,
       sum(qt_aprovada_medicamento) qt_aprovada_medicamento,
       round(sum(qt_aprovada_tabnet)::decimal/sum(qt_aprovada_medicamento)*100,1) as registros_acurados
  from bd_medicamento.tf_coleta_medicamento  "
)

resumo[3:7]=formata(round(as.numeric(resumo[3:7])))
resumo[8]=formata(100-as.numeric(resumo[8]))

4.2 Funções de visualização de dados

library(ggplot2)
library(grid)
library(pyramid)
# library(sf)

library(forecast)
library(tseries)

plot_difusao <- function(dataframe, titulo, tipo,rotulo_x, rotulo_y) {
  # dataframe: atributo | tempo | n | p |rotulo |  
  # plot_difusao(dataframe[[2]],"teste","empilhada")
  # dataframe: tempo | categoria | valor | percentual
  # tempo = colnames(dataframe)[1]
  # categoria = colnames(dataframe)[2]
  # percentual = colnames(dataframe)[4]
  
  # dataframe$ano = as.factor(dataframe$ano)
  # dataframe$rotulo = format(dataframe$rotulo, big.mark = ".", decimal.mark = ",")
  
  # eixo_x=sort(levels(as.factor(dataframe[,2])))
  # eixo_x[!1:length(eixo_x) %in% seq(1, length(eixo_x),by = round(length(eixo_x)/12))]=""
  
  # seq(as.Date("2001-01-01"), by = "month", along = foo)
  # obtem escala de milhar, milhao, bilhao, etc
  escala=10^max(seq(3,15, by = 3)[mean(log10(dataframe$n))>seq(3,15, by = 3)])
  if (!is.na(escala) & !is.infinite(escala) & escala>0) {
    dataframe[,3]=dataframe[,3]/escala
    rotulo_y=paste0(rotulo_y, " (×", formata(escala) ,")")
  }
  
  
  if (tipo == 'empilhada') {
    g =ggplot(
      dataframe,
      aes(
        fill = atributo,
        y = p,
        x = ano,
        label = rotulo
      )
    ) +
      geom_bar(stat = "identity") +
      xlab('ano') +
      ylab('usuários (%)') +
      geom_text(size = 4, position = position_stack(vjust = 0.5)) +
      coord_flip() +
      scale_fill_brewer(palette = "Pastel1") +
      theme(
        legend.position = "bottom",
        legend.text = element_text(size = rel(1.3)),
        axis.title.x = element_text(size = rel(1.3)),
        axis.title.y = element_text(size = rel(1.3)),
        axis.text.x = element_text(size = rel(1.3)),
        axis.text.y = element_text(size = rel(1.3))
      )
  } 
  
  if (tipo == 'barras verticais') {
    g = ggplot(dataframe, aes(fill=atributo, y=n/100000, x=ano)) + 
      geom_bar(position="dodge", stat="identity") +
      scale_fill_brewer(palette = "Set2")+
      theme(
        legend.position = "bottom",
        legend.text = element_text(size = rel(1.3)),
        axis.title.x = element_text(size = rel(1.3)),
        axis.title.y = element_text(size = rel(1.3)),
        axis.text.x = element_text(size = rel(1.3)),
        axis.text.y = element_text(size = rel(1.3))
      )+
      xlab('ano') +
      ylab('usuários por 100 mil hab.') 
  }
  
  if (tipo == 'série temporal 1') {

    g = ggplot(dataframe, aes(x=ano, y=n, group=atributo, color=atributo)) +
      geom_line() +
      scale_fill_brewer(palette = "Set2")+
      labs(title = titulo)+
      # scale_x_continuous(breaks = eixo_x) +
      # scale_x_datetime(labels = date_format("%Y-%m"), breaks = date_breaks("months")) + 
      xlab('') +
      ylab(rotulo_y) + 
      scale_y_continuous(labels=function(x) formata(x)) +
      theme(
        legend.position = "none",
        legend.text = element_text(size = rel(1.0)),
        axis.title.x = element_text(size = rel(1.0)),
        axis.title.y = element_text(size = rel(1.0)),
        axis.text.x = element_text(size = rel(1.0), angle = 45),
        axis.text.y = element_text(size = rel(1.3))
        
      )
   
    
     
  }
  
  if (tipo == 'série temporal 2'){
    
    p = ggplot(dataframe) + 
      geom_line(aes(x = ano, y = n, group = atributo, colour = atributo)) + 
      geom_text(data = subset(dataframe, ano == input$painel_situacao_clinica_inAno[2] ), aes(label = atributo, colour = atributo, x = Inf, y = n), hjust = 1) +
      scale_colour_discrete(guide = 'none')  +    
      # xlab('ano') +
      # ylab('usuários') +
      theme(plot.margin = unit(c(1,3,1,1), "lines"),
            axis.title.x = element_text(size = rel(1.3)),
            axis.title.y = element_text(size = rel(1.3)),
            axis.text.x = element_text(size = rel(1.3)),
            axis.text.y = element_text(size = rel(1.3))
            ,legend.position = "none"
      ) 
    
    # Code to turn off clipping
    gt <- ggplotGrob(p)
    gt$layout$clip[gt$layout$name == "panel"] <- "off"
    g = grid.draw(gt)
  }
  
  if (tipo == 'série temporal 3') {
    
    tsdata=dataframe$n
    names(tsdata)=dataframe$ano
    
    tsdata= forecast(auto.arima(
      tsdata,
      allowmean = TRUE
    ), h = 60)
    
   g = autoplot(tsdata) +
      geom_line() +
      scale_fill_brewer(palette = "Set2")+
      labs(title = titulo)+
      xlab('') +
      ylab(rotulo_y) + 
      scale_y_continuous(labels=function(x) formata(x)) +
      theme(
        legend.position = "none",
        legend.text = element_text(size = rel(1.0)),
        axis.title.x = element_text(size = rel(1.0)),
        axis.title.y = element_text(size = rel(1.0)),
        axis.text.x = element_text(size = rel(1.0), angle = 45),
        axis.text.y = element_text(size = rel(1.3))
      )
   
  }
  
  return(g)
}

plot_arima <- function(dataframe,titulo, rotulo_x, rotulo_y) {
    tsdata=dataframe$n
    names(tsdata)=dataframe$ano
  
  plot(
  forecast(auto.arima(
    tsdata,
    allowmean = TRUE
  ), h = 60),
   xlab = rotulo_x,
  ylab = rotulo_y,
  main = titulo
)
}

4.3 Funções bash para extração, transformação e carga (ETL)


  echo "DROP TABLE IF EXISTS bd_medicamento.tf_procedimento_uf_mes;
CREATE TABLE bd_medicamento.tf_procedimento_uf_mes (
    nu_competencia int4 NULL,
    sg_uf varchar(2) NULL,
    co_procedimento int8 NULL,
    qt_registros int8 NULL,
    qt_usuariosus int8 NULL,
    qt_cnes int8 NULL,
    qt_municipio_ibge_residencia int8 NULL,
    qt_aprovada int8 NULL,
    vl_total decimal(21,2) NULL
);" | PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt


query="select no_schema || '.' || no_tabela as tabela
  from bd_medicamento.tf_coleta_medicamento
  where no_schema || '.' || no_tabela in (
  SELECT table_schema || '.' || table_name as tabela
           FROM information_schema.tables
          WHERE table_schema like 'bd_medicamento_%') order by 1"

for tabela in $(echo $query | PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt --csv -t);do

  cp=$(echo $tabela | awk -F'.' '{print substr($2,5,6)}')
  uf=$(echo $tabela | awk -F'.' '{print toupper(substr($2,3,2))}')

   echo $tabela

   echo "insert into bd_medicamento.tf_procedimento_uf_mes
select $cp nu_competencia
      , '$uf' as sg_uf
       ,co_procedimento
       ,count(*) qt_registros
       ,count(distinct nu_usuariosus) qt_usuariosus
       ,count(distinct co_cnes) qt_cnes
       ,count(distinct co_municipio_ibge_residencia) as qt_municipio_ibge_residencia
       ,sum(qt_aprovada) qt_aprovada
  from $tabela A
  where qt_aprovada > 0
  group by 1,2,3
  order by 3
" | PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt -q

done


  echo "alter TABLE bd_medicamento.tf_procedimento_uf_mes
add sg_procedimento varchar(25) default null
-- ,add vl_total decimal(21,2) default null
 " | PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt

echo "CREATE INDEX tf_procedimento_uf_mes_co_procedimento_idx ON bd_medicamento.tf_procedimento_uf_mes (co_procedimento);
CREATE INDEX tf_procedimento_uf_mes_sg_procedimento_idx ON bd_medicamento.tf_procedimento_uf_mes (sg_procedimento);
" | PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt

  echo "update bd_medicamento.tf_procedimento_uf_mes A
  set sg_procedimento = M.sg_procedimento
from bd_medicamento.td_medicamento M
    where A.co_procedimento::Text::tsquery @@ M.co_procedimento::tsvector
 ;" | PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt

echo "CREATE INDEX tf_procedimento_mes_co_procedimento_idx ON bd_medicamento.tf_procedimento_mes (co_procedimento);
CREATE INDEX tf_procedimento_mes_sg_procedimento_idx ON bd_medicamento.tf_procedimento_mes (sg_procedimento);
" | PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt

  echo "update bd_medicamento.tf_procedimento_uf_mes A
  set vl_total = round(qt_aprovada * vl_unitario,2)
from bd_medicamento.tf_medicamento_preco P
    where A.sg_procedimento = P.sg_procedimento
   and to_date(A.nu_competencia::text || '15', 'yyyymmdd')
   between dt_inicio and dt_fim
 ;" | PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt

  echo "drop table if exists bd_medicamento.tf_procedimento_mes;
create table bd_medicamento.tf_procedimento_mes as
select A.nu_competencia
       ,A.co_procedimento
       ,sum(qt_registros) qt_registros
       ,sum(qt_usuariosus) qt_usuariosus
       ,sum(qt_cnes) qt_cnes
       ,sum(qt_municipio_ibge_residencia) as qt_municipio_ibge_residencia
       ,sum(qt_aprovada) as qt_aprovada
  from bd_medicamento.tf_procedimento_uf_mes A
  where qt_aprovada > 0
  group by 1,2
  order by 1,2" | PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt -q

  echo "GRANT ALL ON SCHEMA bd_medicamento TO conitec;
 GRANT SELECT ON ALL TABLES IN SCHEMA bd_medicamento TO conitec;" |
 PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt -q

  echo "alter TABLE bd_medicamento.tf_procedimento_mes
add qt_aprovada_tabnet int8 default 0,
add sg_procedimento varchar(25) default null,
add vl_total decimal(21,2) default null
 " | PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt

  echo "
  update bd_medicamento.tf_procedimento_mes A
     set qt_aprovada_tabnet = B.qt_aprovada_tabnet
  from bd_medicamento.tf_tabnet_procedimento B
  where A.co_procedimento = B.co_procedimento
  and A.nu_competencia = B.nu_competencia
  and B.no_procedimento <> 'TOTAL'
" | PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt

  echo "update bd_medicamento.tf_procedimento_mes A
  set sg_procedimento = M.sg_procedimento
from bd_medicamento.td_medicamento M
    where A.co_procedimento::Text::tsquery @@ M.co_procedimento::tsvector
 ;" | PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt

  echo "update bd_medicamento.tf_procedimento_mes A
  set vl_total = round(qt_aprovada * vl_unitario,2)
from bd_medicamento.tf_medicamento_preco P
    where A.sg_procedimento = P.sg_procedimento
   and to_date(A.nu_competencia::text || '15', 'yyyymmdd')
   between dt_inicio and dt_fim
 ;" | PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt
 
 
 echo "alter table bd_medicamento.tf_procedimento_uf_mes 
add vl_total_ipca decimal(21,2) default 0;
 
update bd_medicamento.tf_procedimento_uf_mes 
   set vl_total_ipca = vl_total;
  
update bd_medicamento.tf_procedimento_uf_mes A
   set vl_total_ipca = vl_total_ipca * vl_fator_correcao
  from bd_geral.td_ipca B
 where A.nu_competencia = B.nu_competencia;  
"| PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt
 
echo "alter table bd_medicamento.tf_procedimento_mes 
add vl_total_ipca decimal(21,2) default 0;
 
update bd_medicamento.tf_procedimento_mes 
   set vl_total_ipca = vl_total;
  
update bd_medicamento.tf_procedimento_mes A
   set vl_total_ipca = vl_total_ipca * vl_fator_correcao
  from bd_geral.td_ipca B
 where A.nu_competencia = B.nu_competencia;  
" | PGPASSWORD=$pw psql -U $us -h $hs -d $dbase -p $pt

4.4 Funções para análise descritiva e preditiva

library(knitr)
library(lubridate)

# sumario dos dados abertos do DATASUS
query=paste0("select A.sg_procedimento
        ,nu_competencia
        ,sum(qt_usuariosus) qt_usuariosus
        ,sum(qt_aprovada) qt_aprovada
        ,sum(vl_total_ipca) vl_total
   from bd_medicamento.tf_procedimento_mes A
   left join bd_medicamento.td_medicamento B
   on A.sg_procedimento = B.sg_procedimento
   where st_biologico = 'sim'
 group by 1,2
 order by 1,2")
  
ds_br=pg_roda_query(query)

ds_br$nu_competencia=as.Date(paste0(ds_br$nu_competencia,"01"),'%Y%m%d')

ds1=data.frame(
  ano=ds_br$nu_competencia
  ,atributo=ds_br$sg_procedimento
  ,n=ds_br$qt_usuariosus
)

ds2=data.frame(
  ano=ds_br$nu_competencia
  ,atributo=ds_br$sg_procedimento
  ,n=ds_br$qt_aprovada
)

ds3=data.frame(
  ano=ds_br$nu_competencia
  ,atributo=ds_br$sg_procedimento
  ,n=ds_br$vl_total
)

ds1$n=as.numeric(ds1$n)
ds2$n=as.numeric(ds2$n)
ds3$n=as.numeric(ds3$n)

media_movel <- function(vetor, n) {
  cx <- c(0,cumsum(vetor))
rsum <- (cx[(n+1):length(cx)] - cx[1:(length(cx) - n)]) / n
return(rsum)
}

minimiza_erro_arima <- function(ds_aux) {
    if (nrow(ds_aux) > 6) {
    ds_ts_otimo=expand.grid(
      seq(1,round(nrow(ds_aux)/3), by = 6) , 
      seq(round(3*nrow(ds_aux)/5),nrow(ds_aux), by = 6)
    )
    colnames(ds_ts_otimo)=c("j","k")
    ds_ts_otimo$ts_max=0
    # ds_ts_otimo = data.frame(
    #   j = seq(1,nrow(ds_aux)-6, by = 6)
    #   ,ts_max = seq(1,nrow(ds_aux)-6, by = 6)
    # )
    for (l in 1:nrow(ds_ts_otimo)) {
      j=ds_ts_otimo[l,"j"]
      k=ds_ts_otimo[l,"k"]
      ds_ts=ds_aux$n[j:k]; names(ds_ts)=ds_aux$ano[j:k]
      
      # if (length(ds_ts)>12) {
      #   mm=media_movel(ds_ts$n, 6)
      #   ds_ts[5:length(mm),"n"]=mm  
      # }
      
      ds_ts=round(as.data.frame(forecast(auto.arima(ds_ts, allowmean = TRUE), h = 60)))
      ds_ts_otimo[l,"ts_max"]=max((ds_ts$`Hi 80`-ds_ts$`Lo 80`))
    }
    j=ds_ts_otimo$j[ds_ts_otimo$ts_max==min(ds_ts_otimo$ts_max)]
    k=ds_ts_otimo$k[ds_ts_otimo$ts_max==min(ds_ts_otimo$ts_max)]
    ds_ts=ds_aux$n[j:k]; names(ds_ts)=ds_aux$ano[j:k]
    ds_ts=round(as.data.frame(forecast(auto.arima(ds_ts, allowmean = TRUE), h = 60)))
    ds_ts$competencia = format(max(ds_aux$ano) %m+% months(as.numeric(rownames(ds_ts))),'%B/%Y') 
    ds_ts$ano= rep(seq(1:5), each = 12)
    ds_ts_mes=ds_ts
    # ds_ts_mes=ds_ts_mes[seq(10,nrow(ds_ts), by = 12),]
    ds_ts$competencia=NULL
    ds_ts=as.data.frame(ds_ts[ds_ts$`Point Forecast`>0,])
    ds_ts = ds_ts %>% 
    group_by(ano) %>% 
    summarise_each(list(sum))
    ds_ts_out=as.data.frame(ds_ts[ds_ts$`Point Forecast`>0,])
    ds_ts_out[,2:6]=formata(ds_ts_out[,2:6])
  } else if (nrow(ds_aux) > 2) {
    j=1
    ds_ts=ds_aux$n[j:nrow(ds_aux)]; names(ds_ts)=ds_aux$ano[j:nrow(ds_aux)]
    ds_ts=round(as.data.frame(forecast(auto.arima(ds_ts, allowmean = TRUE), h = 60)))
    ds_ts$competencia = format(max(ds_aux$ano) %m+% months(as.numeric(rownames(ds_ts))),'%B/%Y') 
    ds_ts_out=ds_ts
    ds_ts_mes=ds_ts
  } else {ds_ts = NULL; j=1;ds_ts_out=ds_ts;ds_ts_mes=ds_ts}
  
  ds_aux=ds_aux[j:nrow(ds_aux),]
  
  return(list(
    ds_ts = ds_ts
    ,ds_aux = ds_aux
    ,ds_ts_out = ds_ts_out
    ,ds_ts_mes = ds_ts_mes
  ))
}


i=0
for (atributo in levels(as.factor(ds1$atributo))) {
  
  procedimento=pg_obtem_procedimento_por_sigla(atributo)

  # recorte temporal que minimiza o erro
  ds1_aux=ds1[ds1$atributo==atributo & !is.na(ds1$n),]
  # remove periodo apos jan/2020 se houver mais que doze observacoes
  if (sum(ds1_aux$ano<as.Date('2020-01-01')) > 12) {
    ds1_ts=minimiza_erro_arima(ds1_aux[ds1_aux$ano<as.Date('2020-01-01'),])  
  } else {ds1_ts=minimiza_erro_arima(ds1_aux)}
  
  
  ds2_aux=ds2[ds2$atributo==atributo & !is.na(ds2$n),]
  if (sum(ds2_aux$ano<as.Date('2020-01-01')) > 12) {
    ds2_ts=minimiza_erro_arima(ds2_aux[ds2_aux$ano<as.Date('2020-01-01'),])  
  } else {ds2_ts=minimiza_erro_arima(ds2_aux)}
  
  ds3_aux=ds3[ds3$atributo==atributo & !is.na(ds3$n),]  
  if (sum(ds3_aux$ano<as.Date('2020-01-01')) > 12) {
    ds3_ts=minimiza_erro_arima(ds3_aux[ds3_aux$ano<as.Date('2020-01-01'),])  
  } else {ds3_ts=minimiza_erro_arima(ds3_aux)}
  
  i=i+1
  
  resumo=formata(round(summary(ds2_aux$n/ds1_aux$n),1))
  aux=paste0(
    "foi observado o período de "
    ,format(min(ds1_aux$ano), format = "%B/%Y"), " a "
    ,format(max(ds1_aux$ano), format = "%B/%Y"),". "
    ,"O maior número de usuários foi "
    , formata(ds1_aux[ds1_aux$n==max(ds1_aux$n),]$n)
    , " em "
    , format(ds1_aux[ds1_aux$n==max(ds1_aux$n),]$ano, format = "%B/%Y")
    ,". "
    ,"A maior quantidade aprovada foi "
    , formata(ds2_aux[ds2_aux$n==max(ds2_aux$n),]$n)
    , " em "
    , format(ds2_aux[ds2_aux$n==max(ds2_aux$n),]$ano, format = "%B/%Y")
    ,". "
    ," A mediana (e quartis) de quantidade aprovada por usuário foi ",
    resumo[3], " (",resumo[2],"-",resumo[5],") ", 
    "variando de ", resumo[1]," a ", resumo[6]," unidades por usuário. "
  )
  
  if (nrow(ds3_aux>0)) {
    paste0(
      aux
      ,"O maior valor em reais foi "
    , formata(ds3_aux[ds3_aux$n==max(ds3_aux$n),]$n)
    , " em "
    , format(ds3_aux[ds3_aux$n==max(ds3_aux$n),]$ano, format = "%B/%Y")
    ,". "
    )
  }
  
  cat(paste0(
    "<h3>", firstup(procedimento$no_procedimento), " - "
    ,atributo,"","</h3><p>A partir do código SIGTAP ("
    ,procedimento$co_procedimento,") ",aux,".</p>"
  ))
    
  if (nrow(ds1_aux>0)) {
    print(plot_difusao(ds1_aux, paste0(atributo, " - usuários SUS"), "série temporal 1","","usuários do SUS"))
    print(plot_difusao(ds1_ts$ds_aux, paste0("Previsão ",atributo, " - usuários SUS"), "série temporal 3","","usuários do SUS"))
    # ds1_ts$ds_ts[,1:5]=formata(as.data.frame(ds1_ts$ds_ts)[,2:6])
    print(
      kbl(ds1_ts$ds_ts_mes, 
      caption = paste0("Previsão ",atributo, " - usuários SUS")) %>%
      kable_classic() 
    )
    
      cat(paste0(
    "<p>É previsto, no total de cinco anos, o atendimento de "
    ,formata(sum(ds1_ts$ds_ts$`Point Forecast`))," usuários/mês ("
    ,formata(sum(ds1_ts$ds_ts$`Lo 80`)),"-"
    ,formata(sum(ds1_ts$ds_ts$`Hi 80`)),").</p>"
  ))
    
  }
  
  if (nrow(ds2_aux>0)) {
    print(plot_difusao(ds2_aux, paste0(atributo, " - unidades aprovadas"), "série temporal 1","","unidades aprovadas"))
    print(plot_difusao(ds2_ts$ds_aux, paste0("Previsão ", atributo, " - unidades aprovadas"), "série temporal 3","","unidades aprovadas"))
    # ds2_ts$ds_ts[,1:5]=formata(ds2_ts$ds_ts[,1:5])
    print(
      kbl(ds2_ts$ds_ts_out, 
      caption = paste0("Previsão ",atributo, " -unidades aprovadas")) %>%
      kable_classic() 
    )
    
    cat(paste0(
    "<p>É previsto, no total de cinco anos, a quantidade aprovada de "
    ,formata(sum(ds2_ts$ds_ts$`Point Forecast`))," ("
    ,formata(sum(ds2_ts$ds_ts$`Lo 80`)),"-"
    ,formata(sum(ds2_ts$ds_ts$`Hi 80`)),").</p>"
  ))
    
  }
  
  
  if (nrow(ds3_aux>0)) {
    
    cat(paste0(
    "<h4>Previsão de gasto ao mes - ", firstup(procedimento$no_procedimento), " - "
    ,atributo,"","</h4>"
  ))
    
    print(plot_difusao(ds3_aux, paste0(atributo, " - valor total"), "série temporal 1","","R$"))
    print(plot_difusao(ds3_ts$ds_aux, paste0("Previsão ",atributo, " - valor total"), "série temporal 3","","R$"))
    # ds3_ts$ds_ts[,1:5]=formata(ds3_ts$ds_ts[,1:5])
    print(
      kbl(ds3_ts$ds_ts_out, 
      caption = paste0("Previsão ",atributo, " - valor total")) %>%
      kable_classic() 
    )
    
    cat(paste0(
    "<p>Com o método arima, é previsto, no total de cinco anos, o valor de R$ "
    ,formata(sum(ds3_ts$ds_ts$`Point Forecast`))," ("
    ,formata(sum(ds3_ts$ds_ts$`Lo 80`)),"-"
    ,formata(sum(ds3_ts$ds_ts$`Hi 80`)),").</p>"
  ))
    
  }

    if (nrow(ds3_aux>0)) {
      ds4_aux=ds2_aux
      valor=tail(ds3_aux[ds3_aux$n>0,],1)
      ds4_valor=(valor$n/ds2_aux[ds2_aux$ano==valor$ano,]$n)
      ds4_aux$n=ds4_aux$n*ds4_valor
      ds4_ts=minimiza_erro_arima(ds4_aux)      
      print(plot_difusao(ds4_ts$ds_aux, paste0("Previsão ", atributo, " - valor total com base nas unidades aprovadas × R$ ",formata(round(ds4_valor,2))), "série temporal 3","","valor total (R$)"))
    # ds4_ts$ds_ts[,1:5]=formata(ds4_ts$ds_ts[,1:5])
    print(
      kbl(ds4_ts$ds_ts_out, 
      caption = paste0("Previsão ",atributo, " - valor total com base nas unidades aprovadas × R$ ",formata(round(ds4_valor,2)))) %>%
      kable_classic() 
    )
    
    cat(paste0(
    "<p>Com o método arima para quantidade aprovada e o último valor pago pela unidade farmacotécnica, é previsto, no total de cinco anos, o valor de R$ "
    ,formata(sum(ds4_ts$ds_ts$`Point Forecast`))," ("
    ,formata(sum(ds4_ts$ds_ts$`Lo 80`)),"-"
    ,formata(sum(ds4_ts$ds_ts$`Hi 80`)),").</p>"
  ))
    
  }

    
}

4.5 Função bash para cálculo do fotor do IPCA em relação ao último mês disponível

cmpn=$(lynx -dump http://api.sidra.ibge.gov.br/values/h/n/t/1737/p/last/n1/all/v/63 | grep '"D1C":' | awk -F'"' '{print $(NF-1)}')

# baixa o ipca
for cmp in $(seq $cmp0 $cmpn | egrep "01$|02$|03$|04$|05$|06$|07$|08$|09$|10$|11$|12$");do
  ipca=$(lynx -dump http://api.sidra.ibge.gov.br/values/h/n/t/1737/p/$cmp/n1/all/v/2266 | grep '"V":' | awk -F'"' '{print $(NF-1)}')
  echo "$cmp,$ipca" 
done | tac > ipca.tmp # cmp
   
# calcula o fator acumulado para cmpn+1
ipca=$(head -1 ipca.tmp | awk -F',' '{print $2}')
echo "$cmpn,$ipca,1" > ipca.csv # primeira linha cmp,ipca,acumulado,um_real   

for line in $(cat ipca.tmp | sed 1d ); do
  cmp=$(echo $line | awk -F',' '{print $1}')
  ipca2=$(echo $line | head -1  | awk -F',' '{print $2}')
  val=$(echo "scale=4; $ipca / $ipca2  " | bc)
echo "$cmp,$ipca2,$val" >> ipca.csv
done # linie