Regra: Guard de Edição Não Salva
O que é
Em toda página ou modal de edição coberta pela regra, o sistema bloqueia a saída quando existem alterações pendentes (ainda não salvas). Antes de descartar qualquer dado digitado, exibe uma confirmação para o usuário decidir o que fazer. O objetivo é evitar a perda acidental de informações já preenchidas.
Gatilhos que disparam a confirmação
A confirmação é acionada sempre que o usuário tenta deixar a tela de edição com mudanças pendentes, em qualquer um dos seguintes casos:
- Tecla ESC dentro de um modal → mostra a confirmação e não fecha o modal automaticamente.
- Clique em outro menu ou link de outra rota → abre o modal de confirmação antes de navegar.
- Botão voltar/avançar do navegador → dispara a mesma confirmação interna do sistema.
- F5 / Ctrl+R / fechar a aba → exibe o prompt nativo do navegador ("As alterações podem não ser salvas").
Botões da confirmação
A janela de confirmação apresenta sempre três opções:
| Botão | Estilo | O que faz |
|---|---|---|
| Continuar editando | Padrão (foco inicial) | Fecha a confirmação e mantém o usuário no formulário, preservando o que foi digitado. |
| Sair sem salvar | Atenção (warning) | Descarta as alterações pendentes e sai da tela. |
| Salvar e sair | Primário | Tenta salvar; se o salvamento for bem-sucedido, navega para o destino. Se houver erro de validação, permanece no formulário. |
Cenários documentados (critério de aceitação BDD)
Os 12 cenários abaixo cobrem todos os gatilhos em diferentes telas e formam o critério de aceitação da regra.
| # | Cenário | Ação do usuário | Comportamento esperado |
|---|---|---|---|
| 1 | Editando paciente, decide abrir a Agenda | Clica no menu "Agenda" com campos alterados | Aparece a confirmação; só navega após escolher uma opção |
| 2 | Modal de autorização aberto com mudança | Aperta ESC | Confirmação aparece e o modal permanece aberto (não fecha) |
| 3 | Formulário de orçamento alterado | Pressiona F5 | Prompt nativo do navegador pedindo confirmação de saída |
| 4 | Editando agendamento, clica em outro link de rota | Clica em "Pacientes" no menu lateral | Modal de confirmação com os três botões antes de trocar de tela |
| 5 | Atendimento em edição (prontuário) | Clica no botão "voltar" do navegador | Confirmação interna do sistema; navegação cancelada se "Continuar editando" |
| 6 | Modal de orçamento com item alterado | Clica fora do modal / no "X" | Confirmação aparece; modal permanece se "Continuar editando" |
| 7 | Editando paciente | Fecha a aba do navegador | Prompt nativo do navegador alertando alterações não salvas |
| 8 | Autorização alterada, escolhe não perder dados | Na confirmação, clica em "Continuar editando" | Volta ao formulário com todos os campos preservados |
| 9 | Agendamento alterado, decide descartar | Na confirmação, clica em "Sair sem salvar" | Alterações descartadas e tela de destino é aberta |
| 10 | Orçamento alterado, quer salvar antes de sair | Na confirmação, clica em "Salvar e sair" | Salva e navega; se houver erro de validação, permanece no formulário |
| 11 | Editando paciente sem nenhuma alteração | Clica em outro menu | Nenhuma confirmação; navega direto (nada pendente para perder) |
| 12 | Modal de atendimento alterado | Aperta ESC e depois "Salvar e sair" | Modal continua na 1ª ação; ao confirmar salvar, fecha e navega |
Telas cobertas
A entrega de julho/2026 (#401 + #404) implementa a confirmação para sair da tela com alterações pendentes. A cobertura foi planejada em duas ondas, começando pelas telas principais:
Primeira onda (5 telas principais)
- Agendamento (criar/editar)
- Atendimento (prontuário)
- Autorização
- Orçamento
- Paciente (cadastro/edição)
Expansão (~25 telas)
Expansão da regra para os demais formulários de edição, por área (rollout progressivo):
- Configurações: empresas/unidades, locais, colaboradores, equipamentos, operadoras, convênios, serviços, taxas, parâmetros e demais cadastros.
- Estoque: produtos, fornecedores, fabricantes, princípios ativos, depósitos.
- Financeiro: registros a pagar/receber, contas e caixas, categorias, centro de custo.
- Faturamento: pré-faturamento, lotes, glosas.
Gravação protegida: "alterado por outra pessoa" e "parte dos dados não carregou" ✅ Novo — 02/10/2026
Complementa a confirmação acima. Em produção desde 01/10/2026 no convênio e desde 02/10/2026 no sistema todo (#640). Agora o sistema também protege contra gravar por cima do trabalho de outra pessoa e contra gravar com a tela pela metade.
| Mensagem | O que aconteceu | O que fazer |
|---|---|---|
| "Este registro foi alterado por outra pessoa. Recarregue a tela antes de alterar." | Outra pessoa salvou o mesmo registro depois que a sua tela abriu. Nada foi gravado por cima. | Recarregue a tela (F5), confira o que a outra pessoa mudou e refaça a sua alteração. |
| "Parte dos dados não carregou: nada foi gravado. Recarregue a tela antes de alterar." | Algum bloco da tela não carregou (rede lenta, por exemplo). A tela fica só leitura e o Salvar desligado. | Recarregue a tela. No convênio aparece também "A tela fica só leitura até carregar tudo." e o botão "Recarregar a tela". |
| "Aguarde o carregamento dos dados do convênio antes de salvar." | Clicou em Salvar antes de o convênio terminar de carregar. | Espere carregar e salve de novo. |
| "Seu usuário está desativado nesta clínica. Procure o administrador do sistema." | O colaborador foi desativado; o bloqueio vale na hora, em qualquer ação (o administrador não é bloqueado). | Procure o administrador. |
| "Este documento já foi assinado digitalmente e não pode ser alterado." | O documento do atendimento já está assinado; o editor fica só leitura. | Documento assinado não pode ser alterado (assinar de novo responde "Este documento já foi assinado digitalmente."). |
Onde vale: convênio e suas abas, agendamento (criar, editar, cancelar, confirmar, acolher, aprovar online, pagamento parcial), atendimento (documentos com salvamento automático, produtos, taxas, equipamentos, remover serviço), autorização, financeiro (registros, parcelas, desconto, contas caixa, conciliação XML), pré-faturamento e lote, compras (NF de entrada, pedidos, cotação), estoque (produto, fornecedor, kits) e aprovações — numa aprovação, a mesma mensagem significa que outra pessoa já decidiu o pedido, e a pendência sai da sua lista.
Novo — out/2026 Desde 15–22/10, a troca automática de status da autorização não provoca mais o aviso "alterado por outra pessoa" para quem está com a tela aberta.
Ainda sem essa proteção: modelos de documento e anexos do atendimento. Pela API externa a conferência de versão é opcional (quem integra pode gravar sem enviar a versão).
Resumo para o usuário
Sempre que você estiver editando algo e tentar sair sem salvar, o sistema pergunta o que fazer. Escolha Continuar editando para voltar ao formulário, Sair sem salvar para descartar, ou Salvar e sair para gravar e seguir. Assim você não perde mais o que digitou por engano.