Apresentação
Pacote em R para a classificação de códigos da CID-10 (Classificação Internacional de Doenças, 10ª Revisão) segundo a Lista Brasileira de Internações por Condições Sensíveis à Atenção Primária (ICSAP). É particularmente voltado ao trabalho com as bases de dados do Sistema de Informações Hospitalares do SUS, o Sistema Único de Saúde brasileiro. Tais bases (BD-SIH/SUS) contêm os “arquivos da AIH” (RD??????.DBC), que podem ser expandidos para o formato DBF (RD??????.DBF), com as informações de cada hospitalização ocorrida pelo SUS num período determinado. O pacote inclui funções para a computação da idade nos arquivos da AIH e do Sistema de Informações sobre Mortalidade (SIM), para a leitura on-line de estimativas populacionais fornecidas pelo Departamento de Informática do SUS (DATASUS) e para facilitar o cálculo de indicadores de saúde e análises ecológicas.
Justificativa
A hospitalização por CSAP é um indicador da efetividade do sistema de saúde em sua primeira instância de atenção, uma vez que a internação por tais condições –pneumonia, infecção urinária, sarampo, diabetes etc.– só acontecerá se houver uma falha do sistema nesse âmbito de atenção, seja por não prevenir a ocorrência da doença (caso das doenças evitáveis por vacinação, como o sarampo), não diagnosticá-la ou tratá-la a tempo (como na pneumonia ou infeccão urinária) ou por falhar no seu controle clínico (como é o caso da diabete). (Nedel et al. 2011)
O Ministério da Saúde brasileiro estabeleceu em 2008, após amplo processo de validação, uma lista com várias causas de internação hospitalar consideradas CSAP, definindo em portaria a Lista Brasileira. (Brasil. Ministério da Saúde. Secretaria de Atenção à Saúde 2008; Alfradique et al. 2009) A Lista envolve vários códigos da CID-10 e classifica as CSAP em 19 subgrupos de causa, o que torna complexa e trabalhosa a sua decodificação. Há alguns anos o Departamento de Informática do SUS (DATASUS) incluiu em seu excelente programa de tabulação de dados TabWin a opção de tabulação por essas causas, apresentando sua frequência segundo a tabela definida pelo usuário.
Entretanto, eventualmente a pesquisa exige a classificação de cada internação individual como uma variável na base de dados e além disso a possibilidade de execução de todos os passos da pesquisa desde a leitura até a análise dos dados em um só script e com um só programa facilita a reprodução da análise. (Nedel et al. 2008)
Instalação
A última versão lançada do pacote pode ser instalada no R:
baixando o arquivo de instalação no SourceForge e depois instalando, com a IDE de preferência ou com o comando
install.packages("csapAIH_<versão>.tar.gz")(em Linux ou Mac) ouinstall.packages("csapAIH_<versão>.zip")(em Windows); oucom a função
install.packages()endereçada ao link da última versão no SourceForge:
install.packages("https://sourceforge.net/projects/csapaih/files/latest/download", type = "source", repos = NULL) A versão em desenvolvimento pode ser instalada através do pacote remotes sobre os arquivos-fonte no GitHub:
# install.packages("remotes") # desnecessário se o pacote já estiver instalado
remotes::install_github("fulvionedel/csapAIH")Conteúdo (timeline)
Na sua primeira versão (Nedel 2017), o pacote csapAIH continha apenas uma função, homônima: csapAIH.
Na versão 0.0.2, foram acrescentadas as funções descreveCSAP, desenhaCSAP e nomesgruposCSAP, para a representação gráfica e tabular das CSAP pela lista brasileira. Esta versão também permite a leitura de arquivos da AIH em formato .DBC, sem necessidade de prévia expansão a .DBF. Isso é possível pelo uso do pacote read.dbc, de Daniela Petruzalek (https://cran.r-project.org/web/packages/read.dbc/index.html).
A partir da versão 0.0.3 (Nedel 2019), a função desenhaCSAP permite o detalhamento do gráfico por categorias de outros fatores do banco de dados, com o uso das funções facet_wrap e facet_grid, de ggplot2, e permite ainda o desenho de gráficos com as funções básicas, sem a instalação do pacote ggplot2. Foi ainda criada uma função para o cálculo da idade nos arquivos da AIH: a função idadeSUS é usada internamente por csapAIH e pode ser chamada pelo usuário para calcular a idade sem a necessidade de classificar as CSAP.
Na versão 0.0.4, a função csapAIH oferece a opção de classificação das CSAP em 20 grupos de causa, conforme proposto no processo de construção da Lista Brasileira (Alfradique et al. 2009). Essa é a lista sugerida pela Organização Panamericana da Saúde (Organización Panamericana de la Salud (OPS) 2014). As funções desenhaCSAP e tabCSAP têm um argumento para seleção do idioma dos nomes de grupos, em português (pt, padrão), espanhol (es) ou inglês (en).
- Criada a função cid10cap para a classificação de causas por Capítulos da CID-10. - Criadas as funções ler_popbr e popbr2000_2021 (esta sobre o pacote brpop de R. Saldanha (2022)) para acesso às estimativas populacionais publicadas pelo DATASUS e funções para categorização da idade em faixas etárias. Foi ainda criada uma função (fetchcsap) a partir da função fetchdatasus do pacote microdatasus(R. de F. Saldanha, Bastos, and Barcellos 2019), para ler os arquivos no site FTP do DATASUS e classificar as CSAP em um único comando.
- Criadas funções para facilitar o manejo e apresentação de dados em estudos ecológicos, como a categorização da idade em faixas etárias (fxetar_quinq e fxetar3g) e a identificação dos diagnósticos de parto (partos), particularmente para o Brasil e os arquivos do DATASUS, como a listagem das Unidades da Federação do país (ufbr) e a lista de procedimentos obstétricos em internações por eventos não mórbidos (procobst).
- A v0.0.4.5 corrige um erro introduzido na v0.0.4.4 em csapAIH, em que a variável “csap” registrava todos os casos como “não” (embora estivessem classificados corretamente na variável “grupo”).
- A v0.0.4.6 corrige um erro em ler_popbr e, principalmente, acrescenta a possibilidade de leitura dos arquivos com as estimativas populacionais atualizadas após o Censo 2022 do IBGE, além de incluir novas possiblidades em nomesgruposCSAP. A atualização de ler_popbr foi a razão de lançamento dessa versão do pacote, mas depois percebi que o código IBGE do município vinha com sete dígitos, diferente de tudo o mais no DATASUS e então atualizei a função e lancei nova versão do pacote.
- A v0.0.4.7 corrige esses problemas e, além disso, cria a função adinomes para adicionar uma variável com o nome dos grupos CSAP a um banco de dados.
- A v0.0.4.8 não importa mais o pacote haven e corrige alguns erros introduzidos com as mudanças anteriores (como o desenho correto do gráfico e do nome “Não-CSAP” na tabela e seleção de casos e períodos na função fetchcsap); ajusta o nome do Grupo - 8 de “DPOC” para “Pulmonares”; cria a função popbr, com novas possibilidades para as estimativas populacionais.
A ajuda sobre o pacote oferece mais detalhes sobre as funções e seu uso. Veja no manual ou, no R, com ?csapAIH-package.
Dependências
A leitura de arquivos .DBC exige a instalação prévia do pacote read.dbc (Petruzalek 2016). Sua falta não impede o funcionamento das demais funções do pacote (inclusive de leitura de arquivos em outro formato). Da mesma forma, popbr2000_2021 exige a instalação do pacotebrpop (mas a função é mantida apenas para documentação) e fetchcsap exige a instalação do pacote microdatasus.
A função desenhaCSAP tem melhor desempenho com o pacote ggplot2 instalado, mas sua instalação não é necessária para que ela funcione.
A função popbr2000_2021 usa o pacote dplyr, que é importado. A partir da v0.0.4.4 Hmisc não é mais. Alguns pacotes são importados por funções específicas, como desenhaCSAP que exige ggplot2 para desenhar esse tipo de gráfico, ou csapAIH que exige o pacote haven para a classificação das CSAP quando o cid é uma variável “haven_labelled”.
Se a variável com os códigos da CID for da classe “haven_labelled”, a função csapAIH usará a função zap_formats, do pacote haven.
Veja o manual do pacote em: https://github.com/fulvionedel/csapAIH/blob/master/inst/manual/csapAIH_0.0.4.8.pdf
Agradecimentos
Agradeço a todxs os usuárixs do pacote, particularmente a quem informa problemas e sugere mudanças, como @laiovictor e @igortadeu @rafadbarros, e (muito!!) a quem apresenta soluções, como @denis-or.
E, sempre, meus profundos agradecimentos a
- Daniela Petruzalek, pelo pacote read.dbc; e
- A Raphael Saldanha, pelos pacotes microdatasus e brpop.