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

Grêmio agenda cirurgia de Kannemann. Volta pode levar até quatro meses

Zagueiro tem lesão por esforço repetitivo no quadril e já fez procedimento com infiltração - Lucas Uebel/Grêmio FBPA
Zagueiro tem lesão por esforço repetitivo no quadril e já fez procedimento com infiltração Imagem: Lucas Uebel/Grêmio FBPA

Jeremias Wernek

Do UOL, em Porto Alegre

07/12/2021 17h46

O Grêmio definiu a data da cirurgia de Walter Kannemann, que tem lesão na região do quadril. Clube e jogador fecharam acordo para a intervenção ser realizada em Porto Alegre, por médico especialista em síndrome de impacto. O procedimento acontece nesta quarta-feira (8), segundo apurou o UOL Esporte. A previsão é que o zagueiro leve até quatro meses para voltar a atuar.

O prazo estimado de retorno é por conta das características da lesão, que requer período sem impacto após a cirurgia.

A data da cirurgia de Walter Kannemann foi um dos assuntos do dia a dia do Grêmio nas últimas semanas. O zagueiro chegou a desfalcar o time de última hora contra América-MG e Flamengo, por sentir dores na região do quadril ao realizar aquecimento minutos antes de a bola rolar. Em outras partidas, o jogador atuou com recurso de infiltração.

Ao longo de 2021, Kannemann chegou a realizar procedimento considerado paliativo. O zagueiro realizou infiltração de ácido hialurônico no quadril para diminuir as dores do impacto. O efeito durou algumas semanas.

A cirurgia no quadril, portanto, já estava acertado há tempos, mas foi adiada por conta da situação do Grêmio no Campeonato Brasileiro. Suspenso pelo terceiro cartão amarelo, Kannemann está fora do jogo com o Atlético-MG, na quinta-feira (9).

Com a derrota do Juventude para o São Paulo, na segunda-feira no Morumbi, o Grêmio chega à última rodada ainda com chances matemáticas de escapar do rebaixamento, mas precisa de uma combinação de três resultados. Vitória diante do Galo e derrotas de Bahia e Juventude, nas partidas com Fortaleza e Corinthians, respectivamente.