;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Matemática é estratégica para conter coronavírus; o que o cálculo mostra

Cadu Rolim/Fotorarena/Estadão Conteúdo
Imagem: Cadu Rolim/Fotorarena/Estadão Conteúdo

Karina Toledo

Agência Fapesp

15/03/2020 04h00

No arsenal ao qual cientistas recorrem com o intuito de combater epidemias, os modelos matemáticos estão entre os itens estratégicos. Mais do que estimar como será a disseminação da doença, o número de infectados e o percentual de mortes e hospitalizações, essas ferramentas permitem simular inúmeros cenários e, assim, testar a eficácia de intervenções que podem ser adotadas pelas autoridades de saúde para reduzir o contágio, como o fechamento de escolas, o cancelamento de eventos públicos e a restrição de viagens.

Modelos já bem estabelecidos para o estudo da gripe e outras infecções respiratórias podem ser adaptados com relativa facilidade para prever a disseminação do novo coronavírus (SARS-CoV-2), auxiliando governos e gestores de saúde no planejamento de ações para conter a transmissão e atender os doentes. Faltam, no entanto, algumas informações-chave para tornar as estimativas minimamente precisas, como, por exemplo, o percentual de pessoas que se infectam e não manifestam sintomas.

"Indivíduos com febre, tosse e desconforto respiratório têm maior probabilidade de irem ao hospital e serem testados. Os assintomáticos, por outro lado, não vão ao médico e, mesmo sem saber, podem transmitir o vírus para familiares, amigos e colegas de trabalho. Para descobrir quantas pessoas estão nessa condição seria necessário testar todo mundo - algo impossível neste momento, pois é preciso poupar recursos para o atendimento de quem está realmente doente", disse a matemática Sara Del Valle, especialista em modelagem de doenças infecciosas do Laboratório Nacional de Los Alamos, nos Estados Unidos.

Na avaliação de Marcelo Gomes, pesquisador do Programa de Computação Científica da Fundação Oswaldo Cruz (Fiocruz), além do percentual de assintomáticos também é crucial determinar a taxa de infectividade desses casos, ou seja, o quanto indivíduos sem sintomas são capazes de transmitir o vírus. "Isso pode alterar drasticamente a capacidade de controlar a propagação da Covid-19. Se a transmissão ocorrer majoritariamente a partir de pessoas com sintomas, o cenário é mais favorável. Porém, em uma situação inversa, seriam necessárias medidas para reduzir o contato entre as pessoas que alcancem toda a população, como o fechamento de escolas, por exemplo", disse.

Outro fator importante e que ainda não está claro é por quanto tempo pacientes curados permanecem imunes ao vírus. "Há relatos de pessoas que tiveram alta e, após alguns dias, voltaram a manifestar sintomas, foram testadas e tiveram resultado positivo para Covid-19 novamente. Pode ter sido uma recaída como também pode ser uma nova infecção. Neste segundo caso, a dinâmica da epidemia muda completamente, pois a imunidade temporária - se de fato existir - é muito curta, o que impede a ocorrência de um fenômeno epidemiológico conhecido como imunidade de rebanho, uma espécie de barreira de transmissão formada por indivíduos previamente infectados", disse Gomes.

No Brasil, segundo Gomes, torna-se mais difícil conter a disseminação à medida que o vírus invade a Europa e os Estados Unidos, locais com o qual o país mantém maior intercâmbio de turistas e viajantes a trabalho. Invasão nesse caso, ressalta o pesquisador, significa a existência de transmissão interna da doença e não apenas o registro de casos importados.

Com base em dados de tráfego aéreo, Gomes avalia que São Paulo é a cidade com maior risco de apresentar novas infecções no curto prazo, pois é onde desembarca a maior parte dos ageiros internacionais. As cidades que mais recebem voos oriundos da capital paulista são, na ordem, Rio de Janeiro, Porto Alegre, Brasília, Curitiba, Belo Horizonte, Salvador e Recife.

"Ainda é cedo para afirmar com precisão qual é a taxa de letalidade da Covid-19 e se a doença representa um problema de saúde pública maior do que a gripe sazonal ou as enfermidades causadas pelos coronavírus que já circulavam entre os humanos", disse Gomes.

Ele arrisca prever, contudo, que caso o surto atual não seja adequadamente controlado, o SARS-CoV-2 pode se tornar um patógeno endêmico no país, que reaparece sazonalmente como o H1N1, um dos causadores da gripe.

"Não conseguimos conter o surto de H1N1 em 2009 e, agora, todo ano ele volta com pequenas modificações", disse. "Por outro lado, essa experiência trouxe muitos ensinamentos para os profissionais em saúde pública e a comunidade científica internacional. Hoje estamos melhor preparados para lidar com pandemias. No Brasil, o Ministério da Saúde implementou a rede de vigilância de casos de síndrome respiratória aguda grave [SRAG], que estabeleceu a notificação obrigatória dos casos em território nacional. O desenvolvimento do InfoGripe [ferramenta de análise e monitoramento de casos de SRAG no Brasil e gera alertas semanais] não seria possível sem a rede de vigilância estabelecida em 2009."

Monitoramento por mídias sociais

Se por um lado as mídias sociais contribuem para a propagação de notícias falsas sobre os mais variados temas - saúde entre eles -, por outro representam uma fonte valiosa de dados para pesquisadores dedicados a rastrear surtos de doenças infecciosas, como é o caso de Del Valle. Seu grupo tem usado plataformas como Twitter, Google e Wikipedia para monitorar malária, dengue, gripe e outras doenças sazonais.

"Durante a temporada de dengue no Brasil, por exemplo, podemos notar um aumento nas buscas por informações relacionadas à doença. À medida que os casos começam a diminuir, também caem as buscas online e as postagens em rede social. Assim, conseguimos saber quando está ocorrendo um surto na região", contou a pesquisadora à Agência FAPESP.

A estratégia, porém, ainda não pode ser usada para a Covid-19. "Todo mundo está fazendo buscas e falando sobre o novo coronavírus neste momento e isso diminui a nossa capacidade de estudar a disseminação por esse método. Podemos, no entanto, usas as mídias sociais para monitorar comportamentos emergentes, como uso de máscaras, cancelamento de viagens e lavagem frequente das mãos. São fatores que impactam a expansão da epidemia", disse.

De acordo com Gomes, justamente porque a população tende a alterar seus hábitos comportamentais diante de uma ameaça como a Covid-19, prever o número de infectados no longo prazo é muito difícil, mesmo com modelos robustos.

"A adoção de medidas como evitar aglomerações e ficar em casa quando tiver sintomas pode ter um impacto significativo nos números", afirmou.

Este texto foi originalmente publicado por Agência FAPESP de acordo com a licença Creative Commons CC-BY-NC-ND. Leia o original aqui.