Bot para automatizacao de registros no Vacivida para o COVID19

Overview

VACIBOT v.06 - Bot para automatizacao de registros no Vacivida para o COVID19

by Victor Fragoso - Prefeitura Municipal de Santo André

Email: [email protected]

Phone: +55 11 97079 1572

Date: 24-mar-2021

Version: v.06

Print do Vacivida

O QUE É?

Este script em python tem como objetivo eliminar a necessidade de digitacão manual no sistema de vacinacão do COVID19 do Governo do Estado de Sao Paulo chamado "Vacivida" (https://vacivida.sp.gov.br/).

Como o Vacivida nao possui nenhuma forma de integracão com os bancos de dados das prefeituras dos municipios, nem a possibilidade de fazer upload de uma tabela em Excel, o script se mostrou extremamente importante para agilizar a atualizacao no ranking do Governo do Estado (https://vacinaja.sp.gov.br/vacinometro/) no qual também é utilizado para controle de quais cidades estarão mais propensas a receber mais vacinas, uma vez que no mesmo consta a quantidade de doses enviadas e quantidade de doses aplicadas em cada município, e espera-se que a quantidade de doses aplicadas seja igual ou proximo a quantidade de doses enviadas.

O uso desse script permitiu o que o município de Santo Andre pulasse de 64.419 registros no dia 17/03/2021, para 94.133 no dia 24/03/2021 (ou seja, quase 30 mil registros) sem a necessidade de nenhuma equipe de digitacao, permitindo assim que esses trabalhadores pudessem se preocupar em realizar tarefas de maior valor agregado, como a própria aplicacao de vacinas contra o COVID19.

Esse código é livre, aberto, e qualquer um pode realizar as modificacoes que acharem necessários para implementar em seus próprios sistemas.

Eu espero de coracão que esse codigo possa ajudar de alguma forma na vacinacao do Brasil. <3

Sinta-se a vontade para me contatar se precisar de qualquer auxílio.

CONSIDERACOES TÉCNICAS

  • O uso desse script tem como prerrogativa que o município já possui um sistema interno de controle de vacinacao, com formulário de inscricão dos munícipes e as informacões "check-in" sobre quem tomou as vacinas em um banco de dados.

  • Caso não haja um formulário já existente, é possível que os registros sejam incluídos dentro de um banco de dados e exportados através do bot, bastando alterar as colunas utilizadas no script.

  • O banco de dados utilizado pela Prefeitura de Santo André é o Oracle, e por isso o bot foi feito integrado nele. Mas pode ser portado para qualquer outro banco disponível, bastando alterar as depenedencias e funcões.

  • Por conta do grande volume de dados, o bot foi construído com base em computacão distribuída através do uso da biblioteca Python Ray.io (https://ray.io/) em 36 computadores (com 4 núcleos cada) ligados dentro de uma mesma rede ethernet, formando um cluster com 144 "workers" disponíveis para a automatizacao.

  • Caso não tenha disponível tantos computadores, é possível rodar individualmente o script em um único computador (modo standalone), bastando substituir a quantidade de "workers" por núcleos do processador disponível.

INSTRUCÕES

  1. Instale os softwares

    obs.: Para o modo distribuído é necessário instalar em todas as máquinas do cluster

    sudo apt-get update
    sudo apt install -y python3 python3-pip ray
    
  2. Instale os módulos Python através do PIP

    obs.: Para o modo distribuído é necessário instalar em todas as máquinas do cluster

    pip3 install ray cx_Oracle unidecode lxml unidecode requests
    ou
    python3 -m pip install cx_Oracle unidecode lxml unidecode requests
    
  3. Faca o download do Instant Client OracleDB, converta e instale:

    obs.: Para o modo distribuído é necessário instalar em todas as máquinas do cluster

    wget https://download.oracle.com/otn_software/linux/instantclient/oracle-instantclient-basic-linuxx64.rpm
    sudo apt-get install alien libaio1
    sudo alien oracle-instantclientX.X-basic-x.x.x.x.x-1.amd64.rpm
    sudo dpkg -i oracle-instantclient-basic_x.x.x.x.x-2_amd64.deb
    
  4. Altere as credenciais de acesso no arquivo credentials.py seguindo o padrão do arquivo

  5. Adicione uma chave no dictionary_vacivida.py se houver um novo lote sendo aplicado de acordo com o vacivida Obs.: Para isso é necessário acessar o código HTML da página de vacinacao do vacivida e buscar quais chaves estão disponíveis. Você pode buscar diretamente pelo código de alguma chave já existente para encontrar mais facilmente. Irei adicionar um tutorial em breve sobre como fazer isso.

  6. Altere a variavel n_workers para a quantidade de processadores disponíveis

  7. Altere a variável select_query de acordo com a busca necessária em seu banco de dados para encontrar os nomes que precisam ser enviados para o Vacivida

  8. Configure o Script para rodar em modo Standalone ou Distribuido

8.1 - Standalone:

8.1.1 - Alterar a variavel n_workers para quantidade de processadores disponíveis no computador

8.1.2 - Alterar a variavel standalonemode para True

8.2 - Distribuído:

8.2.1 - Alterar a variavel n_workers para quantidade de processadores disponíveis na rede

8.2.2 - Alterar a variavel standalonemode para True

8.2.3 - Execute no terminal do computador principal o comando:

ray start --head --port=6379

8.2.4 - Execute em todos os computadores que estarão vinculados ao cluster o comando:

ray start --address='ip_do_node_principal:6379' --redis-password='5241590000000000'

8.2.5 - Verifique no computador principal se todos os nodes estao habilitados e conectados no cluster:

ray status

Print do Ray Status

  1. Inicie o bot no computador principal com o comando:
python3 vacibot_v06.py

Print do Bot em Execucao 01 Print do Bot em Execucao 02

Dicas:

  1. Para realizar modificacoes, é possível converter os comandos CURL (que foram capturados com a ferramenta de desenvolvedor do chrome) para Python através do link: https://curl.trillworks.com/#python

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Owner
Prefeitura de Santo André
Repositório oficial e colaborativo da Prefeitura de Santo André
Prefeitura de Santo André
Telegram-Discord Bridge

imperial-toilet Скрипт, пересылающий сообщения из нескольких каналов Telegram в один/несколько каналов Discord. Технически это Telegram-юзербот и Disc

1 Jan 17, 2022
Simple Telegram Bot to Download and Upload Files From Mega.nz

Mega.nz-Bot Simple Telegram Bot to Download Files From Mega.nz and Upload It to Telegram Features All Mega.nz File Links supported No login required A

I'm Not A Bot #Left_TG 245 Jan 01, 2023
A smart tool to backup members 📈 So you even after a raid/ ban you can easily restore them in seconds 🎲

🤑 Discord-backer 🤑 A open-source Discord member backup and restore tool for your server. This can help you get all your members in 5 Seconds back af

John 29 Dec 21, 2022
Select random winners for a Twitter giveaway

twitter_picker Select random winners for a Twitter giveaway Once the Twitter giveaway (or airdrop) is closed, assign a number to each participant. The

Michael Rawner 1 Dec 11, 2021
Step by Step Guide To Install Discord Py Master Branch on Replit

Guide to Install Discord Py Master Branch on Replit Step 1 Create an empty repl on replit Step 2 Add this Basic Code to the file main.py so as to chec

Pranav Saxena 7 Nov 18, 2022
Using GNU Radio and HackRF One to Receive, Analyze and Send ASK/OOK signals

play_with_ask NIS-8016 Lab A code: Recv.grc/py: Receive signals and match with ASK button using HackRF and GNU radio. I use AM demod block(can also in

Chen Anxue 1 Jul 04, 2022
This is a Python package to create a snowflake identifier similar to Discord's or Twitter's.

snowflake2 Based on falcondai and fenhl's Python snowflake tool, but with documentation and simliarities to Discord. Installation instructions Install

Learnloot 2 Mar 19, 2022
This code will guide you on how you can make your own Twitter Bot.

This code will guide you on how you can make your own Twitter Bot. This bot retweets, and likes to tweet with a particular word, here Python3.

Kunal Diwan 1 Oct 14, 2022
“Hey there 👋 I'm szrosebot .A Powerful, Smart And Simple Group Manager with some extra features..

A Powerful, Smart And Simple Group Manager szrose bot This is the clone of DewmiBotit is a Powerful, Smart And Simple Group Manager bot made by hiruna

slgeekshow 36 Oct 30, 2022
A Slack bot for playing Texas Hold 'Em where the currency is various workout tasks e.g. pushups

A Slack app/bot for playing Texas Hold 'Em where the currency is various workout tasks e.g. pushups. The intent is to make the workday more fun & active for remote teams.

Kyle McIntyre 3 Sep 19, 2022
pokemon-colorscripts compatible for mac

Pokemon colorscripts some scripts to print out images of pokemons to terminal. Inspired by DT's colorscripts compilation Description Prints out colore

43 Jan 06, 2023
Git Plan - a better workflow for git

git plan A better workflow for git. Git plan inverts the git workflow so that you can write your commit message first, before you start writing code.

Rory Byrne 178 Dec 11, 2022
TESSARECT A Powerful Bot you'll ever need for anything

Tessarect TESSARECT A Powerful Bot you'll ever need for anything TESSARECT It is my First bot but very advanced and designed for all your needs , from

Prakarsh Prp 4 Aug 27, 2022
Programmeertheorie 2022 - Team Trainspotters - RailNL

Trainspotters Vak: Programmeertheorie 2022 Gekozen case: RailNL Teamnaam: Trainspotters Studenten: Mijntje Meijer, Sam Bijhouwer, Maik Larooij To-do's

Maik Larooij 1 Jan 25, 2022
The Python SDK for the BattleshAPI game

BattleshAPy The Python SDK for the BattleshAPI game Installation This library will be eventually going on PyPI, but until then, simply clone or downlo

Christopher 0 Apr 18, 2022
A minimal open source mtg-like tcg game made in python that can be played on a terminal emulator using a keyboard.

TCG-TERM Project state: 🔧 🚧 🚧 🚧 Incomplete, In development 🚧 🚧 🚧 👷 (Keep in mind that at the moment, This project is currently undone, and wil

Amos 3 Aug 29, 2021
Python3 based bittrex rest api wrapper

bittrex-rest-api This open source project was created to give an understanding of the Bittrex Rest API v1.1/v3.0 in pearl language. The sample file sh

4 Nov 15, 2022
A collection of tools for managing Jira issues for the RHODS project

RHODS-Jira-Tools A collection of tools for managing Jira issues for the RHODS project move_to_qa.py This script handles transitioning a given Jira iss

Alex Corvin 1 Sep 20, 2022
Palo Alto Networks PAN-OS SDK for Python

Palo Alto Networks PAN-OS SDK for Python The PAN-OS SDK for Python (pan-os-python) is a package to help interact with Palo Alto Networks devices (incl

Palo Alto Networks 281 Dec 09, 2022
Easy & powerful bot to check if your all Telegram bots are working or not. This bot status bot updates every 45 minutes & runs for 24x7 hours.

PowerfulBotStatus-IDN-C-X Easy & powerful bot to check if your all Telegram bots are working or not. This bot status bot updates every 45 minutes & ru

IDNCoderX 5 Oct 06, 2022