Este é um sistema web desenvolvido em Python/Flask para gerenciamento de agendamentos de exames médicos. O sistema permite que pacientes agendem exames e que recepcionistas gerenciem estes agendamentos.
-
Pacientes podem:
- Agendar exames
- Visualizar seus agendamentos
- Cancelar agendamentos
- Receber notificações por email
-
Recepcionistas podem:
- Visualizar todos os agendamentos
- Agendar exames para pacientes
- Editar agendamentos
- Atualizar status dos exames
- Cancelar agendamentos
- Python 3.8 ou superior
- MySQL 8.0 ou superior
- Pip (gerenciador de pacotes Python)
- Clone o repositório:
git clone [URL_DO_REPOSITORIO]
cd [NOME_DO_DIRETORIO]- Crie um ambiente virtual:
python -m venv venv- Ative o ambiente virtual:
- Windows:
venv\Scripts\activate- Linux/Mac:
source venv/bin/activate- Instale as dependências:
pip install -r requirements.txt- Configure o banco de dados:
- Crie um banco de dados MySQL
- Copie o arquivo
.env.examplepara.env - Edite o arquivo
.envcom suas configurações:
DB_HOST=localhost
DB_USER=seu_usuario
DB_PASSWORD=sua_senha
DB_NAME=medical_appointments
[email protected]
EMAIL_PASSWORD=sua_senha_de_app
- Execute os scripts SQL:
mysql -u seu_usuario -p medical_appointments < script.sqlO sistema usa Gmail para enviar notificações. Para configurar:
- Ative a verificação em duas etapas na sua conta Google
- Gere uma senha de aplicativo
- Use esta senha no arquivo
.env
-
Ative o ambiente virtual (se ainda não estiver ativo)
-
Execute o servidor:
python app.py- Acesse o sistema:
- Abra o navegador
- Acesse
http://localhost:5000
app.py: Arquivo principal da aplicaçãomodels.py: Classes e modelos do domíniodb.py: Funções de acesso ao banco de dadosroutes/: Rotas da aplicaçãoauth.py: Autenticaçãopaciente.py: Rotas do pacienterecepcionista.py: Rotas da recepcionista
templates/: Templates HTMLemail_service.py: Serviço de envio de emailstests.py: Testes unitários
python -m unittest tests.py -v- Raio-X
- Ultrassonografia
- Tomografia Computadorizada
- Ressonância Magnética
- Mamografia
- Segunda a Sexta: 08:00 às 18:00
- O sistema não permite agendamentos fora deste horário
-
O sistema verifica a disponibilidade de horários automaticamente
-
Notificações são enviadas por email para:
- Confirmação de agendamento
- Cancelamento de exame
- Alteração de horário
- Lembretes 24h antes do exame
-
Todos os horários são salvos em UTC
-
É necessário ter um servidor MySQL rodando localmente
-
Erro de conexão com banco de dados
- Verifique se o MySQL está rodando
- Confira as credenciais no arquivo
.env
-
Erro no envio de emails
- Verifique as configurações do Gmail
- Confirme se a senha de aplicativo está correta
-
Erro ao executar os testes
- Certifique-se que o banco de dados de teste existe
- Verifique se todas as dependências estão instaladas
Os logs do sistema podem ser encontrados em:
- Logs de aplicação:
app.log - Logs de email:
email.log
- Faça um fork do projeto
- Crie uma branch para sua feature
- Faça commit das alterações
- Faça push para a branch
- Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.