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

Militares na Saúde não entendem nem de guerra, diz ex-presidente da Anvisa

Eduardo Pazuello, minstro da Saúde                              - ISAC NóBREGA / DIVULGAçãO
Eduardo Pazuello, minstro da Saúde Imagem: ISAC NóBREGA / DIVULGAçãO

Do UOL, em São Paulo

22/01/2021 11h19Atualizada em 22/01/2021 16h03

O médico sanitarista Gonzalo Vecina Neto voltou a criticar a gestão do Ministério da Saúde no combate à pandemia da covid-19. Segundo ele, "os militares do Ministério não entendem nem de guerra".

"Jogaram fora os especialistas. Nós mandamos embora os especialistas que estavam no ministério. Lá no ministério agora tem um bando de militares que nem de guerra entende. Então isto é fruto dessa ignorância. E vamos viver mais outros frutos desses enquanto essa questão não for alterada", disse Neto, que é fundador e ex-presidente da Anvisa (Agência Nacional de Vigilância Sanitária), em entrevista à GloboNews.

O sanitarista criticou a atuação do governo federal ao comentar os atrasos na primeira fase de imunização, iniciada na última segunda-feira para os grupos prioritários, e a demora em buscar opções de vacinas contra a covid-19.

"Nós tínhamos uma experiência de mais de 30 anos em vacinar. Teve dia de vacinarmos mais de 10 milhões de crianças. Todo o ano nós fazemos a vacinação da gripe. São 80 milhões de doses. Nós sabemos vacinar. Agora, esse pessoal que está no Ministério não sabe vacinar. Nunca ouvi falar de vacina. Esses militares que estão lá não sabem nada", completou.

A Anvisa aprovou o uso emergencial de duas vacinas até agora: do Instituto Butantan/Sinovac e a Astrazeneca/Oxford/Fiocruz. Neto reforçou a necessidade de se aplicar a segunda doses das vacinas.

"É o conhecimento que nós temos acumulado até agora. Tem que tomar a segunda dose. Essa dose que está sendo distribuída agora não pode ser usada, tem que ser usada para o reforço. É como não ter vacina tendo vacinado com só uma dose".

Sobre a demora na aprovação do uso da vacina Sputnik V, desenvolvida pelo Instituto Gamaleya, da Rússia, Neto disse que o consórcio precisa seguir o que pede a lei.

"O agente do poder público é obrigado a fazer o que a lei manda. E se a lei manda fazer um estudo de fase 3, não existe como fazer uma exceção. A União Química está querendo que a agência abra uma exceção para ela por causa da emergência sanitária. A emergência sanitária é real, mas a lei que foi aprovada este ano exige os estudos de fase 3. Ou muda a lei ou eles fazem o estudo de fase 3. A Anvisa não pode facilitar, porque ela é obrigada a cumprir a lei", afirmou o sanitarista.

Ontem, representantes da União Química, laboratório brasileiro que participa do consórcio envolvido na produção da vacina no Brasil, participaram de uma reunião na Anvisa. O grupo à frente da vacina russa teve negado o primeiro pedido de autorização emergencial, mas o laboratório demonstrou interesse em apresentar uma nova solicitação atendendo às exigências da agência.

No último domingo (17), a Anvisa recusou o envio de material do consórcio apontando a insuficiência do cumprimento de requisitos. A União Química ainda não apresentou novos documentos.