Ferramenta de monitoramento do risco de colapso no sistema de saúde em municípios brasileiros com a Covid-19.

Overview

FarolCovid 🚦

Contributors Master update Master update Deploy docker build

Ferramenta de monitoramento do risco de colapso no sistema de saúde em municípios brasileiros com a Covid-19.

Monitoring tool & simulation of the risk of collapse in Brazilian municipalities' health system due to Covid-19.

Fontes de dados

Os dados utilizados na ferramenta estão na nossa API, cujas fontes são:

Veja mais detalhes na página de Metodologia da ferramenta.

Referências metodológicas

Os modelos e respectivos códigos utilizados são baseados no trabalho de Alison Hill e Cappra Institute for Data Science (modelo SEIR), e Kevin Systrom (ritmo de contágio), além de diversos estudos utilizados na nossa metodologia:

Veja mais detalhes na página de Metodologia da ferramenta.

📊 Como colaborar com análises

Estamos migrando as análises para outro repositório! Veja mais em coronacidades-analysis 😉

⚙️ Como executar a aplicação localmente?

Utilizando Python + Virtualenv

# Instale o 'make'
sudo apt-get install -y make

# Crie o virtualenv
make create-env

# Execute o servidor com API externa
make serve

# Execute o servidor com API local. 
# Para isso, você terá que subir a API do simulacovid-datasource
# 1. Para subir o servidor local: `make server-build-run`
# 2. Abra outro terminal e rode para subir os dados: `make loader-build-run`
make serve-local

Utilizando o Docker (Linux)

# Instale o Docker
curl -sSL https://get.docker.com | sudo sh

# Instale o 'make'
sudo apt-get install -y make

# Execute o servidor
# ficará disponível em http://localhost:8501/
make docker-build-run
Comments
  • Incorporar Rt na simulação de intervenções

    Incorporar Rt na simulação de intervenções

    Contexto

    Temos uma métrica para a disseminação da doença no município/UF atual!

    O que fazer

    • Repensar as estratégias de intervenção apresentadas: dado o crescimento atual, o gestor pode simular continuar / aumentar / diminuir a a taxa de contágio (Rt +/- 0.5)
    backend 
    opened by fernandascovino 3
  • Calcula número de infectados ativos e recuperados inicial

    Calcula número de infectados ativos e recuperados inicial

    Closes #50

    • Calcula o número de infectados ativos no último dia
    • Estima os recuperados do último dia (acumulado de infectados - ativos ultimo dia - total mortos)

    Premissas : usamos o total de dias de progressão da doença (mild_period + severe_period + critical_period) para somar os novos casos diários reportados até hoje como os ativos totais.

    Considerações: em alguns municípios, o número de recuperados é < 0!

    Nesses casos, assumimos somente recuperados = infectados acumulados - ativos, pois o negativo pode ser devido à remoção de mortos do total de infectados

    • Possível modificação: se a divulgação de casos for somente graves e críticos, a janela de tempo que devemos considerar é somente severe_period + critical_period
    opened by fernandascovino 3
  • Saude Em Ordem Version 2

    Saude Em Ordem Version 2

    Major changes to the UI:

    • Redesign of the illustrative plot which was changed by a sequence of cards.
    • Changes to the protocols at the end
    • Redesign of the slider which was changed by a heavily hacked radio button group that was re-stylized to become vertical and bigger.
    • Disabling of the "Baixar dados completos" button due to problems with google drive (to be solved later).
    • The task bard now begins as closed in order to not mess with our design.
    • The simula vs saude dropdown selection was changed to be made through 2 buttons (one in each card)

    TODO: 1- Redesign streamlit buttons 2- Add health regions 2- Solve the google drive problem, which is that sometimes google blocks downloads from drive because it senses you are a robot downloading. Possible solutions: 1- Using a credential to download it 2- Using a vpn to download it.

    frontend 
    opened by victor-cortez 2
  • Major update changing how we identify amplitude users

    Major update changing how we identify amplitude users

    • Now we are able to add cookies to the browser using resources/cookiegen.html, which has a setCookie() javascript function and a handler function that will execute commands given as get arguments. Currently we have the cookie arguments and the argument to load the user with geolocation and ip data.

    • Using those cookies amplitude will now take the geolocation cookie and use that information to feed amplitude. With that the geolocation (and possibly future user data features) now depends on information coming from the client side, and not the server side. This is still subject to adblockers and we are not trying to go over it. As of now we are only registering data from the user coming from http headers (although the IP needs to be registered through a third-party to go over streamlit restrictions)

    • Also using those cookies we store a unique user id in each user's browser. If the cookie is already present we use it as the id for amplitude and if not present we create a new one. This way we can track users way better than before when we just relied on the server-side ip.

    • Solved the problem of pointless amplitude logs due to cascade rerunning. Now we have an amplitude logging manager that receives the call for an event but decides if the event is worth logging or not by using our session makeshift db. This is to avoid us logging multiple times the same event when the page reloads.

    • Also added minor changes to Saúdem em ordem's description

    • Also fixed some of streamlit's timing problems that were causing bugs in our mobile version by adding some small wait and page reload triggers.

    opened by victor-cortez 2
  • UX Fixes & version update on methods

    UX Fixes & version update on methods

    • [x] Change tab name to "farolcovid"
    • [x] Add methods disclaimer of new version: Rt + hospital capacity update
    • [ ] Change Rt plot to until 10 days ago + dotted
    • [x] Add mvag to inloco plot @victor-cortez
    • [ ] Review pt-br & accents @victor-cortez
    • [x] Remove bkgd of inloco tag
    • [x] Fix months to capacity overload texts

    Aditional:

    • Fix error to get state rt when city doesn't have it yet

    closes #134

    opened by fernandascovino 2
  • Adicionar notas metodológicas de Nivel de Risco e Rt

    Adicionar notas metodológicas de Nivel de Risco e Rt

    Colocar de forma semelhante à metodologia do modelo

    Nomes dos items no menu lateral:

    • Níveis de Risco (sugestão .py: risk_description.py)
    • Estimando taxa de contágio - @ap1631 confere esse nome? (sugestão .py: rt_description.py)

    Textos: link do docs no trello! :)

    documentation 
    opened by fernandascovino 2
  • Add rt para simulacao de capacidade

    Add rt para simulacao de capacidade

    • Adicionando rt de estados e municípios na simulação:
      • Continuei com os nomes dos parametros de cenarios (lockdown = rt/2, isolation=rt e nothing=rt*2), mas conforme o @gabrielsaruhashi tiver a atualização do front a gente muda as nomeclaturas

    UPDATES:

    • Caso o municipio não tenha Rt , usa o Rt do estado
    • Caso selecione uma região SUS, usa o Rt do estado

    closes #96

    opened by fernandascovino 2
  • Consertando o cálculo da notificação para cidades sem casos

    Consertando o cálculo da notificação para cidades sem casos

    Conjunto de mudanças em 8 arquivos:

    • Adiciona a nova entrada de dados pelo repo do datasource, afeta:

      • README: como rodar a API
      • Makefile + config + loader: add código para a requisição dos dados na API
    • Corrije o cálculo da notificação + limpeza do código em simulation: não estávamos reportando a taxa de notificação do estado para os municípios sem casos, o que fazia com que valores da inicialização do modelo fossem NaN e dava erro!

    • Muda o número da versão da metodologia em model_description

    • Novo notebook de análise em analysis - não precisa subir no stable, mas não faz diferença no código

    opened by fernandascovino 2
  • Adicionando análise de subnotificação e métrica de avaliação do modelo

    Adicionando análise de subnotificação e métrica de avaliação do modelo

    Relacionado a #31 e #52

    • @JoaoCarabetta : pequenas correções: adicionei no output do modelo a data inicial do cálculo da projeção; mudei o nome da cor da paleta para ser usada direto no tema custom

    • @ap1631 : da uma olhada nas considerações iniciais do notebook src/analysis/subnotifications.ipynb :)

    opened by fernandascovino 2
  • FarolV2 reference values + text adjusts

    FarolV2 reference values + text adjusts

    • Muda valores de referência:

             control_classification:	            control_classification:
                column_name: "rt_most_likely"	                column_name: "rt_most_likely"
                cuts: [0, 0.5, 1, 1.2, 10]	                cuts: [0, 0.9, 1.1, 1.4, 10]
                categories: [0, 1, 2, 3]	                categories: [0, 1, 2, 3]
      
            capacity_classification:	            capacity_classification:
                column_name: 'dday_icu_beds'	                column_name: 'dday_icu_beds'
                cuts: [0, 30, 60, 90, 91.001]	                cuts: [0, 15, 20, 30, 91.001]
                categories: [3, 2, 1, 0]	                categories: [3, 2, 1, 0]
      
            trust_classification:	            trust_classification:
                column_name: 'notification_rate'	                column_name: 'notification_rate'
                cuts: [0, 0.3, 0.4, 0.6, 1.001]	                cuts: [0, 0.25, 0.4, 0.5, 1.001]
                categories: [3, 2, 1, 0]	                categories: [3, 2, 1, 0]
      
    • Ajusta textos para capacidade hospitalar em dias

    • Pequenos ajustes de texto (média móvel, etc)

    opened by fernandascovino 1
  • Atualiza com table-ref

    Atualiza com table-ref

    O que foi feito:

    ✔️ Modal "Entenda Mais" nos cards com as tabelas de referência ✔️ Novo banner de novidade (o banner do mapa virou um header) ✔️ Novos ícones no modal "Novidade" e nos cards das ferramentas ✔️ Mapas com tamanho ajustado: O Brasil está inteiro!

    O que falta ser feito:

    • [ ] Atualizar os textos
    • [ ] Verificar a responsividade dos mapas
    opened by dandaramcsousa 1
  • Ajustes nos cards da simulação

    Ajustes nos cards da simulação

    • Melhorar estimativa do card para quando lower-bound não cruza a linha capacidade mas o upper cruza (atual: "mais de 90 dias")
    • Adicionar texto no card para o caso no qual já estourou capacidade
    • Automatizar mensagem de whatsapp para caso onde "dá ruim" em zero dias
    frontend 
    opened by anappellegrino 1
  • Criar métricas de avaliação do modelo

    Criar métricas de avaliação do modelo

    • Como verificar o gap entre a simulação e dados observados?
    • Qual o período para verificação vamos considerar? últimos 7/15 dias

    Premissas:

    • Fitar pelo número de mortes: assumimos não ter subnotificação nessa classe
    model enhancement 
    opened by fernandascovino 2
Owner
Impulso
A Impulso é uma organização sem fins lucrativos cujo principal objetivo é criar capacidade analítica em governos.
Impulso
Script de monitoramento das teclas do teclado, salvando todos os dados digitados em um arquivo de log juntamente com os dados de rede.

listenerPython Script de monitoramento das teclas do teclado, salvando todos os dados digitados em um arquivo de log juntamente com os dados de rede.

Vinícius Azevedo 4 Nov 27, 2022
Ontario-Covid-Screening - An automated Covid-19 School Screening Tool for Ontario

Ontario-Covid19-Screening An automated Covid-19 School Screening Tool for Ontari

Rayan K 0 Feb 20, 2022
Template (v0) do Sistema Chatbot - atividade síncrona - INE5404

ine-5404-sistema-chatbot-template Template (v0) do Sistema Chatbot - atividade síncrona - INE5404 Veja abaixo um exemplo de funcionamento do sistema:

null 0 Dec 7, 2021
Script em python, utilizando PySimpleGUI, para a geração de arquivo txt a ser importado no sistema de Bilhetagem Eletrônica da RioCard, no Estado do Rio de Janeiro.

pedido-vt-riocard Script em python, utilizando PySimpleGUI, para a geração de arquivo txt a ser importado no sistema de Bilhetagem Eletrônica da RioCa

Carlos Bruno Gomes 1 Dec 1, 2021
Um sistema de llogin feito em uma interface grafica.

Interface-para-login Um sistema de login feito com JSON. Utilizando a biblioteca Tkinter, eu criei um sistema de login, onde guarda a informações de l

Mobben 1 Nov 28, 2021
🌍💉 Global COVID-19 vaccination data at the regional level.

COVID-19 vaccination data at subnational level. To ensure its officiality, the source data is carefully verified.

sociepy 61 Sep 21, 2022
To check my COVID-19 vaccine appointment, I wrote an infinite loop that sends me a Whatsapp message hourly using Twilio and Selenium. It works on my Raspberry Pi computer.

COVID-19_vaccine_appointment To check my COVID-19 vaccine appointment, I wrote an infinite loop that sends me a Whatsapp message hourly using Twilio a

Ayyuce Demirbas 24 Dec 17, 2022
With the initiation of the COVID vaccination drive across India for all individuals above the age of 18, I wrote a python script which alerts the user regarding open slots in the vicinity!

cowin_notifier With the initiation of the COVID vaccination drive across India for all individuals above the age of 18, I wrote a python script which

null 13 Aug 1, 2021
Repositorio com arquivos processados da CPI da COVID para facilitar analise

cpi4all Repositorio com arquivos processados da CPI da COVID para facilitar analise Organização No site do senado é possivel encontrar a lista de todo

Breno Rodrigues Guimarães 12 Aug 16, 2021
Check COVID locations of interest against Google location history

Location of Interest Checker Script to compare COVID locations of interest to Google location history. The script produces a map plot (as shown below)

null 9 Mar 30, 2022
COVID-19 case tracker in Dash

covid_dashy_personal This is a personal project to build a simple COVID-19 tracker for Australia with Dash. Key functions of this dashy will be to Dis

Jansen Zhang 1 Nov 30, 2021
Simple and easy to use python API for the COVID registration booking system of the math department @ unipd (torre archimede)

Simple and easy to use python API for the COVID registration booking system of the math department @ unipd (torre archimede). This API creates an interface with the official browser, with more useful functionalities.

Guglielmo Camporese 4 Dec 24, 2021
We are building an open database of COVID-19 cases with chest X-ray or CT images.

?? Note: please do not claim diagnostic performance of a model without a clinical study! This is not a kaggle competition dataset. Please read this pa

Joseph Paul Cohen 2.9k Dec 30, 2022
Python NZ COVID Pass Verifier/Generator

Python NZ COVID Pass Verifier/Generator This is quick proof of concept verifier I coded up in a few hours using various libraries to parse and generat

NZ COVID Pass Community 12 Jan 3, 2023
Howell County, Missouri, COVID-19 data and (unofficial) estimates

COVID-19 in Howell County, Missouri This repository contains the daily data files used to generate my COVID-19 dashboard for Howell County, Missouri,

Jonathan Thornton 0 Jun 18, 2022
🦠 A simple and fast (< 200ms) API for tracking the global coronavirus (COVID-19, SARS-CoV-2) outbreak.

?? A simple and fast (< 200ms) API for tracking the global coronavirus (COVID-19, SARS-CoV-2) outbreak. It's written in python using the ?? FastAPI framework. Supports multiple sources!

Marius 1.6k Jan 4, 2023
Alerts for Western Australian Covid-19 exposure locations via email and Slack

WA Covid Mailer Sends alerts from Healthy WA's Covid19 Exposure Locations via email and slack. Setup Edit the configuration items in wacovidmailer.py

null 13 Mar 29, 2022
Covid-19-Trends - A project that me and my friends created as the CSC110 Final Project at UofT

Covid-19-Trends Introduction The COVID-19 pandemic has caused severe financial s

null 1 Jan 7, 2022
Vaksina - Vaksina COVID QR Validation Checker With Python

Vaksina COVID QR Validation Checker Vaksina is a general purpose library intende

Michael Casadevall 33 Aug 20, 2022