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

França vai adotar teste de saliva nos aeroportos para evitar 2ª onda de Covid-19

Segurança apresenta proteção contra coronavírus na entrada de embarque do aeroporto Charles De Gaulle - Getty Images
Segurança apresenta proteção contra coronavírus na entrada de embarque do aeroporto Charles De Gaulle Imagem: Getty Images

10/07/2020 09h46

O governo francês anunciou nesta sexta-feira (10) a implementação de testes a base de saliva em seus aeroportos. A medida, que tem como objetivo evitar uma segunda onda de contaminação pelo coronavírus, visa principalmente os viajantes vindos de países considerados de risco.

O anúncio foi feito pelo ministro francês da Saúde, Olivier Véran, em entrevista aos canais de rádio e televisão BFMTV e RCM. Ele não deu a data exata da implementação da medida, mas explicou que os testes já estão sendo avaliados e adquiridos.

O ministro avisou que "todos os viajantes vindos de países de risco poderão ser submetidos ao teste dentro de alguns dias". No entanto, ele disse que o dispositivo não será obrigatório. "Não podemos forçar alguém a ser testado", frisou.

Véran não deu a lista das nacionalidades visadas, mas lembrou que, atualmente, o governo francês classifica os países em duas categorias: "os que são 'verdes', onde o vírus não circula mais do que na França, e para os quais não há razões para controles específicos, e os países que têm fronteiras fechadas, em 'zona vermelha'".

Brasil e Estados Unidos são considerados zonas de risco em razão da evolução atual da pandemia, o que leva a crer que voos vindos desses dois países podem ser prioritários na aplicação dos testes nos aeroportos ses. "Estou trabalhando junto com o ministro dos Transportes, Jean-Baptiste Djebbari, para calcular o número de pessoas que serão atingidas pelo dispositivo", disse Véran.

Os testes vão ser acrescentados no protocolo sanitário em vigor nos aeroportos ses, que já contam com os controles de temperatura dos ageiros. A Academia sa de medicina havia preconizado, no início do mês, o uso dos testes a base de saliva, em complemento aos testes PCR (baseados em coleta de material nas narinas).

Mais testes na população

Os anúncios do ministro da Saúde fazem parte da estratégia da França para evitar uma nova fase de contaminação no país, onde a epidemia já é considerada "sob controle". Véran, aliás, se mostrou confiante e disse que "a França está pronta para impedir uma segunda onda" e que "nos últimos três meses, o vírus vem regredindo a cada semana".

Na quarta-feira, o governo francês também anunciou uma campanha de testes em massa. O protocolo, aplicado de forma voluntária, visa principalmente as regiões que registraram um aumento recente no número de casos de Covid-19.

Atualmente, 350 mil pessoas são testadas semanalmente na França, mas o ministro espera aumentar esse ritmo. "Somos capazes de ir além", insistiu Véran, anunciando que um milhão e meio de mensagens foram enviadas pelo sistema de seguridade social convocando a população a fazer o teste.