{ "titulo": "Cronômetro de sessão", "conteudo": "

Cronômetro de sessão

\n\n

O cronômetro de sessão acompanha o tempo decorrido durante o atendimento e é integrado com a agenda. Quando aberto a partir de uma sessão em andamento, ele já vem com o paciente pré-selecionado e dispara automaticamente.

\n\n

1. Três jeitos de abrir

\n\n

Os dois últimos pré-selecionam o paciente da sessão e disparam o timer automaticamente.

\n\n

2. Sessão em curso na timeline

\n

Quando uma sessão entra em andamento (horário atual entre início e fim do evento), aparece um ícone pulsando no canto superior direito do card do evento. O pulso é sutil, em verde — só pra sinalizar que dá pra cronometrar dali.

\n\n
\n 11:00 – Larissa Almeida\n \n \n \n
\n\n

Clicar no não abre o evento — abre o cronômetro pré-configurado pra essa sessão.

\n\n

3. Programado vs tempo real

\n

Quando aberto via timeline ou card “Próximo paciente”, o cronômetro mostra o horário programado original da sessão sob o select de paciente. Se você abriu depois do horário previsto, aparece um badge laranja “atrasada X min”.

\n\n
\n \n
Larissa Almeida
\n
\n \n Programado: 11:00 – 11:50\n atrasada 8 min\n
\n
\n\n

⚠️ O cronômetro NÃO desconta o tempo de atraso automaticamente. Ele conta a duração configurada cheia (50min padrão) a partir do clique. A info “atrasada” é só pra você decidir se quer encerrar antes ou estender.

\n\n

4. Anatomia do dialog

\n\n\n

5. Minimizar e restaurar

\n

Click no botão minimizar (ou click fora do dialog) recolhe o cronômetro pra um chip flutuante no dock (canto inferior esquerdo, ao lado do ψ). O timer continua rodando em background. Click no chip restaura o dialog em tela cheia.

\n\n
\n \n 48:13\n Larissa Almeida\n
\n\n

Em mobile (telas <768px), o chip mostra só o ícone + tempo — sem o nome do paciente — pra caber no dock estreito. O nome continua acessível ao restaurar.

\n\n

6. Parar (salva) vs Fechar (descarta)

\n

Duas ações diferentes pra terminar — a escolha importa:

\n\n\n

7. Quando o tempo acaba

\n

Aos 50 minutos cronometrados (ou conforme configurado), o sistema toca um som curto uma única vez. O display vira vermelho e continua contando em negativo (mostra -mm:ss). Não há corte automático — você decide quando parar.

\n\n

O toque pode ser trocado em Configurações → Cronômetro → Som de término. Opções: sino, gong, soft, silêncio.

\n\n

8. Persistência (reload-safe)

\n

Se você fechar a aba ou recarregar o navegador com cronômetro ativo, ao voltar o sistema retoma exatamente de onde parou — descontando automaticamente o tempo passado entre fechar e abrir. O snapshot fica no localStorage do navegador, atualizado a cada mudança de estado.

\n\n

Limite de segurança: se passar de 24h sem voltar à aba, o restore não acumula o tempo perdido (proteção contra mudanças do relógio do sistema).

\n\n

9. Cronômetro já ativo

\n

Existe um cronômetro por vez. Se você clicar no de outra sessão enquanto há cronômetro rodando, o sistema mostra um toast “Cronômetro já ativo” com o nome do paciente atual — e não troca. Pare o cronômetro atual antes de iniciar outro.

\n\n

10. Atividade livre (sem paciente)

\n

Você pode abrir o cronômetro sem paciente (botão ⏱ do dashboard, sem clicar em evento específico) e selecionar “— Atividade livre (sem paciente)” no dropdown. Útil pra:

\n\n

Atividade livre não emite session-end ao parar (não há paciente pra vincular o tempo).

\n\n

⚠️ Notas pro desenvolvedor

\n

Atualmente o componente MelissaCronometro.vue não tem atributos id em seus elementos. Para o sistema de highlight da ajuda funcionar (links data-highlight), sugere-se adicionar:

\n", "categoria": "Sessão", "exibir_no_faq": true, "tipo_acesso": "usuario", "pagina_path": "/melissa", "ordem": 2, "ativo": true, "medias": [ { "tipo": "imagem", "url": "" } ], "_faq_itens": [ { "pergunta": "Como começo o cronômetro da Larissa que chegou agora pra sessão?", "resposta": "Quando o horário programado da Larissa estiver dentro da janela do evento (já começou na agenda), aparece um botão pulsando em verde no canto superior direito do card da sessão na timeline. Clique nele — o cronômetro abre com a Larissa pré-selecionada e já começa a contar automaticamente. Alternativa: clique no botão “Iniciar cronômetro” no card “Próximo paciente” do dashboard (mesmo efeito).", "ordem": 0, "ativo": true }, { "pergunta": "O cronômetro continua se eu fechar a aba do navegador?", "resposta": "Sim. O estado é salvo no localStorage a cada mudança (paciente, play, pause, ajustes). Ao reabrir a aba (ou recarregar), o cronômetro retoma do ponto correto — o tempo passado entre fechar e abrir é descontado automaticamente. Limite: se passar de 24h, o sistema não acumula esse tempo (proteção contra mudanças do relógio do sistema).", "ordem": 1, "ativo": true }, { "pergunta": "Cliquei no X com sessão rodando, perdi o tempo?", "resposta": "Não, o sistema pede confirmação antes. Quando há sessão em andamento ou tempo decorrido sem salvar, aparece um diálogo “Encerrar sessão sem salvar?”. Você precisa clicar em “Encerrar sem salvar” (botão vermelho) pra confirmar o descarte. Se o cronômetro estiver limpo (não iniciado, sem tempo), o X fecha direto — não há nada pra preservar.", "ordem": 2, "ativo": true }, { "pergunta": "Posso ter dois cronômetros rodando ao mesmo tempo?", "resposta": "Não. Existe um cronômetro por vez. Se você clicar no de outra sessão enquanto já há um cronômetro ativo, o sistema mostra um toast “Cronômetro já ativo — sessão de X em andamento” e não troca. Pare ou descarte o atual antes de iniciar outro.", "ordem": 3, "ativo": true }, { "pergunta": "O que significa o badge laranja “atrasada 8 min”?", "resposta": "Significa que o cronômetro foi aberto 8 minutos depois do horário programado da sessão na agenda. Por exemplo: sessão programada pra 11:00, você inicia o cronômetro às 11:08. O badge é apenas informativo — o cronômetro continua contando a duração configurada cheia (50min padrão) a partir do clique. Você decide se vai encerrar antes pra terminar no horário previsto ou deixar rodar pra dar a sessão completa.", "ordem": 4, "ativo": true }, { "pergunta": "O cronômetro desconta o tempo de atraso automaticamente?", "resposta": "Não. A decisão fica com você. Cada clínica e cada terapeuta tem uma política diferente pra atraso (alguns dão sessão cheia, outros encerram no horário programado, outros estendem). O cronômetro mostra a info do atraso pra você decidir, mas conta sempre a duração configurada cheia a partir do clique.", "ordem": 5, "ativo": true }, { "pergunta": "Que som toca quando o tempo acaba?", "resposta": "Por padrão, um som de sino curto, uma única vez. Você pode trocar em Configurações → Cronômetro → Som de término. Opções: sino, gong, soft, silêncio. O som toca exatamente na transição de tempo positivo pra zero/negativo — não repete. Depois disso o display continua contando em negativo (vermelho) até você parar.", "ordem": 6, "ativo": true }, { "pergunta": "Como adiciono mais tempo na sessão sem reiniciar?", "resposta": "Use os botões +5 min e -5 min ao redor do display gigante. Funcionam a qualquer momento — antes, durante ou depois do tempo acabar. Cada clique soma ou desconta 5 minutos. Se o tempo já está negativo (passou do limite), +5min volta a contagem pra positivo.", "ordem": 7, "ativo": true }, { "pergunta": "Onde fica salvo o tempo final da sessão?", "resposta": "Quando você clica em ⏹ Parar, o tempo cronometrado é gravado no banco vinculado à sessão da agenda (na tabela agenda_eventos, campo de duração real). Esse caminho é o oficial — fechar pelo X descarta sem salvar. Sessões com menos de 5 segundos cronometrados são ignoradas (proteção contra start/stop acidentais).", "ordem": 8, "ativo": true }, { "pergunta": "Posso usar o cronômetro pra coisas que não são sessão de paciente?", "resposta": "Sim. Selecione “— Atividade livre (sem paciente)” no dropdown de paciente. Útil pra pausa cronometrada, pomodoro pessoal, atendimento informal não cadastrado. Atividade livre não dispara session-end ao parar — não há paciente pra vincular o tempo no DB.", "ordem": 9, "ativo": true }, { "pergunta": "Como minimizo o cronômetro pra continuar trabalhando?", "resposta": "Clique no botão minimizar no header (ícone ) ou simplesmente clique fora do dialog. O cronômetro vira um chip flutuante no dock (canto inferior esquerdo, ao lado do ψ) e continua contando em background. Pra restaurar: clique no chip. Em mobile, o chip mostra só ícone + tempo (sem nome) pra caber no dock estreito.", "ordem": 10, "ativo": true }, { "pergunta": "Como mudo o paciente no cronômetro já aberto?", "resposta": "Basta clicar no select de paciente e escolher outro. A troca é imediata — não reinicia o tempo decorrido (a contagem continua igual). Útil quando você abriu o cronômetro no paciente errado e quer corrigir sem perder o tempo já contado. Mas atenção: o session-end ao parar vai vincular o tempo ao paciente que estiver selecionado no momento da parada.", "ordem": 11, "ativo": true } ] }