-- Importação da doc Fase 1 (Busca global + Recently viewed) -- Gerado a partir de development/saas-docs/01-busca-global-melissa.json BEGIN; DO $IMPORT$ DECLARE v_doc_id uuid; BEGIN -- 1) Cria a doc principal INSERT INTO public.saas_docs ( titulo, conteudo, categoria, exibir_no_faq, tipo_acesso, pagina_path, ordem, ativo, medias ) VALUES ( 'Busca global e Acessados recentemente', $HTML$

Busca global no Layout Melissa

A busca global é o atalho mais rápido para encontrar pacientes, sessões, documentos e cadastros recebidos sem precisar navegar pelos menus. Você acessa pelo dock central do Layout Melissa ou usando o atalho de teclado Ctrl + K (em qualquer página do Melissa).

1. Como abrir

Localize o campo de busca no dock central do Melissa. Ele aparece como um botão com o ícone de lupa e o placeholder "Buscar paciente, agenda, atalho…", com o atalho Ctrl K indicado no canto direito.

Buscar paciente, agenda, atalho… Ctrl K

Três jeitos de abrir:

2. O Dialog Spotlight

Ao abrir, o sistema mostra um diálogo centralizado com o input grande no topo e os resultados em colunas abaixo. Isso é o padrão Spotlight (igual ao usado em macOS, Linear, GitHub, Slack).

Buscar paciente, agenda, atalho… Esc
Acessados recentemente
André Green
andre@email.com

3. Onde a busca procura

Digitando pelo menos 2 caracteres, o sistema dispara uma busca completa em 5 categorias:

Cada categoria aparece com um ícone colorido distinto para facilitar a leitura visual. Os resultados são limitados aos 6 mais relevantes por categoria.

4. Como navegar nos resultados

Você pode usar o mouse ou o teclado:

5. Acessados recentemente

Quando você abre a busca sem digitar nada, a primeira seção mostra "Acessados recentemente" — os últimos 5 pacientes que você visitou (em qualquer dispositivo deste navegador).

💡 Dica: Use Ctrl+K + Enter para reabrir o último paciente acessado em 2 segundos.

Esses 5 pacientes ficam salvos no seu navegador (não no banco de dados), então:

6. Clique nos resultados

Ao clicar:

7. Tema claro × escuro

O Dialog adapta automaticamente as cores conforme o tema escolhido em Meu Perfil → Preferências. Texto, fundos e bordas seguem as configurações do sistema. Apenas os ícones por categoria (paciente rosa, sessão índigo, documento azul, cadastro laranja) mantêm a mesma cor para preservar a identificação visual rápida.

⚠️ Notas pro desenvolvedor

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

$HTML$, 'Navegação', true, 'usuario', '/melissa', 1, true, '[{"tipo": "imagem", "url": ""}]'::jsonb ) RETURNING id INTO v_doc_id; -- 2) Insere os 12 FAQ items vinculados INSERT INTO public.saas_faq_itens (doc_id, pergunta, resposta, ordem, ativo) VALUES (v_doc_id, 'Como abrir a busca rapidamente?', $FAQ$Use o atalho Ctrl + K (Windows/Linux) ou ⌘ + K (Mac) em qualquer página do Melissa. Você também pode clicar diretamente no campo de busca no dock central.$FAQ$, 0, true), (v_doc_id, 'Posso buscar paciente por telefone ou CPF?', $FAQ$Sim. A busca de pacientes encontra pelo nome completo, e-mail, telefone ou CPF. Digite pelo menos 2 caracteres e aguarde os resultados.$FAQ$, 1, true), (v_doc_id, 'O que aparece em "Acessados recentemente"?', $FAQ$Os últimos 5 pacientes que você abriu pelo prontuário, em ordem do mais recente pro mais antigo. A lista aparece quando você abre a busca sem digitar nada.$FAQ$, 2, true), (v_doc_id, 'Outros usuários veem meus "Acessados recentemente"?', $FAQ$Não. A lista é privada e local — fica salva apenas no seu navegador atual (localStorage). Se você logar em outro navegador ou computador, a lista começa vazia naquele dispositivo.$FAQ$, 3, true), (v_doc_id, 'Quantos caracteres preciso digitar pra começar a buscar?', $FAQ$Pelo menos 2. Buscas de 1 caractere são muito amplas e não disparam pesquisa. A partir de 2 caracteres, o sistema aguarda 200ms (tempo de digitação) antes de consultar o banco — assim você não dispara dezenas de buscas digitando rápido.$FAQ$, 4, true), (v_doc_id, 'Por que minha busca não retorna nada?', $FAQ$Verifique: (1) digitou pelo menos 2 caracteres; (2) o termo está sem erros graves de digitação (a busca tolera pequenas variações via similarity); (3) o paciente/sessão realmente existe no seu cadastro. Se persistir, faça uma busca mais ampla — ex: apenas o primeiro nome.$FAQ$, 5, true), (v_doc_id, 'O que cada cor de ícone significa?', $FAQ$Cada categoria tem uma cor própria: Rosa = Paciente, Índigo = Sessão da agenda, Azul = Documento, Laranja = Cadastro recebido pendente. Atalhos vêm em cinza neutro.$FAQ$, 6, true), (v_doc_id, 'Como navegar pelos resultados sem usar o mouse?', $FAQ$Use as setas do teclado e para navegar entre os itens e Enter para abrir o selecionado. Pra fechar sem selecionar, use Esc.$FAQ$, 7, true), (v_doc_id, 'Posso buscar documentos pelo nome do paciente?', $FAQ$Sim. A busca de documentos cruza pelo nome do arquivo, descrição e nome do paciente vinculado. Ao clicar num resultado de documento, você é levado direto pra aba Documentos do prontuário daquele paciente.$FAQ$, 8, true), (v_doc_id, 'Como limpar a lista de "Acessados recentemente"?', $FAQ$Hoje não há um botão na interface — a lista é gerenciada automaticamente (limite de 5, mais antigo cai quando você acessa um novo). Pra limpar manualmente, você pode apagar os dados do site no seu navegador (Configurações → Privacidade → Limpar dados de navegação → escopo "localStorage").$FAQ$, 9, true), (v_doc_id, 'A busca encontra sessões antigas ou só as de hoje?', $FAQ$Encontra sessões de qualquer data — passadas e futuras. O grupo "Agenda de hoje" mostra apenas as do dia atual (preview rápido); o grupo "Sessões" inclui todas as outras encontradas no banco. Cada item mostra a data e horário da sessão.$FAQ$, 10, true), (v_doc_id, 'Os atalhos (Agenda, Financeiro, etc.) sempre aparecem?', $FAQ$Sim. Quando o campo está vazio, mostramos 4 atalhos padrão. Conforme você digita, os atalhos que combinam com sua busca permanecem visíveis (junto com os resultados do banco).$FAQ$, 11, true); RAISE NOTICE 'Doc criada: id=%, faq_itens=12', v_doc_id; END; $IMPORT$; COMMIT;