Crie fichas de anamnese para massagem miofascial em Jardim Luzitânia usando automação no CorelDRAW
Automatize a criação de fichas de anamnese para massagem miofascial no CorelDRAW com VBA. Modelos padronizados, campos dinâmicos e fluxo profissional.
A recepcionista da clínica de Jardim Luzitânia abre o CorelDRAW, procura o arquivo “Ficha_Anamnese_Master.cdr”, faz uma cópia, renomeia com a data e o nome da paciente, e começa a editar caixas de texto uma a uma: queixa principal, cirurgias prévias, alergias, medicamentos, áreas de dor, termo de consentimento. São quatro minutos de cliques repetitivos para cada atendimento. Multiplique por doze pacientes ao dia e você tem quase uma hora gasta apenas em diagramação manual — tempo que poderia ir para o acolhimento ou para a própria massagem miofascial em Jardim Luzitânia.
O gargalo não está no design, mas no fluxo: o layout já está aprovado, a identidade visual da clínica é consistente, mas cada ficha nova exige substituição de textos em posições fixas, verificação de transbordamento de caixas, exportação em PDF/A e salvamento em duas pastas (arquivo local e pasta do prontuário eletrônico). Quando um terapeuta pede ajuste no campo “áreas de dor” para incluir mapa corporal, a equipe edita o master e esquece de propagar a mudança para os arquivos já copiados nas semanas anteriores. Resultado: versões divergentes, retrabalho e risco de dado clínico incompleto.
A automação via VBA resolve isso transformando o master em um gerador paramétrico: um único arquivo-fonte, camadas travadas para o que não muda, objetos nomeados para o que varia, e um UserForm que coleta os dados valida e escreve no documento em segundos. O ganho não é só velocidade — é rastreabilidade, padronização regulatória e liberdade para a equipe focar no cuidado.
Estrutura do modelo-mestre: camadas, nomenclatura e placeholders
Comece criando três camadas no documento-base: Fixo_Layout (logotipo, bordas, cabeçalhos, rodapés, mapa corporal estático), Campos_Variaveis (todos os textos que mudam por paciente) e Guias_Impressao (marcas de corte, sangria de 3 mm, zona de segurança de 5 mm). Trave Fixo_Layout e Guias_Impressao para edição acidental.
Cada shape de texto variável recebe nome padronizado via painel Object Properties → Name: txt_QueixaPrincipal, txt_HistoricoCirurgico, txt_Alergias, txt_Medicamentos, txt_AreasDor, txt_Consentimento, txt_DataAtendimento, txt_NomePaciente, txt_TerapeutaResponsavel. Caixas de seleção (sim/não) viram retângulos nomeados chk_Cirurgia, chk_Alergia, chk_Medicamento com propriedade Fill controlada por macro. O mapa corporal pode ser um grupo de formas nomeadas grp_MapaCorporal com sub-objetos shp_Cervical, shp_Lombar, etc., para destacar áreas marcadas.
Use texto parágrafo (Artistic Text para rótulos curtos, Paragraph Text para blocos longos) com estilos de texto definidos (Estilo_Label, Estilo_Valor, Estilo_Assinatura). Assim, alterações tipográficas globais aplicam-se em um clique no Styles docker.
UserForm VBA: coleta guiada e validação no ponto de uso
No editor VBA (Alt+F11), insira um UserForm chamado frmAnamnese. Adicione controles espelhando os campos: txtQueixa (MultiLine=True, EnterKeyBehavior=True), txtHistorico, txtAlergias, txtMedicamentos, txtAreasDor, cmbTerapeuta (preenchido via lista da clínica), chkCirurgia, chkAlergia, chkMedicamento, dtpData (DatePicker), cmdGerar, cmdCancelar. No evento UserForm_Initialize, carregue terapeutas de uma planilha Config/Terapeutas.xlsx e defina data de hoje no dtpData.
Validação mínima no cmdGerar_Click:
If Me.txtQueixa.Value = "" Then
MsgBox "Queixa principal é obrigatória.", vbExclamation
Me.txtQueixa.SetFocus
Exit Sub
End If
If Me.txtNomePaciente.Value = "" Then
MsgBox "Nome do paciente é obrigatório.", vbExclamation
Me.txtNomePaciente.SetFocus
Exit Sub
End If
Após validação, a macro chama rotina PreencherDocumento (ver próxima seção) e, se bem-sucedida, exporta PDF/A e fecha o formulário.
Rotina de preenchimento: escrita em shapes nomeados e marcação de checkboxes
A sub-rotina PreencherDocumento recebe os valores do formulário e localiza os shapes pelo nome usando ActiveDocument.FindShape(Name:=...). Exemplo:
Dim shp As Shape
Set shp = ActiveDocument.FindShape(Name:="txt_QueixaPrincipal")
If Not shp Is Nothing Then shp.Text.Story.Text = frmAnamnese.txtQueixa.Value
Set shp = ActiveDocument.FindShape(Name:="chk_Cirurgia")
If Not shp Is Nothing Then
If frmAnamnese.chkCirurgia.Value Then
shp.Fill.UniformColor.RGBAssign 0, 128, 0 ' verde marcado
Else
shp.Fill.UniformColor.RGBAssign 255, 255, 255 ' branco desmarcado
End If
End If
Para o mapa corporal, itere sobre grp_MapaCorporal.Shapes e pinte de vermelho (RGB 255,0,0) as regiões cujos nomes constam em uma lista separada por vírgula no campo txtAreasDor (ex: “Cervical,Lombar,Ombro_Direito”).
Atualize txt_DataAtendimento com Format(Date, "DD/MM/YYYY") e txt_TerapeutaResponsavel com frmAnamnese.cmbTerapeuta.Value. Ao final, ActiveDocument.SaveAs gera backup versionado: Ficha_Anamnese_20240315_MariaSilva.cdr na pasta Arquivo/Atendimentos/.
Exportação PDF/A e integração com prontuário eletrônico
Configure PublishToPDFSettings para PDF/A-1b: Author = "Clínica Jardim Luzitânia", Title = "Ficha de Anamnese - " & frmAnamnese.txtNomePaciente.Value, Keywords = "Anamnese, Massagem Miofascial, " & frmAnamnese.txtQueixa.Value, Compression = cdrPDFCompressionLossless, EmbedFonts = True, EmbedBase14Fonts = True. Use ActiveDocument.PublishToPDF pdfPath, cdrPDFVersion14, pdfSettings.
Nome do arquivo padronizado: ANAMNESE_YYYYMMDD_NOMEPACIENTE_SEM_ACENTOS.pdf (função RemoverAcentos simples via StrConv + Replace). Copie o PDF para a pasta monitorada pelo sistema de prontuário (\Servidor\Prontuario\Import\) usando FileCopy ou SHFileOperation. Se o prontuário aceita JSON, gere arquivo-irmão com campos estruturados para importação via API — isso elimina digitação duplicada no software clínico.
Geração em lote para campanhas ou triagem inicial
Em dias de mutirão ou triagem coletiva, a clínica recebe planilha Excel com 30 pacientes pré-cadastrados. Adapte a macro para ler Triagem.xlsx (colunas: Nome, DataNasc, Queixa, Historico, Alergias, Medicamentos, AreasDor, Terapeuta) e rodar loop que abre o master, preenche, exporta PDF/A, salva .cdr versionado e fecha — sem abrir UserForm. Em 30 segundos você tem 30 fichas prontas para impressão duplex. O mesmo princípio serve para reimprimir fichas antigas com layout atualizado: a macro varre a pasta Arquivo/Atendimentos/, lê metadados do .cdr (propriedades personalizadas PatientName, Date, Therapist), regenera PDF/A com o layout vigente e substitui na pasta do prontuário.
Boas práticas de manutenção e evolução do modelo
- Guarde o master em controle de versão (Git ou OneDrive com histórico) e marque releases (v1.0, v1.1) nas propriedades do documento (
ActiveDocument.CustomDocumentProperties.Add). - Documente cada shape nomeado em planilha
Docs/Mapa_Campos.xlsx(NomeObjeto, Tipo, Obrigatório, Validação, OrigemDado) para onboarding de novos desenvolvedores. - Agende revisão trimestral com a coordenação clínica: novos campos exigidos pela ANVISA, mudanças no termo de consentimento, inclusão de escalas de dor (EVA, Faces).
- Use Error Handling robusto (
On Error GoTo ErrHandler) e log emLogs/Anamnese_YYYYMMDD.logpara auditoria. - Teste impressão real em A4 e A5 (prancheta) a cada alteração de layout; verifique sangria, dobras e legibilidade da assinatura digitalizada.
Para aprofundar a criação de UserForms e manipulação de shapes nomeados, veja como criar macros VBA para CorelDRAW do zero e desenvolvendo formulários personalizados com VBA no CorelDRAW. Se o volume de impressão exigir separação de cores para serigrafia de formulários em papel timbrado, consulte automatize separação de cores para impressão serigráfica. Para garantir performance em máquinas mais antigas, aplique as boas práticas de desempenho em macros para produção.
Com o modelo paramétrico no ar, a recepcionista abre o CorelDRAW, executa a macro, preenche o formulário na tela, clica “Gerar” e entrega a ficha impressa e o PDF arquivado em menos de trinta segundos. O terapeuta ganha tempo de escuta, a clínica ganha conformidade e o arquivo-mestre continua único — alterou lá, propagou em todo lugar. Automação bem feita não substitui o toque humano; ela remove o atrito burocrático para que o toque aconteça com mais presença.
Checklist prático
Perguntas frequentes
Preciso saber programar para criar macros de anamnese no CorelDRAW?
Não é obrigatório ter conhecimento avançado. O editor VBA do CorelDRAW permite gravar ações e adaptar códigos prontos. Com noções básicas de variáveis e loops, você já consegue montar fichas funcionais.
Como garantir que os campos da ficha não saiam do layout ao imprimir?
Use camadas travadas para elementos fixos (logotipo, bordas, cabeçalhos) e camadas editáveis apenas para os campos variáveis. Defina margens de segurança de 5 mm e teste impressão em PDF antes da tiragem final.
É possível preencher a ficha direto no CorelDRAW durante o atendimento?
Sim. Crie um UserForm VBA com caixas de texto, combo boxes e checkboxes vinculados às shapes de texto do documento. Ao confirmar, a macro escreve os dados nas posições corretas e salva uma cópia em PDF com o nome do cliente.
Qual a melhor forma de versionar modelos de anamnese para diferentes terapeutas?
Mantenha um arquivo-mestre (.cdr) com placeholders e uma planilha CSV/Excel mapeando variações por profissional. A macro lê a planilha, troca textos e cores, e gera os arquivos finais em lote, evitando edições manuais repetidas.
Como integrar a ficha gerada no CorelDRAW com o prontuário digital da clínica?
Exporte a ficha preenchida como PDF/A com nome padronizado (ex: ANAMNESE_YYYYMMDD_NOMECLIENTE.pdf) e use uma macro auxiliar para mover o arquivo para a pasta monitorada pelo sistema de prontuário, ou gere um JSON com os dados para importação via API.