;(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();
})();
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 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.
O @minsaude corrigiu minha info e respondeu à requisição de quem alterou meus dados no CadSUS. 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. pic.twitter.com/hPOaCsu6JG
-- Atila Iamarino *ainda de licença paternidade (@oatila) December 2, 2021
"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.
ID: {{comments.info.id}}
URL: {{comments.info.url}}
Ocorreu um erro ao carregar os comentários.
Por favor, tente novamente mais tarde.
{{comments.total}} Comentário
{{comments.total}} Comentários
Seja o primeiro a comentar
Essa discussão está encerrada
Não é possivel enviar novos comentários.
Essa área é exclusiva para você, , ler e comentar.
Só s do UOL podem comentar
Ainda não é ? Assine já.
Se você já é do UOL, faça seu .
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.