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

Butantan entrega 1,1 milhão de doses da CoronaVac ao PNI e para produção por falta de insumo

14/05/2021 11h52

Por Eduardo Simões

SÃO PAULO (Reuters) - O Instituto Butantan entregou nesta sexta-feira uma nova remessa de 1,1 milhão de doses da CoronaVac, vacina contra Covid-19 do laboratório chinês Sinovac, ao Programa Nacional de Imunização (PNI) do Ministério da Saúde e paralisou a produção de novas doses devido à falta do insumo farmacêutico ativo (IFA) importado da China.

"A partir de agora o Instituto Butantan não pode mais processar vacinas", disse o governador de São Paulo, João Doria (PSDB), em entrevista coletiva na sede do instituto para marcar a entrega do novo lote ao PNI.

"Nós não temos mais insumos, não temos mais IFA para a produção de vacinas CoronaVac, de vacinas do Butantan, que até aqui abasteceram 70% de todo o sistema vacinal do país."

Doria voltou a atribuir a demora na liberação de um lote de 10 mil litros de IFA da CoronaVac por parte do governo chinês ao desconforto diplomático que ele afirma ter sido gerado pelas declarações recentes do presidente Jair Bolsonaro em relação ao país asiático.

"Por que não temos (IFA)? Porque o governo da China ainda não autorizou, ainda não liberou o embarque de 10 mil litros de insumos, de IFA, que estão prontos, destinados ao Instituto Butantan pelo laboratório Sinovac e estes 10 mil litros correspondem a aproximadamente 18 milhões de doses da vacina", afirmou.

"Temos um entrave diplomático fruto de declarações inadequadas, desastrosas feitas pelo governo federal contra a China, contra o governo da China e contra a própria vacina e isso gerou um bloqueio por parte do governo chinês do embarque desses insumos."

Também presente na coletiva, o presidente do Butantan, Dimas Covas, disse que a falta de insumos fará com que o instituto não entregue a quantidade de doses previstas ao Ministério da Saúde em maio. Ele afirmou, no entanto, que caso a remessa de 10 mil litros de IFA que aguarda liberação chegue ao país, o Butantan poderá recuperar esse atraso aumentando as entregas em junho.

Na quinta-feira, a Fundação Oswaldo Cruz (Fiocruz), que também depende de IFA importado da China para o envase no Brasil da vacina AstraZeneca/Oxford contra Covid-19, informou que vai interromper a produção por alguns dias na próxima semana devido à falta desses insumos.

Com a entrega desta sexta, o Butantan chegou ao fornecimento de 47,2 milhões de doses da CoronaVac ao PNI. De acordo com dados do Ministério da Saúde, a vacina da Sinovac responde por 70,7% das doses de vacina contra Covid-19 aplicadas no Brasil.