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

Serrana (SP) abre cadastro para vacinação em massa em estudo do Butantan

Moradores de Serrana com idade acima de 18 anos receberão a vacina desenvolvida pelo Butantan em parceria com a Sinovac - Divulgação/Instituto Butantan
Moradores de Serrana com idade acima de 18 anos receberão a vacina desenvolvida pelo Butantan em parceria com a Sinovac Imagem: Divulgação/Instituto Butantan

Do UOL, em São Paulo

11/02/2021 09h28

A cidade de Serrana (SP) começa hoje a cadastrar moradores com mais de 18 anos que serão vacinados contra a covid-19. O Instituto Butantan escolheu o município para um estudo de vacinação em massa que testará a redução do contágio pelo novo coronavírus em uma população.

Serão usadas doses da CoronaVac, imunizante produzido pelo Butantan em parceria com o laboratório chinês Sinovac. As vacinas são específicas para o estudo, ou seja, não serão tiradas de outras cidades. A expectativa é de que 30 mil dos cerca de 45 mil habitantes sejam vacinados, voluntariamente, a partir do dia 17 de fevereiro.

O anúncio de que Serrana vai fazer parte do estudo mudou a rotina da cidade — as imobiliárias já veem aumento de interessados em alugar casas com objetivo de conseguirem ser vacinados. Para evitar que isso aconteça, o Butantan já possui boa parte dos cadastros das pessoas, feitos por meio de um censo de saúde.

Segundo informações da prefeitura, quem ainda não se cadastrou deve procurar as escolas que serão pontos de vacinação para fazê-lo. O atendimento será feito das 14h às 20h30 hoje e amanhã. No sábado e no domingo, o horário é das 8h às 15h30 em um dos endereços abaixo:

  • Escola Deputado José Costa. Rua dos Estudantes, 180 - Centro
  • Escola Jardim das Rosas. Rua Joaquim Santos, 890 - Jardim das Rosas
  • Escola Professora Neusa Maria do Bem. Rua Benedito, 87 - Jardim das Rosas II
  • Escola Professora Dilce G. Netto França. Rua Jorge L. Registro, 176 - Jardim Mariana
  • Escola Edésio M. De Oliveira. Rua Roraima, 92 - Jardim Bela Vista
  • Escola Jd. D. Pedro I. Avenida Arsênio R. Martins, 151 - Jardim D. Pedro I
  • Escola Paulo Sergio G. Betarello. Rua Santa Cruz, 1801 - Jardim Cristina
  • Escola Professora Maria Celina W. de Assis. Rua Antônio Honório Ribeiro, 895 - Centro

É necessário apresentar comprovante de endereço e documento com foto. Somente o próprio morador pode realizar seu cadastro.

A prefeitura esclareceu que quem já realizou o cadastro anteriormente deve procurar postos de saúde, a prefeitura, serviço social ou escolas infantis para se informar sobre o local e período da vacinação de segunda a sexta das 8h às 11 e das 13h às 16h.

Menores de 18 anos, mulheres grávidas ou amamentando e quem teve febre nas 72 horas anteriores não receberão a vacina.

CADASTRO COMEÇA AMANHÃ DIA 11/02 E SEGUE NA PRÓXIMA SEMANA Informações oficiais sobre o CADASTRO do PROJETO S....

Publicado por Prefeitura Municipal de Serrana em Quarta-feira, 10 de fevereiro de 2021

* Com informações do Estadão Conteúdo