--- title: "Cálculo dos Activos em TARV" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{chamar-activos-e-recodificar} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ## Anexar pacotes Primeiro, anexaremos os pacotes requiridos para a chamada e manipulação dos dados de MozART 2.0. ```{r setup, eval = FALSE, warning = FALSE, message = FALSE} library(sonata) library(glamr) library(tidyverse) # Se preciso, instale o `glamr` com código abaixo # install.packages('glamr', repos = c('https://usaid-oha-si.r-universe.dev', 'https://cloud.r-project.org')) ``` ## Estabelecer conexão Como descrito no artigo [Uso Seguro de Credenciais MozART 2.0](https://usaid-mozambique.github.io/sonata/articles/definir-credenciais.html) é recomendado carregar no ambiente R as suas credenciais a partir do sistema operativo. Isto evita elas estarem no seu script e por sua vez a partilha não intencional desta informação sensível. O código abaixo mostra como carregar as credenciais do MozART 2.0 seguramente e estabelecer uma conexão com a base de dados. ```{r, eval = FALSE} # 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 uma série de 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 conjuntos de dados analíticos. O pacote `sonata` foi concebido para fornecer aos analistas um conjunto de funções fáceis de utilizar que reduzem a necessidade de escrever ou adaptar chamadas R e SQL. `calc_tx_active`, que calcula e extrai uma lista de pacientes activos em TARV, é um exemplo de uma função oferecido no `sonata`. Um caso de uso típico é demonstrado como parte deste artigo. `calc_tx_active` traz 5 argumentos. 2 destes 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 requerido, “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 calcular os activos em TARV. O terceiro argumento, “defaulter_tolerance”, dá a opção de definir um valor custimizado para o número de dias antes de um faltoso ser reclassificado como inactivo (ou "abandono"). O valor predefinido para este argumento é “28” de acordo com as diretrizes da OMS. O quarto e o quinto argumentos (“filter_by_location” e “location_uuid”) são argumentos que permitem que o query seja executado sobre dados de uma unidade sanitária individual em vez de todas as mais de 600 unidades sanitárias que contribuem com dados para o MozART 2.0. Na prática, estes argumentos são usados para testar código numa conexão activa, uma vez que os resultados são devolvidos mais rápido. 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”. Observe abaixo que o location_uuid está definido como “e5f01eee-2392-49b4-a5bf-5cf593fc8f21”, que é o identificador da CS Merripo. ```{r, eval = FALSE} # 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 Quando devolvido, pode inspecionar os resultados da sua consulta com função `view` do `tidyverse`. Observe que os valores retornados para várias colunas são codificados numericamente e não fornecem explicitamente ao analista informações suficientes para a interpretação. Podemos usar a função `recode_cols` com seus argumentos correspondentes para recodificar esses valores. O `recode_cols` utiliza as tabelas de pesquisa MozART 2.0 armazenadas internamente no `sonata` para mapear os valores colunares descodificados para um conjunto de variáveis definido pelo utilizador. No exemplo abaixo, chamamos `recode_cols` e o argumento columns_to_recode para descodificar os valores apresentados em 5 colunas no objecto df que geramos com `calc_tx_active`. Estas são: “mode_dispensation_id”, “regimen_id”, “location_uuid”, “age”, “form_id” e “gender”. O argumento columns_to_recode pode ser adaptado de acordo com as colunas presentes no objeto de dados de entrada. Por exemplo, se só estiverem presentes “idade” e “sexo”, o utilizador só forneceria estes dois valores no argumento. ```{r, eval = FALSE} df_recode <- df |> recode_cols( columns_to_recode = c("mode_dispensation_id", "regimen_id", "location_uuid", "age", "form_id", "gender") ) ``` Utilizando apenas algumas funções `sonata`, criámos um conjunto de dados que pode ser utilizado para responder à nossa questão analítica, seja ela qual for. Finalmente, lembre-se de nunca salvar conjuntos de dados de nível individual no seu disco local! Em vez disso, agrupe os valores por todas as caraterísticas de dados relevantes e guarde-os como um conjunto de dados agregado. Boa análise!