Coder Social home page Coder Social logo

alertadengue / alertadengue Goto Github PK

View Code? Open in Web Editor NEW
22.0 16.0 19.0 27.69 MB

Portal de dados do Projeto Alerta Dengue

Home Page: https://info.dengue.mat.br/

License: GNU General Public License v3.0

Python 1.61% CSS 0.69% JavaScript 1.74% HTML 40.64% Shell 0.02% Jupyter Notebook 54.76% PLpgSQL 0.52% Smarty 0.01% Dockerfile 0.02%
science epidemiology surveillance dengue-fever

alertadengue's Introduction

AlertaDengue

This repository contains the main applications and services for the InfoDengue web portal.

InfoDengue is an early-warning system to all states of Brazil, the system is based on the continuous analysis of hybrid data generated through the research of climate and epidemiological data and social scraping.

For more information, please visit our website info.dengue.mat.br to visualize the current epidemiological situation in each state.


Sponsors


How to contribute with InfoDengue

You can find more information about Contributing on GitHub. Also check our Team page to see if there is a work oportunity in the project.


How data can be visualized

The Infodengue website is accessed by many people and it is common for us to receive news that this information is used in the definition of travel and other activities. All data is compiled, analyzed and generated in a national level with the support of the Brazilian Health Ministry, the weekly reports can be found in our website through graphics or downloaded in JSON and CSV files via API.

API

The InfoDengue API will provide the data contained in the reports compiled in JSON or CSV files, it also provides a custom range of time. If you don't know Python or R, please check the tutorials here.

Reports

If you are a member of a Municipal Health Department, or a citizen, and you have interest in detailed information on the transmission alerts of your municipality, just type the name of the city or state here.


Where the data comes from

  • Dengue, Chikungunya and Zika data are provided by SINAN as a notification form that feeds a municipal database, which is then consolidated at the state level and finally, federally by the Ministry of Health. Only a fraction of these cases are laboratory confirmed, most receive final classification based on clinical and epidemiological criteria. From the notified cases, the incidence indicators that feed the InfoDengue are calculated.
  • Weather and climate data are obtained from REDEMET in the airports all over Brazil.
  • Epidemiological indicators require population size. Demographic data of Brazilian cities are updated each year in Infodengue using estimates IBGE.

Check out below the softwares we use in the project:

Django postgis docker
celery nginx plotly

alertadengue's People

Contributors

breno-azevedo avatar claudia-codeco avatar dependabot[bot] avatar eltonn avatar esloch avatar fccoelho avatar flavioamieiro avatar ibianka avatar israelst avatar luabida avatar marfcg avatar ribackthais avatar semantic-release-bot avatar turicas avatar xmnlab avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

alertadengue's Issues

Cortar o Logo

Para remover a referência à cidade do Rio de Janeiro, vamos iniciar cortando o Logo para que mostre apenas INFO Dengue.

Barra inferior (Logos dos Parceiros) - atualizar e tirar links

  1. Tirar hyperlink para email (esse link aparece em todas as páginas, exceto a principal)
  2. Tirar o hyperlink da palavra Parceiros (aparece na pagina Equipe e Saiba Mais)
  3. Tirar a menção ao 1746 (deixar apenas na pagina da cidade do Rio, se possivel)
  4. Tirar o logo do PENSA
  5. Colocar o logo da Sec Est Saude RJ
  6. Deixar os logos menores

expor links para views com as séries temporais

hoje para visualizar as séries temporais que alimentam o Alerta, é preciso estar logado. para eliminar este requisito basta modificar o template para remover os links da barra de navegação da clausula {% if user.is_authenticated %}

Municipio tables

dear all,

when I try to execute the follow command:

 python AlertaDengue/manage.py migrate

I receive this message:

LINE 1: select * from "Municipio".alerta_mrj;

I have looked in the files something that create Municipio tables but at this point I didn't have any success.

Any idea?

Ajuste no sistema para trabalhar com Historico_alerta para todas as doenças

@fccoelho @flavioamieiro

Devido à inclusão da chikungunya no sistema gostaria de saber de vocês o que vocês acham sobre o tema.

Na tela principal nos cards, eu estava utilizando já os dados processados na Historico_alerta.

Eu vejo duas opções:

  1. utilizar a tabela Notificacao e somar os casos apresentados para todas as doenças dentro do periodo analisado.

  2. fazer uma view para somar os casos já processados na Historico_alerta e Historico_alerta_chik.

Até o momento vi a necessidade apenas de somar os casos* apresentados na tabela Historico_alerta, então só incluí esses campos na view:

SELECT 
    dengue."data_iniSE",
    dengue."SE",
    dengue.casos_est + chik.casos_est AS casos_est,
    dengue.casos_est_min + chik.casos_est_min AS casos_est_min,
    dengue.casos_est_max + chik.casos_est_max AS casos_est_max,
    dengue.casos + chik.casos AS casos,
    dengue.municipio_geocodigo
FROM 
    "Municipio"."Historico_alerta" AS dengue
    INNER JOIN "Municipio"."Historico_alerta_chik" AS chik
        ON dengue."SE" = chik."SE"
	    AND dengue.municipio_geocodigo = chik.municipio_geocodigo

o que vocês acham?

Barra Azul

Os botões "InfoDengue" e "Inicio" estão fazendo a mesma coisa. Solução: tirar o link vinculado ao "InfoDengue"

Redesenho da página principal

Atualmente, a página principal do site desenha os polígonos de todos os municípios participantes do projeto. Com o número de municípios se aproximando de 1000, o tempo de carregamento da página torna-se muito grande.

A ideia aqui é modificar o layout removendo o mapa.

Uma sugestão para o novo layout seria baseado num grid de 3 colunas do bootstrap. Na primeira linha ficaria gráfico atual com a série agregada dos estados. Da segunda linha em diante, teriamos um layout baseado em cards, três por linha, que conteriam um resumo da situação em cada estado:

  • Número de municípios participantes
  • Total de casos notificado e estimados na semana
  • Previsão de casos para as próximas semanas
  • Variação em relação à semana anterior
  • Link para a página do estado

Incluir campo de última atualização na visualização por estados

Complemento da issue #47.

Adicionar logo abaixo do nome do estado, a data da ultima atualização de dados. pois isto varia de estado para estado.
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.

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.

Criar campo para inclusão de UF na importação de dados

Conforme discutido em #47 ,

@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).

Alerta Amarelo Rio de Janeiro com 0 casos.

@fccoelho @flavioamieiro

Estou fazendo aqui uns testes e estou comparando com a versão que está no online.

Verifiquei que está tendo divergências com os valores apresentados para a cidade do Rio de Janeiro (talvez porque a versão online está mostrando a semana 9 e a versão local está mostrando a semana 10).

Porém, uma coisa que me pareceu estranha é que o mapa aparece com alerta amarelo, porém está dizendo que tem 0 (zero) casos de dengue. Isso faz sentido?

rio-mapa-online

Desenvolver uma view por AP

Desenvolver uma view que será ativada quando o usuário clica em um polígono do mapa. A oferecerá um dashboard analítico contendo dados somente da quela região incluindo um mapa detalhado.

Definir estrutura do site para a versão multi-cidade

Esta issue deve ser desenvolvida no branch multi-city
Atualmente o Site apresenta o mapa do Rio de Janeiro diretamente na raiz, "/"

precisamos definir se vamos ter urls diferentes para cada UF/municipio, por exemplo:
/rj/rio-de-janeiro ou /pr/cascavel.

neste caso precisaríamos de uma entrada no urls.py como esta:

url(r'^alerta/([a-zA-z]{2})/([\w\s]+)', AlertaPageView.as_view(), name='alerta')

e modificar o codigo da view AlertaPageView para para poder receber e tratar estes parâmetros retornando o mapa correspondente.

Corrigir o CSS do submenu

O submenu (Alerta, AlertaDetalhado, Séries Históricas) está com cores que as vezes ficam invisíveis (contra o fundo). é preciso consertar isso.

Alterar submenu de histórico e detalhes

  • Trocar mapa por histórico no menu Principal
  • Fazer com que o menu de Histórico seja apenas histórico, mesmo a visão de mapas.
  • fazer com que este submenu (tabs) só seja visível quando se está na página de historico
  • Permitir a construção de mapas de semanas anteriores, possivelmente com um slider para as datas.

Caching

@fccoelho @flavioamieiro

Com a nova funcionalidade da página de alertas por estado, onde a cada alteração de filtro será atualizada a página, percebe-se que o transmissão de dados será intensa. por exemplo na visualização por Paraná é baixado em torno de 5 MB a cada requisição.

Fiz um teste gravando os json em arquivos .json e deixando dentro de static ... e teve um resultado positivo. A primeira vez que carrega ele já é mais rápido que a versão anterior. E na segunda vez ele já está cacheado no navegador (caindo para 500KB).

Tentei fazer só por:

response = HttpResponse(geojson_city)
response['Cache-Control'] = 'max-age=0'
return response

Porém não funcionou. Não sei se é possível fazer isso.

Pensei que talvez poderia ser feito uma rotina na inicialização do aplicativo, onde ele verificaria se foi criado o json de cada cidade dentro de static, e em caso negativo, poderia criá-lo. Assim não seria necessário adicionar esses arquivos no github.

Poderia também ser feito testes com arquivos json para todo o estado. Com relação a pegar esses dados do django, penso que da diferença, pois além do tempo de execução dentro da aplicação, tem ainda o tempo que leva nas verificações do protocolo. Cacheando no cliente não sei se tem vantagem.

O que vocês opinam?

Página Saiba Mais - formatação

Problema 1: O texto corrido não convida à leitura
Solução:

  1. Colocar um índice no inicio, para que a pessoa possa acessar diretamente o bloco. OU Fazer o bloco "abrir" quando apertar o titulo.
    Problema 2: faltou colocar o email do projeto na ultima linha do texto:
    Em caso de dúvidas, entre em contato conosco: [email protected]

Titulo do Site - tirar a palavra Brasil

enquanto não tiver dados do pais todo, melhor não colocar Brasil no titulo.
Abaixo do titulo escrever:
Alerta Dengue atualmente opera em todo o Estado do Rio de Janeiro.

Link para e-mail de contato ausente

Nas páginas "Saiba Mais" e "Fale Conosco", o link para o e-mail de contato está ausente:

  • Na página "Saiba mais", no bloco:
  • Como Participar do Sistema de Alerta InfoDengue: "Em caso de dúvidas, entre em contato conosco: " Issue sub-mencionada aqui: #34
  • Na página "Fale conosco": "Gostaria de ter mais informações ou tirar dúvidas sobre o Sistema de Alerta Info Dengue? Entre em contato conosco: "

Cidades presentes no mapa na visualização por estado

@fccoelho @flavioamieiro

Verifiquei aqui que a lista de cidades que é utilizada para montar o gráfico está baseada em Historico_alerta(_chik).

Caso a cidade não estiver presente nessa tabela, não estará presente no gráfico. Em outras palavras, como ainda não tem nenhum dado ha Historico_alerta_chik, não exibirá nenhuma cidade no mapa.

Remove `SECRET_KEY` from this repository

The SECRET_KEY in settings.py should not be public. It should be generated and stored somewhere else. It cannot be generated for each deploy though, so it's not enough to just do it in the Dockerfile.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.