Ficha del paciente
Vista de panel del paciente. Una cabecera persistente que muestra identidad, alergias críticas y acciones rápidas, y debajo un conjunto de pestañas. La pestaña por defecto Resumen es un dashboard modular donde cada bloque lo aporta un módulo distinto (planes, agenda, cobros, odontograma, historial médico). Los bloques son también deep-links — un click llega al detalle.
Diseño
- Cabecera sticky — avatar, nombre, edad, DNI, contacto, chips de alergias críticas (alergia, embarazo, anticoagulante…) y botones Editar + Acciones ▾ (Cita, Cobrar, Nota, Archivar). Permanece visible al hacer scroll y entre pestañas.
- Resumen (dashboard) — grid de smart-cards aportadas por cada módulo dueño vía el slot
patient.summary.cards:- Plan activo (treatment_plan) — nombre, progreso, n/m tratamientos. Click → detalle del plan.
- Próxima cita (agenda) — día/hora/profesional. Click → cita.
- Saldo (payments) — debe / a cuenta / cobrado. Click → Administración → Cobros.
- Diagnósticos (odontogram) — hallazgos sin tratar. Click → odontograma en modo diagnóstico.
- Historial médico (patients_clinical) — alergias, enfermedades sistémicas, medicación. Click → editar historial.
- Acciones rápidas (patients) — Cita, Presupuesto, Documento y el slot
patient.summary.actionspara módulos hermanos (recalls Set recall, notificaciones, etc.).
- Pestañas — Datos, Clínica, Administración, Galería, Histórico. En Clínica y Administración el sub-nav es un pill-bar con todos los modos visibles desde el primer momento (Diagnóstico · Planes · Citas · Histórico / Presupuestos · Facturación · Cobros · Documentos).
- Mobile — la cabecera se condensa, las cards se apilan a una columna y aparece una barra inferior fija (Cita · Cobrar · Nota).
Editar identidad
Requiere
patients.write.
- Pulsa el icono del lápiz en la cabecera, o el botón Editar de la sub-pestaña Identidad.
- Actualiza nombre, contacto, documento, demografía. Los datos extendidos viven detrás de Identidad → Extendido y se guardan por el endpoint
/extended. - Guardar publica un evento
patient.updatedcon los campos modificados, para que los dependientes (recalls, notificaciones…) puedan reaccionar.
Archivar un paciente
Requiere
patients.write. Nunca se borra físicamente.
- Abre el menú ⋮ Más en la cabecera resumen.
- Pulsa Archivar paciente.
- Confirma. El
statusdel paciente pasa aarchived, la fila se oculta del listado por defecto y se publica un eventopatient.archived. - Para restaurar, ejecuta un
UPDATESQL sobre la columnastatus— no hay flujo en la app para des-archivar todavía.
Pestaña Pagos — "Pendiente de cobrar"
La pestaña Administración → Pagos muestra el ledger del paciente (total pagado, deuda, saldo a cuenta) y, cuando hay deuda real, una tarjeta de Pendiente de cobrar al principio.
- La tarjeta lista las sesiones recién completadas que aún no están cubiertas por los pagos del paciente (FIFO).
- El total del paciente se calcula como
clinic_receivable = earned − net_paid. - El botón Cobrar X € abre el modal de cobro con el importe ya rellenado; recepción solo elige el método y confirma.
- Tras el cobro, la tarjeta desaparece o reduce su importe según cuánto se cobró.
"No contactar"
El flag do_not_contact es la opción de exclusión operativa. Cuando está activo:
- El módulo de recalls excluye al paciente de cualquier cola.
- Futuros módulos de comunicación (email, SMS) DEBEN respetarlo.
- El paciente sigue apareciendo en el listado y se puede abrir con normalidad — solo deja de recibir contactos automatizados.
Permisos
| Lo que ves / puedes hacer | Permiso |
|---|---|
| Ver la ficha | patients.read |
| Editar identidad / extendido | patients.write |
| Archivar | patients.write |
| Acciones de módulos hermanos (recalls, notificaciones…) | El permiso del módulo hermano. |
Resolución de problemas
- No veo los botones Editar y Archivar. Tu rol no tiene
patients.write. Un administrador puede concederlo en Ajustes → Usuarios → Roles. - Falta una pestaña que esperaba. Esa pestaña la aporta un módulo hermano (p. ej., Planes de tratamiento). Asegúrate de que ese módulo está instalado y de que tienes su permiso de lectura.