;(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 reunião com Sinovac, Butantan diz não ter data para retomar produção

Leonardo Martins

Do UOL, em São Paulo

14/05/2021 04h00Atualizada em 14/05/2021 10h35

O Instituto Butantan ainda não tem previsão de quando deve retomar a produção da vacina CoronaVac. O presidente do instituto, Dimas Covas, se reuniu hoje com o laboratório Sinovac Biotech, que desenvolve a vacina na China, e disse não ter sido notificado de uma nova data de entrega dos insumos.

Em entrevista coletiva durante a entrega do último lote de mais de 1 milhão de doses da CoronaVac na manhã de hoje, Covas ressaltou que haverá atraso na programação de entrega de vacinas em maio e junho ao Ministério da Saúde.

O primeiro contrato foi cumprido com 12 dias de atraso, num volume de 46 milhões de doses. O segundo está em andamento. Foi assinado em fevereiro. Neste momento o que se atrasa é a previsão. Tínhamos a previsão de entregar em maio 12 milhões de doses e, em junho, seis milhões. É uma programação que vai sofrer atraso.
Dimas Covas, diretor do Instituto Butantan

A coordenadora do Controle de Doenças do estado, Regiane de Paula, também ressaltou que o calendário de vacinação será impactado. "Podemos diminuir o ritmo, mas nós não paramos. Esperamos que o governo federal se sensibilize. Estamos em situação muito difícil."

10 mil litros de IFA parados

O governo de São Paulo aguarda a chegada de 10 mil litros de IFA (Insumo Farmacêutico Ativo) que estão parados na China à espera de liberação do governo chinês para embarque ao Brasil.

A previsão inicial era que os insumos fossem liberados ontem da China e chegassem ao território brasileiro no próximo dia 18, conforme já anunciado pelo governo estadual. Mas Covas disse que os chineses desmarcaram essa data e não deram um novo prazo.

O Butantan, assim como a Fiocruz (Fundação Oswaldo Cruz), recebe insumos chineses para a produção da vacina da AstraZeneca. Ontem, o laboratório carioca foi avisado de que começará a receber no próximo dia 22 novos compostos de vacina.

Covas considerou que a liberação pode ser um sinal de que o Butantan também deve adquirir os insumos em breve. "Se começou a liberar insumos, já é uma boa notícia", declarou.

Regiane de Paula também demonstrou insatisfação com os atrasos na entrega das vacinas da Fiocruz.

As frustrações em relação à vacina da AstraZeneca vêm ocorrendo de forma sucessiva desde janeiro. Tínhamos a expectativa de 1 milhão de doses e recebemos quase 40% a menos desse quantitativo.
Regiane de Paula

Doria volta a culpar Bolsonaro por atraso

O governador de São Paulo, João Doria (PSDB), tem colocado a culpa do atraso nos insumos nas críticas feitas pelo presidente Jair Bolsonaro (sem partido) à China. Bolsonaro fez alusão de que a China estaria promovendo uma "guerra química" e se beneficiando economicamente da pandemia.

"Há um entrave diplomático fruto de declarações desastrosas do governo federal. Isso gerou um bloqueio por parte do governo chinês", afirmou Doria.

Faço apelo as autoridades chinesas. Estando em Brasília na embaixada ou na chancelaria: os brasileiros não pensam como o Presidente da República. Os brasileiros agradecem a China por ajudar a salvar vidas.
João Doria

O ministério das Relações Exteriores, no entanto, dá outra justificativa e diz que os atrasos são causados pela alta demanda de vacinas da China, e que não há retaliação diplomática com o Brasil.