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

Jamil Chade

OMS espera dossiê da Sinovac para avaliar dados sobre Instituto Butantan

Laboratório da Sinovac em Pequim -  REUTERS/Thomas Peter
Laboratório da Sinovac em Pequim Imagem: REUTERS/Thomas Peter

Colunista do UOL

12/01/2021 18h51

Receba os novos posts desta coluna no seu e-mail

Email inválido

A Organização Mundial da Saúde (OMS) aguarda para esta semana o dossiê global da Sinovac para tirar dúvidas e avaliar o anúncio do Instituto Butantan de que a vacina desenvolvida em cooperação com os chineses teve uma eficácia de 50,38%.

Na agência, não há um sentimento de frustração e nem questionamentos sobre a transparência. Mas a entidade vai buscar explicações com Pequim sobre o que as taxas significam e como elas podem ser comparadas aos resultados das demais vacinas.

Nesta terça-feira, depois de pressionado, o Instituto Butantan revelou que eficácia geral da vacina é de 50,38%. O dado, que foi submetido à Anvisa (Agência Nacional de Vigilância Sanitária), está acima dos 50% exigidos na OMS.

Ainda no ano ado, a agência publicou um guia e critérios para orientar as empresas que estão desenvolvendo vacinas. Hoje, no mundo, mais de 300 projetos estão em andamento. Mas, no cronograma da OMS, apenas treze vacinas estão sendo consideradas para aprovações até o mês de maio.

Fontes na cúpula da agência internacional indicaram à coluna que a percepção é de que, se confirmada a taxa, trata-se de um limite "justo". Mas aceitável e que deve entrar no portfólio global para que seja usada em diferentes países.

Uma outra tese que circula na OMS é de que a taxa de mais de 90% anunciada pela Pfizer poderia ser comparada aos mais de 70% por parte da vacina do Butantan. Mas, por terem adotado modelos diferentes, cada um dos casos terá de ar por avaliações independentes.

A OMS também quer entender por qual motivo existe discrepância entre os dados do produto aprovado pela Sinovac na Indonésia, Turquia e Brasil. No caso indonésio, a eficácia foi de 65%, contra 91% na Turquia. A percepção dos técnicos é de que existem recortes diferentes em cada um dos estudos. Mas, para que haja uma aprovação global, precisarão entender sobre qual dos estudos os técnicos irão se basear ou se eles são comparáveis.

A OMS confirmou à coluna que a Sinovac deve entregar ainda nesta semana seu dossiê global. A esperança da OMS é de que, com os dados da empresa chinesa, as dúvidas possam ser esclarecidas.

A reportagem do UOL revelou no fim de semana que os chineses fariam a apresentação justamente nos próximos dias, com o objetivo de receber uma chancela global da agência de Saúde entre fevereiro e março.