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

Com fila, maior crematório do país recebe contêineres para mortos por covid

Anahi Martinho

Colaboração para o UOL, em São Paulo

01/04/2021 21h55

O crematório da Vila Alpina, na zona leste da cidade São Paulo, tinha fila de familiares para cremar corpos de vítimas da covid-19 na tarde de hoje. O UOL presenciou parentes de pelo menos oito mortos aguardando informações na istração.

Os mortos, tanto em decorrência da covid quanto de outras causas, são cremados individualmente em quatro fornos, que estão ligados 24 horas por dia. A unidade recebeu nesta quinta-feira (1º) uma entrega de novos contêineres que são usados para refrigeração dos corpos, que aguardam em um depósito antes de ir para o forno.

Após a cremação e moagem dos ossos, os familiares precisam aguardar 15 dias para retirar as cinzas. O UOL presenciou quatro famílias retirando as cinzas em um intervalo de 30 minutos.

O Crematório Municipal Dr. Jayme Augusto Lopes, conhecido por Vila Alpina, é o maior do país e fica dentro do cemitério São Pedro, complexo istrado pela Prefeitura de São Paulo.

Somente no mês de março, foram registradas 1.316 cremações no local. Entre janeiro e fevereiro deste ano, já havia sido registrado aumento de 17% na quantidade de cremações (1.848), em comparação com o mesmo período de 2020 (1.584).

Depósito onde ficam as cinzas do crematório da Vila Alpina - Anahi Martinho/UOL - Anahi Martinho/UOL
Depósito onde ficam as cinzas do crematório da Vila Alpina
Imagem: Anahi Martinho/UOL

A reportagem tentou fazer imagens do local onde os corpos são armazenados, mas foi retirada por agentes da Guarda Civil Metropolitana (GCM) a pedido do do crematório, Rogério Silva.

Segundo ele, "agora tudo é covid". "Antes das eleições, a pessoa morria e falavam que era broncopneumonia, e depois das eleições aram a falar que era covid. Agora tudo é covid", afirmou.

A assessoria de imprensa do Serviço Funerário de São Paulo interrompeu o trabalho do UOL diversas vezes, solicitando, por telefone, que a reportagem deixasse o local, o que só aconteceu após a chegada da GCM.

Procurada pela reportagem, a prefeitura não deu detalhes sobre os contêineres e informou apenas que "todas as cremações estão sendo realizadas dentro do prazo".

Familiares aguardam cremação na Vila Alpina - Anahi Martinho/UOL - Anahi Martinho/UOL
Familiares aguardam cremação na Vila Alpina
Imagem: Anahi Martinho/UOL