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

Estudo aponta que divulgação de casos de covid pode demorar até 7 semanas

Demora na divulgação de dados dos casos de covid pode ter atrasado medidas de combate à pandemia, aponta Fiocruz - Bruno Escolastico / Estadão Conteúdo
Demora na divulgação de dados dos casos de covid pode ter atrasado medidas de combate à pandemia, aponta Fiocruz Imagem: Bruno Escolastico / Estadão Conteúdo

Do UOL, em São Paulo

25/08/2020 11h30

Um levantamento feito pela Fiocruz (Fundação Oswaldo Cruz) aponta que a divulgação de casos da covid-19 no Brasil pode demorar até sete semanas entre seu registro no sistema de saúde e a efetiva divulgação nos boletins epidemiológicos.

Para a fundação, isso pode ter atrasado também a tomada de medidas importantes para a saúde no combate à pandemia.

No Amapá, Maranhão, Paraíba, Rio de Janeiro e Rondônia, por exemplo, os dados oficiais registraram o número máximo de casos de covid-19 mais de 50 dias depois de ele ter efetivamente acontecido.

O levantamento faz parte do projeto MonitoraCovid-19 e foi conduzido por pesquisadores do do Instituto de Comunicação e Informação em Saúde (Icict/Fiocruz).

Outros estados que apresentaram uma demora considerável nos registros entre as datas real e oficial no número máximo de casos foram Paraná (30 dias), Rio Grande do Norte e Espírito Santo (27 dias), Goiás (25 dias), Distrito Federal (26 dias), Rio Grande do Sul (22 dias), Roraima (21 dias), Santa Catarina (20 dias) e Amazonas (19 dias). A diferença média entre os estados foi de 17 dias.

O levantamento não acusa falhas técnicas e operacionais, mas aponta desafios trazidos pela pandemia na transmissão dessas informações. "Não é possível apontar uma única causa para explicar essas discrepâncias. Trata-se da soma de vários fatores, alguns deles complexos, que demandariam uma investigação mais detalhada", explica Diego Xavier, epidemiologista do Icict/Fiocruz.

Espírito Santo e Paraná apresentam a maior variação percentual na comparação com os dados do Ministério da Saúde. Nestes estados, os números de casos divulgados nos boletins oficiais são muito maiores do que os casos registrados nos bancos de dados. Situação inversa é observada em Goiás, Piauí e Rio Grande do Norte, onde o volume de casos nos sistemas é superior ao observado nos boletins epidemiológicos.

Na conclusão, a nota técnica recomenda que não seja modificada a forma de divulgação dos registros, mas que as divergências apontadas sejam levadas em conta pelos gestores públicos.

"Seria importante um esforço nacional, que poderia ser liderado pelo próprio Ministério da Saúde. Uma busca coletiva em prol da padronização na forma como são lançados os dados de saúde em todos os níveis, começando pela ponta, ou seja, nos postos de saúde e hospitais públicos dos municípios. Além de padronizar, seria preciso um esforço de treinamento de abrangência nacional, criando uma cultura mais sólida de registro das informações de saúde no Brasil", disse o sanitarista Christovam Barcellos, vice-diretor do Icict/Fiocruz.