Open turicas opened 4 years ago
@turicas Eu tenho acompanhado e comparado os casos, com as informações do Gov. Federal e da SES-RS. O que tenho percebido é que nem sempre a base do Gov. Federal consolida as infos da SES no mesmo dia, por conta dos horários. Com relação aos casos do RS, em geral tem uma defasagem de um dia nos dados.
@endersonmaia comentou sobre o formato dos registros:
{
"source_id" : "NB73NHduwm",
"dataSintomas" : "2020-03-26T03:00:00.000Z",
"dataRegistro" : "2020-03-26T03:00:00.000Z",
"dataAtualizacao" : "2020-03-30T15:45:09.584Z",
"dataNascimento" : "1988-07-26T03:00:00.000Z",
"numeroNotificacao" : "272000027972",
"municipio" : "MACEIÓ",
"estado" : "ALAGOAS",
"municipioNotificacao" : "MACEIÓ",
"estadoNotificacao" : "ALAGOAS",
"cep" : "",
"comorbidades" : true,
"numeroCnes" : "2005689",
"confirmado" : false,
"sexo" : "Feminino",
"excluido" : false,
"fonte" : "esusve",
"geo" : {
"lon" : -35.720010699999996,
"lat" : -9.6358461
},
"idade" : 31,
"sinaisGravidade" : true,
"sinaisRespiratorios" : true
}
Olhando rapidamente e comparando com os microdados das SES que já estudamos (#123), parece que:
numeroCnes
), isso não parece existir nos microdados das SEShttps://opendatasus.saude.gov.br/dataset/casos-nacionais
Limitações dos dados:
Os dados disponíveis não apresentam informações de estados e municípios que utilizam sistemas próprios de notificação de casos suspeitos de Covid-19 e, portanto, os dados para esses locais podem apresentar informações distintas.
Estes dados são preliminares, sujeitos a avaliação.
As bases estão sendo avaliadas e harmonizadas, com o objetivo de ser verificada sua consistência, principalmente em relação a atualização dos dados.
Para maiores informações, consultar a Ficha de Investigação e o Instrutivo de preenchimento da ficha, disponíveis por meio do link: https://datasus.saude.gov.br/notifica/
Uma informação a descobrir também é ao que se refere esse ponto geográfico latitude e longitude. Se é o local de atendimento, de testagem, de internação ou de residência do paciente (espero que não), ou se é apenas um centroide do município ou algo assim.
Segundo a documentação do dataset, as informações disponíveis são as da Ficha de Investigação Covid-19. Nas instruções de preenchimento da ficha há descrições para os campos que podem servir como uma espécie de dicionário de dados, mas nem na ficha e nem das instruções há o campo latitude e longitude. Suponho que essa informação deva ser provavelmente derivada do centroide do município ou CEP informados.
Os metadados podem ser derivados das instruções presentes no documento "Instrutivo de preenchimento da ficha de notificação", embora os nomes dos campos não se alinhem perfeitamente. Outra diferença presente é que os campos que identificam a pessoa ou que comprometeriam a intimidade da pessoa, como o CPF, CNS, nome, endereço e telefone, é claro, estão suprimidos nos dados.
Campo | Descrição |
---|---|
Nº | (Número da notificação): campo interno gerado automaticamente pelo sistema. |
UF | (Unidade Federada): corresponde à UF que realizou a notificação; campo interno gerado automaticamente pelo sistema, a partir do operador logado. |
Município de notificação | corresponde ao município que realizou a notificação; campo interno gerado automaticamente pelo sistema, a partir do operador logado. |
Tem CPF? | Informar se o paciente tem CPF (Sim/Não). CAMPO OBRIGATÓRIO. Se selecionado “Sim”, preencher campo“CPF”. Se não, preencher os campos “Estrangeiro” (Sim /Não), “CNS”e Nome Completo da Mãe. |
CPF | Anotar o CPF do paciente. CAMPO OBRIGATÓRIO. OBS: Ao digitar um CPF, o sistema preenche automaticamente os campos nome completo, data de nascimento, sexo, raça/cor e endereço a partir dos dados da RFB/CNS. Somente o último campo citado poderá ser editado pelo operador. |
Estrangeiro | Informar se o paciente é estrangeiro (Sim/Não). CAMPO OBRIGATÓRIO. Se selecionado “Sim”, preencher os campos “País de origem” e “Passaporte” |
CNS | Preencher com o número do Cartão Nacional de Saúde do paciente. |
País de origem | Se estrangeiro, informar o país de origem. CAMPO OBRIGATÓRIO. |
Passaporte | Se estrangeiro, informar o número do passaporte. CAMPO OBRIGATÓRIO. |
É profissional de saúde? | Informar se o paciente é profissional de saúde (Sim/Não). CAMPO OBRIGATÓRIO. Se o paciente for profissional de saúde, informar o CBO. |
Profissional de Segurança | Informar se o paciente é profissional de segurança(Sim/Não). |
CBO | Selecionar o código/ocupação do paciente quando for profissional de saúde. CAMPO OBRIGATÓRIO. |
Nome Completo | preencher com o nome completo do paciente (sem abreviações). CAMPO OBRIGATÓRIO. |
Nome Completo da Mãe | preencher com o nome completo da mãe do paciente (sem abreviações). CAMPO OBRIGATÓRIO, se variável “TemCPF?” for preenchido como não. |
Data de nascimento | informar a data de nascimento do paciente (dia/mês/ano). CAMPO OBRIGATÓRIO. |
Sexo | informar o sexo do paciente (Masculino/Feminino). CAMPO OBRIGATÓRIO. |
Raça/cor | informar a raça/cor declarada pelo paciente (Branca/Preta/Amarela/Parda/Indígena). |
CEP | informar o CEP – código de endereçamento postal do logradouro da residência do paciente. Indivíduo não sabe o CEP, preencher com 00000-000. CAMPO OBRIGATÓRIO. |
Logradouro | Anotar o tipo (avenida, rua, travessa, etc) e o nome completo do logradouro da residência do paciente. Se pessoa em situação de rua, cigano ou análogo, preencher com o termo "inexistente", caso a pessoa não tenha endereço. Se estrangeiro, preencher com dados do endereço onde esteja hospedado. CAMPO OBRIGATÓRIO. |
Número (SN) | preencher com o número do logradouro daresidência do paciente. Se não houver, preencher com SN. |
Complemento | Anotar o complemento do logradouro (ex. Bloco B, apto 402, lote 25, casa 14, etc).Se pessoa em situação de rua, cigano ou análogo,preencher com a informação equivalente ao grupo populacional que pertence (situação de rua, cigano, circense, ribeirinho, do campo...) |
Bairro | Anotar o nome do bairro de residência do paciente. CAMPO OBRIGATÓRIO. |
UF/Estado de residência | Selecionar a unidade de federação da residência do paciente. CAMPO OBRIGATÓRIO. |
Município de residência | Selecionar o município de residência do paciente. CAMPO OBRIGATÓRIO. |
Telefone celular | Informar o telefone celular do paciente. |
Telefone de contato | Informar o telefone celular do paciente. |
Data da Notificação | Anotar a data da notificação (data de preenchimento da ficha de notificação). CAMPO OBRIGATÓRIO. |
Sintomas | Selecionar os sintomas (Dor de garganta, Dispneia, Febre, Tosse e Outros)relatados pelo paciente ou aferido pelo profissional de saúde. Se sintomas “Outros” que não os listados, especificar (campo aberto). CAMPO OBRIGATÓRIO. OBS: Se o paciente for assintomático, porém com resultado positivo para COVID-19, selecionar “Outros”, e preencher com “Assintomático” |
Data do início dos sintomas | informar a data de início dos sintomas relatados pelo paciente. CAMPO OBRIGATÓRIO. OBS: Se o paciente for assintomático, porém com resultado positivo para COVID-19, informar a data da notificação. |
Condições | selecionar as condições associadas. |
Estado do teste | informar se o exame foi solicitado, coletado ou concluído.Se selecionada a categoria “Coletado”, preencher a data da coleta do teste. Se selecionada a categoria “Concluído”, preencher os campos “Data da Coleta do Teste”, “Tipo de Teste” e “Resultado do Teste”. |
Data da coleta do teste | informar a data da coleta do exame. CAMPO OBRIGATÓRIO. |
Tipo de teste | Selecionar o teste que foi realizado (Teste rápido –anticorpo, Teste rápido –antígeno, RT-PCR). CAMPO OBRIGATÓRIO. OBS: Caso o paciente tenha resultado positivo ou negativo tanto para teste rápido quanto para RT-PCR, selecionar a opção RT-PCR. |
Resultado do teste | Informar se o resultado do exame foi negativo ou positivo para COVID-19. CAMPO OBRIGATÓRIO. |
Classificação final |
|
Evolução do caso | Informar a evolução do caso, independentemente do resultado do teste e da classificação final do paciente. OBS: A categoria “Cancelado” significa excluir ficha. |
Data de encerramento | Informar a data do encerramento. CAMPO OBRIGATÓRIO, se o campo “Evolução do caso” for preenchido. |
@augusto-herrmann o geo
parece se referir Estabelecimento de Saúde
fiz o teste com o exemplo do comentário https://github.com/turicas/covid19-br/issues/139#issuecomment-631438436
...
"numeroCnes" : "2005689",
"geo" : {
"lon" : -35.720010699999996,
"lat" : -9.6358461
},
...
essa consulta fiz no CSV que baixei do site do CNES
sqlite> SELECT CO_UNIDADE ,NO_FANTASIA, NO_LOGRADOURO, NO_BAIRRO, NU_LATITUDE, NU_LONGITUDE FROM tbEstabelecimento WHERE CO_CNES = '2005689';
CO_UNIDADE,NO_FANTASIA,NO_LOGRADOURO,NO_BAIRRO,NU_LATITUDE,NU_LONGITUDE
2704302005689,"UNIDADE DE SAUDE DA FAMILIA JOSE ARAUJO SILVA 5 DS","RUA PASTOR EURICO CALHEIROS",JACINTINHO,-9.6361538,-35.7206729
link para o cadastro no CNES
http://cnes2.datasus.gov.br/cabecalho_reduzido.asp?VCod_Unidade=2704302005689
Fiz um código simples e capturei os dados do estado onde moro:
from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search
import pandas as pd
# criando conexão com ES
client = Elasticsearch(hosts='https://user-public-notificacoes:Za4qNXdyQNSa9YaA@elasticsearch-saps.saude.gov.br')
# configurando a consulta
s = Search(using=client, index='desc-notificacoes-esusve-df')
# usando método scan para capturar todos os registros do index
df = pd.concat([pd.DataFrame(hit.to_dict(), index=[i]) for i, hit in enumerate(s.scan())])
Fiz esse código apenas para testar o acesso. Aqui na minha residência a carga dos dados do DF levou 2m e 25s, para ingerir 24980 registros, com as 23 colunas.
Vou tentar calcular algumas análises descritivas e postar aqui mais tarde.
Espero ter sido útil.
@Xukinorris é importante baixar os dados todos, e trabalhar com eles localmente
mas tb se possível, sugiro uma abordagem alternativa, é possível fazer as agregações direto na consulta ao ES, e já retornaria os dados agregados
assim é possível usar um filtro como dataAtualizacao
e fazer a consulta com maior frequência e manter-se atualizado durante o dia
até tentei o endpoint /_sql
, mas o usuário não tem permissão suficiente
Boa @endersonmaia , vou tentar dar uma estudada no ÉS, não é a minha “ferramenta padrão” de uso.
Se conseguir algo retorno aqui...
Os dados disponibilizados não podem ser utilizados para questões relacionadas à COVID-19. Há pouco tempo havia uma tabela exclusiva com informações detalhadas de casos de COVID-19. Essa tabela deixou de estar disponível nos últimos 15 dias.
@endersonmaia comentou sobre o formato dos registros: ... Olhando rapidamente e comparando com os microdados das SES que já estudamos (#123), parece que:
- Tem informação da unidade de saúde onde a pessoa foi atendida (
numeroCnes
), isso não parece existir nos microdados das SES- Nos microdados das SES parece que temos mais informações que no MS, como algumas comorbidades
percebi que há diferenças entre os schemas dos Estados, nem todos os campos são preenchidos sempre
segue script pra baixar o mapping do ES e um documento de exemplo
#!/usr/bin/env bash
ESTADOS="ac al am ap az ba ce df es go ma mg ms mt pa pb pe pi pr rj rn ro rr rs sc se sp te to uf"
for uf in $ESTADOS; do
mkdir -p ./elastic/$uf
curl -sSL -XGET -H "Content-Type: application/json" "https://user-public-notificacoes:Za4qNXdyQNSa9YaA@elasticsearch-saps.saude.gov.br/desc-notificacoes-esusve-$uf/_mapping" | jq . > ./elastic/$uf/mapping.json
curl -sSL -XPOST -H "Content-Type: application/json" "https://user-public-notificacoes:Za4qNXdyQNSa9YaA@elasticsearch-saps.saude.gov.br/desc-notificacoes-esusve-$uf/_search" -d '{"query":{"match_all":{}},"size":1,"sort":[{"@timestamp":{"order":"desc"}}]}' | jq '.hits.hits[0]._source' > ./elastic/$uf/sample.json
done
script de exemplo para baixar tudo
#!/usr/bin/env bash
ESTADOS="ac al am ap az ba ce df es go ma mg ms mt pa pb pe pi pr rj rn ro rr rs sc se sp te to uf"
for uf in $ESTADOS; do
mkdir -p ./opendatasus/$uf
curl -sSL "https://s3-sa-east-1.amazonaws.com/ckan.saude.gov.br/dados-$uf.csv" -o ./opendatasus/$uf/dados-$uf-$(date +%Y%m%d%H%M%S)Z.csv
done
csv sample
id;dataNotificacao;dataInicioSintomas;dataNascimento;sintomas;profissionalSaude;cbo;condicoes;estadoTeste;dataTeste;tipoTeste;resultadoTeste;paisOrigem;sexo;bairro;estado;municipio;origem;cnes;estadoNotificacao;municipioNotificacao;numeroNotificacao;excluido;validado;idade;dataEncerramento;evolucaoCaso;classificacaoFinal
cEGtnbqd2K;2020-05-19T03:00:00.000Z;2020-05-12T03:00:00.000Z;2002-11-02T03:00:00.000Z;Dispneia, Febre, Tosse;Não;null;null;Concluído;2020-05-19T03:00:00.000Z;TESTE RÁPIDO - ANTICORPO;Negativo;undefined;Feminino;CENTRO;ALAGOAS;Arapiraca;undefined;2004798;Alagoas;Arapiraca;272001809596;undefined;undefined;17;;;
RUbOsgjCE9;2020-05-21T14:35:31.276Z;2020-05-10T03:00:00.000Z;1956-12-08T03:00:00.000Z;Tosse, Febre, Outros;Não;null;Doenças cardíacas crônicas;Concluído;2020-05-20T03:00:00.000Z;TESTE RÁPIDO - ANTICORPO;Negativo;undefined;Feminino;Novo Mundo;ALAGOAS;Maceió;undefined;undefined;Alagoas;Maceió;272001809746;undefined;undefined;63;;;
EYdWGgRDnk;2020-05-21T14:38:44.135Z;2020-05-05T03:00:00.000Z;1969-05-04T03:00:00.000Z;Tosse;Não;null;null;null;null;null;null;undefined;Masculino;CLIMA BOM;ALAGOAS;Maceió;undefined;2005727;Alagoas;Maceió;272001809755;undefined;undefined;51;;;
Xz34YcOPPp;2020-05-17T19:20:29.957Z;2020-05-15T03:00:00.000Z;1983-10-14T03:00:00.000Z;Outros;Sim;2236 - Fisioterapeuta;null;Concluído;2020-05-15T03:00:00.000Z;TESTE RÁPIDO - ANTICORPO;Positivo;undefined;Masculino;TAPERAGUA;ALAGOAS;Marechal Deodoro;undefined;980016002123992 ;Alagoas;São Miguel dos Campos;272001437321;undefined;undefined;36;2020-05-21T03:00:00.000Z;Em tratamento domiciliar;Confirmado Laboratorial
...
O @augusto-herrmann comentou que existem microdados disponíveis no CKAN do Ministério da Saúde. Precisamos verificar se:
Relacionado às seguintes issues:
IMPORTANTE: quando possível, publique trechos de código que foram desenvolvidos para fazer as análises/comparações.