ipeaGIT / geobr

Easy access to official spatial data sets of Brazil in R and Python
https://ipeagit.github.io/geobr/
803 stars 119 forks source link

read_health_facilities() - Dados mais recentes #334

Closed beatrizmilz closed 8 months ago

beatrizmilz commented 11 months ago

Olá!

Primeiro, gostaria de agradecer a equipe do IPEA pelo pacote. Eu uso bastante na minha pesquisa e no trabalho.

Recentemente, fizemos um meetup na R-Ladies São Paulo sobre pacotes de dados brasileiros. Eu como grande fã do geobr fiz uma apresentação curta sobre o pacote.

Ao final do evento, uma pesquisadora me perguntou como buscar dados de estabelecimentos de saúde. Encontrei a função read_health_facilities(), e me surgiu a seguinte dúvida: a base está atualizada com estabelecimentos de saúde até 2015? Vi que tem uma coluna chamada year_update e o ano mais recente é 2018.

Se os dados estão desatualizados, existe alguma forma da comunidade ajudar a atualizar esses dados?

Muito obrigada!

ps: isso pode servir de contexto.

rafapereirabr commented 11 months ago

Oi @beatrizmilz , obrigado por abrir esse issue. As colunas date_update e year_update trazem as datas de quando a informação de cada estabelecimento tinha sido atualizada pelo pessoal do Ministério da Saúde. Eu também acho um pouco confuso a organização que o Ministério fez naquela época.

Essa base é super importante, e está na prioridade para atualização. No entanto, essa base é um pouco "problemática". Ela é problemática porque a organização dos dados (quais colunas estão disponíveis nos dados) e o endereço de url de disponibilização dos dados já mudaram algumas vezes. Isso faz com que a atualização possa gerar dados que não sejam 'consistentes' entre diferentes anos.

Isso é uma das razões pelas quais eu achei melhorar esperar um tempo para o formato dos dados e url se "estabilizarem" para entao eu retomar a atualização desses dados no geobr. Além disso, faz um tempo que eu sou a única pessoa que faz manutenção do pacote, e não tenho tanto tempo assim porque o geobr tem muitas bases.

Enfim, acho que esse issue serve como provocação para retomarmos a atualização dessa base! Eu estou reconstruindo os scripts do geobr que baixam os dados brutos e geram os dados limpos disponibilizados no geobr. Estou transformando esses scritps em fluxos semi-automaizados com o pacote {targets}. Mas isso demora muito porque cada base do geobr tem um fluxo proprio. Até agora eu só fiz o targets da base de municipios (aqui projeto de targets).

Enfim, dei um ponta-pé aqui na criação do targets para atualizar os dados de `read_health_facilities()´. Eu chequei hoje o formato dos dados na nova url e essa aqui é a nova cara da base:

   CO_CNES    CO_UNIDADE CO_UF CO_IBGE NU_CNPJ_MANTENEDORA                                 NO_RAZAO_SOCIAL
1:      19 2602900000019    26  260290      11294402000162 PREFEITURA MUNICIPAL DO CABO DE SANTO AGOSTINHO
2:      27 2602900000027    26  260290      10930451000181   CASA DE SAUDE E MATERNIDADE SANTA HELENA LTDA
3:      35 2602900000035    26  260290      11294402000162 PREFEITURA MUNICIPAL DO CABO DE SANTO AGOSTINHO
4:      43 2602900000043    26  260290      11294402000162 PREFEITURA MUNICIPAL DO CABO DE SANTO AGOSTINHO
5:      51 2602900000051    26  260290      11294402000162 PREFEITURA MUNICIPAL DO CABO DE SANTO AGOSTINHO
6:      78 2602900000078    26  260290      11294402000162 PREFEITURA MUNICIPAL DO CABO DE SANTO AGOSTINHO
                         NO_FANTASIA CO_NATUREZA_ORGANIZACAO DS_NATUREZA_ORGANIZACAO TP_GESTAO CO_NIVEL_HIERARQUIA
1: POLICLINICA DR JAMACI DE MEDEIROS                      NA                                 M                  NA
2:        CASA DE SAUDE SANTA HELENA                      NA                                 M                  NA
3:            HOSPITAL MENDO SAMPAIO                      NA                                 M                  NA
4:       POLICLINICA DR MANUEL GOMES                      NA                                 M                  NA
5:        POLICLINICA VICENTE MENDES                      NA                                 M                  NA
6:           CENTRO HERBERT DE SOUZA                      NA                                 M                  NA
   DS_NIVEL_HIERARQUIA CO_ESFERA_ADMINISTRATIVA DS_ESFERA_ADMINISTRATIVA CO_ATIVIDADE TP_UNIDADE   CO_CEP
1:                                           NA                                     4          4 54580530
2:                                           NA                                     4          5 54505560
3:                                           NA                                     4          5 54535430
4:                                           NA                                     4          4 54510360
5:                                           NA                                     4          4 54520250
6:                                           NA                                     4         36 54510360
                     NO_LOGRADOURO NU_ENDERECO           NO_BAIRRO  NU_TELEFONE NU_LATITUDE NU_LONGITUDE CO_TURNO_ATENDIMENTO
1:                 RUA 21 DE ABRIL         S/N PONTE DOS CARVALHOS (81)35221848    -8.23166     -34.9696                    6
2:   AVN PRESIDENTE GETULIO VARGAS         428              CENTRO (81)35210355    -8.28700     -35.0350                    6
3:                BR 101 SUL KM 33         S/N            CHARNECA (81)35210857    -8.28700     -35.0350                    6
4:    AV HISTORIADOR PEREIRA COSTA         S/N              CENTRO (81)35216723    -8.28765     -35.0350                    3
5:              RUA QUARENTA E HUM         S/N               COHAB (81)35216727    -8.28700     -35.0350                    4
6: AV HISTORIADOR PEREIRA DA COSTA         428              CENTRO (81)35210974    -8.28700     -35.0350                    3
                                                                 DS_TURNO_ATENDIMENTO        NU_CNPJ NO_EMAIL CO_NATUREZA_JUR
1: ATENDIMENTO CONTINUO DE 24 HORAS/DIA (PLANTAO:INCLUI SABADOS, DOMINGOS E FERIADOS)           <NA>                     1244
2: ATENDIMENTO CONTINUO DE 24 HORAS/DIA (PLANTAO:INCLUI SABADOS, DOMINGOS E FERIADOS) 10930451001153                     2062
3: ATENDIMENTO CONTINUO DE 24 HORAS/DIA (PLANTAO:INCLUI SABADOS, DOMINGOS E FERIADOS) 11294402000243                     1244
4:                                         ATENDIMENTOS NOS TURNOS DA MANHA E A TARDE           <NA>                     1244
5:                                     ATENDIMENTO NOS TURNOS DA MANHA, TARDE E NOITE           <NA>                     1244
6:                                         ATENDIMENTOS NOS TURNOS DA MANHA E A TARDE           <NA>                     1244
   ST_CENTRO_CIRURGICO ST_CENTRO_OBSTETRICO ST_CENTRO_NEONATAL ST_ATEND_HOSPITALAR ST_SERVICO_APOIO ST_ATEND_AMBULATORIAL
1:                   0                    0                  0                   0                1                     0
2:                   1                    1                  1                   1                1                     1
3:                   1                    1                  1                   1                1                     1
4:                   0                    0                  0                   0                1                     0
5:                   0                    0                  0                   0                1                     0
6:                   0                    0                  0                   0                0                     0
   CO_MOTIVO_DESAB CO_AMBULATORIAL_SUS
1:              NA                 SIM
2:              NA                 SIM
3:              NA                 SIM
4:              NA                 SIM
5:              NA                 SIM
6:              NA                 SIM

Claramente, ela traz muito mais colunas do que a versão que está foi incluida no geobr em 2018. Isso em si é bom, e seria uma boa mantermos todas essas colunas, mas não há garantia de que o Min da Saúde vá manter consistencia com as colunas incluidas na base.

Outra coisa que notei é que a base tem cerca de 65 mil estabelecimentos (aprox. 13% da base) que tem coordenadas lon, lat com valor NA. Aqui, temos duas opções: (a) remover essas observações, ou (b) colocar coordenadas 0, 0 . To pensando em adotar a segunda opção.

rafapereirabr commented 11 months ago

@beatrizmilz , respondendo a sua pergunta: "existe alguma forma da comunidade ajudar a atualizar esses dados?"

Em termos praticos, uma ajuda especifica para essa base seria encontrar uma maneira automatica de detectar no side dados.gov.br qual a data de criação de um arquivo. Essa info seria importante para deixar claro na documentação do geobr qual a data da ultima atualização do dado do CNES. Eu tentei usando o {rvest} mas não tenho muita experiencia com isso e dai nao consegui.

Screen shot abaixo do site:

Screenshot 2023-12-01 110339
beatrizmilz commented 11 months ago

Oi Rafael! Obrigada por responder. Não sabia que você era o único mantenedor, achava que era uma equipe maior no IPEA!

Eu nunca usei o targets, vou dar uma olhada nos links que você enviou. Seria ótimo conseguir contribuir de alguma forma com esse pacote que eu uso tanto.

sobre extrair a data, eu provavelmente consigo ajudar nisso!
Vou anotar para explorar isso no final de semana. Novamente, obrigada por responder!

beatrizmilz commented 11 months ago

Rafael, tô explorando o site dos dados (ainda sem mexer no código do geobr).

Acredito que a coluna metadataModifiedDataFormatada é o que você precisa!

https://dados.gov.br/api/publico/conjuntos-dados/cnes-cadastro-nacional-de-estabelecimentos-de-saude

caminho_api <- "https://dados.gov.br/api/publico/conjuntos-dados/cnes-cadastro-nacional-de-estabelecimentos-de-saude"

jsonlite::read_json(caminho_api, simplifyVector = TRUE) |> 
  purrr::pluck("resources")  |> 
  tibble::as_tibble() |> 
  dplyr::filter(format == "ZIP") |> 
  knitr::kable()
id format url name description created size tipo nomeArquivo quantidadeDownloads numOrdem recursoForm metadataModifiedDataFormatada createdFormatado sizeFormatado createdDataFormatada idTipo package_id metadata_modified
78b91d79-bb6d-43ad-bda5-f015e3575a84 ZIP https://s3.sa-east-1.amazonaws.com/ckan.saude.gov.br/CNES/cnes_estabelecimentos.zip cnes_estabelecimentos.zip 2023-03-30T19:53:33.378534 0 NA NA 469 NA 78b91d79-bb6d-43ad-bda5-f015e3575a84 31/03/2023 30/03/2023 19:53:33 0 30/03/2023 NA 40a0d093-b12f-44a4-bdc7-bae8eb54dd04 31/03/2023 02:49:44

Se for isso que precisa, posso tentar fazer um PR depois

beatrizmilz commented 11 months ago

Sobre isso:

Outra coisa que notei é que a base tem cerca de 65 mil estabelecimentos (aprox. 13% da base) que tem coordenadas lon, lat com valor NA. Aqui, temos duas opções: (a) remover essas observações, ou (b) colocar coordenadas 0, 0 . To pensando em adotar a segunda opção.

Eu acho que faz mais sentido deixar como 0. Acho importante manter todas as linhas.

rafapereirabr commented 11 months ago

Rafael, tô explorando o site dos dados (ainda sem mexer no código do geobr).

Acredito que a coluna metadataModifiedDataFormatada é o que você precisa!

https://dados.gov.br/api/publico/conjuntos-dados/cnes-cadastro-nacional-de-estabelecimentos-de-saude

caminho_api <- "https://dados.gov.br/api/publico/conjuntos-dados/cnes-cadastro-nacional-de-estabelecimentos-de-saude"

jsonlite::read_json(caminho_api, simplifyVector = TRUE) |> 
  purrr::pluck("resources")  |> 
  tibble::as_tibble() |> 
  dplyr::filter(format == "ZIP") |> 
  knitr::kable()

id format url name description created size tipo nomeArquivo quantidadeDownloads numOrdem recursoForm metadataModifiedDataFormatada createdFormatado sizeFormatado createdDataFormatada idTipo package_id metadata_modified 78b91d79-bb6d-43ad-bda5-f015e3575a84 ZIP https://s3.sa-east-1.amazonaws.com/ckan.saude.gov.br/CNES/cnes_estabelecimentos.zip cnes_estabelecimentos.zip 2023-03-30T19:53:33.378534 0 NA NA 469 NA 78b91d79-bb6d-43ad-bda5-f015e3575a84 31/03/2023 30/03/2023 19:53:33 0 30/03/2023 NA 40a0d093-b12f-44a4-bdc7-bae8eb54dd04 31/03/2023 02:49:44 Se for isso que precisa, posso tentar fazer um PR depois

Excelente! é isso aqui mesmo. Ajustei o codigo pra usar no targets dessa funcao! Obrigado, @beatrizmilz . Ja te coloco tmb como contribuidora do geobr.

hanscs50 commented 8 months ago

Bom dia!

Estou apenas passando aqui para expressar meu interesse neste assunto também. Rafael, tem uma previsão de quando uma atualização pode ocorrer?

Também gostaria de agradecer pelo fantástico trabalho que você tem feito, Rafael. Sou um pesquisador afiliado a uma universidade na Europa e tenho utilizado o pacote para alguns trabalhos.

rafapereirabr commented 8 months ago

obrigado por todo apoio e interesse, pessoal. Essa base é uma das prioridades atuais. Estou preparando uma atualização para as proximas semanas

rafapereirabr commented 8 months ago

Oi pessoal. Acabei de atualiar a versao dev do geobr para incluir o dado mais recente disponivel sobre estabelecimentos de saúde. Infelizmente, o dado mais recente é de março de 2023.

Eu tive que fazer uma mudança importante na função, que agora inclui um novo parâmetro date. Isso vai permitir a gente armanezar dados de estabelecimentos de saude para diferentes datas. Minha intenção é ter pelo menos uma atualização destes dados por ano, mas isso tambem depende em parte da atualiza do CNES

h <- read_health_facilities( date = 202303)

rafapereirabr commented 8 months ago

Fechando esse issue agora (obrigado a todos pela paciencia). E abrindo o issue #342 para impementar essa mudança na versão em python do {geobr}