### Fonte de dados
# ftp://ftp.datasus.gov.br/dissemin/publicos/CNES/200508_/Dados/ST/
### variaveis de delimitacao de filtros e selecoes
#### definicao do ano da competencia
ano <- 22
#### competencia com formato "yymm"
competencias <- sprintf("22%02d", 1:12)
#### definicao de siglas dos estados brasileiros
estados <- c("RO","AC","AM","RO","PA","AM","TO","MA","PI","CE","RN","PB","PE","AL",
"SE","BA","MG","ES","RJ","SP","PR","SC","RS","MS","MT","GO","DF")
#### Lista de bancos com formato *.dbc
alldbclist <- list.files(path = "data/.",pattern = "dbc$")
alldbclist <- as.data.frame(alldbclist)
names(alldbclist) <- c("FILENAME")
####
for (compt in competencias) {
for (est in estados) {
#### filtros dos arquivos por
epdbclist <- alldbclist %>%
mutate(LOGPATTERN=str_detect(FILENAME,pattern = "EP")) %>% # arquivo
filter(LOGPATTERN==T) %>%
mutate(LOGPATTERN=str_detect(FILENAME,pattern = est)) %>% # estado
filter(LOGPATTERN==T) %>%
mutate(LOGPATTERN=str_detect(FILENAME,pattern = compt)) %>% # competencia
filter(LOGPATTERN==T) %>%
select(FILENAME)
pfdbclist <- alldbclist %>%
mutate(LOGPATTERN=str_detect(FILENAME,pattern = "PF")) %>%
filter(LOGPATTERN==T) %>%
mutate(LOGPATTERN=str_detect(FILENAME,pattern = est)) %>% # estado
filter(LOGPATTERN==T) %>%
mutate(LOGPATTERN=str_detect(FILENAME,pattern = compt)) %>% # competencia
filter(LOGPATTERN==T) %>%
select(FILENAME)
#### leitura dbc de equipes
epdbc <- rbindlist(lapply(epdbclist$FILENAME,
function(x) cbind(read.dbc(paste('data/',x,sep ='')
))))
epdbc %<>% select(CNES,CODUFMUN,IDEQUIPE,TIPO_EQP,COMPETEN)
#### leitura dbc de profissionais
pfdbc <- rbindlist(lapply(pfdbclist$FILENAME,
function(x) cbind(read.dbc(paste('data/',x,sep ='')
))))
pfdbc %<>% select(CNES,CBO,COMPETEN,HORA_AMB)
#### back-up arquivos parciais - tempo longo de leituras e filtros - excesso de memoria RAM
save(list=c("epdbc","pfdbc"),file=paste(est,compt,'.Rdata',sep = ''))
}
}
#### Dataframes NULLs
AUX <- NULL
df <- NULL
#### loop para a juncao dos bancos por competencia e estado
for (compt in competencias) {
for (est in estados) {
load(paste('data/',est,compt,'.Rdata',sep=''))
#### equipes aps - niveis para filtro
equipes_aps <- epdbc %>%
filter(TIPO_EQP %in% c(70,73,74,76)) %>%
pull(unique(CNES))
#### repeticoes de cnes
equipes_aps_rep <- epdbc %>%
filter(TIPO_EQP %in% c(70,73,74,76)) %>%
group_by(CNES,IDEQUIPE,TIPO_EQP,COMPETEN) %>%
mutate(rep = n()) %>%
distinct()
#### inclusao de informacoes das equipes
AUX <- pfdbc %>% filter(CNES %in% equipes_aps)
#### Join por Competencia e CNES
AUX <- full_join(AUX,equipes_aps_rep)
df <- bind_rows(AUX,df)
}
}
#### back-up arquivos parciais
save(df,file=paste('data/','equipes_aps',ano,'.Rdata',sep=''))Relatório de Atividades
Descrição de atividades
Todos os materias desenvolvidos no projeto estão disponíveis no repositório do github pecs_ae_aps.
Nesta primeira etapa do projeto fizemos o levantamento de dados por meio do banco do Cadastro Nacional dos Estabelecimentos de Saúde - CNES.
Os arquivos estão disponíveis em formato .dbc e foram obtidos utizando o FileZilla.
Seleção e pré-tratamento de dados
Nesta etapa, o objetivo foi reunir dados dos profissionais da Atenção Primária de Saúde (APS) para todas as competências do ano de 2022 e de todas as unidades identificadas pelo INE. Esses dados estão disponíveis nos arquivos EP.dbc* e PF.dbc*, e são filtrados para as equipes 70, 73, 74 e 74.