Agendamentos
O módulo de Agendamentos oferece um calendário interativo para gerenciar toda a agenda da clínica, com suporte a múltiplos profissionais e unidades.
Visão Geral da Interface
O calendário suporta três visualizações:
| Visualização | Quando usar |
|---|---|
| Dia | Detalhamento do dia com slots por hora |
| Semana | Visão geral da semana para planejamento |
| Mês | Visão macro para ocupação mensal |
No mobile, a visualização padrão é Dia. No desktop, é Semana.
Criar um Agendamento
- Clique em um slot vazio no calendário ou no botão + Novo Agendamento
- Preencha o formulário:
- Paciente: Busque pelo nome, CPF ou telefone. Se não existir, crie um novo inline
- Profissional: Selecione o profissional disponível para o horário
- Procedimento: Selecione o serviço a ser realizado
- Data e horário: Confirmado pelo slot selecionado ou editável
- Unidade e sala: Selecione a unidade (obrigatório) e a sala (opcional)
- Observações: Campo livre para anotações
- Clique em Confirmar Agendamento
Ao salvar, o sistema:
- Valida disponibilidade do profissional (sem conflitos)
- Valida disponibilidade da sala (se informada)
- Persiste o agendamento com status
AGENDADO - Envia e-mail de confirmação ao paciente
Máquina de Estados
Cada agendamento segue um fluxo de estados:
AGENDADO
↓
CONFIRMADO ──────────────────────┐
↓ ↓
EM_ATENDIMENTO CANCELADO
↓
CONCLUÍDO
↓
(Fatura gerada automaticamente)| Status | Descrição | Quem pode alterar |
|---|---|---|
AGENDADO | Criado, aguardando confirmação | — |
CONFIRMADO | Paciente confirmou presença | Recep., Admin, Owner |
EM_ATENDIMENTO | Check-in realizado | Recep., Admin, Owner |
CONCLUÍDO | Atendimento finalizado | Admin, Owner, Professional |
CANCELADO | Cancelado (requer motivo) | Recep., Admin, Owner |
NO_SHOW | Paciente não compareceu | Recep., Admin, Owner |
Filtros do Calendário
A barra lateral de filtros permite visualizar:
- Por profissional: Ver agenda de um ou múltiplos profissionais
- Por procedimento: Filtrar por tipo de serviço
- Por status: Exibir apenas agendamentos em determinados estados
Gerenciar um Agendamento Existente
Clique em qualquer agendamento no calendário para abrir o painel lateral de detalhes. A partir dele é possível:
- Alterar status (ex: confirmar chegada, finalizar atendimento)
- Reagendar: Alterar data/hora com registro no histórico
- Cancelar: Registrar motivo obrigatório
- Visualizar informações do paciente, profissional e procedimento
- Acessar prontuário (Professional e Admin)
- Gerar fatura (Admin, Owner, Receptionist)
Configurar Disponibilidade de Profissionais
Em Configurações → Profissionais → Grade de Disponibilidade, cada profissional define:
- Dias da semana disponíveis
- Horários de início e fim por turno
- Duração padrão de slot (15, 30, 45 ou 60 minutos)
- Exceções por data (férias, feriados, reuniões)
Horários fora da disponibilidade configurada não aparecem como opções disponíveis ao criar um agendamento.
Notificações Automáticas
Quando um agendamento é criado ou alterado, o sistema dispara automaticamente:
| Evento | Quando | Canal |
|---|---|---|
| Confirmação de agendamento | Imediatamente após criação | |
| Lembrete 24h antes | D-1 às 18h | |
| Lembrete 2h antes | 2h antes do horário |
Notificações via WhatsApp estão planejadas para a V1.
Conflitos e Erros Comuns
| Situação | O que acontece |
|---|---|
| Profissional já tem agendamento no horário | Erro SLOT_NOT_AVAILABLE, horários alternativos são sugeridos |
| Sala já está ocupada no horário | Erro ROOM_CONFLICT, outras salas são listadas |
| Paciente sem e-mail cadastrado | Agendamento criado, notificação não enviada, alerta exibido |
| Profissional fora da grade de disponibilidade | Slot bloqueado, não aparece para seleção |
Permissões
| Ação | Owner | Admin | Receptionist | Professional | Viewer |
|---|---|---|---|---|---|
| Ver todos os agendamentos | ✅ | ✅ | ✅ | Próprios | ✅ |
| Criar agendamento | ✅ | ✅ | ✅ | ❌ | ❌ |
| Alterar status | ✅ | ✅ | ✅ | Parcial | ❌ |
| Cancelar agendamento | ✅ | ✅ | ✅ | Próprios | ❌ |
| Configurar disponibilidade | ✅ | ✅ | ❌ | Própria | ❌ |
Acesso
- URL:
/app/appointments - Guard: Requer autenticação