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

Esse conteúdo é antigo

Ministério da Saúde fica sem estoque de equipamento de proteção individual contra coronavírus

iStock
Imagem: iStock

Mateus Vargas

Brasília

02/04/2020 13h46

Semanas antes do pico esperado do novo coronavírus no Brasil, o Ministério da Saúde está sem estoques de equipamentos de proteção individual, como máscaras e luvas, para distribuir a profissionais de saúde.

A pasta aguarda resultado de negociação com fornecedores do exterior. A expectativa é que a reposição do estoque seja encaminhada ainda na noite desta quinta-feira, 2. As informações foram publicadas pelo jornal O Globo e confirmadas pelo Ministério da Saúde ao Estado/Broadcast.

O governo já distribuiu cerca de 40 milhões de itens de proteção aos Estados. A expectativa é conseguir outros 720 milhões de produtos, sendo 200 milhões de máscaras, mas ainda não há resultado das negociações.

Segundo secretários Estaduais ouvidos pela reportagem, há regiões com mais e menos estoques, mas o ministério tem feito entregas até agora de equipamentos de proteção. Um pedido dos gestores do SUS é para usar aviões, inclusive da FAB, para agilizar o envio dos produtos.

O ministro da Saúde, Luiz Henrique Mandetta (DEM), disse na quarta-feira, 1º, que contratos do governo brasileiro com empresas da China para compras de equipamentos foram desfeitos após os Estados Unidos enviarem mais de 20 aviões cargueiros para adquirir os mesmos itens. "As nossas compras, que tínhamos expectativa de concretizar para poder abastecer, muitas caíram", disse Mandetta.

Mandetta disse que o cenário para compras é inseguro. "Eu só acredito na hora que estiver dentro do País, na minha mão. Às vezes o colapso é: você tem dinheiro, mas não tem o produto."

O ministro da Saúde traçou um cenário de extrema dificuldade para aquisição de insumos básicos de proteção e recomendou à população que pare de comprar máscaras descartáveis e faça a sua própria peça de proteção, com pano e elástico. "Hoje, nós estamos muito preocupados com a regularização de estoque desses equipamentos", disse Mandetta.

Como o jornal O Estado de S. Paulo mostrou, representantes da indústria dizem já ter alertado o governo federal a apresentar logo a sua proposta ao mercado - caso contrário, poderá ficar para trás na corrida global por produtos contra a pandemia.

A indústria brasileira tem tentado aproveitar a queda de casos na China para importar de lá produtos hospitalares. "Claro que vamos disputar isso com Europa, EUA e outros países", disse ao Estado o presidente da Associação Brasileira da Indústria de Artigos e Equipamentos Médicos, Odontológicos, Hospitalares e de Laboratórios (Abimo), Franco Pallamolla.

Respiradores

O governo fechou a compra de 15 mil respiradores do tipo "pulmonar microprocessado com capacidade de ventilar pacientes adultos e pediátricos". A compra custou R$ 1,014 bilhão e a fornecedora é a "Santos-Produtos do Brasil (Macau) Companhia de Investimento e de Comércio LDA", segundo a publicação no Diário Oficial da União (DOU) desta quinta-feira.