Files
agenciapsilmno/development/saas-docs/04-documentos-templates-melissa.json
Leonardo 7dd8cde8b4 saas-docs: doc da pagina de Templates de documentos (Fase 2)
Doc 04 cobrindo a pagina de gestao de templates:
- Globais (sistema, read-only) vs Tenant (seus, editaveis)
- Lista em grid com cards + badge "padrao" pros globais
- Preview de template global (iframe sandbox A4) + botao Duplicar
- Criar novo template (nome/tipo/desc/cabecalho/corpo/rodape)
- Editor rich-text com menu de variaveis (insere {{nome_var}})
- Lista de variaveis disponiveis (paciente/terapeuta/clinica/sessao/geral)
- Mobile drawer pros templates
- Duplicar (cria copia em "Seus templates" com sufixo "(copia)")
- Desativar (soft-delete, docs antigos continuam acessiveis)
- Mapeamento tipo template -> categoria do doc gerado

12 FAQs: pra que serve, por que nao edita padroes, como usar variavel,
quais variaveis, recuperar desativado, duplicar pra personalizar,
global vs tenant, imagens (logo/assinatura), cabecalho/rodape em todas
as paginas, variaveis obrigatorias, limites, compartilhamento entre
terapeutas do mesmo tenant.

categoria='Documentos', pagina_path='/melissa/documentos-templates',
ordem=4. SQL import em database-novo/tmp/import-doc-documentos-
templates.sql.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 14:04:17 -03:00

88 lines
12 KiB
JSON

{
"titulo": "Templates de documentos",
"conteudo": "<h2>Templates de documentos</h2>\n\n<p>A página <strong>Templates de documentos</strong> (acessível pelo menu Prontuários → Templates de documentos, ou diretamente em <code>/melissa/documentos-templates</code>) é onde você gerencia os modelos usados pra gerar atestados, declarações, recibos, laudos e outros documentos clínicos.</p>\n\n<h3>1. Globais vs Tenant (Seus templates)</h3>\n<p>A lista é dividida em 2 grupos:</p>\n<ul>\n <li><strong>Templates padrão (globais)</strong> — vêm pré-instalados com o sistema (Declaração de Comparecimento, Atestado Psicológico, Recibo de Pagamento, Laudo Psicológico, Parecer, Encaminhamento, etc). São <strong>read-only</strong> — você não pode editar nem desativar, mas pode duplicar pra personalizar.</li>\n <li><strong>Seus templates (tenant)</strong> — os que você criou ou duplicou. Editáveis, removíveis (desativação soft-delete).</li>\n</ul>\n<p>Todos os templates ativos do tenant (globais + seus) ficam disponíveis na hora de gerar um documento pro paciente.</p>\n\n<h3>2. Lista de templates</h3>\n<p>Cards em grid mostrando: nome, tipo, descrição, badge \"padrão\" pros globais. No card de cada template do tenant há um menu de 3 pontos com: <strong>Duplicar</strong>, <strong>Editar</strong>, <strong>Desativar</strong>. Pros globais, só <strong>Duplicar</strong> (e click no card abre a Preview).</p>\n\n<h3>3. Preview de template global (read-only)</h3>\n<p>Click num template padrão abre a Preview — iframe sandbox renderizando o HTML completo (cabeçalho + corpo + rodapé) com estilos de A4 simulando o PDF final. Header tem botão <strong>Duplicar</strong> pra você levar pros seus templates.</p>\n\n<h3>4. Criar novo template</h3>\n<p>Botão <strong>+ Novo template</strong> abre o editor em modo \"create\". Campos:</p>\n<ul>\n <li><strong>Nome</strong> e <strong>tipo</strong> (declaração, atestado, recibo, laudo, etc) — define a categoria do documento gerado</li>\n <li><strong>Descrição</strong> opcional — aparece na lista</li>\n <li><strong>Cabeçalho</strong> (top fixo) — geralmente nome da clínica, endereço, CNPJ</li>\n <li><strong>Corpo</strong> (conteúdo principal) — o texto do documento com variáveis interpoladas</li>\n <li><strong>Rodapé</strong> (bottom fixo) — assinatura, contato, observações</li>\n</ul>\n\n<h3>5. Editor rich-text + variáveis</h3>\n<p>Cada bloco (cabeçalho/corpo/rodapé) tem editor WYSIWYG com formatação, listas, tabelas e inserção de imagens. Ao clicar no botão de <strong>variáveis</strong>, abre um menu com todas as variáveis disponíveis. Click numa insere <code>{{nome_da_variavel}}</code> no cursor.</p>\n\n<div style=\"background: rgba(99,102,241,0.08); border: 1px solid rgba(99,102,241,0.25); border-radius: 10px; padding: 12px 14px; margin: 14px 0; font-size: 0.85rem; color: var(--text-color);\">\n <strong>💡 Variáveis disponíveis:</strong> <code>{{paciente_nome}}</code>, <code>{{paciente_cpf}}</code>, <code>{{paciente_rg}}</code>, <code>{{paciente_email}}</code>, <code>{{terapeuta_nome}}</code>, <code>{{terapeuta_registro}}</code> (CRP 12345/SP formatado), <code>{{terapeuta_telefone}}</code>, <code>{{clinica_nome}}</code>, <code>{{clinica_cnpj}}</code>, <code>{{data_atual}}</code>, <code>{{data_atual_extenso}}</code>, e — se gerado a partir de sessão — <code>{{valor}}</code>, <code>{{valor_extenso}}</code>, <code>{{data_sessao}}</code>. Lista completa no dropdown do editor.\n</div>\n\n<h3>6. Mobile (drawer pros templates)</h3>\n<p>Em telas &lt;1024px a lista vira um drawer com botão \"Templates\" no header. Click num item fecha o drawer e mostra o preview/editor ocupando a tela toda.</p>\n\n<h3>7. Duplicar</h3>\n<p>Duplicar copia o template (incluindo cabeçalho, corpo, rodapé e variáveis) pra <em>Seus templates</em> com sufixo <em>\"(cópia)\"</em> no nome. Você edita à vontade depois.</p>\n\n<h3>8. Desativar (soft-delete)</h3>\n<p>Templates do tenant podem ser <strong>desativados</strong> (não excluídos). Ficam marcados com <code>ativo = false</code> e somem da lista padrão e do dropdown de geração — mas o registro permanece no banco, e documentos antigos gerados a partir desse template continuam acessíveis. Pra reativar, marque \"incluir desativados\" no filtro (futuro — atualmente só via DB).</p>\n\n<h3>9. Tipos de template</h3>\n<p>Cada template tem um <strong>tipo</strong>. O tipo determina automaticamente qual categoria o documento gerado terá no prontuário do paciente:</p>\n<ul>\n <li><code>declaracao_comparecimento</code>, <code>declaracao_inicio_tratamento</code>, <code>encaminhamento</code> → categoria <strong>Declaração</strong></li>\n <li><code>atestado_psicologico</code> → categoria <strong>Atestado</strong></li>\n <li><code>laudo_psicologico</code>, <code>parecer_psicologico</code> → categoria <strong>Laudo</strong></li>\n <li><code>recibo_pagamento</code> → categoria <strong>Recibo</strong></li>\n <li><code>relatorio_acompanhamento</code> → categoria <strong>Relatório externo</strong></li>\n <li>Outros tipos (<code>termo_consentimento</code>, <code>contrato_servicos</code>, <code>autorizacao_*</code>, <code>outro</code>) → categoria <strong>Outro</strong></li>\n</ul>\n\n<h3>⚠️ Notas pro desenvolvedor</h3>\n<p>O componente <code>MelissaDocumentosTemplates.vue</code> reusa <code>useDocumentTemplates</code> + <code>DocumentTemplateEditor</code>. A lista de tipos vem do composable (<code>TIPOS_TEMPLATE</code>). O mapeamento tipo de template → tipo do documento gerado vive em <code>DocumentGenerate.service.js</code> (<code>TEMPLATE_TYPE_TO_DOC_TYPE</code>). RLS no banco: templates globais (<code>is_global = true</code>) tem leitura aberta; templates do tenant respeitam <code>tenant_id</code>.</p>",
"categoria": "Documentos",
"exibir_no_faq": true,
"tipo_acesso": "usuario",
"pagina_path": "/melissa/documentos-templates",
"ordem": 4,
"ativo": true,
"medias": [
{ "tipo": "imagem", "url": "" }
],
"_faq_itens": [
{
"pergunta": "Pra que serve a página de Templates?",
"resposta": "Pra você gerenciar os <strong>modelos</strong> que serão usados na hora de gerar atestados, declarações, recibos, laudos e outros documentos clínicos. Cada template tem cabeçalho, corpo e rodapé com variáveis interpoladas (nome do paciente, CRP, data, etc) — quando você usa o botão <em>Gerar</em> num prontuário, é um desses templates que está sendo aplicado.",
"ordem": 0,
"ativo": true
},
{
"pergunta": "Por que não consigo editar os templates padrão (com badge \"padrão\")?",
"resposta": "Templates marcados como <strong>globais</strong> (badge azul \"padrão\") vêm pré-instalados com o sistema e são compartilhados entre todos os tenants. Não dá pra editar pra preservar a versão de referência. Pra personalizar um, click em <strong>Duplicar</strong> — uma cópia vai pra <em>Seus templates</em> e ali você edita à vontade.",
"ordem": 1,
"ativo": true
},
{
"pergunta": "Como uso uma variável no template?",
"resposta": "No editor (cabeçalho, corpo ou rodapé), posicione o cursor onde quer a variável e clique no botão de <strong>variáveis</strong> na barra de ferramentas. Um menu lista todas as variáveis disponíveis agrupadas por categoria. Click numa variável insere <code>{{nome_da_variavel}}</code> no cursor. Na hora de gerar o documento, esse placeholder é substituído pelo valor real.",
"ordem": 2,
"ativo": true
},
{
"pergunta": "Quais variáveis estão disponíveis?",
"resposta": "Agrupadas por categoria — <strong>Paciente:</strong> nome, CPF, RG, data nascimento, email, telefone, endereço. <strong>Terapeuta:</strong> nome, email, telefone, registro profissional (formatado tipo \"CRP 12345/SP\"), tipo/número/UF do registro separados. <strong>Clínica:</strong> nome, endereço, telefone, CNPJ. <strong>Sessão:</strong> data, hora, valor, valor por extenso, forma de pagamento, modalidade. <strong>Geral:</strong> data atual, data atual por extenso. Lista completa visível no menu de variáveis do editor.",
"ordem": 3,
"ativo": true
},
{
"pergunta": "Posso recuperar um template que eu desativei?",
"resposta": "Sim, mas hoje só via banco de dados (administrador). Desativar é <strong>soft-delete</strong>: o template ganha <code>ativo = false</code> e some da lista. Documentos antigos gerados com ele continuam acessíveis. Em versões futuras teremos um filtro \"mostrar desativados\" pra reativar via UI.",
"ordem": 4,
"ativo": true
},
{
"pergunta": "Como duplico um template padrão pra personalizar?",
"resposta": "Click no card do template padrão pra abrir a <strong>Preview</strong>. No header da preview tem um botão <strong>Duplicar</strong>. Confirme — a cópia aparece em <em>Seus templates</em> com sufixo \"(cópia)\" no nome. Em seguida click em <strong>Editar</strong> nessa cópia pra ajustar texto, variáveis, cabeçalho, rodapé.",
"ordem": 5,
"ativo": true
},
{
"pergunta": "Qual a diferença prática entre template Global e do Tenant?",
"resposta": "Globais são compartilhados entre todos os tenants (vêm com o sistema) e são <strong>read-only</strong>. Templates do tenant pertencem só à sua clínica/conta e são editáveis. Ambos aparecem juntos na hora de gerar um documento — você não precisa duplicar pra usar um global, só pra personalizar. Se um global atende, use direto.",
"ordem": 6,
"ativo": true
},
{
"pergunta": "Posso usar imagens no template (logo da clínica, assinatura digitalizada)?",
"resposta": "Sim. O editor aceita inserção de imagens via toolbar. Recomendado: PNG ou JPG com tamanho moderado (logo até 200x80px, assinatura até 300x120px). Imagens muito grandes inflam o PDF gerado. Pra incluir o logo da clínica, prefira colocar no <strong>cabeçalho</strong> — assim aparece no topo de toda página do PDF.",
"ordem": 7,
"ativo": true
},
{
"pergunta": "O cabeçalho e rodapé aparecem em todas as páginas do PDF?",
"resposta": "Sim. O renderizador usa CSS <code>@page</code> com cabeçalho fixo no topo e rodapé fixo no rodapé de cada página gerada. Documentos curtos (1 página) você não percebe; documentos longos (laudos extensos) repetem cabeçalho/rodapé automaticamente. Útil pra manter identificação da clínica em todas as folhas.",
"ordem": 8,
"ativo": true
},
{
"pergunta": "Como sei se um template tem variável obrigatória?",
"resposta": "Hoje não há marcação \"obrigatória\" — todas as variáveis declaradas no template aparecem como editáveis na hora de gerar. Se uma vier vazia (porque não cadastrou no perfil/paciente/etc), o sistema mostra um hint embaixo do campo dizendo onde cadastrar (ex: <em>\"Perfil → Registro Profissional\"</em>). Você pode gerar mesmo com vazias — o placeholder fica como <code>{{variavel}}</code> no PDF, mas isso quase nunca é desejado.",
"ordem": 9,
"ativo": true
},
{
"pergunta": "Tem limite de templates por tenant?",
"resposta": "Não há limite hard no banco. Em planos free pode haver limite por contrato (verifique seu plano em Configurações → Plano). Recomendado manter o conjunto enxuto (10-20 templates) pra não poluir o dropdown na hora de gerar — se você não usa, desative.",
"ordem": 10,
"ativo": true
},
{
"pergunta": "Os templates são compartilhados entre os terapeutas do mesmo tenant?",
"resposta": "Sim. Todos os templates do tenant ficam disponíveis pra todos os usuários ativos do mesmo tenant (clínica). Quem cria/edita pode ser qualquer um com permissão de edição — não há \"templates privados por usuário\" no momento. Se precisar isolar templates por terapeuta, organize por nome (ex: \"Atestado · Dra. Ana\").",
"ordem": 11,
"ativo": true
}
]
}