rm(list=ls(all=TRUE))
#Em sua forma final, o script deverá gerar uma base com resultado das consultas
#de cada base de dados(sim, sinasc, pop...) para futuro RBIND.
#Esta base final será consultada pela ficha dos indicadores, com as indicações
#dos dados a serem utilizados.
#Geracao de um banco de dados com os indicadores de cada base(SIM,SINASC...)
#Um loop repete as queries e armazena os resultados das buscas em um único dataframe
library("elastic")
connect(es_host = "elasticsearch.icict.fiocruz.br", es_port = 8201, es_user = "r_user", es_pwd = "r_user", es_transport_schema = "https")
## transport: https
## host: elasticsearch.icict.fiocruz.br
## port: 8201
## path: NULL
## username: r_user
## password: <secret>
## errors: simple
## headers (names): NULL
#Funcao que transforma as saidas do elastic em dataframes, com identificacao do indicador, ano e mun
source('~/Proadess/Funcao_Tabela_Ano_Mun.R')
#Selecoes_SIM-queries
#Traz o objeto Selecoes_SIM
source('~/Proadess/SIM/Selecoes_SIM.R')
#Selecoes_SINASC-queries
#Traz o objeto Selecoes_SINASC
source('~/Proadess/SINASC/Selecoes_SINASC.R')
#Selecoes_pop-queries
#Traz o objeto Selecoes_pop
#source('~/Proadess/pop/Selecoes_pop.R')
#Futuramente as bases de selecao dos diferentes sistemas podem ser reunidas em um unico
#arquivo, com identificacao adequada. No momento, os testes serao feitos em cima do SINASC
#
#É necessário modificar as linhas abaixo conforme a base escolhida:
Selecoes<-Selecoes_SIM
#Selecoes<-Selecoes_SINASC
#Selecoes<-Selecoes_pop
resultado<-NULL
for (i in 1: dim(Selecoes)[[1]]){
#A query atual no loop
q<-Selecoes[[2]][i]
"O id da query atual"
indicador<-Selecoes[[1]][i]
#Resultado da query
#Escolha o índice adequado:
resultado_query<-Search(index = "datasus-sim", body = q, asdf = TRUE, size = 0)
# resultado_query<-Search(index = "datasus-sinasc", body = q, asdf = TRUE, size = 0)
#Rbind que aumenta o dataframe(transformacao do resultado_query) ao passar do loop
#O uso do try se faz necessario, pois no momento algumas selecoes nao contam
#com a variavel necessaria no banco de dados(Idade em dias)
try(resultado<-rbind(resultado,cbind(tabela_ano_mun(resultado_query),"Ind"=indicador)))
}
#Finaliza com uma ordenacao das colunas do dataframe resultado
setcolorder(resultado, c("Munic_res", "Ano", "Ind", "Freq"))
#lista de seleções que foram realizadas no sistema
Selecoes_finalizadas<-unique(resultado$Ind)
#salva a lista
write.csv2(Selecoes_finalizadas,'~/Proadess/Base_Selecao_Mun/Selecoes_Finalizadas.csv', row.names=F)
#Salva a base resultado(com as consultas no sistema)
write.csv2(resultado,'~/Proadess/Base_Selecao_Mun/Base_Selecao.csv', row.names=F)
#A partir daqui os objetos "Selecoes_finalizadas" e resultado
#Serao usados, junto de outras tabelas, como a ficha dos indicadores,
#a tabela de regiões de saúde e um csv com títulos para cada tabela gerada na
#página do proadess.