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

Vacina com IFA brasileiro poderá sair em outubro, diz presidente da Fiocruz

Cientista analisa amostra em laboratório da Fiocruz, no Ceará - Divulgação/Fiocruz
Cientista analisa amostra em laboratório da Fiocruz, no Ceará Imagem: Divulgação/Fiocruz

Do UOL, em São Paulo

02/05/2021 17h53

A Fiocruz deverá começar a produzir o IFA (Ingrediente Farmacêutico Ativo) para produção própria da vacina da AstraZeneca/Oxford ainda neste mês. Se tudo der certo, as primeiras vacinas com produção totalmente nacional deverão ser entregues já em outubro.

As informações são da presidente da fundação, Nísia Trindade, em entrevista à CNN Brasil neste domingo. Segundo ela, é um cronograma que ainda precisa ser avaliado junto à Anvisa (Agência Nacional de Vigilância Sanitária), mas que deve sair no segundo semestre.

O início [da produção do IFA] é agora em maio e temos que produzir vários lotes para validação controles. No entanto, o fato de nós termos tido essa avaliação [da Anvisa] e termos todas as condições técnicas, operacionais para produzir esse IFA nós vamos também estar trabalhando esse cronograma e suas etapas para ter um programa definitivo. A expectativa é que essa entrega seja feita no mês de outubro.
Nísia Trindade, presidente da Fiocruz

Atualmente, a Fiocruz ainda depende da importação de insumos da Índia ou da China para a produção da vacina em Manguinhos, no Rio de Janeiro. Com a fabricação também do IFA, o insumo torna-se inteiramente feito aqui, o que traz autonomia para a fundação.

Em abril, a Fiocruz entregou 6,5 milhões de doses ao PNI (Programa Nacional de Imunização), 900 mil a mais do que o programado, todas com IFA importado.

Trindade afirmou que ainda é preciso fazer reuniões técnicas com a Anvisa para definir os próximos os, por isso essas datas ainda são estimativas. É preciso de uma nova aprovação da agência reguladora para a distribuição da vacina de Oxford com IFA produzido aqui.

"Teremos uma segurança maior [de prazo] ao longo desse mês e após reuniões técnicas com a Anvisa que vou solicitar que sejam feitas para avaliar os os seguintes. Isso é muito importante para termos mais segurança em todo este processo", explicou Trindade.

"Estamos trabalhando intensamente, como fizemos para a construção dessa planta, de todos os equipamentos, para, se possível, ter nesse prazo ainda mais curto. É o trabalho intenso de toda a nossa equipe", concluiu.