3.9 Explore - O que - Troca de medicamentos - D

3.9.1 Conceituação

Troca de medicamentos relativo ao Protocolo Clínico e Diretrizes Terapêuticas (PCDT).

3.9.2 Interpretação

  • As setas indicam a direção da troca.
  • Os números indicam o logarítimo do número de usuários.
  • As siglas indicam os medicamentos.

3.9.3 Usos

  • Identificar o padrão de troca de medicamentos relativo ao número de usuários.

3.9.4 Limitações

  • São identificadas trocas de medicamentos, não se foi a terceira ou quarta opção terapêutica, por exemplo.

3.9.5 Fonte

3.9.6 Métodos de Cálculo

Não há cálculo, apenas a aplicação de filtros.

3.9.7 Categorias Sugeridas para Análise

  • Unidade geográfica: região ampliada de saúde e região de saúde.
  • Classificação Anatômico-químico-terapêutica (ATC)
  • Forma de Organização da SIGTAP - Sistema de Gerenciamento da Tabela de Procedimentos, Medicamentos e OPM do SUS.
  • Avaliar o perfil da geral do medicamento em outros PCDT.

3.9.8 Dados Estatísticos e Comentários

Visualizar no painel SABEIS > Explore.

3.9.9 Notas

Descrito conforme metodologia RIPSA. Vide a seção fonte.

3.9.10 Visualização

Fluxo.

3.9.11 Conjunto de dados e Código-fonte

Pré-requisitos

Baixe o arquivo db_sabeis.tf_troca.csv na pasta dataset.

Certifique-se de que os pacotes R abaixo estejam instalados.

library(tidyverse)
library(viridis)
library(patchwork)
library(circlize)

R script

tf_troca = read.csv(file = "db_sabeis.tf_troca.csv")

data_long = subset(tf_troca, co_pcdt == 8)
data_long$co_pcdt = NULL
data_long$sg_procedimentob2 = NULL
data_long$qt_cns_paciente = log(data_long$qt_cns_paciente)


circos.clear()
circos.par(
  start.degree = 90,
  gap.degree = 4,
  track.margin = c(-0.1, 0.1),
  points.overflow.warning = FALSE
)
par(mar = rep(0, 4))

# color palette
mycolor <- viridis(
  10,
  alpha = 1,
  begin = 0,
  end = 1,
  option = "D"
)
mycolor <- mycolor[sample(1:10)]

# Base plot
chordDiagram(
  x = data_long,
  #  grid.col = mycolor,
  transparency = 0.25,
  directional = 1,
  direction.type = c("arrows", "diffHeight"),
  diffHeight  = -0.04,
  annotationTrack = "grid",
  annotationTrackHeight = c(0.05, 0.1),
  link.arr.type = "big.arrow",
  link.sort = TRUE,
  link.largest.ontop = TRUE
)

# Add text and axis
circos.trackPlotRegion(
  track.index = 1,
  bg.border = NA,
  panel.fun = function(x, y) {
    xlim = get.cell.meta.data("xlim")
    sector.index = get.cell.meta.data("sector.index")
    
    # Add names to the sector.
    circos.text(
      x = mean(xlim),
      y = 3.2,
      labels = sector.index,
      facing = "bending",
      cex = 0.8
    )
    
    # Add graduation on axis
    circos.axis(
      h = "top",
      major.at = seq(
        from = 0,
        to = xlim[2],
        by = ifelse(
          test = xlim[2] > 10,
          yes = 2,
          no = 1
        )
      ),
      minor.ticks = 1,
      major.tick.percentage = 0.57,
      labels.niceFacing = FALSE
    )
  }
)