Aplicação console em Python com persistência Oracle, CRUD de Pacientes e Teleconsultas, exportação para JSON e integração com API pública (ViaCEP).
- Integração com Oracle via
oracledb(modo Thin/Thick com Instant Client opcional). - CRUD completo de Pacientes (cadastrar, listar, atualizar, excluir, conceder alta).
- CRUD completo de Teleconsultas (agendar, listar, atualizar, excluir, concluir sessão).
- Regra de negócio: impedir exclusão de Paciente com Teleconsultas vinculadas.
- Exportação para JSON: pacientes, teleconsultas e join paciente x teleconsulta.
- Seed idempotente de dados: cria registros exemplo só se não existirem.
- Consumo de API pública (ViaCEP) para consulta de CEP no menu de Integrações.
- Scripts auxiliares para criar/derrubar tabelas, conexão isolada e utilitários.
- Python 3.11 (recomendado usar venv)
- Oracle acessível (HOST/PORT/SID)
- (Opcional) Oracle Instant Client para Modo Thick
- Dependências:
oracledb,python-dotenv,requests,pandas
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
# ou:
# pip install oracledb python-dotenv requests pandasCrie um arquivo .env na raiz do projeto (não versionar credenciais reais) com:
USER=[USUÁRIO_ORACLE]
PASSWORD=[SENHA_ORACLE]
HOST=oracle.fiap.com.br
PORT=1521
SID=orcl
INSTANT_CLIENT=[CAMINHO_DO_INSTANT_CLIENT_OPCIONAL]
python src/create_tables.pypython src/seed_data.pypython src/hs_app.pyArquivos gerados em exports/:
pacientes.jsonteleconsultas.jsonteleconsultas_pacientes.json
No menu Relatórios e Integrações, escolha Consultar CEP (ViaCEP) e informe o CEP no formato 00000000.
- Se usar Modo Thick, confira o caminho do Instant Client no
.env. - Para resetar esquema rapidamente:
python src/drop_tables.pyseguido depython src/create_tables.py. - Seed é idempotente: rodar novamente não duplica dados.
- Maicon Douglas — RM 561279
- Laura Lopes — RM 566376
- Richard Freitas — RM 566127