;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Saúde: STF mantém lei que obriga plano a dar informações em negativa de cobertura

07/02/2018 14h25

Brasília - O plenário do Supremo Tribunal Federal (STF) decidiu, na manhã desta quarta-feira (7), manter a lei aprovada pela Assembleia de Mato Grosso do Sul que obriga o fornecimento ao consumidor de informações e documentos por parte das operadoras de planos de saúde nos casos de negativa de cobertura.

A União Nacional das Instituições de Autogestão em Saúde (Unidas), autora da ação, alegava que a lei, aprovada em 2010, é inconstitucional porque os Estados não poderiam legislar sobre direito civil e direito comercial. Sobre isso, defende a Unidas, só a União poderia agir.

O voto da ministra relatora do caso e presidente da Corte, Cármen Lúcia, foi seguido por todos os ministros presentes no plenário. "O Estado do Mato Grosso do Sul não invadiu competência da União, sua competência foi no sentido de garantir maior e melhor mais efetiva cobertura de direito do consumidor", afirmou Cármen.

Ao acompanhar o voto da presidente, o ministro Luis Roberto Barroso disse que a lei firma um "direito mínimo de saber porque a cobertura foi negada pelo plano de saúde, estabelece uma regra desejada".

A reportagem entrou em contato com a Unidas, mas não teve resposta até a publicação desta matéria. O espaço está aberto para manifestação da entidade.

Sessão

Estavam previstos para serem julgados na sessão plenária desta manhã outras duas ações relativas a planos de saúde, mas que foram adiadas por falta de quórum. O ministro Luiz Fux não estava presente, e os ministros Dias Toffolli e Barroso estão impedidos de julgar em uma dessas ações, na qual a Confederação Nacional de Saúde (CNS) é autora, contra dispositivos da lei dos planos de saúde.

O outro item é um recurso extraordinário que discute a constitucionalidade ou não de ressarcimento ao Sistema Único de Saúde (SUS) por atendimento prestado a pacientes de planos de saúde.

A ministra Cármen Lúcia afirmou que deve colocar as questões para julgamento na tarde desta quarta, quando o ministro Fux já pode comparecer. A sessão plenária está marcada para começar às 14h.

Amanda Pupo