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

Novo lote de insumos para produção da CoronaVac chega a São Paulo

O secretário estadual de Saúde de SP, Jean Gorinchteyn (esq.); o governador de SP, João Doria (centro); e o diretor do Instituto Butantan, Dimas Covas (dir) durante a chegada de insumos para a CoronaVac em Guarulhos (SP)  - WILLIAN MOREIRA/FUTURA PRESS/FUTURA PRESS/ESTADÃO CONTEÚDO
O secretário estadual de Saúde de SP, Jean Gorinchteyn (esq.); o governador de SP, João Doria (centro); e o diretor do Instituto Butantan, Dimas Covas (dir) durante a chegada de insumos para a CoronaVac em Guarulhos (SP) Imagem: WILLIAN MOREIRA/FUTURA PRESS/FUTURA PRESS/ESTADÃO CONTEÚDO

Do UOL, em São Paulo

10/02/2021 07h44Atualizada em 10/02/2021 12h19

Um novo lote de insumos para a produção da vacina CoronaVac chegou na manhã de hoje a São Paulo. O avião proveniente da China pousou no Aeroporto Internacional de Guarulhos por volta das 7h30 (de Brasília).

O lote tem 5,6 mil litros de Insumo Farmacêutico Ativo (IFA), produzido na China pela biofarmacêutica Sinovac, parceira do Instituto Butantan no desenvolvimento da vacina contra a covid-19. A matéria-prima permitirá a produção em São Paulo de mais de 8,7 milhões de doses do imunizante, que serão destinadas ao Plano Nacional de Imunizações (PNI).

Há uma semana, 5,4 mil litros de IFA foram recebidos em São Paulo da mesma fornecedora, suficientes para a produção de 8,6 milhões de doses da vacina Coronavac. Somadas, as cargas permitirão a fabricação de 17,3 milhões de doses de imunizantes, que começarão a ser entregues ao Ministério da Saúde a partir do final deste mês. A previsão do instituto é que a produção de vacinas contra a covid-19 alcance até 600 mil doses diárias com as duas remessas de matéria-prima.

Em janeiro, segundo o governo de São Paulo, o Butantan entregou 8,7 milhões de vacinas CoronaVac ao Ministério da Saúde. Foram 6 milhões de doses no dia 17, 900 mil no dia 22 e 1,8 milhão no dia 29.

De acordo com o diretor do Butantan, Dimas Covas, a expectativa é que a produção de vacinas tenha continuidade pelo menos até setembro, quando o instituto prevê completar a entrega das 100 milhões de doses previstas no acordo com a Sinovac.

"Não paramos mais até completar as 46 milhões de doses, o que deve acontecer até em abril, e mais para frente vamos receber os lotes já para completar as (outras) 54 milhões. Ou seja, esperamos que até fim de agosto, começo de setembro, 100 milhões de vacinas já tenham sido entregues ao Brasil. Isso vai permitir a vacinação de 50 milhões de pessoas", disse

O governador de São Paulo, João Doria (PSDB), também foi ao aeroporto receber a carga. Antes, ele postou uma mensagem do comandante do voo que transportou o material.