Capturas de Pantalla
Para referencia visual, consulte las siguientes capturas de pantalla del módulo en funcionamiento: Menú y Opciones:screenshots/agenda-menu-lateral.png- Menú lateral de Agenda con todas las opciones disponibles (Calendario, Planificador, Crear cita, Buscar citas, Buscar calendarios, Crear evento, Buscar eventos, Buscar bonos, Crear actividad, Buscar actividades, Buscar sesiones, Lista de espera)
screenshots/agenda-calendario-mes.png- Vista de calendario en modo Mes (diciembre 2025 completo)screenshots/agenda-calendario-semana.png- Vista de calendario en modo Semana (15-21 dic. 2025)screenshots/agenda-calendario-dia.png- Vista de calendario en modo Día (18 de diciembre 2025)screenshots/agenda-calendario-vista-agenda.png- Vista de Agenda con listado cronológico de citas del mes
screenshots/agenda-formulario-crear-cita.png- Formulario completo de creación de nueva cita (con todos los campos: Profesional, Paciente, Estado, Fecha y hora, Duración, Centro, Pagador, Videoconferencia, Color, Prestación, Otros facturables, etc.)screenshots/agenda-buscar-citas.png- Formulario de búsqueda de citas con filtros (Nº HC, Paciente, Fechas, Profesionales, Estados)screenshots/agenda-buscar-citas-resultados.png- Tabla de resultados de búsqueda de citas con columnas (Fecha, Duración, NºHC, Nombre Paciente, Teléfono, Notas, Profesional, Centro, Recurso, Estado, Pagador, Prestaciones, Bono, Descuento, Importe, Pagado, C.Prof, Facturada, FPRO, Cupón) y botones de acción (Acciones, Exportar, Imprimir, Facturar, Nueva)
screenshots/agenda-planificador.png- Vista de Planificador/Scheduler con timeline horizontal mostrando múltiples profesionales en filas (Dr. Teide - test1, Dr. Teide - New Enabled, Dr. Teide - test, Dr. Teide - tst2, Dra. Ayanet - test1, F. Sebastián - test1, Manuel - test1, Oscar - test1) y columnas de tiempo de 10:00 a 19:30screenshots/agenda-buscar-bonos.png- Formulario de búsqueda de bonos (Nº HC, Paciente, Entre Fecha, Estados, Código)
Descripción
El módulo de Agenda es el sistema central de gestión de citas y planificación de Nubidoc. Permite organizar y visualizar todas las citas de los profesionales del centro, gestionar eventos, actividades grupales y bonos de sesiones. Este módulo es fundamental porque:- Organiza la actividad diaria del centro médico
- Evita solapamientos y optimiza el uso del tiempo
- Envía recordatorios automáticos a pacientes
- Permite facturación directa desde citas
- Integra con Google Calendar
- Soporta múltiples vistas: calendario, planificador, lista
- Gestiona actividades grupales y bonos
Usuarios Objetivo
- Recepcionistas: Crear y gestionar citas de pacientes
- Profesionales médicos: Ver su agenda, confirmar citas, gestionar pacientes
- Coordinadores: Vista global de todos los profesionales, optimización de recursos
- Administradores: Configuración de horarios, tarifas, servicios
1. Creación de Cita Simple
- Actor: Recepcionista
- Objetivo: Agendar una cita para un paciente
- Precondiciones: Paciente existe, profesional tiene horario disponible
- Pasos:
- Abrir calendario
- Hacer clic en hueco libre del calendario
- Seleccionar paciente
- Seleccionar servicio/prestación
- Confirmar hora y duración
- Guardar cita
- Resultado: Cita creada en estado “Programada”, se envía recordatorio automático
2. Confirmar Cita del Día
- Actor: Profesional médico / Recepcionista
- Objetivo: Confirmar que el paciente asistirá a la cita
- Precondiciones: Cita existe en estado “Programada”
- Pasos:
- Ver agenda del día
- Hacer clic en cita
- Seleccionar acción “Confirmar”
- Opcionalmente enviar SMS de confirmación
- Resultado: Cita cambia a estado “Confirmada”, color verde
3. Atender Paciente y Facturar
- Actor: Profesional médico
- Objetivo: Registrar que paciente fue atendido y cobrar la consulta
- Precondiciones: Cita programada para hoy
- Pasos:
- Abrir cita desde calendario
- Cambiar estado a “En sala de espera”
- Atender al paciente
- Cambiar estado a “Finalizada”
- Desde acciones de cita: “Crear factura”
- Revisar factura y confirmar
- Registrar pago
- Resultado: Cita finalizada, factura emitida, pago registrado
4. Crear Actividad Grupal
- Actor: Coordinador / Profesional
- Objetivo: Organizar una actividad con varios pacientes
- Precondiciones: Actividades habilitadas en el sistema
- Pasos:
- Ir a Agenda → Crear actividad
- Completar nombre, descripción, aforo máximo
- Definir horarios (días de semana, horas)
- Asignar profesional responsable
- Guardar actividad
- Añadir pacientes a la actividad
- Generar sesiones de calendario
- Resultado: Actividad creada, sesiones programadas, pacientes inscritos
5. Gestión de Bonos de Sesiones
- Actor: Recepcionista / Profesional
- Objetivo: Vender bono de sesiones a paciente
- Precondiciones: Bonos habilitados
- Pasos:
- Desde ficha de paciente o Agenda → Buscar bonos
- Crear nuevo bono
- Seleccionar tipo de servicio
- Definir número de sesiones
- Establecer precio y descuento
- Emitir factura del bono
- Registrar pago
- A medida que paciente asiste, descontar sesiones
- Resultado: Bono activo, sesiones disponibles para el paciente
6. Búsqueda de Citas por Periodo
- Actor: Administrador / Coordinador
- Objetivo: Analizar citas de un periodo específico
- Precondiciones: Permiso de búsqueda
- Pasos:
- Ir a Agenda → Buscar citas
- Seleccionar rango de fechas
- Filtrar por profesional, servicio, estado
- Ejecutar búsqueda
- Exportar resultados a Excel
- Resultado: Listado de citas filtradas, datos exportados
Opciones del Menú
Opción 1: Calendario
- Función JavaScript:
openCalendar() - Vista cargada:
partials3.0/agenda/calendarsearch - Descripción: Vista de calendario mensual/semanal/diario con todas las citas
Opción 2: Planificador (Opcional)
- Función JavaScript:
openScheduler() - Vista cargada:
partials3.0/agenda/schedulersearch - Descripción: Vista tipo planificador/timeline con múltiples profesionales
Opción 3: Crear Cita
- Función JavaScript:
openAppoEdit() - Vista cargada: Diálogo con formulario de cita
- Descripción: Formulario para crear o modificar cita
Opción 4: Buscar Citas
- Función JavaScript:
openAppoSearch() - Vista cargada:
partials3.0/agenda/appointmentsearch - Descripción: Búsqueda avanzada de citas por múltiples criterios
- Privilegios: Siempre visible
Opción 5: Buscar Calendarios
- Función JavaScript:
openAppoSharegroupSearch() - Vista cargada: Búsqueda de grupos de calendario
- Descripción: Gestión de calendarios compartidos entre profesionales
- Privilegios: Siempre visible
Opción 6: Crear Evento
- Función JavaScript:
createTBEvent() - Vista cargada: Formulario de evento
- Descripción: Evento sin paciente asignado (vacaciones, reunión, bloqueo)
Opción 7: Buscar Eventos
- Función JavaScript:
openEventSearch() - Vista cargada:
partials3.0/agenda/eventsearch - Descripción: Búsqueda de eventos
Opción 8: Buscar Bonos (Opcional)
- Función JavaScript:
openBonusSearch() - Vista cargada:
partials3.0/agenda/bonussearch - Descripción: Búsqueda y gestión de bonos de sesiones. La tabla de resultados se adapta automáticamente a la altura disponible en pantalla, aprovechando al máximo el espacio visible (igual que en la búsqueda de pacientes y facturas).
Opción 9: Crear Actividad (Opcional)
- Función JavaScript:
openActivityEdit() - Vista cargada: Formulario de actividad
- Descripción: Crear actividad grupal
- Configuración:
hasactivities = 1
Opción 10: Buscar Actividades (Opcional)
- Función JavaScript:
openActivitySearch() - Vista cargada:
partials3.0/agenda/activitysearch - Descripción: Búsqueda de actividades
Opción 11: Buscar Sesiones (Opcional)
- Función JavaScript:
openActivitySessionsSearch() - Vista cargada:
partials3.0/agenda/activitysessionsearch - Descripción: Búsqueda de sesiones de actividades
Opción 12: Lista de Espera (Opcional)
- Función JavaScript:
openActivityWaitSearch() - Vista cargada:
partials3.0/agenda/activitywaitsearch - Descripción: Gestión de lista de espera para actividades
Pantalla 1: Calendario
Función de acceso:openCalendar()
Descripción
Vista de calendario interactivo con múltiples formatos (mes, semana, día). Muestra todas las citas y eventos de los profesionales seleccionados.Secciones de la Pantalla
1. Barra de herramientas superior- Botones de navegación: Anterior, Hoy, Siguiente
- Selector de vista: Mes / Semana / Día / Agenda
- Filtros: Profesional, Centro (si multi-centro), Servicio
- Días pasados (Sí/No): Permite ocultar citas, actividades y eventos de días anteriores a hoy. Por defecto en “Sí” (se muestran todos). Al cambiar a “No” y pulsar Buscar, solo se cargan los elementos de hoy en adelante, mejorando el tiempo de carga en centros con muchas citas.
- Grid con días y horas
- Citas representadas como bloques coloreados
- Color según: Estado, Profesional, Pagador, Servicio
- Eventos de bloqueo (vacaciones, etc.)
- En la vista mensual, los eventos que duran más de un día se muestran con un borde negro para distinguirlos visualmente de los eventos de un solo día
- Estados de citas (Programada, Confirmada, Finalizada, etc.)
- Código de colores de profesionales
- Código de colores de pagadores
- Clic en hueco vacío: Crear nueva cita
- Clic en cita existente: Ver detalles y acciones
- Arrastrar cita: Mover a otro horario
- Redimensionar: Cambiar duración
Pantalla 2: Planificador
Función de acceso:openScheduler()
Descripción
Vista tipo timeline que muestra múltiples profesionales simultáneamente en filas horizontales.Características
- Filas: Cada profesional tiene su fila
- Columnas: Bloques de tiempo (15 min, 30 min, 1 hora)
- Ideal para centros multiprofesionales
- Permite comparar disponibilidad rápidamente
Pantalla 3: Formulario de Cita
Función de acceso:createAppointment()
Descripción
Diálogo modal para crear o editar cita individual.Estructura del Formulario
Cabecera:- Título: “Nueva cita” / “Modificar cita”
- Icono de calendario
- Número de cita (si ya existe)
- Datos básicos - Paciente, fecha, hora, servicio
- Servicios - Prestaciones a facturar
- Notas - Observaciones internas
Formulario: Cita (Appointment)
Propósito: Crear o modificar una cita individual Ubicación: Módulo Agenda ID HTML: Variable (ej:appointment-form-[randomID])
Sección 1: Datos Básicos de la Cita
| Campo | Tipo | Obligatorio | Descripción | Validación | Constante |
|---|---|---|---|---|---|
| Paciente | Autocomplete | Sí | Paciente que asiste a la cita | Debe existir | appointment_patient_id |
| Profesional | Select | Sí | Profesional que atiende | - | appointment_user_id |
| Profesional2 | Select | No | Segundo profesional (si aplica). Solo visible en centros que tienen activada esta opción. No puede ser el mismo que Profesional. Si un usuario sin permiso de gestionar citas de otros crea una cita, este campo aparece vacío y deshabilitado. | Distinto de Profesional | appointment_user2_id |
| Centro | Select | Condicional | Centro donde se atiende | Si multi-centro | appointment_center_id |
| Fecha | Date | Sí | Fecha de la cita | Formato dd/mm/yyyy | appointment_date |
| Hora | Time | Sí | Hora de inicio | Formato HH:MM | appointment_date (time part) |
| Duración | Number | Sí | Minutos de duración | Múltiplo de 5 | appointment_duration |
| Hora fin | Time (calc) | No | Hora fin calculada | Automático | - |
| Servicio | Select | No | Prestación principal | - | appointment_service_id |
| Tarifa | Select | No | Oferta de servicio (precio) | - | appointment_serviceoffer_id |
Sección 2: Estado y Confirmación
| Campo | Tipo | Obligatorio | Descripción | Valores | Constante |
|---|---|---|---|---|---|
| Estado | Select | Sí | Estado actual de la cita | Ver tabla de estados | appointment_appointmentstatus_id |
| Confirmada | Checkbox | No | Cita confirmada por paciente | 0/1 | appointment_confirmed |
| Color | Color picker | No | Color personalizado en calendario | Código hex | appointment_color |
| Ubicación | Select | No | Sala/consultorio | - | appointment_location_id |
Sección 3: Servicios a Facturar
| Campo | Tipo | Obligatorio | Descripción | Validación | Constante |
|---|---|---|---|---|---|
| Servicios | Grid editable | No | Lista de prestaciones a cobrar | - | Relación N:M |
| Cantidad | Number | Sí | Cantidad de cada servicio | ≥ 0 | - |
| Precio unitario | Decimal | Sí | Precio por unidad | ≥ 0 | - |
| Descuento | Decimal | No | Descuento aplicado (%) | 0-100 | - |
| Total | Decimal (calc) | No | Total calculado | Automático | - |
Sección 4: Información Adicional
| Campo | Tipo | Obligatorio | Descripción | Constante |
|---|---|---|---|---|
| Notas | Textarea | No | Observaciones internas | appointment_comment |
| Notas paciente | Textarea | No | Notas visibles para paciente | appointment_commentpatient |
| Turno | Text | No | Número de turno | appointment_numberturn |
| Es primera cita | Checkbox | No | Indica si es primera visita | appointment_isfirsttime |
| Enviar recordatorio | Checkbox | No | Activar recordatorio automático | appointment_sendreminder |
Sección 5: Datos de Facturación
| Campo | Tipo | Obligatorio | Descripción | Constante |
|---|---|---|---|---|
| Pagador | Select | No | Quien paga (heredado del paciente) | appointment_payor_id |
| Precio | Decimal | No | Precio total de la cita | appointment_price |
| Descuento | Decimal | No | Descuento general (%) | appointment_discount |
| Factura | Link | No | Factura asociada (si existe) | appointment_invoice_id |
| Pagada | Checkbox (readonly) | No | Indica si fue pagada | - |
Sección 6: Bonos y Actividades
| Campo | Tipo | Obligatorio | Descripción | Constante |
|---|---|---|---|---|
| Bono | Select | No | Bono del que descontar sesión | appointment_bonus_id |
| Actividad | Select | No | Actividad asociada | appointment_activity_id |
| Sesión actividad | Select | No | Sesión específica de actividad | appointment_activitysession_id |
Formulario: Evento
Propósito: Crear bloqueo o evento sin paciente Ubicación: Módulo AgendaCampos del Formulario de Evento
| Campo | Tipo | Obligatorio | Descripción | Constante |
|---|---|---|---|---|
| Título | Text | Sí | Nombre del evento | event_title |
| Profesional | Select | Sí | Profesional bloqueado | event_user_id |
| Fecha inicio | DateTime | Sí | Inicio del bloqueo | event_datestart |
| Fecha fin | DateTime | Sí | Fin del bloqueo | event_dateend |
| Todo el día | Checkbox | No | Bloquea día completo | event_allday |
| Descripción | Textarea | No | Detalles del evento | event_description |
| Color | Color picker | No | Color en calendario | event_color |
| Tipo | Select | No | Tipo de evento | event_eventtype_id |
Formulario: Actividad Grupal
Propósito: Crear actividad con múltiples pacientes Ubicación: Módulo Agenda → ActividadesCampos del Formulario de Actividad
| Campo | Tipo | Obligatorio | Descripción | Constante |
|---|---|---|---|---|
| Nombre | Text | Sí | Nombre de la actividad | activity_name |
| Descripción | Textarea | No | Descripción detallada | activity_description |
| Profesional | Select | Sí | Profesional responsable | activity_user_id |
| Servicio | Select | No | Tipo de servicio | activity_service_id |
| Aforo máximo | Number | No | Máximo de pacientes | activity_maxcapacity |
| Fecha inicio | Date | Sí | Inicio de la actividad | activity_begindate |
| Fecha fin | Date | No | Fin de la actividad | activity_enddate |
| Activa | Checkbox | No | Estado activo | activity_active |
| Horarios | Grid | Sí | Días y horas de sesiones | Tabla activitytime |
Workflow 1: Crear Nueva Cita desde Calendario
- Si hay solapamiento: Sistema pregunta si desea continuar
- Si paciente tiene bono: Sistema pregunta si descontar sesión
- Si es actividad: Se vincula a sesión de actividad
- Si integración Google Calendar: Se sincroniza automáticamente
-
Error: “Debe seleccionar un paciente”
- Causa: No se seleccionó paciente
- Solución: Buscar y seleccionar paciente de la lista
-
Error: “Ya existe una cita a esta hora para este profesional”
- Causa: Solapamiento de horarios
- Solución: Cambiar hora o confirmar solapamiento
-
Error: “El profesional no tiene disponibilidad a esta hora”
- Causa: Fuera del horario laboral definido
- Solución: Verificar horarios del profesional o forzar cita
Workflow 2: Confirmar Cita Programada
Workflow 3: Atender Paciente y Crear Factura
- Paciente no paga: Factura queda “Pendiente”
- Paciente paga parcialmente: Se registra pago parcial
- Servicio cubierto por bono: Se descuenta sesión del bono
- Servicio de aseguradora: Se marca para facturación diferida
Workflow 4: Crear Actividad Grupal Recurrente
Integraciones
Con Pacientes:- Cada cita está vinculada a un paciente
- Desde ficha de paciente se accede a historial de citas
- Bonos del paciente se vinculan a citas
- Descuentos del paciente se aplican automáticamente
- Citas generan facturas directamente
- Servicios de cita se trasladan a líneas de factura
- Factura vinculada a cita (referencia bidireccional)
- Bonos pre-pagados se descuentan al facturar
- Cada profesional tiene su agenda
- Horarios laborales definen disponibilidad
- Tarifas personalizadas por profesional
- Colores personalizados en calendario
- Recordatorios automáticos de citas
- Confirmaciones por SMS/Email
- Campañas post-cita (satisfacción)
- Recuperación de citas canceladas
- Configuración de horarios
- Gestión de servicios y tarifas
- Definición de estados personalizados
- Configuración de recordatorios
Dependencias
Requiere:- Pacientes - No se pueden crear citas sin pacientes
- Usuarios - Debe haber al menos un profesional
- Servicios - Debe haber servicios/prestaciones definidos
- Facturación - Muchas facturas se generan desde citas
- Estadísticas - Reportes de actividad basados en citas
Regla 1: Estados de Cita
Descripción: Las citas pasan por diferentes estados en su ciclo de vida Estados estándar:1 = Programada- Cita creada, pendiente de confirmación2 = En sala de espera- Paciente ha llegado3 = Finalizada- Cita completada4 = Cancelada- Cita cancelada5 = Solicitada- Pendiente de confirmación por centro6 = Personalizado- Estado custom definido por centro7 = No presentado- Paciente no asistió8 = Traspasada- Movida a otro horario/profesional12 = Comenzada- Atención en curso
Regla 2: Validación de Solapamientos
Descripción: El sistema valida que no haya dos citas al mismo tiempo para el mismo profesional Cuándo aplica: Al crear o mover cita Comportamiento:- Si hay solapamiento: Sistema muestra advertencia
- Usuario puede forzar solapamiento (útil para citas “virtuales” o telefónicas)
- En modo estricto: No permite solapamientos
Regla 3: Duración de Citas
Descripción: Las citas tienen duración en minutos, preferiblemente múltiplos de 5 Valores típicos:- 15 minutos - Consultas rápidas
- 30 minutos - Consulta estándar
- 45 minutos - Consulta extendida
- 60 minutos - Primera consulta
- 90 minutos - Sesión terapéutica
Regla 4: Recordatorios Automáticos
Descripción: Sistema envía recordatorios automáticos de citas Configuración por centro:- Activar/desactivar recordatorios
- Tiempo de antelación (24h, 48h, 72h)
- Canal: Email, SMS, WhatsApp
- Plantilla de mensaje personalizable
- Cita en estado “Programada” o “Confirmada”
- Paciente permite notificaciones
- Paciente tiene email/teléfono registrado
- Cita es futura (no en el pasado)
Regla 5: Integración con Google Calendar
Descripción: Sincronización bidireccional con Google Calendar Funcionamiento:- Profesional conecta su cuenta de Google
- Citas de Nubidoc se publican en Google Calendar
- Eventos de Google Calendar aparecen en Nubidoc (como bloqueos)
- Actualización automática cada 5 minutos
- Aparecen en el calendario con un indicador G al inicio del titulo
- Si el evento bloquea la agenda (ocupado), muestra un icono de candado
- Se clasifican automaticamente con la categoria “Otros”
- Se actualizan si se modifican en Google Calendar (titulo, horario, descripcion)
- No se duplican: si ya existen en Nubidoc, se actualizan en lugar de crear uno nuevo
- Calendario compartido: Si varios profesionales tienen el mismo Google Calendar ID configurado, cada uno recibe su propia copia del evento importado en su agenda
- Sincronizar citas: envia las citas de Nubidoc a Google Calendar
- Sincronizar eventos: envia los eventos de Nubidoc a Google Calendar
- Importar eventos de Google: importa eventos creados en Google Calendar a Nubidoc (desactivado por defecto)
- Solo citas/eventos del profesional conectado
- No sincroniza detalles de paciente (privacidad)
- La importacion no incluye borrados de Google Calendar (si se borra un evento en Google, permanece en Nubidoc)
Regla 6: Bonos y Descuento de Sesiones
Descripción: Los bonos permiten pago anticipado de múltiples sesiones Funcionamiento:- Paciente compra bono (ej: 10 sesiones de fisioterapia)
- Se emite factura del bono
- Al crear cita, se puede vincular a bono
- Al finalizar cita, se descuenta sesión del bono
- Bono tiene fecha de caducidad (opcional)
- Cuando sesiones = 0, bono se agota
- En la vista de bonos del paciente, cada tarjeta de bono muestra en la esquina superior derecha botones con el número y fecha de las facturas vinculadas
- Los botones están codificados por color según el estado de la factura: verde (emitida), naranja (borrador), gris (cancelada)
- Al hacer clic en un botón se abre directamente el formulario de la factura correspondiente
- Al abrir las acciones de un bono, se muestra una sección “Citas:” con todas las citas asociadas al bono ordenadas cronológicamente de izquierda a derecha
- Cada cita aparece como un botón con color de fondo según su estado; al pulsarlo se abren las acciones de esa cita
- Entre las citas ya realizadas y las futuras aparece un separador visual (triángulo rojo invertido) que indica la fecha actual
- Se excluyen las citas canceladas y traspasadas
- La acción “Ver citas” del bono abre la búsqueda filtrando por código de bono, no por paciente, para incluir también las citas de beneficiarios autorizados si los hay
- En cualquier lugar de la aplicación donde se muestren botones de cita (ficha de paciente, resultados de búsqueda, etc.), las citas que están vinculadas a un bono muestran una letra “b” en gris después de la hora
- Esto permite identificar visualmente qué citas forman parte de un bono sin necesidad de abrir el detalle
- Si el centro activa la preferencia “Permitir beneficiarios en bonos”, las acciones del bono muestran una sección “Beneficiarios autorizados”
- Desde esa sección se pueden añadir o quitar pacientes autorizados a consumir el bono además del titular
- El nombre del beneficiario es clickable y abre directamente sus acciones de paciente
- En la timeline de citas del bono, las citas realizadas por beneficiarios se distinguen con un borde negro
- El paciente beneficiario puede ver ese bono en su ficha y usarlo al crear una cita, siempre que siga vigente y tenga sesiones disponibles
- Cuando el centro tiene configurado que el importe total del bono se refleja en la primera cita planificada, el sistema recalcula automáticamente qué cita lleva el importe cada vez que se mueve una cita de bono a otra fecha o se cambia su estado
- Por ejemplo, si un bono tiene tres citas (enero, febrero, marzo) y se mueve la cita de enero a abril, el importe del bono pasa automáticamente a la cita de febrero (que ahora es la primera)
- Si luego se devuelve la cita a enero, el importe vuelve a la cita de enero correctamente
- Lo mismo ocurre al cancelar o reactivar una cita de bono: el importe se reasigna siempre a la primera cita activa del bono
- Los cambios operativos de videoconferencia (por ejemplo, pasar a sala de espera, iniciar o finalizar la sesión) actualizan el estado asistencial de la cita, pero no recalculan el reparto económico del bono si la cita sigue siendo válida dentro del bono
- Solo se descuenta si cita está “Finalizada”
- Bono debe tener sesiones disponibles
- Servicio de cita debe coincidir con servicio de bono
Regla 7: Actividades Grupales
Descripción: Actividades permiten gestionar sesiones con múltiples pacientes Características:- Aforo máximo definido
- Inscripción de pacientes
- Sesiones recurrentes generadas automáticamente
- Control de asistencia por sesión
- Facturación individual o grupal
- No se puede eliminar actividad con pacientes inscritos
- Sesiones pasadas no se pueden modificar
- Aforo máximo no se puede exceder
Mensajes de Éxito
- “Cita creada correctamente”: Cuando se crea nueva cita
- “Cita actualizada correctamente”: Al modificar cita existente
- “Estado cambiado a [nombre estado]”: Al cambiar estado de cita
- “Factura creada desde cita”: Al generar factura desde cita
- “Recordatorio enviado”: Cuando se envía SMS/Email
- “Actividad creada correctamente”: Al crear actividad grupal
- “Paciente añadido a la actividad”: Al inscribir paciente
Mensajes de Error
- “Debe seleccionar un paciente”: Falta seleccionar paciente
- “Debe seleccionar un profesional”: Falta profesional
- “Ya existe una cita a esta hora”: Solapamiento detectado
- “El profesional no está disponible a esta hora”: Fuera de horario laboral
- “No hay sesiones disponibles en el bono”: Bono agotado
- “La actividad ha alcanzado el aforo máximo”: No hay cupo
- “No se puede eliminar una cita facturada”: Cita con factura asociada
- “Sincronizacion enviada correctamente (via integracion)”: Sincronizacion con Google Calendar realizada a traves de la integracion automatica (no hay conexion OAuth directa)
- “Error al sincronizar con Google Calendar”: Fallo en OAuth o en la integracion
- “La duración de la cita no es válida. Por favor, indique una duración mayor que 0.”: Los campos de horas y minutos de la duración están vacíos o contienen valores no válidos. Asegúrese de indicar al menos 1 minuto de duración.
Mensajes de Advertencia
- “La cita se solapa con otra cita. ¿Desea continuar?”: Confirmación de solapamiento
- “El paciente no tiene email. No se enviará recordatorio”: Falta dato de contacto
- “El bono caduca en X días”: Alerta de caducidad próxima
- “Cita fuera del horario habitual del profesional”: Advertencia de horario
- “El paciente tiene citas pendientes de pago”: Alerta financiera
Preguntas Frecuentes
Q: ¿Cómo cancelo una cita? A: Haz clic en la cita en el calendario, selecciona la acción “Cambiar estado” y elige “Cancelada”. Opcionalmente puedes especificar el motivo de cancelación. Q: ¿Puedo mover una cita a otro horario? A: Sí, simplemente arrastra la cita en el calendario al nuevo horario. O bien, edítala y cambia la fecha/hora manualmente. Q: ¿Qué pasa si elimino una cita? A: Nubidoc realiza un “soft delete”. La cita se marca como eliminada pero permanece en la base de datos. No aparecerá en calendario pero se conserva el registro histórico. Q: ¿Puedo crear una cita sin paciente? A: No directamente. Para bloquear tiempo sin paciente, usa un “Evento” en lugar de una cita. Los eventos sirven para vacaciones, reuniones, bloqueos, etc. Q: ¿Cómo funcionan los recordatorios automáticos? A: Se configuran en Administración → Preferencias. Puedes definir cuántas horas antes enviar, qué canal usar (Email/SMS), y personalizar el mensaje. El sistema los envía automáticamente. Q: ¿Se pueden facturar varias citas a la vez? A: No directamente desde las citas individuales. Pero puedes ir a Facturación → Crear factura y añadir múltiples servicios manualmente, o usar bonos para pago anticipado de múltiples sesiones. Q: ¿Qué es la diferencia entre Servicio y Oferta de Servicio? A: El Servicio es el tipo de prestación (ej: “Consulta general”). La Oferta de Servicio es una tarifa específica del servicio (ej: “Consulta general - Privado: 50€”, “Consulta general - Aseguradora X: 35€”). Q: ¿Cómo creo citas recurrentes? A: Actualmente no hay función de citas recurrentes individuales. Para sesiones recurrentes, usa Actividades o crea las citas manualmente. Q: ¿Puedo ver la agenda de todos los profesionales a la vez? A: Sí, en la vista de Calendario o Planificador puedes seleccionar múltiples profesionales en el filtro. En la vista de Planificador verás todos en filas separadas. Q: ¿Qué son los calendarios compartidos? A: Son grupos de profesionales cuyas agendas se visualizan juntas. Útil para equipos (ej: “Fisioterapeutas”, “Psicólogos”). Se gestionan desde “Buscar calendarios”. Q: ¿Tiene que estar la cita en estado “Finalizada” para poder facturarla? A: No, no es necesario. Se puede facturar una cita en cualquier estado. La casuística es grande: hay quien genera la factura justo al finalizar la cita; hay quien cobra la cita por adelantado y en ese momento hace la factura (es muy común en psicología donde hacen citas online), y hay quien hace todas las facturas a final de mes. Q: ¿Qué significa el campo “Pagador” con valor “Privado”? A: El pagador se refiere a la aseguradora o entidad que paga el servicio. “Privado” es el valor por defecto, que indica que no hay aseguradora y el paciente paga directamente. Q: ¿Se pueden configurar colores personalizados para las citas? A: Sí, el calendario permite ver citas con distintos códigos de colores según diferentes criterios:- Por usuario/profesional (cada profesional tiene un color asignado)
- Por estado de la cita (programada, confirmada, finalizada, etc.)
- Por pagador (privado, aseguradoras diferentes)
- Por prestación/servicio
- Modo “personalizado” donde se elige el color manualmente al crear la cita
- Editar el IVA directamente en la tabla: haciendo clic en la celda de la columna “IVA (%)” se puede escribir un nuevo porcentaje.
- Editar precio e IVA desde el diálogo “Modificar”: al seleccionar un facturable y pulsar el botón “Modificar” (azul), se abre un formulario que permite cambiar la cantidad, el precio unidad y el tipo de IVA (seleccionando entre los tipos configurados en el centro).
- Editar cantidad y precio en la tabla: las columnas “Cantidad” y “Precio unidad” también son editables haciendo clic directamente en la celda.
- Aviso amarillo (triángulo de advertencia): la cita está incluida en una factura que aún no ha sido emitida. Se pueden modificar los facturables, pero tenga en cuenta que los cambios podrían afectar al importe de la factura.
- Aviso rojo (icono de prohibido): la cita está incluida en una factura ya emitida. Modificar los facturables en este caso no cambiará la factura emitida. Si la factura ha sido anulada, el aviso no aparece.
Búsqueda de Citas
Campos de búsqueda disponibles:| Campo | Tipo | Operador | Descripción |
|---|---|---|---|
| Nº Cita | Number | = | Número único de cita |
| Paciente | Autocomplete | LIKE | Nombre del paciente |
| Profesional | Multi-select | IN | Uno o varios profesionales |
| Centro | Select | = | Centro médico (si multi-centro) |
| Servicio | Select | = | Tipo de servicio |
| Estado | Multi-select | IN | Estados de cita |
| Fecha desde | Date | ≥ | Desde fecha |
| Fecha hasta | Date | ≤ | Hasta fecha |
| Pagador | Select | = | Tipo de pagador |
| Facturada | Checkbox | = | Tiene factura asociada |
| Confirmada | Checkbox | = | Está confirmada |
- Exportar a Excel
- Imprimir listado PDF
- Enviar por email
Código de Colores de Citas (por Estado)
- 🔵 Azul - Programada (Estado 1)
- 🟢 Verde - Confirmada / En sala de espera (Estado 2)
- 🟡 Amarillo - Comenzada (Estado 12)
- ⚫ Gris - Finalizada (Estado 3)
- 🔴 Rojo - No presentado (Estado 7)
- ⚪ Blanco/Tachado - Cancelada (Estado 4)
- 🟠 Naranja - Solicitada (Estado 5)
Código de Colores Alternativos
El calendario permite visualizar citas por diferentes criterios: Por Profesional: Cada profesional tiene un color asignado Por Pagador: Color según tipo de pagador (Privado, Aseguradora) Por Servicio: Color según tipo de servicio Por Ubicación: Color según sala/consultorio Por Centro: Color según centro médico (multi-centro)Iconos Principales
- 📅 fa-calendar - Calendario / Cita
- ➕ fa-plus-circle - Crear nueva cita
- ✏️ fa-edit - Modificar cita
- 🗑️ fa-trash - Eliminar cita
- ✅ fa-check - Confirmar cita
- ❌ fa-times - Cancelar cita
- 💰 fa-money - Crear factura
- 📧 fa-envelope - Enviar recordatorio
- 🔔 fa-bell - Notificación
- ⏰ fa-clock - Sala de espera
- 🎯 fa-star - Bono
- 👥 fa-users - Actividad grupal
Niveles de Acceso
| Privilegio | Permite | Código |
|---|
Anonimización de Agendas Compartidas
Cuando un profesional tiene acceso a la agenda de otro profesional (mediante la función “Compartir agenda con”), el sistema puede ocultar los datos del paciente en las citas ajenas para proteger la confidencialidad. Cómo funciona:- El privilegio “Ver datos paciente otros usuarios” controla la visibilidad. Está activado por defecto para todos los roles.
- Si un administrador desactiva este privilegio en un rol, los usuarios de ese rol verán las citas de otros profesionales como “Reservado”, sin nombre del paciente, datos de contacto, prestaciones ni importes.
- La anonimización aplica en:
- Calendario: El título de la cita muestra “Reservado -nombre profesional-”
- Buscar citas: Las columnas de datos del paciente, prestaciones, importes y notas aparecen en blanco
- Exportar a Excel: Los mismos datos se exportan vacíos para citas ajenas
- Detalle de cita: Al hacer clic en una cita ajena se muestra un mensaje indicando que no tiene privilegios suficientes
- Ir a Administración > Roles
- Editar el rol deseado
- En la sección “Agenda”, desactivar “Ver datos paciente otros usuarios”
- Los usuarios con ese rol verán las citas ajenas anonimizadas
Privacidad de Notas de Cita (centros con restriccion activada)
En determinados centros, las notas de las citas solo son visibles para el profesional al que pertenece la cita. Si otro profesional visualiza el calendario, no vera el asterisco (*) indicador de notas, ni el contenido de las notas al pasar el raton por encima de citas ajenas. Esta restriccion aplica a:- Asterisco (*) en el titulo de la cita
- Texto de la nota en el tooltip (al pasar el raton)
- Descripcion de la nota en la vista de dia
Restricciones
- Profesionales: Solo ven su propia agenda (salvo permiso especial)
- Recepcionistas: Ven agenda de todos pero solo pueden crear/modificar
- Administradores: Acceso completo a todas las agendas
- Multi-centro: Solo ven citas de sus centros asignados
Limitaciones por Rol
Recepcionista:- ✅ Crear citas
- ✅ Confirmar citas
- ✅ Cambiar estados básicos
- ❌ No puede eliminar citas facturadas
- ❌ No puede modificar citas de hace más de X días
- ✅ Ver su agenda
- ✅ Modificar sus citas
- ✅ Crear facturas desde citas
- ✅ Cambiar estados de sus citas
- ❌ No puede ver citas de otros profesionales (salvo configuración)
Exportar Agenda a Excel
Desde búsqueda de citas:- Botón “Exportar a Excel”
- Incluye todos los resultados de búsqueda
- Columnas: Fecha, Hora, Paciente, Profesional, Servicio, Estado, Precio, Pagador
- Formato XLSX compatible con Excel 2007+
| Columna | Qué muestra |
|---|---|
| Profesional | Nombre del profesional |
| Citas totales | Número total de citas del profesional en el listado |
| Pacientes distintos | Cuántos pacientes diferentes ha atendido (si tiene 20 citas con el mismo paciente, cuenta como 1) |
| Citas canceladas | Número de citas en estado “cancelada” |
| Citas traspasadas | Número de citas en estado “traspasada” |
Importar Citas desde Excel
Disponible para: Usuarios con el privilegio “Importar citas desde Excel” habilitado en su rol. Requisito previo: Un administrador debe habilitar el privilegio en Administración > Roles. Desde búsqueda de citas:- Botón “Importar citas” (visible si el usuario tiene el privilegio)
- Permite cargar un archivo Excel (.xlsx) con múltiples citas de forma masiva
- Botón “Descargar fichero de ejemplo” para obtener una plantilla con el formato correcto
- Ir a Buscar citas en el menú de Agenda.
- Pulsar el botón Importar citas.
- En el diálogo que aparece:
- Seleccionar el archivo Excel con las citas (puede descargar un ejemplo pulsando “Descargar fichero de ejemplo”).
- Elegir el centro donde se crearán las citas.
- Elegir el estado de las citas (Programada o Finalizada).
- Opcionalmente marcar Crear paciente si no se encuentra para crear automáticamente los pacientes que no existan.
- Pulsar Validar fichero. El sistema analiza el archivo y muestra un resumen:
- Filas válidas listas para importar.
- Pacientes que se crearán (si se marcó la opción).
- Errores encontrados (pacientes no encontrados, profesionales no encontrados, etc.).
- Revisar el resultado. Si hay errores, corregir el Excel y volver a intentar.
- Pulsar Confirmar importación para crear las citas.
- Se muestra un resumen con el número de citas importadas y pacientes creados.
| Columna | Contenido | Ejemplo |
|---|---|---|
| A - fecha | Fecha de la cita | 15/03/2026 |
| B - hora_inicio | Hora de inicio | 09:30 |
| C - hora_fin | Hora de fin | 10:00 |
| D - patient_number | Número externo de paciente | 1234 |
| E - nombre | Nombre del paciente | María |
| F - apellido1 | Primer apellido | García |
| G - apellido2 | Segundo apellido | López |
| H - aseguradora | Nombre de la aseguradora | Privado |
| I - dni_profesional | DNI del profesional | 12345678A |
| J - notas | Observaciones | Primera consulta |
- El número de paciente se busca primero como número externo y luego como número interno.
- Si se marca “Crear paciente si no se encuentra”, los pacientes nuevos se crean con pagador Privado y el centro seleccionado.
- El profesional se busca por DNI (coincidencia exacta). Si no se encuentra, se muestra un error.
- La aseguradora se busca por nombre corto y por nombre largo (razón social completa). Es decir, se puede indicar tanto el nombre abreviado como el oficial completo de la aseguradora. Si no se indica, se asigna Privado. Si se indica y no se encuentra, se muestra un error.
- La duración se calcula automáticamente a partir de la hora de inicio y fin.
- La importación es atómica: si ocurre un error durante la creación, no se crea ninguna cita.
Imprimir Agenda Diaria
Desde calendario:- Opción “Imprimir día”
- Genera PDF con citas del día seleccionado
- Formato horario detallado
- Incluye datos de contacto de pacientes
- Logo del centro en cabecera
Estadísticas de Citas
Disponible en módulo Listados:- Total de citas por periodo
- Distribución por profesional
- Distribución por estado
- Distribución por servicio
- Gráficos visuales
- Tendencias temporales
Recordatorios Automáticos
Ubicación: Administración → Preferencias → Notificaciones Opciones:- Activar recordatorios: Sí/No
- Horas de antelación: 24h, 48h, 72h, personalizado
- Canal de envío: Email, SMS, WhatsApp, Todos
- Plantilla de email: Personalizable con variables
- Plantilla de SMS: Texto breve personalizable
- Hora de envío: Hora del día para enviar (ej: 10:00 AM)
{paciente_nombre}- Nombre del paciente{paciente_apellidos}- Apellidos{cita_fecha}- Fecha de la cita{cita_hora}- Hora de la cita{profesional_nombre}- Nombre del profesional{centro_nombre}- Nombre del centro
Integración Google Calendar
Configuración: Por profesional, en su ficha de usuario (seccion “Google Calendario ID”) Opciones de sincronizacion:- Sincronizar citas: envia citas de Nubidoc a Google Calendar (activado por defecto)
- Sincronizar eventos: envia eventos de Nubidoc a Google Calendar (desactivado por defecto)
- Importar eventos de Google: importa eventos creados en Google Calendar a Nubidoc (desactivado por defecto)
- Profesional hace clic en “Conectar Google Calendar”
- Sistema redirige a OAuth de Google
- Profesional autoriza permisos
- Token se almacena cifrado
- Citas y eventos de Nubidoc se envian a Google Calendar
- Si no hay OAuth conectado, se usa la integracion automatica (n8n)
- Se ejecuta automaticamente cada 5 minutos via n8n
- Solo se importan eventos NO creados por Nubidoc (se evitan duplicados)
- Los eventos importados aparecen con indicador G en el titulo
- Los eventos que bloquean la agenda muestran un candado
- Si el evento se modifica en Google Calendar, se actualiza en Nubidoc
- Si varios profesionales comparten el mismo Google Calendar, cada uno recibe su propia copia del evento
- Categoria asignada automaticamente: “Otros”
Estados Personalizados
Ubicación: Administración → Configuración → Estados de Cita Permite:- Crear estados custom según necesidades del centro
- Definir color asociado
- Definir acciones disponibles por estado
- Establecer transiciones permitidas
- “Pre-reserva” - Para citas pendientes de confirmar pago
- “Sala X” - Para identificar ubicación
- “Videollamada” - Para citas telemáticas
- “Prueba diagnóstica” - Para citas especiales
Tutorial 1: Crear Primera Cita del Día
Objetivo: Agendar la primera cita en el calendario Tiempo estimado: 3 minutos Pasos:-
Acceder al calendario
- Clic en “Agenda” en menú lateral
- Seleccionar “Calendario”
-
Seleccionar profesional y fecha
- En filtro superior, elegir profesional
- Navegar a fecha deseada (botones Anterior/Siguiente)
- Cambiar a vista “Día” para mejor visualización
-
Crear cita
- Hacer clic en horario vacío (ej: 09:00)
- Se abre diálogo de nueva cita
-
Completar datos
- Paciente: Escribir nombre en buscador, seleccionar
- Servicio: Seleccionar “Consulta general” (ejemplo)
- Duración: Dejar 30 min (valor por defecto)
- Notas: Añadir observaciones si necesario
-
Guardar
- Clic en botón “GUARDAR”
- Esperar mensaje “Cita creada correctamente”
-
Verificar
- Cita aparece en calendario en horario elegido
- Color azul (Programada)
- Muestra nombre del paciente
Tutorial 2: Atender Paciente del Día
Objetivo: Flujo completo desde llegada hasta facturación Tiempo estimado: 5 minutos Pasos:-
Paciente llega a recepción (09:55)
- Recepcionista busca cita del paciente
- Hace clic en la cita (10:00)
-
Marcar en sala de espera
- En diálogo de cita, clic en “Cambiar estado”
- Seleccionar “En sala de espera”
- Cita cambia a color amarillo
-
Profesional recibe al paciente (10:00)
- Profesional ve cita amarilla en su agenda
- Hace clic en cita
- Selecciona “Comenzar cita”
- Cita pasa a “Comenzada”
-
Atender al paciente (10:00 - 10:30)
- Profesional realiza consulta
- Toma notas en historia clínica
-
Finalizar cita (10:30)
- Profesional hace clic en cita
- Selecciona “Finalizar”
- Cita cambia a estado “Finalizada” (color gris)
-
Crear factura
- Desde diálogo de cita, clic en “Crear factura”
- Sistema abre formulario de factura con:
- Paciente pre-seleccionado
- Servicio “Consulta general” ya añadido
- Precio según tarifa (ej: 50€)
-
Revisar y guardar factura
- Verificar datos
- Clic en “GUARDAR”
-
Registrar pago (si paga en el momento)
- En factura, clic en “Registrar pago”
- Seleccionar “Efectivo”
- Introducir importe (50€)
- Confirmar
-
Finalizar
- Factura queda en estado “Pagada”
- Cita queda marcada como facturada
- Paciente recibe recibo
Tutorial 3: Configurar Recordatorios Automáticos
Objetivo: Activar envío automático de recordatorios por SMS Tiempo estimado: 5 minutos Prerrequisitos:- Permisos de administrador
- Cuenta SMS configurada
-
Acceder a configuración
- Ir a “Administración”
- Seleccionar “Preferencias”
- Pestaña “Notificaciones”
-
Activar recordatorios
- Marcar checkbox “Enviar recordatorios automáticos”
- Seleccionar “Activar para todas las citas”
-
Configurar antelación
- Campo “Horas de antelación”: Escribir “24”
- Esto enviará el recordatorio 24 horas antes
-
Elegir canal
- Marcar “SMS”
- Opcionalmente también “Email”
-
Personalizar mensaje SMS
- En campo “Plantilla SMS”:
-
Configurar hora de envío
- Campo “Hora de envío”: 10:00
- Los SMS se enviarán a las 10:00 AM
-
Guardar configuración
- Clic en “GUARDAR”
- Sistema muestra “Configuración actualizada”
-
Probar
- Crear una cita para mañana
- Esperar al día siguiente a las 10:00
- Verificar que paciente recibe SMS
Citas de Calendly en el Calendario
Si el centro tiene la integracion con Calendly configurada (ver Administracion > Calendly), las citas reservadas en Calendly aparecen automaticamente en el calendario de Nubidoc junto con las citas internas.Como se muestran
- Las citas de Calendly se distinguen con un icono de calendario que las diferencia de las citas creadas directamente en Nubidoc.
- Se muestran en la franja horaria correspondiente, con el nombre del paciente y el color del profesional asignado.
- Para que aparezcan, el profesional debe estar vinculado a su usuario de Calendly (ver configuracion en Administracion > Usuarios).
- Cuenta compartida: Si varios profesionales comparten la misma cuenta de Calendly, las citas aparecen en la agenda de todos ellos. Al filtrar por un profesional, cada cita aparece solo una vez (sin duplicados).
Ver detalles de una cita de Calendly
Al pulsar sobre una cita de Calendly en el calendario se abre un panel con la informacion de la reserva:- Nombre y email del paciente (invitado de Calendly).
- Preguntas y respuestas del formulario de reserva de Calendly.
- Profesional(es) asignado(s): si la cuenta de Calendly es compartida, se muestran todos los profesionales vinculados, separados por coma.
- Datos de pago si el paciente pago al reservar (por ejemplo, a traves de Stripe).
- Estado de la cita (programada, cancelada, etc.).
Importar en Nubidoc
Las citas de Calendly se muestran como referencia, pero no son citas nativas de Nubidoc. Si necesita facturar, anadir prestaciones, modificar precios o acceder a la historia clinica del paciente desde la cita, debe importarla:- Pulse sobre la cita de Calendly en el calendario.
- En el panel de detalles, pulse “Importar en Nubidoc”.
- Se creara una cita nativa con los datos del paciente. Si el paciente no existe en Nubidoc, se crea automaticamente a partir del email y nombre del invitado.
- Una vez importada, la cita funciona como cualquier otra cita de Nubidoc: puede anadir facturables, cambiar precios, generar facturas, y acceder a la historia clinica del paciente.
Nota: Una cita de Calendly solo puede importarse una vez. Si ya fue importada, el boton no aparecera.
Cancelar cita con motivo y seguimiento
Cuando la funcionalidad “Cancelar con motivo” esta habilitada para el centro, al cancelar una cita aparece un dialogo donde se puede:- Seleccionar un motivo de cancelacion de una lista predefinida
- Escribir un comentario adicional
- Crear un evento de revision (opcional)
- Crear un seguimiento de cancelacion (opcional, activado por defecto si el modulo de seguimiento esta activo)
⬅️ Volver al Índice | Anterior: Pacientes | ➡️ Siguiente: Facturación

