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

Teich defende escolha de general de fora da saúde: 'Cuidará da logística'

Do UOL, em São Paulo

22/04/2020 17h49

O novo ministro da Saúde, Nelson Teich, anunciou na tarde de hoje que o secretário-executivo do ministério será o general Eduardo Pazuello. Durante entrevista coletiva, o titular da pasta destacou que o militar apresenta experiência em logística e pode contribuir no combate à pandemia de coronavírus.

"A impressão que tenho é que a gente tem que ser muito mais eficiente do que a gente é hoje. A gente tá falando de logística, compra e distribuição. Ele é uma pessoa muito experiente nisso. É uma pessoa que vem trazendo contribuição num momento em que a gente corre contra o tempo. Não contra o tempo em relação só à covid, mas em relação a como o país vai ficar, como o sistema de saúde vai ficar", afirmou Teich.

Até semana ada, quem ocupava o posto era o médico João Gabbardo dos Reis. Ele deixou a pasta assim como o ex-ministro Luiz Henrique Mandetta e o ex-secretário de Vigilância em Saúde, Wanderson de Oliveira. O trio aparecia recorrentemente nas entrevistas coletivas do Ministério para divulgar novos dados sobre a covid-19 no país.

Mais cedo, em entrevista ao jornal O Globo, Pazuello afirmou que auxiliará no período de transição e ficará no cargo até tudo se acalmar. Ele também declarou que deve assumir uma função istrativa dentro do ministério: "Monitoramento, logística, apoio, necessidades de transportar medicamentos, coordenação com ministérios, isso vai cair na minha mão", disse ele ao veículo.

"Acredito que ele possa de verdade ajudar a criar um programa de ajuste no crescimento compatível com a necessidade que a gente tem hoje", acrescentou Teich sobre o número 2 da pasta.

Teich participou hoje, pela primeira vez, da coletiva do Ministério da Saúde sobre atualizações de casos de coronavírus.

Aumento de casos

A pasta anunciou hoje que subiu para 2.906 o número de mortes confirmadas pelo novo coronavírus no Brasil — aumento de 165 óbitos em 24 horas. Até ontem, eram 2.741 mortes registradas.

No total, são 45.757 casos oficiais no país, segundo os dados mais recentes do Ministério, com 2.678 diagnósticos de ontem para hoje. A taxa de letalidade — que compara os casos já confirmados no Brasil com a incidência de mortes — é de 6,4%.