Search buenodc

Nesta página
  1. Contexto
  2. Objetivo da atividade
  3. Escopo obrigatório
  4. Regras de negócio obrigatórias
  5. Observações
  6. Bônus — Adicionando estilo com CSS

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:

  1. coletar dados de triagem por formulário;
  2. processar os dados no backend via POST;
  3. seguir para uma etapa de agendamento;
  4. 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çãoPrioridadeRecomendação exibida
Temperatura >= 38,5 ou dor >= 8ALTA“Encaminhar para atendimento prioritário”
Nenhuma condição acima e dor entre 5–7MEDIA“Atender com preferência na fila”
Demais casosBAIXA“Aguardar atendimento na ordem de chegada”

Roteamento após a triagem

Prioridade calculadaPróxima tela
ALTATela 4B — Encaminhamento Imediato
MEDIA ou BAIXATela 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).