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

Em SP, maioria dos faltosos na 2ª dose têm dificuldade para sair de casa

Idoso com dificuldade de locomoção é vacinado em casa em São Paulo - Governo do Estado de São Paulo
Idoso com dificuldade de locomoção é vacinado em casa em São Paulo Imagem: Governo do Estado de São Paulo

Lucas Borges Teixeira

Do UOL, em São Paulo

08/06/2021 04h00

Até domingo (6), cerca de 100 mil pessoas ainda não haviam tomado a segunda dose da vacina contra a covid-19 na cidade de São Paulo. A grande maioria delas não é negacionista nem esquecido. São pessoas com alguma dificuldade para sair de casa.

Em ação conjunta com o governo estadual, a Prefeitura de São Paulo conseguiu diminuir o número de atrasados quase pela metade em uma semana. De 197 mil na segunda (31) para cerca de 100 mil anteontem.

A estratégia principal para contemplar os faltosos tem sido a chamada "busca ativa". Na semana ada, profissionais de saúde aram a entrar em contato com a pessoa ou com um familiar de quem não compareceu à segunda dose para entender o motivo do atraso.

Com as ligações, a prefeitura descobriu que perfil predominante é de pessoas que, quando completaram a janela entre uma dose e outra, estavam com problemas de locomoção.

Se a pessoa ainda tem a dificuldade, uma equipe de saúde vai até a casa dela. Se já se recuperou, é encaminhada ao local mais próximo de vacinação com a garantia da dose.

"Conseguimos encontrar pessoas que não podem se locomover; 99% das pessoas que nós alcançamos durante a semana estavam acamadas, sem poder se levantar para tomar a segunda dose", afirma Edson Aparecido, secretário municipal de Saúde de São Paulo.

As vacinas têm janelas diferentes entre suas doses. A CoronaVac, do Instituto Butantan em parceria com a Sinovac, tem intervalo de 21 dias, enquanto a AstraZeneca/Oxford e a Pfizer, de 12 semanas.

Segundo Aparecido, 36 mil (37%) das quase 97 mil doses aplicadas durante a semana foram nas residências dos faltosos. "As equipes traçam trajetos para que consiga vacinar o maior número possível com mais eficiência", conta o secretário.

Aliado a isso, o governo de São Paulo também promoveu o "Dia D da Vacinação", um megaevento voltado aos atrasados com mais de 5.000 pontos espalhados pelo estado. Ao todo, foram 119.400 segundas doses aplicadas no dia, 33 mil delas só na capital.

Ainda assim, pelo menos 333 mil pessoas ainda estão com o seu esquema vacinal atrasado no estado, das quais 100 mil só na capital.

"Queremos e precisamos avançar mais, pois somente com a segunda dose é possível garantir a proteção", afirmou Regiane de Paula, coordenadora do PEI (Programa Estadual de Imunização), após a ação no sábado.

A estratégia? Continuar a procurar as pessoas nas suas casas. A capital já retomou o trabalho de busca ativa ontem (7). "Avançamos, mas ainda não foi o suficiente. Agora, nós vamos continuar com esse trabalho de busca ativa durante a semana, porque é ele que está sendo fundamental", afirma Aparecido.