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

CoronaVac: Anvisa veta 21 milhões de doses envasadas em local sem inspeção

22.jan.2021 - Frascos da vacina CoronaVac, desenvolvida pelo Instituto Butantan junto à Sinovac - Amanda Perobelli/Reuters
22.jan.2021 - Frascos da vacina CoronaVac, desenvolvida pelo Instituto Butantan junto à Sinovac Imagem: Amanda Perobelli/Reuters

Carolina Marins

Do UOL, em São Paulo

04/09/2021 15h04Atualizada em 04/09/2021 21h33

A Anvisa (Agência Nacional de Vigilância Sanitária) determinou hoje a suspensão de forma cautelar de ao menos 25 lotes da vacina CoronaVac envasados em local não autorizado pela agência. No total, a decisão afeta 21 milhões de doses, sendo 12 milhões já distribuídas pelo Instituto Butantan ao PNI (Programa Nacional de Imunização) e outras 9 milhões em processo de envio ao Brasil. O Instituto Butantan afirma que alertou a Anvisa por "extrema precaução" e que atestou a qualidade das doses suspensas cautelarmente.

O Ministério da Saúde orienta que as doses já distribuídas aos estados não sejam aplicadas. Os lotes impactados podem ser consultados no site da agência.

A Anvisa informou que o Instituto Butantan comunicou ontem que a Sinovac, fabricante da vacina, "enviou ao Brasil 25 lotes na apresentação frasco-ampola, totalizando 12.113.934 doses". No entanto, a unidade responsável pelo envase não foi aprovada na inspeção da Anvisa durante a Autorização de Uso Emergencial do imunizante.

"O Instituto informou ainda que outros 17 lotes, também envasados no local não inspecionado pela Anvisa, totalizando 9.000.000 de doses, estão em tramitação de envio e liberação ao Brasil."

Como o local do envase não foi aprovado na Autorização de Uso Emergencial, a Anvisa informou que o produto não é considerado regularizado pela agência. A decisão foi publicada esta tarde em Edição Extra do Diário Oficial da União.

"A Anvisa avaliou toda a documentação apresentada pelo Instituto Butantan, consultou as bases de dados internacionais em busca de informações acerca das condições de boas práticas de fabricação da empresa responsável pelo envase desses lotes e até o momento não localizou nenhum relatório de inspeção emitido por outras autoridades de referência, como por exemplo PIC/S e OMS, ou emitido pela própria Anvisa", informou.

E acrescenta: "considerando a irregularidade apontada, somado às características do produto e complexidade do processo fabril, devendo ser fabricadas em rigorosas condições assépticas, e o desconhecimento sobre o cumprimento das boas práticas de fabricação da empresa pela Anvisa, indicam a necessidade de adoção de medida cautelar para evitar a exposição da população a possível risco iminente."

A Anvisa esclarece que a medida é cautelar e não uma decisão condenatória em caráter punitivo, "mas sim, medidas sanitárias para evitar a exposição ao consumo e uso de produtos irregulares ou sob suspeita."

A agência informou que serão feitas tratativas junto ao Butantan para a regularização do novo local na cadeia fabril da vacina.

O que diz a Saúde

Em nota, o Ministério da Saúde disse que ainda não foi notificado oficialmente pelo Instituto Butantan. "No entanto, todas as providências cabíveis já estão sendo adotadas para que as vacinas não sejam aplicadas."

A pasta disse já ter contatado a Anvisa e solicitou ao Conass (Conselho Nacional de Secretários de Saúde) e Conasems (Conselho Nacional de Secretarias Municipais de Saúde) a suspensão da aplicação das doses referentes aos lotes.

"Também está sendo feita a checagem de todos os lotes referidos que ainda estão no Centro de Distribuição e Logística do Ministério, bem como os que já foram enviados aos estados e ao Distrito Federal."

Butantan descarta risco

Em nota enviada ao UOL, o Instituto Butantan disse que a medida da Anvisa não deve causar alarmismo, pois "foi o próprio Instituto que, por compromisso com a transparência e por extrema precaução, comunicou o fato à agência, após atestar a qualidade das doses recebidas. Isso garante que os imunizantes são seguros para a população."

O instituto diz ainda ter convicção de que a certificação deve ser concedida em breve pela Anvisa, pois diz ter enviado "há 15 dias toda a documentação necessária para a certificação do processo de produção em que foram feitas essas doses". O órgão se colocou a disposição para fornecer mais dados, se a Anvisa julgar necessário.

"Todos os lotes liberados pelo instituto estão de posse do Ministério da Saúde, como firmado em contrato", informou. "Reafirmamos, no entanto, que todas as doses que saíram da unidade fabril estão atestadas pelo rigoroso controle de qualidade do Butantan."

"Informa, ainda, que 6 milhões de doses da vacina do Butantan, que fazem parte de um lote de 12 milhões de imunizantes formuladas no site fabril da zona oeste de SP, aguardavam liberação da Anvisa. Na última quinta-feira (2), o órgão regulatório liberou e as mesmas foram expedidas na sexta-feira (3)."

E acrescenta: "Esse pedido de liberação ao órgão regulatório aconteceu por uma mudança em uma das etapas do processo de formulação da vacina, que pode ocorrer no decorrer da fabricação. A fábrica onde é feita a formulação e o envase da CoronaVac são todas certificadas pela Anvisa, desde o final de 2020."

O instituto finaliza a nota convidando a Anvisa para voltar a conhecer as instalações das fábricas da Sinovac, na China.