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

Enfermeiro relata resgate: 'Cena de guerra' e 4 dias seguidos de trabalho

André Leandro foi o primeiro enfermeiro do Samu a chegar na Vila Sahy, área mais afetada em São Sebastião, no litoral norte - Arquivo pessoal
André Leandro foi o primeiro enfermeiro do Samu a chegar na Vila Sahy, área mais afetada em São Sebastião, no litoral norte Imagem: Arquivo pessoal

Do UOL, em São Paulo

26/02/2023 04h00Atualizada em 26/02/2023 17h21

Em 30 anos de atuação na área de emergência da saúde, André Leandro afirma que a tragédia em São Sebastião, no litoral norte de São Paulo, foi a "mais grave" e "traumatizante" de sua trajetória. Ele foi o primeiro enfermeiro do Samu a chegar no domingo ado (19) na Vila Sahy —a área mais afetada pelo temporal. As buscas no local foram encerradas nesta tarde.

A cena que encontrei é uma cena totalmente de guerra, as pessoas tentando se organizar, algumas com conhecimento [em saúde]."

A tragédia no litoral norte completa uma semana hoje. Foram confirmadas 65 mortes em decorrência dos deslizamentos e enxurradas. Segundo dados do governo estadual, são mais de 4 mil pessoas desalojadas ou desabrigadas.

Leandro conta que o seu plantão já estava marcado no domingo ado. Pela manhã, ele não tinha conhecimento do impacto das chuvas na cidade —foram mais de 600 milímetros, o maior volume já registrado no país.

"Fiz parte da primeira equipe a ser enviada para o local. Nós [ele e dois médicos] sobrevoamos a região enquanto ainda chovia e conseguimos chegar na Vila Sahy", conta. Ao pousar, voluntários já tentavam ajudar moradores em estado mais graves, que foram encaminhados para hospitais da região.

A missão da equipe, segundo o enfermeiro, era instalar um posto médico para servir de referência para a área isolada e atender as vítimas mais rapidamente.

Ele e seus companheiros trabalharam direto de domingo até quarta-feira (22). "Nesse tipo de missão, você não tem hora para voltar, no máximo encosta a cabeça em algum lugar por um momento", conta. Normalmente, os plantões duram 24 horas.

Leandro atua há muitos anos na região e afirma que o cenário da Vila Sahy era "irreconhecível", com um volume grande de lama e destruição.

A perda [das vítimas] é irreparável, mas a solidariedade das pessoas nos conforta. A característica daquele povo é de ser alegre, alto astral, trabalham muito, então é triste ver uma situação dessa."

O enfermeiro trabalhou em outras ocorrências graves no litoral. Uma delas foi o acidente na rodovia Mogi-Bertioga em 2016, que deixou 18 mortos. As vítimas eram de São Sebastião e estavam em um ônibus que seguia viagem para duas universidades em Mogi das Cruzes, na Grande São Paulo.

Leandro diz que toda ocorrência deixa "uma cena" em sua cabeça. "No caso da Mogi-Bertioga, nunca vou esquecer os corpos enfileirados e os telefones tocando", relembra o enfermeiro.

Agora, o impacto foi ver famílias inteiras que morreram no deslizamento. "É complexo e traumatizante", diz.

Buscas ocorreram durante uma semana na Vila Sahy, área mais afetada em São Sebastião, no litoral norte - Alisson Sales/Fotorua/Estadão Conteúdo - Alisson Sales/Fotorua/Estadão Conteúdo
Buscas ocorreram durante uma semana na Vila Sahy, área mais afetada em São Sebastião, no litoral norte
Imagem: Alisson Sales/Fotorua/Estadão Conteúdo