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

Ex-diretor da Anvisa questiona transparência dos dados sobre a Sputnik V

Para o médico e sanitarista Gonzalo Vecina Neto, Rússia não está sendo transparente com relação aos dados da Sputnik V - Reprodução de vídeo
Para o médico e sanitarista Gonzalo Vecina Neto, Rússia não está sendo transparente com relação aos dados da Sputnik V Imagem: Reprodução de vídeo

Do UOL, em São Paulo

26/04/2021 12h51

O médico sanitarista Gonzalo Vecina Neto, ex-diretor da Anvisa (Agência Nacional de Vigilância Sanitária), questionou a transparência das autoridades de saúde da Rússia sobre a vacina Sputnik V, usada contra a covid0-19.

"Todas as vacinas de vetor viral, estou me referindo basicamente a Jassen e a Oxford-Astrazeneca, estão com problemas de efeitos trombóticos muito raros, mas têm aparecido. Esta vacina usa a mesma tecnologia e nós não temos nenhum evento relatado sobre fármaco vigilância após a utilização da vacina. Será que ela é tão diferente assim ou será que não existe a transparência dos dados? Eu estou desconfiado da vacina da Sputnik V", disse Vecina em entrevista à GloboNews.

A Anvisa recebeu um pedido de uso emergencial do imunizante, válido para todo o país, e outro para importação da vacina feito por estados e municípios. O segundo pedido chegou ao STF (Supremo Tribunal Federal), que deu prazo de 30 dias para que a agência avalie o pedido dos estados.

Alegando falta de informações, a Anvisa pediu que esse prazo fosse suspenso, o que foi negado hoje pelo STF, com relação ao pedido feito pelo estado do Maranhão. Hoje, a diretoria da agência se reúne para avaliar a vacina russa.

"As exigências que a Anvisa está fazendo não são exigências da Anvisa, são exigências de todas as agências de bom padrão no mundo inteiro. Essa vacina não tem registro em nenhum país das agências mais importantes. Os melhores países onde eles têm registro é México e Argentina", disse o médico.

Vecina ainda afirmou que, na sua visão, o "México tem uma vigilância sanitária sofrível e a Argentina tinha uma vigilância sanitária boa, mas sofreu muito" nos últimos anos. "Então, eu acho que nós teríamos que tomar cuidado", completou.