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

É só engolir! Cientistas desenvolvem cápsula para colonoscopia

Cientistas criaram uma cápsula para colonoscopia - Reprodução
Cientistas criaram uma cápsula para colonoscopia Imagem: Reprodução

Felipe Oliveira

Colaboração para Tilt

16/08/2020 11h39

A colonoscopia é um exame essencial para investigar a saúde do intestino, mas sua preparação acaba trazendo muitas dificuldades para algumas pessoas. Para resolver isso, pesquisadores da Purdue Univesity, nos Estados Unidos, desenvolveram um método que promete facilitar a vida de quem precisa fazer esse exame: uma cápsula que pode ser ingerida como um simples remédio.

A ferramenta, segundo os pesquisadores, permitirá saber muito sobre todo o trato intestinal, já que ará por todo o trato gastrointestinal coletando amostras de bactérias. A tecnologia se moverá por vários locais, não apenas no cólon, incluindo boca, esôfago, pâncreas, fígado, vesícula biliar, intestino delgado e reto.

"É tudo uma questão de poder colher amostras de bactérias em qualquer lugar do intestino. Isso era impossível antes", afirmou Rahim Rahimi , professor assistente de engenharia de materiais de Purdue, em comunicado divulgado para a imprensa.

Segundo os pesquisadores, a cápsula é semelhante a um remédio comum que trafega ivamente pelo intestino, sem precisar utilizar bateria. Essa versão em pílula da colonoscopia seria, ainda, capaz de explorar áreas do cólon que uma colonoscopia tradicional não consegue, captando bactérias impossíveis de se ver atualmente.

"Se uma colonoscopia ou câmera pílula detecta sangue, ela não pode coletar amostras dessa área para investigar mais. Você poderia apenas coletar amostras de bactérias da matéria fecal de uma pessoa, mas as bactérias podem variar muito em todo o trato gastrointestinal. Nossa abordagem pode ser complementar", explicou Rahimi.

Outro ganho importante com relação à colonoscopia tradicional é o preço. De acordo com os cientistas, a cápsula de amostragem de bactérias seria muito mais barata, custando cada uma apenas US$ 1 (cerca de R$ 5,50).

Teste em porcos

A equipe de Rahimi está trabalhando nos testes da cápsula em porcos, que possuem um trato gastrointestinal semelhante ao dos humanos.

Para isso, os pesquisadores imprimiram em 3D a cápsula de resina, o mesmo material utilizado em implantes dentários - contudo, o material precisa ser ligeiramente modificado para ser ingerido por humanos.

Quando exposta ao pH de um determinado local do intestino, a tampa biodegradável da cápsula se dissolve. Um hidrogel dentro da cápsula capta e prende o material que entra, com a cápsula se fechando sozinha na sequência.

Até o momento, os experimentos mostram que a cápsula conseguiu amostrar bactérias comuns no intestino, como a E. coli, em uma hora.

Segundo o estudo, em um ser humano, a cápsula continuaria a se mover ao longo do trato gastrointestinal com as fezes. Um cientista poderia então recuperar a cápsula da matéria fecal de um participante do estudo, desatarraxar a cápsula e estudar as bactérias coletadas.

"Essa abordagem está oferecendo novas oportunidades para estudar que tipo de bactéria está presente no intestino. Isso nos ajudaria a descobrir como manipular essas bactérias para combater doenças", disse Rahimi.