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

Corona chega às favelas; prefeitura do Rio confirma caso na Cidade de Deus

O saneamento básico precário e a falta de água nessas localidades são pontos que preocupam o MPF - Tiê Vasconcelos/Voz das Comunidades
O saneamento básico precário e a falta de água nessas localidades são pontos que preocupam o MPF Imagem: Tiê Vasconcelos/Voz das Comunidades

Gabriel Sabóia

Do UOL, no Rio

22/03/2020 11h49

A Prefeitura do Rio confirmou o primeiro caso de covid-19 em favelas da capital fluminense. De acordo com a Secretaria Municipal de Saúde, o paciente mora na Cidade de Deus, na zona oeste da cidade.

O caso acende o alerta das autoridades para um temor já revelado anteriormente pelo governador do estado, Wilson Witzel (PSC), e o prefeito Marcelo Crivella (Republicanos): a chegada do coronavírus em comunidades carentes, onde as condições de saneamento, isolamento e higiene não costumam estar alinhadas com as recomendações da OMS (Organização Mundial de Saúde) para o combate ao coronavírus.

No total, a capital registra 170 casos confirmados, distribuídos por 33 bairros, e outros 189 suspeitos. O morador da Cidade de Deus infectado pelo coronavírus já encontra-se isolado.

De acordo com a Secretaria Municipal de Saúde, 45% dos infectados na capital tem mais de 60 anos. Doze pessoas estão em UTIs (Unidades de Tratamento Intensivo).

Em menos de 24 horas, a capital fluminense registrou aumento de 60% no número de infectados pelo coronavírus: ontem, a cidade registrava 103 casos confirmados.

O ministro da Saúde, Luiz Henrique Mandetta, já havia falado sobre as peculiaridades da disseminação do vírus na capital do Rio de Janeiro.

"O Rio é uma cidade mais condensada. Temos problema de distância e os espaços são menores. Além do que, há áreas de exclusão social, favelas, áreas de proximidade muito próximas às pessoas, de baixo saneamento e núcleos familiares extensos que vivem dentro de espaços apertados ", disse.

MPF quer proteção às favelas

Órgão do MPF (Ministério Público Federal) voltado à proteção dos direitos humanos, a PFDC (Procuradoria Federal dos Direitos do Cidadão) pediu, na última semana, que o Ministério da Saúde informe até a próxima terça-feira (24), quais medidas estão sendo adotadas para a prevenção ao novo coronavírus e no atendimento às populações que moram em favelas e periferias do país.

O pedido de informações é assinado pela procuradora federal dos Direitos do Cidadão, Deborah Duprat.

No documento, a Procuradoria afirma que favelas e periferias apresentam alta densidade populacional, casas muito próximas e limitações estruturais para garantir o isolamento adequado em caso de contaminação pelo vírus.

Outro ponto que preocupa o MPF é a situação em muitas dessas localidades de saneamento básico precário, pouco o à água de qualidade ou falta de água, e poucas unidades de saúde para atendimento da população.

A procuradora Deborah Duprat afirma no pedido de informações que essas populações devem merecer atenção prioritária do governo, para que a situação de desigualdade social não seja agravada com a chegada da epidemia.

"O quadro estrutural de desigualdade existente na sociedade brasileira não pode ser potencializado em momentos de pandemia, o que significa dizer que grupos historicamente subalternizados devem merecer atenção prioritária, uma vez que já estão, especialmente em termos de saúde pública, em situação de desvantagem em relação ao restante da coletividade nacional", diz trecho do documento.