Auditoría
Aquí ves el historial de lo que ha pasado en el sistema: citas, expedientes, farmacia y caja. También revisas si los recordatorios de citas se enviaron bien y si hubo errores técnicos en el punto de venta. La usa el administrador o quien supervisa la clínica.
Operación — cómo se usa
La pantalla tiene tres pestañas: Seguimientos, Registro general y Farmacia / Caja.
Cómo revisar los recordatorios de citas (pestaña "Seguimientos")
- Entra a "Auditoría" — esta es la pestaña que ves primero.
- Usa los botones de arriba para filtrar: Pendiente, Enviado, Fallido o Todos.
- Revisa la tabla: paciente, médico, tipo de recordatorio, fecha en que estaba programado, y su estado.
- Si un recordatorio pendiente ya pasó su fecha, lo ves marcado en rojo como "Vencido".
- Da clic en la fecha de la columna "Cita" para ir directo a esa cita en la Agenda.
- Si quieres ver los datos más recientes, da clic en "Actualizar".
Cómo revisar el historial general de cambios (pestaña "Registro general")
- Da clic en la pestaña "Registro general".
- Usa el filtro de "Módulo" para ver solo los cambios de un área (Pacientes, Agenda, Expedientes, Farmacia, Caja, etc.) o deja "Todos".
- En la tabla ves: fecha y hora, módulo, qué se modificó, tipo de acción (creación, actualización, cancelación, eliminación, consulta), quién lo hizo y el identificador del registro.
- Más abajo, en la sección "Errores POS", ves los errores técnicos más recientes del punto de venta (hasta 50). Si dice "Sin errores registrados", todo está bien.
- Si necesitas ver el detalle de un error, da clic en "Payload" para desplegarlo, o en el ícono de copiar para mandarlo a soporte técnico.
Cómo revisar operaciones de Farmacia y Caja (pestaña "Farmacia / Caja")
- Da clic en la pestaña "Farmacia / Caja".
- Arriba ves los errores técnicos del punto de venta, igual que en "Registro general".
- Abajo ves las operaciones de farmacia y caja: aperturas/cierres de turno, cortes, movimientos de fondo y ventas.
- Usa el filtro desplegable para ver solo un tipo (Turnos caja, Cortes, Turnos farmacia, Movimientos de fondo, Ventas farmacia) o deja "Todos".
- Si una operación trae datos adicionales (folio, monto, diferencia), los ves resumidos en la tarjeta. Da clic en "JSON" para ver el detalle completo, o en el ícono de copiar para llevarlo a otro lado.
- Da clic en "Actualizar" para refrescar la lista.
Reglas de negocio — por qué se comporta así
- Lo que pasa: Solo ves operaciones de Farmacia/Caja de la clínica activa en ese momento. Por qué: Cada clínica tiene su propia caja y su propio inventario — no se mezclan los registros entre clínicas.
- Lo que pasa: El registro general muestra como máximo los últimos 200 eventos, y los errores POS los últimos 50. Por qué: Es un historial reciente para detectar problemas rápido, no un reporte completo de todo lo que ha ocurrido desde siempre.
- Lo que pasa: Un recordatorio de cita "Vencido" no se reenvía solo. Por qué: El sistema solo marca que ya pasó su hora programada; alguien tiene que revisar por qué no se envió y decidir si contactar al paciente manualmente.
- Lo que pasa: Esta pantalla no tiene botón para exportar o descargar el historial. Por qué: Es una vista de consulta y monitoreo, no un generador de reportes.
Preguntas frecuentes
| Lo que pasa | Por qué pasa | Qué hacer |
|---|---|---|
| No veo ninguna operación de Farmacia/Caja | No tienes una clínica activa seleccionada, o no hay eventos para el filtro elegido | Verifica la clínica activa arriba en el sistema, o cambia el filtro a "Todos" |
| Un recordatorio dice "Fallido" | El sistema intentó enviarlo (SMS/WhatsApp/llamada) y no se pudo entregar | Contacta al paciente por otro medio y revisa que su teléfono esté correcto en su expediente |
| Veo muchos errores en "Errores POS" | El punto de venta tuvo problemas técnicos al cobrar o registrar movimientos | Copia el detalle del error (botón de copiar) y compártelo con soporte técnico |
| No encuentro un cambio que sé que se hizo hace tiempo | El historial general solo guarda los últimos 200 registros más recientes | Si necesitas algo más antiguo, pide ayuda a soporte técnico para consultarlo directamente en la base de datos |
| La lista no se actualiza aunque sé que algo cambió | La pantalla no se refresca sola | Da clic en el botón "Actualizar" de la sección correspondiente |
Implementación — para el siguiente dev/agente
- Archivo principal:
src/pages/Auditoria.tsx(3 tabs:seguimientos,general,farmacia, manejados con state localtab) - Tablas Supabase involucradas:
audit_logs(registro general y log de farmacia/caja filtrado portablaIN [pharmacy_cash_shifts,pharmacy_sales,fondos_movimientos,turnos,cortes]),pos_error_logs(errores técnicos del POS),recordatorios_cita(join conappointments,patients,doctors) para la pestaña de seguimientos - RPCs/edge functions: Ninguna — todas las cargas son
selectdirectos víasupabase.from(...), no hay mutaciones desde esta pantalla - Filtrado de clínica: la pestaña "Farmacia / Caja" depende de
useActiveClinic();loadFarmLogs()solo corre si hayactiveClinic.idy se re-ejecuta en eluseEffectcuando cambia el tab o la clínica activa - Mapeo de etiquetas:
TABLA_LABEL(tabla → módulo/nombre legible),ACCION_LABEL/ACCION_COLOR(crear/actualizar/cancelar/eliminar/consultar),EVENT_LABEL(eventos especiales de farmacia comopharmacy_shift_opened,corte_x_generado, etc., leídos dedatos_nuevos.event) - Cómo agregar una tabla nueva al registro general: agregar la entrada correspondiente en
TABLA_LABEL(con sumoduloynombre); si el módulo es nuevo, agregarlo también al arrayMODULOS - Cómo agregar un evento especial nuevo a Farmacia/Caja: agregar la tabla al arreglo
PHARMACY_TABLASy al.in("tabla", [...])deloadFarmLogs(), y si tiene un evento con etiqueta propia, agregarlo aEVENT_LABEL - Límites de carga:
audit_logsgeneral = 200 filas,pos_error_logs= 50,audit_logsde farmacia = 100,recordatorios_cita= 100 — todos hardcoded con.limit(...), sin paginación - No hay exportación/descarga implementada en esta pantalla