PBL — Sistema de Triagem e Agendamento (sem banco)
Disciplina: Programação Web 2
Professor: Me. Danilo Bueno
Formato: grupos de 3 a 4 estudantes
Duração: 2 aulas (50 min cada)
Contexto
A Clínica Saúde+ atende cerca de 80 pacientes por dia e ainda utiliza fichas em papel na recepção. O processo atual é lento: a recepcionista preenche a ficha à mão, avalia visualmente os dados e decide para onde encaminhar o paciente — muitas vezes sem critério claro de prioridade.
A clínica precisa de um protótipo web para modernizar esse fluxo. O sistema deve coletar os dados iniciais do paciente, calcular automaticamente o nível de prioridade com base nos sinais vitais informados e direcionar o atendimento para o caminho correto: agendamento convencional ou encaminhamento imediato.
Nesta versão, o sistema não salvará dados em banco, mas deve simular um fluxo real de atendimento com envio de formulários e retorno de informações processadas.
Exemplo de fluxo de atendimento
Caso 1 — Prioridade baixa: João, 45 anos, chega à recepção com temperatura de 37,2 °C e relata dor de intensidade 3. A recepcionista preenche o formulário de triagem. O sistema calcula prioridade BAIXA e redireciona para o agendamento convencional. João escolhe atendimento presencial com clínico geral na quinta-feira de manhã. A confirmação exibe o protocolo gerado.
Caso 2 — Prioridade alta: Maria, 72 anos, chega com temperatura de 39,1 °C e relata dor de intensidade 9. O sistema calcula prioridade ALTA e redireciona imediatamente para o formulário de encaminhamento. A recepcionista informa o setor de destino (Pronto Atendimento) e o profissional responsável. A confirmação registra o protocolo do encaminhamento.
Objetivo da atividade
Construir um mini sistema com Spring Boot + Thymeleaf que permita:
- coletar dados de triagem por formulário;
- processar os dados no backend via POST;
- seguir para uma etapa de agendamento;
- exibir confirmação final com resumo do atendimento.
Escopo obrigatório
Tela 1 — Entrada
- Exibir uma página inicial com botão para iniciar atendimento.
- Usar rota inicial
/.
Tela 2 — Formulário de Triagem
Campos obrigatórios:
- nome (texto)
- idade (número)
- temperatura (número decimal)
- dor (escala de 0 a 10)
- sintomas (texto)
Envio:
- método POST
- dados enviados para rota de processamento da triagem
Tela 3 — Resultado da Triagem
Deve mostrar:
- todos os dados recebidos do formulário;
- nível de prioridade calculado;
- recomendação ao recepcionista;
- encaminhamento para uma das rotas abaixo, conforme a prioridade calculada:
- rota A: agendamento;
- rota B: encaminhamento imediato.
Tela 4A — Formulário de Agendamento
Campos obrigatórios:
- profissional (clínico geral, pediatra ou enfermagem)
- data (date)
- período (manhã, tarde, noite)
- tipo (presencial ou teleconsulta)
Envio:
- método POST
- dados enviados para rota de confirmação final
Tela 4B — Encaminhamento Imediato
Deve existir uma segunda rota para casos críticos, com formulário simples contendo:
- setor de destino (ex.: sala de observação, enfermagem, pronto atendimento)
- profissional responsável
- observação curta
Envio:
- método POST
- dados enviados para rota de confirmação final
Tela 5 — Confirmação Final
Deve mostrar:
- resumo do caminho escolhido (agendamento ou encaminhamento);
- número de protocolo (pode ser gerado com data/hora ou valor simples).
Regras de negócio obrigatórias
Cálculo de prioridade (processar na triagem)
| Condição | Prioridade | Recomendação exibida |
|---|---|---|
| Temperatura >= 38,5 ou dor >= 8 | ALTA | “Encaminhar para atendimento prioritário” |
| Nenhuma condição acima e dor entre 5–7 | MEDIA | “Atender com preferência na fila” |
| Demais casos | BAIXA | “Aguardar atendimento na ordem de chegada” |
Roteamento após a triagem
| Prioridade calculada | Próxima tela |
|---|---|
| ALTA | Tela 4B — Encaminhamento Imediato |
| MEDIA ou BAIXA | Tela 4A — Agendamento |
Observações
- A interface pode ser simples; o foco é fluxo de dados e processamento no backend.
- Na tela de resultado da triagem, o usuário deve seguir por apenas um caminho por vez.
- A demonstração deve passar pelo fluxo completo, do início à confirmação final.
Bônus — Adicionando estilo com CSS
Se o grupo terminar as funcionalidades antes do prazo, tente incorporar um arquivo CSS próprio à aplicação usando Thymeleaf.
Leia o seguinte artigo para entender como referenciar arquivos estáticos (CSS, imagens) em projetos Spring Boot com Thymeleaf:
👉 https://www.buenodc.com/learn/springboot/thymeleaf-CSS/
Algumas ideias do que aplicar:
- cor de destaque diferente para cada nível de prioridade (ALTA, MEDIA, BAIXA);
- estilo visual para as mensagens de erro de validação;
- uma identidade visual simples para a clínica (logo, cores, tipografia).