MelissaPaciente Fase 1: foundation (5 composables + skeleton 7 tabs + slug paciente)
Inicio do port do PatientProntuario.vue (3593L Dialog) pra Melissa nativo. Plano em 8 fases — esta entrega cobre apenas a Fase 1 (foundation). PatientProntuario continua intocado nos 4 callsites (TherapistDashboard, MelissaAgenda, MelissaPacientes, PatientsListPage); migration acontece nas fases 2-8. 5 COMPOSABLES NOVOS em src/features/patients/composables/ - usePatientDetail.js (108L): patients + groups + tags - usePatientSessions.js (83L): agenda_eventos + computeds proxima/ultima/totais - usePatientFinancial.js (82L): financial_records + computeds totalRecebido/Aberto/Atrasado - usePatientMessages.js (64L): conversation_messages + computeds recentes/totalIn/Out - usePatientDocuments.js (70L): documents + computeds total/Bytes/tiposCount Cada composable encapsula a query original do PatientProntuario.vue + adiciona computeds derivados. Reutilizaveis em outros lugares no futuro (dashboards, relatorios, etc). MELISSAPACIENTE.VUE NOVO (1190L) em src/layout/melissa/ - Prefixo CSS .mpa-*. Chrome glass + drawer mobile + right: max(...) >=1024px (mesmo padrao MelissaAgendador/Negocio). - Header: avatar + nome + ageLabel + pronomes + Tag status/convenio + risco-elevado pill + actions (Conversar / Editar / Close). - Subheader condicional: banner risco elevado. - Body 2-col: sidebar 320px (esquerda, drawer no mobile) + main flex 1. - Sidebar com 4 cards: Acoes Rapidas / Navegacao 7 tabs / Sub-nav Perfil / Vinculos (chips grupos+tags). - Main: 7 tabs (Visao Geral / Perfil / Prontuario / Agenda / Financeiro / Documentos / Conversas). Visao Geral ja mostra 4 KPIs reais via composables. Outras 6 abas com placeholders "Em desenvolvimento — Fase X". MELISSALAYOUT.VUE - Import MelissaPaciente. - SECOES.paciente entry novo. - 'paciente' adicionado ao MELISSA_NON_CONFIG_SLUGS. - Render condicional com :patient-id="String(route.query.id || '')" — navegacao via /melissa/paciente?id=xxx. ESLint: 0 errors da mudanca. 2 errors pre-existentes em MelissaLayout (duplicate key 'financeiro' L242, empty block L1130) — nao toquei essas linhas. PatientProntuario tem outros pre-existentes nao tocados. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -50,6 +50,59 @@ Touched: none
|
||||
## [2026-05-08 00:00] session | Melissa cfg-* nativas + temas + cronometro DB
|
||||
Touched: none
|
||||
|
||||
## [2026-05-08 11:30] session | MelissaPaciente Fase 1 (foundation: composables + skeleton + slug)
|
||||
Touched: none (sem mudanca de wiki)
|
||||
Detalhes: User escolheu "Full rewrite Melissa nativo" pra portar
|
||||
PatientProntuario.vue (3593L Dialog) pro Melissa. Plano em 8 fases (2-8 sao
|
||||
cada tab/wireup, sessao dedicada). Fase 1 entregue:
|
||||
|
||||
5 COMPOSABLES NOVOS em src/features/patients/composables/:
|
||||
- usePatientDetail.js (108L) — patients + groups + tags via 4 queries
|
||||
(getPatientById, getPatientRelations, getGroupsByIds, getTagsByIds).
|
||||
Espelha 1:1 a logica de loadDetail() do PatientProntuario L893-953.
|
||||
- usePatientSessions.js (83L) — agenda_eventos limit 100 ordenado desc +
|
||||
computeds proximaSessao/ultimaSessao/totalSessoes/totalRealizadas/
|
||||
totalFaltas/totalCanceladas.
|
||||
- usePatientFinancial.js (82L) — financial_records (type=receita) limit 100
|
||||
+ computeds totalRecebido/EmAberto/Atrasado/ultimoPago.
|
||||
- usePatientMessages.js (64L) — conversation_messages limit 200 + computeds
|
||||
recentes (top 4)/totalIn/totalOut/ultimaMensagem.
|
||||
- usePatientDocuments.js (70L) — documents (deleted_at IS NULL) limit 200
|
||||
+ computeds total/totalBytes/tiposCount/ultimo.
|
||||
|
||||
MELISSAPACIENTE.VUE NOVO (1190L) em src/layout/melissa/:
|
||||
- Prefixo CSS .mpa-* (Melissa PAciente). Chrome glass + drawer mobile +
|
||||
right: max(...) >=1024px (mesmo padrao MelissaAgendador/Negocio).
|
||||
- Header: avatar + nome + ageLabel + pronomes + status/convenio Tag +
|
||||
risco-elevado pill + actions (Conversar / Editar / Close).
|
||||
- Subheader condicional: banner risco elevado.
|
||||
- Body 2-col: sidebar 320px (esquerda, drawer no mobile) + main flex 1.
|
||||
- Sidebar contém 4 cards: Acoes Rapidas (Conversar/Editar/Lancamento) +
|
||||
Navegacao (7 tabs com icones coloridos) + Sub-nav Perfil (visivel so
|
||||
quando aba Perfil ativa, 6 secoes) + Vinculos (chips de grupos+tags).
|
||||
- Main: 7 tabs com placeholders ("Em desenvolvimento — Fase X"). Aba
|
||||
Visao Geral ja mostra 4 KPIs reais via composables (sessoes totais,
|
||||
em aberto, mensagens, documentos).
|
||||
- Props :patient-id; emits close/edit/add-financial/open-whatsapp.
|
||||
- Watch immediate em props.patientId, dispara loadAll() via Promise.all
|
||||
dos 5 composables.
|
||||
|
||||
MELISSALAYOUT.VUE atualizado:
|
||||
- Import MelissaPaciente.
|
||||
- SECOES.paciente entry novo (label/icon/descricao).
|
||||
- 'paciente' adicionado ao MELISSA_NON_CONFIG_SLUGS.
|
||||
- Render condicional com :patient-id="String(route.query.id || '')" —
|
||||
navegacao via /melissa/paciente?id=xxx.
|
||||
|
||||
NAO ALTERADO: PatientProntuario.vue continua intocado nos 4 callsites
|
||||
(TherapistDashboard, MelissaAgenda, MelissaPacientes, PatientsListPage).
|
||||
Migration acontece nas Fases 2-8. Fase 8 troca os callsites no Melissa.
|
||||
|
||||
ESLint: 0 errors da minha mudanca. 2 errors pre-existentes em MelissaLayout
|
||||
(duplicate key 'financeiro' L242, empty block L1130) — nao toquei aquelas
|
||||
linhas. PatientProntuario tem 2 outros pre-existentes. Working tree:
|
||||
MelissaLayout.vue + 6 arquivos novos.
|
||||
|
||||
## [2026-05-08 09:30] session | Chrome+preview em 7 paginas Melissa (LinkExterno preview novo)
|
||||
Touched: none (sem mudanca de wiki - aplicacao do pattern existente)
|
||||
Detalhes: Aplicou o chrome `right: max(6px, min(50%, calc(100% - 1006px)))`
|
||||
|
||||
Reference in New Issue
Block a user