O pacote csapAIH foi criado para facilitar a distribuição da função
csapAIH(), então sua única função, para a classificação de
códigos da Classificação Internacional de Doenças – 10ª Revisão (CID-10)
segundo a Lista Brasileira de Condições Sensíveis à Atenção Primária,
publicada em Portaria Ministerial em 2008(Brasil.
Ministério da Saúde. Secretaria de Atenção à Saúde 2008). A
função classifica qualquer vetor com códigos da CID-10, mas é
particularmente voltada ao trabalho com os arquivos “RD*.DBC” das Bases
de Dados do Sistema de Informação em Saúde (BD-SIH/SUS), com argumentos
facilitando a extração e manejo dos dados nesse sentido.(Nedel 2017)
A construção da lista brasileira foi relatada em artigo científico.(Alfradique et al. 2009) Entretanto, a lista publicada na Portaria Ministerial(Brasil. Ministério da Saúde. Secretaria de Atenção à Saúde 2008) difere do artigo pelo agrupamento dos dois primeiros grupos (1. Doenças imunizáveis e 2. Condições evitáveis). Há então duas versões da lista, a da Portaria Ministerial, com 19 grupos, e a que desmembra o primeiro grupo em dois, totalizando então 20 grupos (Tabela). Não há diferença nos códigos considerados. A versão com o desdobramento do primeiro grupo da Portaria e, consequentemente, com 20 grupos ao final, é a recomendada pela Organização Panamericana da Saúde (OPAS).(Organización Panamericana de la Salud (OPS) 2014)
A função csapAIH() permite a classificação segundo as
duas versões, definidas pelo argumento “lista”. Esse
argumento aparece em desenhaCSAP() para desenhar o gráfico
adequado. As funções tabCSAP() e
descreveCSAP() identificam a lista utilizada e portanto não
têm o argumento. Os grupos em cada lista podem ser citados pela função
nomesgruposCSAP(), em português, espanhol ou inglês.
ms <- nomesgruposCSAP()
artigo <- nomesgruposCSAP(lista = "Alfradique")
cbind(ms = c(ms[1], "-", ms[-1]), artigo) |>
kableExtra::kable(col.names = c("Portaria Ministerial", "Alfradique et al."),
caption = "Grupos da Lista Brasileira de ICSAP segundo a fonte de publicação.")| Portaria Ministerial | Alfradique et al. |
|---|---|
| 1. Prev. vacinação e cond. evitáveis | 1. Prev. por vacinação |
| - | 2. Outras cond. evitáveis |
| 2. Gastroenterites | 3. Gastroenterites |
| 3. Anemia | 4. Anemia |
| 4. Defic. nutricionais | 5. Defic. nutricionais |
| 5. Infec. ouvido, nariz e garganta | 6. Infec. ouvido, nariz e garganta |
| 6. Pneumonias bacterianas | 7. Pneumonias bacterianas |
| 7. Asma | 8. Asma |
| 8. Pulmonares | 9. Pulmonares |
| 9. Hipertensão | 10. Hipertensão |
| 10. Angina | 11. Angina |
| 11. Insuf. cardíaca | 12. Insuf. cardíaca |
| 12. Cerebrovasculares | 13. Cerebrovasculares |
| 13. Diabetes mellitus | 14. Diabetes mellitus |
| 14. Epilepsias | 15. Epilepsias |
| 15. Infec. urinária | 16. Infec. urinária |
| 16. Infec. pele e subcutâneo | 17. Infec. pele e subcutâneo |
| 17. D. infl. órgãos pélvicos fem. | 18. D. infl. órgãos pélvicos fem. |
| 18. Úlcera gastrointestinal | 19. Úlcera gastrointestinal |
| 19. Pré-natal e parto | 20. Pré-natal e parto |
Os “arquivos da AIH” são disponibilizados pelo DATASUS em arquivos
nos formatos DBF, CSV e DBC (arquivo DBF comprimido pelo DATASUS).
Arquivos nesses formatos são importados por csapAIH(), sem
necessidade de importação prévia do arquivo para leitura dos dados. Para
os arquivos em CSV deve-se indicar o separador, se vírgula (“,”) ou
ponto-e-vírgula (“;”). Os arquivos DBC são lidos pela função
read.dbc::read.dbc().
Para os “arquivos da AIH”, não é necessária outra informação que o path do arquivo, ou o nome do data frame, se for um objeto no espaço de trabalho. A função retorna uma mensagem com o número de registros importados, salva como atributo do banco de dados criado.
csapAIH("../../data-raw/RDRS1801.dbf")
Importados 60.529 registros.
Excluídos 8.240 (13,6%) registros de procedimentos obstétricos.
Excluídos 366 (0,6%) registros de AIH de longa permanência.
Exportados 51.923 (85,8%) registros.
csapAIH("../../data-raw/RDRS1801.csv", sep = ",")
Importados 60.529 registros.
Excluídos 8.240 (13,6%) registros de procedimentos obstétricos.
Excluídos 366 (0,6%) registros de AIH de longa permanência.
Exportados 51.923 (85,8%) registros.
csapAIH("../../data-raw/RDRS1801.dbc")
Importados 60.529 registros.
Excluídos 8.240 (13,6%) registros de procedimentos obstétricos.
Excluídos 366 (0,6%) registros de AIH de longa permanência.
Exportados 51.923 (85,8%) registros.Não obstante, os arquivos RD* ocupam muito espaço em disco, apesar da grande compressão do formato DBC, e pode ser preferível baixar o arquivo da internet, fazer o processamento desejado e então apagá-lo.
| Arquivo | Tamanho (MB) |
|---|---|
| RDRS1801.dbf | 40,5 |
| RDRS1801.csv | 35,9 |
| RDRS1801.dbc | 4,5 |
Para esses casos foi criada a função fetchcsap(), um
“atalho” para fetchdatasus(), do pacote
microdatasus(Saldanha 2019), que
baixa os arquivos da AIH no DATASUS e então aplica
csapAIH() sobre o banco de dados.
Assim, com uma conexão de internet ativa, podemos conhecer as ICSAP do RS no “mês de competência” jan/2018 com o seguinte comando, que retorna os mesmos resultados vistos acima:
options(width = 120)
fetchcsap(2018, mesfim = 1, periodo = "comp", uf = "RS")
[36mℹ
[39m Discovering available files on DataSUS...
[36mℹ
[39m Preparing to download and read 1 DataSUS file...
[36mℹ
[39m Downloading [1/1]
[34m
[34mRDRS1801.dbc
[34m
[39m...
[36mℹ
[39m Reading [1/1]
[34m
[34mRDRS1801.dbc
[34m
[39m...
[32m✔
[39m Downloaded and read 1 of 1 DataSUS file.
Importados 60.529 registros.
Excluídos 8.240 (13,6%) registros de procedimentos obstétricos.
Excluídos 366 (0,6%) registros de AIH de longa permanência.
Exportados 51.923 (85,8%) registros.O argumento periodo = "comp" garante que o data frame
resultante contenha todas as internações do(s) arquivo(s) RD
considerados e o período se refira, portanto, ao “mês de competência”
(i.e., mês em que foi registrado o faturamento) da internação.
Por padrão, esse argumento é periodo = "interna", o que
leva ao download dos arquivos RD de até seis meses após o definido em
mesfim e então a seleção dos casos pela data de internação,
para retornar um banco apenas com as internações ocorridas no período
definido e registradas em até seis meses após a internação.
Veja o resultado com periodo = "interna" (que por ser o
padrão é desnecessário no comando):
fetchcsap(2018, mesfim = 1, uf = "RS")
[36mℹ
[39m Discovering available files on DataSUS...
[36mℹ
[39m Preparing to download and read 6 DataSUS files...
[36mℹ
[39m Downloading [1/6]
[34m
[34mRDRS1801.dbc
[34m
[39m...
[36mℹ
[39m Reading [1/6]
[34m
[34mRDRS1801.dbc
[34m
[39m...
[36mℹ
[39m Downloading [2/6]
[34m
[34mRDRS1802.dbc
[34m
[39m...
[36mℹ
[39m Reading [2/6]
[34m
[34mRDRS1802.dbc
[34m
[39m...
[36mℹ
[39m Downloading [3/6]
[34m
[34mRDRS1803.dbc
[34m
[39m...
[36mℹ
[39m Reading [3/6]
[34m
[34mRDRS1803.dbc
[34m
[39m...
[36mℹ
[39m Downloading [4/6]
[34m
[34mRDRS1804.dbc
[34m
[39m...
[36mℹ
[39m Reading [4/6]
[34m
[34mRDRS1804.dbc
[34m
[39m...
[36mℹ
[39m Downloading [5/6]
[34m
[34mRDRS1805.dbc
[34m
[39m...
[36mℹ
[39m Reading [5/6]
[34m
[34mRDRS1805.dbc
[34m
[39m...
[36mℹ
[39m Downloading [6/6]
[34m
[34mRDRS1806.dbc
[34m
[39m...
[36mℹ
[39m Reading [6/6]
[34m
[34mRDRS1806.dbc
[34m
[39m...
[32m✔
[39m Downloaded and read 6 of 6 DataSUS files.
Importados 62.748 registros.
Excluídos 8.667 (13,8%) registros de procedimentos obstétricos.
Excluídos 324 (0,5%) registros de AIH de longa permanência.
Exportados 53.757 (85,7%) registros.O pacote healthbR(Bissoli 2025) é uma nova alternativa para
download de dados do SIH/SUS (entre outros). Abaixo é exemplificado seu
uso com csapAIH() para jan/2025.
healthbR::sih_data(2025, 1, uf = "RS") |>
csapAIH() |>
pull(data.inter) |>
summary()
[1m
[22m
[36mℹ
[39m Package
[34marrow
[39m is not installed; using DATASUS directly.
[36mℹ
[39m Install
[34marrow
[39m to enable the (faster) R2 backend.
[1m
[22m
[36mℹ
[39m Downloading SIH data: RS 2025/01...
Importados 66.998 registros.
Excluídos 6.591 (9,8%) registros de procedimentos obstétricos.
Excluídos 378 (0,6%) registros de AIH de longa permanência.
Exportados 60.029 (89,6%) registros.
healthbR::sih_data(2025, 1:6, uf = "RS") |>
filter(DT_INTER >= "2025-01-01", DT_INTER <= "2025-01-31") |>
csapAIH() |>
pull(data.inter) |>
summary()
[1m
[22m
[36mℹ
[39m Package
[34marrow
[39m is not installed; using DATASUS directly.
[36mℹ
[39m Install
[34marrow
[39m to enable the (faster) R2 backend.
[1m
[22m
[36mℹ
[39m Downloading 6 file(s) (1 UF(s) x 1 year(s) x 6 month(s))...
[1m
[22m
[36mℹ
[39m Downloading SIH data: RS 2025/01...
⠙ Downloading [1/6]
[32m■■■■■■
[39m | ETA: 1m
[1m
[22m
[36mℹ
[39m Downloading SIH data: RS 2025/02...
⠹ Downloading [2/6]
[32m■■■■■■■■■■■
[39m | ETA: 1m
[1m
[22m
[36mℹ
[39m Downloading SIH data: RS 2025/03...
⠸ Downloading [3/6]
[32m■■■■■■■■■■■■■■■■
[39m | ETA: 1m
[1m
[22m
[36mℹ
[39m Downloading SIH data: RS 2025/04...
⠼ Downloading [4/6]
[32m■■■■■■■■■■■■■■■■■■■■■
[39m | ETA: 37s
[1m
[22m
[36mℹ
[39m Downloading SIH data: RS 2025/05...
⠴ Downloading [5/6]
[32m■■■■■■■■■■■■■■■■■■■■■■■■■■
[39m | ETA: 20s
[1m
[22m
[36mℹ
[39m Downloading SIH data: RS 2025/06...
⠴ Downloading [6/6]
[32m■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
[39m | ETA: 0s
Importados 69.018 registros.
Excluídos 6.807 (9,9%) registros de procedimentos obstétricos.
Excluídos 437 (0,6%) registros de AIH de longa permanência.
Exportados 61.774 (89,5%) registros.