;(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

Após lockdown, Araraquara mapeia esgoto e investe em testagem comunitária

Rua vazia em Araraquara, em fevereiro, quando foi decretado lockdown - Matheus Pichonelli/UOL
Rua vazia em Araraquara, em fevereiro, quando foi decretado lockdown Imagem: Matheus Pichonelli/UOL

Lucas Borges Teixeira

Do UOL, em São Paulo

27/04/2021 04h00Atualizada em 27/04/2021 11h05

Dois meses depois de instituir lockdown municipal, Araraquara, no interior paulista, tem focado em rastrear a transmissão do vírus para tentar manter a melhora nos indicadores da pandemia de covid-19 em meio à reabertura econômica.

Para isso, está investindo em grupos de testes comunitários, rastreamento de surtos em estabelecimentos comerciais e até mapeamento do esgoto. Atualmente, segundo a prefeitura, menos de 50% dos leitos ocupados na cidade são de moradores de Araraquara.

No início de abril, a istração municipal iniciou uma análise semanal da presença do coronavírus em 50 postos de visita da rede de esgoto espalhados pela cidade. O objetivo é checar locais com maior carga viral e, em caso de altos índices de concentração, avaliar até se é necessário o lockdown regional.

O projeto, desenvolvido em parceria com Faculdade de Ciências Farmacêuticas da Unesp (Universidade Estadual de São Paulo), ainda está em sua forma piloto e não apresentou resultados.

"Pelo que apuramos, ainda não havia nenhuma região comprometida com as amostragens que conseguimos analisar, por isso estão fazendo alguns ajustes. No esgoto tem muita coisa, produtos químicos, estamos vendo um novo processo de decantação, com novo filtro", diz a secretária municipal de Saúde, Eliana Honain.

Além do mapeamento do esgoto, a cidade também tem investido em testagem por meio de duas frentes: busca comunitária e em estabelecimentos comerciais. Na primeira, a prefeitura reuniu 33 equipes de agentes comunitários de Saúde da Família para procurar os focos de transmissão nos bairros.

"Estão selecionando famílias para testar. Como eles moram nos locais, sabem aquelas que confraternizaram, que não levam a sério. Caso o resultado seja positivo, isolamos e monitoramos para que não complique, mas principalmente para interromper a transmissão", afirma Honain.

Na outra iniciativa, agentes da Vigilância Sanitária testam funcionários de estabelecimentos comerciais e, em caso de vários positivos, o local é fechado por sete dias. "Antes de reabrir, como combinado, testamos todos novamente", complementa a secretária.

Até agora, foram testados funcionários de 205 estabelecimentos. Uma fábrica, duas escolas municipais e um supermercado foram fechados.

Rastrear para não fechar

Quando o lockdown de dez dias foi decretado, em 21 de fevereiro, a cidade apresentava 100% de lotação hospitalar e explosão no número de mortes. Na primeira semana de março, chegou a 42 óbitos em sete dias. Na semana ada, foram nove.

A gestão do prefeito Edinho Silva (PT) vê os bons números como resultado direto do lockdown e das fases restritivas do governo paulista. A ocupação de leitos na região continua preocupante (94%), mas, segundo a prefeitura, 53% dos internados são de outras cidades.

O desafio, diz a secretária, é fazer com que os números continuem a cair e que a população não abandone as medidas de distanciamento social. Como? Com um pacto.

"Hoje, cerca de 9% das pessoas testadas são positivadas. Já combinamos com a população que, se chegar a 30% por dois dias seguidos, voltaremos a fechar", afirma Honain. "A mesma coisa com o comércio. Eles entendem que se tiver surto, [o estabelecimento] é fechado [por sete dias]. Assim, conseguimos seguir."