
Cálculo dos Activos em TARV
Source:vignettes/chamar-activos-e-recodificar.Rmd
chamar-activos-e-recodificar.Rmd
Anexar pacotes
Primeiro, anexaremos os pacotes requiridos para extrair e manipular dos dados de MozART 2.0.
Estabelecer conexão
Como descrito no artigo Uso de Credenciais MozART 2.0 é recomendado carregar no ambiente R as suas credenciais a partir do sistema operativo. Isto evita elas estarem no script e a partilha não intencional. O código abaixo mostra como carregar credenciais seguramente e estabelecer uma conexão com a base de dados.
# Definir valor do usuário
acct_dev <- "mysql-example-user"
# Carregar credenciais
acct_db <- get_account(name = acct_dev)
# Criar uma ligação MozART 2.0
con <- mysql_connection(db_name = acct_db$dbname,
db_user = acct_db$username,
db_pass = acct_db$password,
db_host = acct_db$host,
db_port = acct_db$port)
Chamar “Activos em TARV”
MozART 2.0 é composta por tabelas de dados ligadas entre si por
chaves variáveis. Esta organização de dados, embora óptima para a
eficiência do armazenamento, torna mais complexa a tarefa de criar
tabelas analíticas. sonata
foi concebido para fornecer
funções fáceis de utilizar que reduzem a necessidade de escrever código
complexo em R ou SQL. calc_tx_active
, que extrai uma lista
de clientes activos em TARV, é um exemplo deste tipo de função oferecido
no sonata
. Um caso de uso típico é demonstrado como parte
deste artigo.
calc_tx_active
traz 5 argumentos. 2 argumentos vêm sem
valores predefinidos e requerem definição pelo utilizador. 3 argumentos
têm valores pré-defindo que são modificáveis de acordo com as
necessidades da analista. O primeiro argumento, “con”, é a ligação ao
MozART 2.0 aberto no ambiente R (no exemplo abaixo também definido como
“con”). O segundo argumento obrigatório, “enddate”, exige o fecho do
período de avaliação, que será utilizado como referência para determinar
o estado dos clientes avaliados. O terceiro argumento,
“defaulter_tolerance”, posibilita a custumização do número de dias antes
de um faltoso ser reclassificado como inactivo (ou “abandono”).
O quarto e o quinto argumentos (“filter_by_location” e “location_uuid”) são argumentos que permitem que o query seja executado sobre uma unidade sanitária individual em vez de todas as mais de 600 unidades sanitárias contidas no MozART 2.0. Isso traz uma forma mais ágil de testar código numa conexão activa. Quando filter_by_location é definido como “TRUE”, o query será adequado para ser executada numa única base de dados definida pelo utilizador no argumento “location_uuid”.
# Definir location_uuid para a CS Merripo
location_meripo <- "e5f01eee-2392-49b4-a5bf-5cf593fc8f21"
# Chamar `calc_tx_active`
df <- calc_tx_active(
con = con,
enddate = '2024-09-20',
defaulter_tolerance = 28, # valor por defeito
filter_by_location = TRUE, # valor por defeito
location_uuid = location_meripo # valor por defeito
)
Recodificar variáveis
Inspecionando os variáveis contidos no objecto criado pela
calc_tx_activo
repara-se que varias colunas são codificados
numericamente e não fornecem informação suficiente para interpretar.
recode_cols
oferece uma forma simples de recodificar esses
valores usando as tabelas de referência armazenadas internamente no
sonata
. No exemplo abaixo, chamamos
recode_cols
e definimos o argumento cols
para
descodificar os valores apresentados em 5 colunas -
“mode_dispensation_id”, “regimen_id”, “location_uuid”, “age”, “form_id”
e “gender”. O argumento cols
pode ser adaptado de acordo
com as colunas presentes no objeto de dados.
df_recode <- df |>
recode_cols(cols = c("mode_dispensation_id",
"regimen_id",
"location_uuid",
"age",
"form_id",
"gender")
)
Utilizando poucas funções da sonata
, criámos um conjunto
de dados que pode ser utilizado para responder à nossa questão
analítica, seja ela qual for. Tente outras funções como
calc_tx_new
, calc_arv_pickups
, e
calc_consultas
usando a sua documentação
para entender a utilidade dos seus argumentos