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

Perfil que 'matou' Átila em sistema do SUS é de médico de Rondônia

O biólogo e pesquisador Atila Iamarino teve dados alterados em novembro no sistema do SUS - Reprodução/TV Cultura
O biólogo e pesquisador Atila Iamarino teve dados alterados em novembro no sistema do SUS Imagem: Reprodução/TV Cultura

Do UOL, em São Paulo

02/12/2021 20h16Atualizada em 02/12/2021 20h16

O responsável pela alteração dos dados de Átila Iamarino, divulgador científico que ganhou mais projeção durante a pandemia da covid-19, na plataforma ConecteSUS foi identificado como um médico de Porto Velho, em Rondônia. O profissional de saúde teve o o ao sistema do Ministério da Saúde bloqueado após a descoberta.

A invasão foi exposta pelo biólogo em 9 de novembro, quando ele viu que seu nome, nacionalidade e filiação estavam alterados no certificado de vacinação contra a covid-19. O responsável pela alteração, que não teve a identidade revelada, também declarou que o divulgador científico estaria morto.

Após receber uma solicitação de Átila, o Ministério da Saúde identificou o autor da falsificação e corrigiu suas informações no ConecteSUS e no CadSus, ferramenta de cadastro conectada à utilização de serviços de saúde.

"A alteração foi feita com a credencial (agora bloqueada) de um médico de Porto Velho/RO, que também me marcou como morto, fez apologia nazista e outras ofensas. Agradeço pela resposta", escreveu o microbiologista ao anunciar a resolução do caso, na noite de hoje, quase um mês depois da alteração ser descoberta.

Átila ainda explicou que o responsável pela fraude usou uma VPN - rede privada virtual - para conseguir o ao sistema do Ministério da Saúde simulando estar em Brasília, mas seu verdadeiro endereço acabou ficando gravado com os dados de o.

Ele também mostrou preocupação com a quantidade de pessoas que tem o ao sistema do SUS, questionando se todos os cadastrados no CNES (Cadastro Nacional de Estabelecimentos de Saúde) podem editar as informações, destacando ainda que o perfil do médico suspeito pode ter sido utilizado por terceiros.

"Isso foi feito com essa credencial, não necessariamente pela pessoa dona dela. Ainda estamos vendo os próximos os com a Autoridade Nacional de Proteção de Dados (ANPD) e em relação ao responsável pela credencial ou quem usou ela", completou.

Além de Átila, outras personalidades públicas como Felipe Neto, Felipe Castanhari, Guilherme Boulos, Manuela D'Ávila e Nyvi Estephan também tiveram seus dados alterados em um esquema semelhante ao do divulgador.

Em nota ao UOL, o Ministério da Saúde afirmou que "tomou as providências necessárias para abertura de processo junto às autoridades competentes para devida investigação".

"Cabe esclarecer que as credenciais do operador responsável são bloqueadas sempre que uma irregularidade é identificada e os dados das vítimas são prontamente corrigidos e atualizados", destacou a pasta, orientando ainda que as pessoas entrem em contato com o número 136 para pedir correção de qualquer dado no ConecteSUS.

A reportagem também entrou em contato com o Conselho Federal de Medicina e com o Conselho Regional de Medicina de Rondônia para apurar possíveis investigações sobre o caso, mas ainda não teve retorno. Este espaço será atualizado tão logo haja manifestação.