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

Paes diz que pode cumprir calendário de vacinação e ter festas de Réveillon

Prefeito Eduardo Paes prometeu cobrar o Ministério da Saúde para que cumpra prazos de entregas de vacinas - Reprodução/Youtube
Prefeito Eduardo Paes prometeu cobrar o Ministério da Saúde para que cumpra prazos de entregas de vacinas Imagem: Reprodução/Youtube

Colaboração para o UOL

14/05/2021 11h55

Recentemente a prefeitura do Rio de Janeiro anunciou um calendário de vacinação, com a meta de imunizar 90% da população adulta até 23 de outubro. O prefeito Eduardo Paes (DEM) falou sobre o assunto hoje e mostrou otimismo. Ele disse que esse calendário é conservador e que provavelmente a cidade terá festas de Réveillon e Carnaval. Mas ressaltou que tudo depende da chegada de vacinas.

"A gente tem tido estabilidade na entrega da AstraZeneca. Chegando nessas condições, vamos ter Réveillon e vamos ter Carnaval", animou-se Paes.

Paes negou seja uma expectativa otimista, principalmente porque entende que a cidade tem capacidade de vacinar mais pessoas do que atualmente.

"Não é uma visão excessiva. Eu diria que é até conservadora. Nossa capacidade de vacinação é muito maior que essa. Não é um cenário arrojado. Se tivéssemos mais vacinas, teríamos sido ainda mais arrojados", comentou o prefeito.

Paes disse que o calendário foi feito com base em informações do PNI (Programa Nacional de Imunização) e prometeu que vai cobrar o Ministério da Saúde para que isso seja cumprido - assim como o cidadão poderá cumprir a realização do calendário divulgado.

"O novo calendário existe para que as pessoas possam cobrar, e a gente também possa cobrar. Recebemos dados oficiais, que vão sendo informados pelo Ministério da Saúde. Vamos cobrar para que esses dados se concretizem. Vamos mover montanhas para que esse cronograma consiga ser cumprido. Vamos agir com toda transparência, como temos feito, cobrando o governo federal e o Ministério da Saúde. Quando o Butantan recebe doses na segunda e só há distribuição na quinta, temos atraso de um dia, um atraso angustiante para quem precisa", explicou Paes.

Na próxima semana, provavelmente na segunda-feira (17), a prefeitura do Rio de Janeiro vai estabelecer um decreto que vai flexibilizar a realização de eventos, com uma série de protocolos, inclusive a testagem de público em shows, por exemplo.

Todas Regiões istrativas do Rio de Janeiro têm risco alto de contágio de covid-19 atualmente. O subsecretário de Vigilância em Saúde, Márcio Henrique Garcia, disse que houve uma "leve evolução" pois no boletim anteriores 30 Regiões tinham risco "muito alto" de contaminação.