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

SP: Hospitais apontam 'desabastecimento gravíssimo' de 'kit intubação'

A Fehosp tem uma rede com cerca de 300 hospitais associados, dos quais 160 têm de três a cinco dias de estoques de anestésicos - Tempura/iStock/Imagem Ilustrativa
A Fehosp tem uma rede com cerca de 300 hospitais associados, dos quais 160 têm de três a cinco dias de estoques de anestésicos Imagem: Tempura/iStock/Imagem Ilustrativa

Do UOL, em São Paulo

13/04/2021 12h39Atualizada em 13/04/2021 20h26

Um levantamento realizado pela Fehosp (Federação das Santas Casas e Hospitais Beneficentes do Estado de São Paulo) traz alertas sobre o desabastecimento de anestésicos e medicamentos do chamado "kit intubação". De acordo com a categoria, o estado é gravíssimo.

Ao todo, a Fehosp tem uma rede com cerca de 300 hospitais associados, dos quais 160 têm de três a cinco dias de estoques de anestésicos, sedativos e relaxantes musculares. Após esse período, começam a ficar escassos também os antibióticos.

Matão, Guarujá, Votuporanga, Presidente Epitácio, Fernandópolis e Rio Preto são exemplos de hospitais que operam com estoques entre 2 e 3 dias de margem apenas, mas a situação no estado todo é grave e os hospitais que acumulam 10 dias de estoque são raros, segundo os hospitais.

Em nota ao UOL, a categoria hospitalar informou ter entrado em contato com mais de 22 fornecedores nas últimas 24 horas, mas que as unidades de saúde não encontraram possibilidade de compra dos materiais prestes a esgotar.

Ainda de acordo com a nota, o presidente da Fehosp, Edson Rogatti, está monitorando a situação por meio de um grupo online com mais de 200 hospitais.

"A cada dia a situação é mais desesperadora. Mesmo os hospitais que apontam entre 8 e 10 dias de estoque a situação é delicada, pois são hospitais maiores que também recebem grande volume de novas internações a cada dia e, dependendo da região, o estoque cai bruscamente de um dia para o outro", afirmou Rogatti.

A Federação alega que a Secretaria de Estado da Saúde tem fornecido ajuda, mas que também não estaria conseguindo grandes volumes de medicamentos.

"Estamos batalhando por importações que estão sendo lideradas pela Confederação das Santas Casas, mas os estoques no exterior também não estão disponíveis e tememos pelo pior. Se o volume de internação não cair rapidamente, não conseguiremos repor os estoques e será uma situação trágica", alertou Rogatti em nota.

Secretarias Municipais de SP também fizeram alerta

Há uma semana, o Conasems (Conselho de Secretarias Municipais de Saúde do Estado de São Paulo) alertou que quase 40% dos serviços de saúde do estado estavam com estoques zerados de remédios que fazem parte do "kit intubação".

Até o dia 5 de abril, o conselho identificou que de um total de 1.514 serviços municipais de saúde, 59% possuem apenas sete dias de estoque de bloqueadores neuromusculares e destes, 39% ( ou 591) estão zerados em seu fornecimento.

A mesma situação é observada em relação aos sedativos, onde 61% de 931 serviços municipais possuem estoque para sete dias e 36,7% (342) destes já estão zerados.

O UOL entrou em contato com a Secretaria de Estado da Saúde de São Paulo para entender quais são as medidas adotadas para contornar a situação, mas até agora não obteve retorno.