Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Página do Estado #47

Closed
fccoelho opened this issue Dec 19, 2016 · 123 comments
Closed

Página do Estado #47

fccoelho opened this issue Dec 19, 2016 · 123 comments
Assignees

Comments

@fccoelho
Copy link
Contributor

Nesta página vamos nos inspirar neste layout: https://epistat.wiv-isp.be/ mas usando usando o MVC do Django. o conteúdo informacional será basicamente o mesmo.

@xmnlab
Copy link
Member

xmnlab commented Dec 19, 2016

@fccoelho gostaria de confirmar o conteúdo dessa página.

No episat tem:

  • gráfico de casos reportados por tipo de doença (talvez seja registro de todos os anos);
  • informação de casos selecionados (tipo de doença, periodo, estado, gênero) / total de casos;
  • mapa do territorio dividido por estados, cada estado possui uma cor de acordo com os casos reportados (choropleth);
  • gráfico de total de casos reportados por semana ao longo dos anos;
  • gráfico da distribuição de casos reportados por idade;
  • gráfico da distribuição de casos reportados por gênero;

perguntas:

  • todos os itens acima estarão presentes na página?
  • haverá alguma outra informação que deverá ser apresentada?
  • cada alteração de filtro recarregará a página?

@xmnlab
Copy link
Member

xmnlab commented Dec 19, 2016

Primeiro esboço:

estados

@fccoelho
Copy link
Contributor Author

fccoelho commented Dec 19, 2016 via email

@xmnlab
Copy link
Member

xmnlab commented Dec 20, 2016

@fccoelho como vai ser essa seleção entre estado e municipio?

tendo como base a ideia de tela acima, quando o usuário clica em um estado, o sistema irá trocar o mapa do Brasil pelo mapa do estado com a divisão por cidade?

@fccoelho
Copy link
Contributor Author

As páginas dos estados serão acessadas a partir dos cards na página principal ou através de url:
/alerta/RJ

Por isso nesta página não aparece nunca o mapa do Brasil, apenas o mapa do estado e seus municípios. Note que no Banco, na tabela Dengue_global.Municipio você pode obter o polígono de todos os municípios em formato geojson.

@xmnlab
Copy link
Member

xmnlab commented Dec 29, 2016

@fccoelho só por curiosidade ... sabes dizer qual foi a razão pela escolha de colocar o geojson dentro da base de dados? algum motivo técnico? ou apenas para organizar os dados?

@fccoelho
Copy link
Contributor Author

fccoelho commented Dec 30, 2016 via email

@xmnlab
Copy link
Member

xmnlab commented Dec 30, 2016

@fccoelho

Existe algum dicionário de dados referente aos campos da tabela? Gostaria de entender melhor alguns dados. Ou se vcs tem alguma documentação ou report que possa ajudar, seria bem vindo.

@fccoelho
Copy link
Contributor Author

fccoelho commented Dec 30, 2016 via email

@xmnlab
Copy link
Member

xmnlab commented Dec 30, 2016

Nós teremos multiplas doenças também. A ideia é extendermos para dados de
zika e chikungunya já neste milestone. O banco e a maioria das views já dão
suporte à identificação da doença como um parâmetro.

@fccoelho analisando os esquemas Dengue_global e Municipio, não consegui entender como fazer esse vínculo.

Vi que os casos são armazenados na Historico_alerta os cids são usados pela Notificacao .. porém ainda não vi forma de juntar essas duas informações já que Notificacao está por bairro e não apresenta dados de casos.

Também já temos idade e gênero no banco, de maneira que poderemos
implementar praticamente as mesmas visualizações.

Dentro do esquema Dengue_global e Municipio não consegui encontrar essa informação.

Sabes dizer onde posso encontrar essas informações?

@xmnlab
Copy link
Member

xmnlab commented Dec 30, 2016

Apenas uma ideia da distribuição dos gráficos na visualização por estado:

vis-estado

@xmnlab
Copy link
Member

xmnlab commented Dec 30, 2016

@fccoelho

Os campos casos_est, casos_est_min, casos_est_max e casos estão em número absolutos?

O que são os campos p_rt1, p_inc100k?

@fccoelho
Copy link
Contributor Author

fccoelho commented Dec 31, 2016 via email

@fccoelho
Copy link
Contributor Author

fccoelho commented Dec 31, 2016 via email

@xmnlab
Copy link
Member

xmnlab commented Jan 2, 2017

Existe ainda uma tabela chamada Notificação, que também conté os CIDs.
Nesta tabela devem entrar os dados de sexo e idade mas ainda não estão
sendo enviados regularmente (devemos regularizar isso no início deste ano).

Atualmente para fazer os gráficos de distribuição por tipo de doença, ainda faltaria algum dado casos, correto? ao menos não encontrei nada até o momento.

A tablela Historico_alerta contem os resultados da modelagem estatística
feita para o calculo do nível de alerta. Estes alertas são calculados por
minicípio, com exceção do Rio de janeiro onde são feitos por AP (uma
subdivisão do município)

Ok ... vou ficar atento a isso.

Estou trabalhando nesse notebook para ir me orientando:

https://github.com/xmnlab/AlertaDengue/blob/develop/notebooks/Essay.ipynb

@fccoelho
Copy link
Contributor Author

fccoelho commented Jan 2, 2017 via email

@xmnlab
Copy link
Member

xmnlab commented Jan 13, 2017

@fccoelho

Existe ainda uma tabela chamada Notificação, que também conté os CIDs.
Nesta tabela devem entrar os dados de sexo e idade mas ainda não estão
sendo enviados regularmente (devemos regularizar isso no início deste ano).

Sabes quando isso vai estar regularizado? Em quais campos estarão essas informações?

Essa é o diagrama da base que tenho aqui:

dengue_er

@fccoelho
Copy link
Contributor Author

fccoelho commented Jan 14, 2017 via email

@fccoelho
Copy link
Contributor Author

fccoelho commented Jan 15, 2017 via email

@xmnlab
Copy link
Member

xmnlab commented Jan 17, 2017

@fccoelho @flavioamieiro

Vocês conseguem me passar a descrição de cada coluna das tabelas (ou me indicar onde encontro) :

  • Municipio.HIstorico_alerta
  • Municipio.alerta_mrj
  • Municipio.Notificacao

Estou tendo dificuldade de entender como relacionar o Historico_alerta com Notificacao para poder fazer os gráficos de distribuições por Gênero, Idade e Doença.

Pelo que percebi, em Notificacao tem dados nos campos de gênero, por exemplo, pode conter F ou M .. porém por bairro e data só aparece uma linha .. ou seja um bairro em uma data só tem F ou M ... e isso se estende para os outros campos (idade, doença). E na tabela Historico_alerta também só existe um registro por data e cidade, ou seja, para a cidade X tem apenas 1 registro para a data Y.

Poderiam dar um help?

@fccoelho
Copy link
Contributor Author

fccoelho commented Jan 18, 2017 via email

@xmnlab
Copy link
Member

xmnlab commented Jan 19, 2017 via email

@xmnlab
Copy link
Member

xmnlab commented Jan 20, 2017

@fccoelho

A maioria dos casos não possuem nem idade .. nem gênero .. e todos aparecem só pra dengue clássica ..

será colocado para os casos não informados dentro de uma categoria, por exemplo, "Não informado"? ..

pq usando os próprios gráficos como opções para alterar o filtro (assim como https://epistat.wiv-isp.be/ ) ... então, penso, que seria importante ter essa categoria. Porém o gráfico ficaria sempre com essa categoria com a barra cheia .. e os demais imperceptíveis.

O que vc acha?

@xmnlab
Copy link
Member

xmnlab commented Jan 20, 2017

exemplo com dados de todos os anos:

gender

Eu ainda estou conferindo os dados .. mas só pra ter uma ideia.

@flavioamieiro
Copy link
Collaborator

@xmnlab o @fccoelho conhece muito melhor o banco e os dados do que eu (por isso não posso ajudar tanto aqui), mas uma coisa a se considerar é que eu só reimportei os dados de 2016. Se você levou em consideração dados de todos os anos, filtrar por 2016 talvez aumente a quantidade de casos em que o gênero foi relatado. O que eu não sei dizer é se os dados de antes de 2016 já tinham informação de gênero (nesse caso basta reimportar os dados) ou se o DBF não continha essa informação ainda (nesse caso acho que não teremos esses dados para os anos anteriores).

@fccoelho
Copy link
Contributor Author

fccoelho commented Jan 22, 2017 via email

@xmnlab
Copy link
Member

xmnlab commented Jan 23, 2017 via email

@fccoelho
Copy link
Contributor Author

fccoelho commented Mar 6, 2017 via email

@flavioamieiro
Copy link
Collaborator

Sim, quando um usuário faz um upload que dispara uma importação, nós guardamos a data do upload (que basicamente é a data da importação). A informação tá no model DBF.

A única questão é que enquanto a importação por upload não for a única forma de importar dados (enquanto ainda fizermos importações manuais) essa informação não vai refletir a realidade exatamente.

@xmnlab
Copy link
Member

xmnlab commented Mar 8, 2017

@fccoelho @flavioamieiro

fazemos então pelo dbf?

se sim, onde eu pego essa informação?

@fccoelho
Copy link
Contributor Author

fccoelho commented Mar 8, 2017 via email

@flavioamieiro
Copy link
Collaborator

O upload teoricamente está pronto. Só preciso que alguém teste o processo todo pra ver se podemos passar a usar ele.

Eu só estou fazendo um rebuild do container por que tinha desativado a importação (por causa do problema com o constraint) mas já tá ativada de novo no código. Assim que o rebuild terminar a importação vai voltar a funcionar normalmente e eu aviso aqui.

@flavioamieiro
Copy link
Collaborator

Update: o deploy já está atualizado, com a importação ativada.

@fccoelho
Copy link
Contributor Author

fccoelho commented Mar 8, 2017 via email

@xmnlab
Copy link
Member

xmnlab commented Mar 9, 2017

@fccoelho

#47 (comment)

alguma novidade sobre esse comentário?

@fccoelho
Copy link
Contributor Author

Ainda não testei. @flavioamieiro você tinha feito um tutorial do upload, numa mensagem de email, né? se vc conseguir recuperar isso, me manda para eu enviar para a Sara assim ela pode fazer o teste e começar a usar na rotina do sistema mesmo.

Enquanto isso @xmnlab , pode preparar o código para ler a última data da tabela de uploads, com um fallback de dizer "unknown" enquanto não tivermos as datas sendo atualizadas regularmente nesta tabela.

@xmnlab
Copy link
Member

xmnlab commented Mar 11, 2017

@fccoelho

seria a dbf_dbf?

select uploaded_at from dbf_dbf
order by uploaded_at desc limit 1

vai considerar como data de atualização qq arquivo subido?

@fccoelho
Copy link
Contributor Author

fccoelho commented Mar 11, 2017 via email

@flavioamieiro
Copy link
Collaborator

@fccoelho Eu não lembro de ter feito um tutorial por escrito (e não encontrei nada aqui). Lembro de ter encontrado a Thais para explicar para ela, mas é muito simples: basta entrar em https://info.dengue.mat.br/dbf/upload/ (tem que ter um usuário cadastrado lá) e preencher o formulário. Assim que a barra de progresso do envio estiver completa (e todos os campos do formulário preenchido), o botão de enviar passa a estar habilitado, e aí basta clicar em enviar. A aplicação vai fazer a importação fora do ciclo de request/response, mas quando a importação estiver pronta, o usuário vai receber um e-mail (com o endereço que tá cadastrado para o usuário) informando o status da importação.

A data do dbf que nós registramos é informada pelo usuário (no campo "data da exportação" no formulário).

@xmnlab Eu não sei exatamente qual o campo da tabela no banco, mas já que estamos usando código da aplicação, é bem melhor usar os Models do django para acessar os atributos. Nesse caso, o código abaixo resolveria:

from dbf.models import DBF                    
DBF.objects.order_by('export_date').last()

A API de queryset tem várias outras maneiras úteis de usar os models. Assim o código fica muito mais legível e as queries em geral ficam bem mais eficientes.

@xmnlab
Copy link
Member

xmnlab commented Mar 12, 2017

@fccoelho @flavioamieiro

from dbf.models import DBF
DBF.objects.order_by('export_date').last()

show! vou trabalhar nisso!

só uma dúvida: essa data vai servir para todas os estados? como não sei como funciona o processo de informação, não sei se minha dúvida faz sentido ... a principio me parece estranho q possa ser atualizado um dado de natureza qualquer ... e refletir que a última data de atualização de um estado seja a desse outro dado.

@fccoelho
Copy link
Contributor Author

fccoelho commented Mar 12, 2017 via email

@xmnlab
Copy link
Member

xmnlab commented Mar 13, 2017

@fccoelho

Sim esta data deve funcionar. Mas vc terá que atentar que cada estado terá
sua ultima export_date

Os atributos da model DBF são esses:

uploaded_by = models.ForeignKey('auth.User')
    file = models.FileField()
    uploaded_at = models.DateTimeField(auto_now_add=True)
    export_date = models.DateField()
    notification_year = models.IntegerField(default=current_year)

como diferenciar a data de um export_date de cada estado?

Vi aqui que no campo files tem uns arquivos com alguns padrões EES, ERJ, mas por exemplo não vi EPR. Qual seria o padrão para identificar o estado para pegar a última data de upload?

@fccoelho
Copy link
Contributor Author

fccoelho commented Mar 13, 2017 via email

@flavioamieiro
Copy link
Collaborator

@xmnlab realmente a informação de estado não está no model de DBF. Isso por que quando a gente planejou essa feature a informação de estado não era relevante (nós só nos preocupávamos com o município, e usávamos o geocódigo).

Como o @fccoelho disse, acho que podemos adicionar essa informação no DBF, só temos que pensar em como fazer isso.

A principio, acho que a melhor forma seria adicionar um campo novo no formulário que o usuário preenche na hora de enviar para informar o Estado. Seria bem simples para o usuário (só um select a mais para ele escolher entre os estados que estão cadastrados) e para a gente o dado já estaria imediatamente disponível. O que acham?

Sobre o padrão de nomes: é bom tomar cuidado com eles. Primeiro por que eu acho que existe uma chance grande de errarem na hora de gerar o arquivo (e um erro passaria fácilmente sem perceber) e segundo por que o django, na hora que recebe os uploads, pode mudar o nome do arquivo (por exemplo, no caso de um arquivo com o mesmo nome já existir).

@xmnlab
Copy link
Member

xmnlab commented Mar 13, 2017

@flavioamieiro

Acho uma boa ideia essa de adicionar o campo de estado.

assim já evita qualquer confusão com o nome do arquivo.

@fccoelho , se vcs confirmarem isso, eu crio uma issue e começo a fazer isso.

Essa issue já está gigante, ta ficando confuso aqui já.

@xmnlab
Copy link
Member

xmnlab commented Mar 13, 2017

@fccoelho

na visualização de estados o mapa de alertas utiliza a Historico_alerta.

Tenho entendido que essa tabela é apenas pra Dengue. Como podemos ter os alertas para todas as doenças?

@fccoelho
Copy link
Contributor Author

fccoelho commented Mar 14, 2017 via email

@xmnlab
Copy link
Member

xmnlab commented Mar 14, 2017 via email

@fccoelho
Copy link
Contributor Author

fccoelho commented Mar 14, 2017 via email

@xmnlab
Copy link
Member

xmnlab commented Mar 14, 2017 via email

@fccoelho
Copy link
Contributor Author

fccoelho commented Mar 14, 2017 via email

@xmnlab
Copy link
Member

xmnlab commented Mar 14, 2017

ok .. vou abrir abrir uma issue pra isso (mesmo que eu vou fazer isso ainda hoje) ..
mas pq por aqui já não está dando pra controlar o que está pendente.

@xmnlab
Copy link
Member

xmnlab commented Mar 14, 2017

Estou encerrando essa issue.

Criei duas issues com as itens novos relacionados a essa issue.

Se verem necessidade de algum ajuste referente a visualização podem abrir uma issue nova.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants