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

Esse conteúdo é antigo

Ribeirão Preto identifica 12 casos de variante do coronavírus de Manaus

O prefeito de Ribeirão Preto, Duarte Nogueira (PSDB)  - RENATO LOPES RP/FUTURA PRESS/ESTADÃO CONTEÚDO
O prefeito de Ribeirão Preto, Duarte Nogueira (PSDB) Imagem: RENATO LOPES RP/FUTURA PRESS/ESTADÃO CONTEÚDO

Do UOL, em São Paulo

23/02/2021 08h59

A Prefeitura de Ribeirão Preto, no interior de São Paulo, identificou 12 casos da nova cepa de Manaus do coronavírus na cidade. A confirmação de que a variante está em circulação no município foi feita em entrevista coletiva na tarde de ontem.

Os 12 casos são de pacientes que foram atendidos no Hospital das Clínicas. Nenhum deles viajou para Manaus ou para a região amazônica.

Para tentar identificar novos casos da cepa manauara e de outras que possam já estar em circulação, o município fará o sequenciamento do vírus em novos pacientes que chegarem ao Hospital das Clínicas de Ribeirão Preto.

"Sequenciados, faremos uma vigilância genômica em Ribeirão Preto e região para poder entender a dinâmica do aparecimento dessas variantes", afirmou o infectologista do hospital Rodrigo Callado.

O prefeito Duarte Nogueira (PSDB) afirmou que medidas estão sendo tomadas para evitar o avanço da doença na cidade. Entre elas está a proibição a motoristas de aplicativo vindos de Araraquara, cidade que entrou em "lockdown" ontem para tentar evitar um colapso no sistema de saúde.

"Esse tipo de coisa nós não iremos permitir. A Transerp já oficiou formalmente os oper.adores de aplicativos dessas plataformas, para evitar esse tipo de atividade, com as consequências da lei, para não operarem em outras cidades, por uma questão de segurança sanitária regional", declarou.

O prefeito disse ainda que enquanto não houver a possibilidade de vacinar a todos, a melhor forma de combater a doença é respeitando o distanciamento social, a não gerar aglomeração e usar máscaras.