Skip to main content

Descripción

El módulo de Tareas es un sistema de gestión de actividades y recordatorios que permite a los profesionales del centro médico organizar su trabajo diario, asignar tareas a otros usuarios, y realizar seguimiento de actividades pendientes. Las tareas pueden estar relacionadas con pacientes específicos, vinculadas a citas, o ser tareas administrativas generales. Este módulo funciona como un sistema de productividad y gestión del trabajo, complementando la agenda médica con un seguimiento de actividades que no necesariamente tienen una hora específica de cita pero que deben ser recordadas y completadas.

Usuarios Objetivo

  • Recepcionistas: Crean tareas recordatorios para llamar a pacientes, enviar documentación, gestionar pagos pendientes
  • Profesionales médicos: Tareas de seguimiento de pacientes, solicitud de pruebas, revisión de resultados
  • Administradores: Tareas administrativas, gestión de trámites, tareas de supervisión
  • Coordinadores: Asignación de tareas al equipo, seguimiento de flujos de trabajo

1. Crear Recordatorio de Llamada a Paciente

  • Actor: Recepcionista
  • Objetivo: Recordar llamar a un paciente para confirmar cita
  • Precondiciones: Tener información del paciente
  • Pasos:
    1. Clic en “Crear tarea”
    2. Seleccionar tipo “Llamada telefónica”
    3. Vincular con el paciente
    4. Establecer fecha y prioridad
    5. Añadir notas con motivo de la llamada
    6. Guardar
  • Resultado: Tarea pendiente visible en listado de tareas pendientes

2. Asignar Tarea de Seguimiento Post-Consulta

  • Actor: Médico
  • Objetivo: Asignar tarea para revisar resultados de pruebas de un paciente
  • Precondiciones: Paciente atendido, pruebas solicitadas
  • Pasos:
    1. Desde ficha del paciente o tras finalizar cita
    2. Crear tarea de tipo “Seguimiento”
    3. Establecer fecha futura (ej. 1 semana)
    4. Añadir notas sobre qué revisar
    5. Opcionalmente: crear cita futura relacionada
    6. Guardar como pública para que el equipo la vea
  • Resultado: Tarea programada que aparecerá en fecha indicada

3. Gestionar Tarea con Flujo de Trabajo

  • Actor: Coordinador
  • Objetivo: Seguir un proceso de varias etapas (ej. gestión de autorización de seguro)
  • Precondiciones: Flujo de trabajo configurado
  • Pasos:
    1. Crear tarea seleccionando flujo “Autorización seguro”
    2. Tarea se crea en primera etapa: “Solicitud enviada”
    3. Al avanzar etapa: “Documentación recibida”
    4. Continuar hasta “Autorización aprobada” o “Rechazada”
  • Resultado: Seguimiento estructurado del proceso completo

4. Buscar Tareas Pendientes por Paciente

  • Actor: Cualquier usuario
  • Objetivo: Ver todas las tareas pendientes de un paciente específico
  • Precondiciones: Paciente existe en sistema
  • Pasos:
    1. Abrir ficha de paciente
    2. Ver sección de tareas en la ficha
    3. Alternativamente: usar búsqueda de tareas filtrando por paciente
  • Resultado: Listado de todas las tareas asociadas al paciente

5. Marcar Tarea como Finalizada

  • Actor: Usuario asignado
  • Objetivo: Completar una tarea y registrar su finalización
  • Precondiciones: Tarea existe y está asignada al usuario
  • Pasos:
    1. Abrir tarea desde listado pendientes
    2. Cambiar estado a “Finalizado”
    3. Opcionalmente: añadir nota con resultado
    4. Guardar
  • Resultado: Tarea marcada como completada con fecha/hora automática

6. Crear Tarea Privada

  • Actor: Cualquier profesional
  • Objetivo: Crear recordatorio personal que otros no vean
  • Precondiciones: Ninguna
  • Pasos:
    1. Crear tarea normal
    2. Cambiar switch “Carácter” a “Privado”
    3. Completar datos
    4. Guardar
  • Resultado: Tarea visible solo para el creador

Opciones del Menú

El módulo Tareas contiene 3 opciones principales:

Opción 1: Tareas pendientes

  • Función JavaScript: openTasks()
  • Icono: fa-solid fa-list-check (Lista con checks)
  • Descripción: Muestra el listado de tareas pendientes del usuario actual
  • Privilegios: Ninguno específico
  • Comportamiento:
    • Carga automáticamente tareas en estado “Pendiente” o “Comenzado”
    • Filtra por usuario actual por defecto
    • Permite cambio rápido de estado
    • Muestra tareas públicas del centro y privadas del usuario

Opción 2: Crear tarea

  • Función JavaScript: createTask()
  • Icono: fa fa-plus-circle (Círculo con +)
  • Descripción: Abre formulario para crear nueva tarea
  • Privilegios: Ninguno específico
  • Comportamiento:
    • Formulario en blanco con valores por defecto
    • Usuario actual preseleccionado
    • Estado “Pendiente” preseleccionado
    • Prioridad “Normal” preseleccionada
    • Fecha actual como sugerencia

Opción 3: Buscar tareas

  • Función JavaScript: openTaskSearch()
  • Icono: fa fa-search (Lupa)
  • Descripción: Búsqueda avanzada de tareas con múltiples filtros
  • Privilegios:
  • Comportamiento:
    • Búsqueda con rango de fechas
    • Filtrado por múltiples criterios
    • Resultados paginados
    • Ejecuta búsqueda automáticamente al abrir

Pantalla 1: Listado de Tareas Pendientes

Función de acceso: openTasks()

Descripción

Pantalla principal del módulo que muestra las tareas pendientes y en curso del usuario. Se presenta en forma de grid con capacidad de paginación y acciones rápidas sobre cada tarea.

Secciones de la Pantalla

1. Contenedor de Tareas
  • ID: tasks-main
  • Muestra grid paginado de tareas
  • Columnas: ID, Tipo, Usuario, Título, Notas, Fecha Inicio, Fecha Fin, Estado
  • Coloración por estado y prioridad
2. Filtros Automáticos
  • Tareas en estado “Pendiente” (1) o “Comenzado” (2)
  • Del usuario actual o públicas del centro
  • Ordenadas por fecha de creación
3. Acciones sobre Tareas
  • Ver/Editar tarea (clic en fila)
  • Cambiar estado rápidamente
  • Eliminar tarea
  • Ver detalles completos

Pantalla 2: Formulario de Tarea (Nueva/Editar)

Función de acceso: createTask(), updateTask(taskId)

Descripción

Formulario completo para crear o modificar una tarea. Incluye todos los campos necesarios para definir la tarea, asignarla, establecer prioridad y vincularla opcionalmente con pacientes.

Secciones de la Pantalla

1. Encabezado
  • Título: “Nueva tarea” o “Modificar tarea”
  • Breadcrumb con icono de tareas
  • Botón “ACEPTAR” (verde) para guardar
2. Campos de Asignación (Primera fila)
  • Usuario:* Combo select con profesionales del centro
    • Preseleccionado: usuario actual
    • Puede cambiar si tiene permisos
  • Tipo:* Combo select con tipos de tarea
    • Tipos configurables por centro
    • Ejemplos: Llamada, Seguimiento, Administrativa, etc.
  • Estado:* Combo select
    • Valores: Pendiente, Comenzado, Finalizado
  • Prioridad:* Combo select
    • Valores: Baja, Normal, Alta, Muy Alta
    • Preseleccionada: Normal
3. Campos de Contenido (Segunda fila)
  • Tarea: Textarea para nombre/título
    • Altura: 50px
    • Ancho: 99%
  • Notas adicionales: Textarea para descripción
    • Altura: 50px
    • Ancho: 99%
  • Carácter: Switch Público/Privado
    • Público: visible para todos
    • Privado: solo visible para el usuario asignado
4. Campos de Fechas (Tercera fila)
  • Fecha Inicio: DateTimePicker
    • Formato: dd/mm/yyyy HH:mm
  • Fecha finalización: DateTimePicker
    • Debe ser ≥ Fecha Inicio
    • Opcional
  • Flujo de trabajo: Combo select
    • Workflows configurables
    • Solo editable en creación (disabled en modificación)
5. Vinculación con Paciente (Cuarta fila)
  • Paciente: Campo autocompletar
    • Búsqueda por nombre
    • Botón lupa para buscar paciente
    • Opcional
  • Nº HC: Número de historia clínica
    • Se autocompleta al seleccionar paciente
    • Solo lectura
6. Botones de Acción (Si tarea existe)
  • Detalles: Ver información extendida en diálogo
  • Modificar: Habilitar edición

Estados Visuales de los Campos

  • Campos con asterisco (*) son obligatorios
  • Campos deshabilitados en gris cuando no editable
  • Flujo de trabajo bloqueado tras creación

Pantalla 3: Búsqueda de Tareas

Función de acceso: openTaskSearch()

Descripción

Pantalla de búsqueda avanzada con múltiples criterios de filtrado. Permite localizar tareas históricas, filtrar por rangos de fechas, profesionales, tipos y estados.

Secciones de la Pantalla

1. Panel de Filtros
  • Profesionales: Multiselect de usuarios
    • Permite seleccionar múltiples
    • Vacío = todos los usuarios
  • Categoría: Multiselect de tipos de tarea
    • Filtra por tipo configurado
  • Inicio entre Fecha: Rango de fechas
    • Fecha desde (por defecto: hoy 00:01)
    • Fecha hasta (por defecto: hoy 23:59)
  • Título: Campo texto libre
    • Búsqueda LIKE en task_name
  • Notas: Campo texto libre
    • Búsqueda LIKE en task_notes
  • Estados: Multiselect
    • Pendiente, Comenzado, Finalizado
    • Permite seleccionar múltiples
2. Botones de Acción
  • Buscar: Ejecuta la búsqueda
  • Limpiar: Vacía todos los campos
  • Filtro avanzado: (Deshabilitado actualmente)
3. Área de Resultados
  • Grid paginado con resultados
  • Muestra mismas columnas que listado pendientes
  • Clic en fila para ver/editar

Formulario: Nueva/Editar Tarea

Propósito: Crear o modificar una tarea en el sistema Ubicación: Modal/Tab tras clic en “Crear tarea” o editar tarea existente ID HTML: new-task-form-[randomID]

Campos del Formulario

CampoTipoObligatorioDescripciónValidación
task_idhidden-ID de la tarea (vacío si nueva)-
task_user_idselectUsuario/profesional asignadoRequerido, debe existir usuario
task_tasktype_idselectTipo de tarea (configurable por centro)Requerido, error: “Debe indicarse el tipo de tarea”
task_statusselectEstado: 1=Pendiente, 2=Comenzado, 3=Finalizado, 4=CanceladoRequerido, error: “Debe seleccionar un estado”
task_priorityselectPrioridad: 0=Baja, 1=Normal, 2=Alta, 3=Muy AltaRequerido, error: “Debe seleccionar una prioridad”
task_nametextareaNoNombre/título de la tareaMáx. texto permitido por DB
task_notestextareaNoNotas adicionales, descripciónSin límite visual
task_isprivateswitchNo0=Público, 1=PrivadoCheckbox invertido
task_begindatedatetimeNoFecha y hora de inicioFormato: yyyy-MM-dd HH:mm:ss
task_enddatedatetimeNoFecha y hora de finalizaciónDebe ser ≥ begindate
task_taskflow_idselectNoFlujo de trabajo asociadoSolo editable en creación
task_patient_idautocompleteNoPaciente vinculadoDebe existir en sistema
patient_numbertextNoNúmero de historia clínicaAutocompletado, readonly
task_colorcolorNoColor de la tareaPor defecto: #FFFFFF

Validaciones Especiales

  1. Fechas:
    • Si enddate existe, debe ser mayor o igual que begindate
    • Mensaje error: “La fecha Fin debe ser mayor o igual que la fecha de inicio”
  2. Campos requeridos:
    • task_tasktype_id: “Debe indicarse el tipo de tarea”
    • task_user_id: “Debe indicarse un usuario”
    • task_status: “Debe seleccionar un estado” (validación JS)
    • task_priority: “Debe seleccionar una prioridad” (validación JS)
  3. Reglas de negocio:
    • Al cambiar estado a “Comenzado” (2): se establece begindate automáticamente si está vacío
    • Al cambiar estado a “Finalizado” (3): se establece enddate automáticamente si está vacío
    • task_taskflow_id queda disabled tras primera guardada

Botones y Acciones

  • ACEPTAR (verde, clase hpc-form-okbutton)
    • Función: sendTask(task_id, formId, context)
    • Acción: Valida y envía formulario por AJAX
    • Validaciones previas:
      1. Tipo de tarea seleccionado
      2. Estado seleccionado
      3. Prioridad seleccionada
      4. Fechas válidas (fin ≥ inicio)
    • Callback: Recarga vista de tareas pendientes openTasks(true)
  • Detalles (naranja, solo si tarea existe)
    • Función: openTaskDetailsDialog(taskId, formId)
    • Acción: Abre diálogo modal con información extendida
    • Muestra: Interacciones, notas, historial de cambios
  • Modificar (gris, solo si tarea existe y no editable)
    • Función: updateTask(taskId, patientId, null, null)
    • Acción: Recarga formulario en modo edición

Formulario: Búsqueda de Tareas

Propósito: Buscar tareas con criterios avanzados Ubicación: Opción “Buscar tareas” del menú ID HTML: tasksearch-form

Campos del Formulario de Búsqueda

CampoTipoObligatorioDescripciónComportamiento
task_user_id[]multiselectNoProfesionalesBúsqueda en múltiples usuarios
task_tasktype_id[]multiselectNoCategorías/TiposFiltrado por tipo
searchtaskdatepickerfromdatetimeNoFecha desdeInicio del rango
searchtaskdatepickertodatetimeNoFecha hastaFin del rango
task_nametextNoTítuloBúsqueda LIKE %
task_notestextNoNotasBúsqueda LIKE %
task_status[]multiselectNoEstados1=Pendiente, 2=Comenzado, 3=Finalizado
checkboxApposTaskLinkedYescheckboxNoCon cita vinculadaFiltra task_appointment_id NOT NULL
checkboxApposTaskLinkedNocheckboxNoSin cita vinculadaFiltra task_appointment_id IS NULL

Validaciones

  • Rango de fechas:
    • Si ambas fechas están informadas: datefrom no puede ser mayor que dateto
    • Mensaje error: “La fecha de inicio no puede ser mayor que la fecha final”

Botones y Acciones

  • Buscar (azul, con lupa)
    • Función: doTaskSearch(paneId)
    • Acción: Ejecuta búsqueda con criterios seleccionados
    • Destino: result-[paneId]
    • Operación: findAndShowPaginated
  • Limpiar (círculo con goma)
    • Función: cleanform(context)
    • Acción: Vacía todos los campos de búsqueda
    • No ejecuta nueva búsqueda

Workflow 1: Crear Nueva Tarea

1. Usuario hace clic en "Crear tarea" del menú

   - Usuario actual preseleccionado
   - Estado "Pendiente" preseleccionado
   - Prioridad "Normal" preseleccionada
   - Carácter "Público" por defecto

3. Usuario completa campos obligatorios
   - Tipo de tarea*
   - Estado*
   - Prioridad*

4. Usuario opcionalmente completa
   - Título y notas
   - Fechas de inicio/fin
   - Vinculación con paciente
   - Flujo de trabajo
   - Cambiar a privado

5. Usuario hace clic en "ACEPTAR"

6. Sistema valida (JavaScript)
   - Tipo de tarea seleccionado
   - Estado seleccionado
   - Prioridad seleccionada
   - Si hay fechas: fin ≥ inicio

7. Sistema envía datos vía AJAX
   - Operation: save

8. Sistema valida (PHP - isValidToSave)
   - task_tasktype_id no vacío
   - task_user_id no vacío
   - Si deleted=0: validaciones activas

9. Sistema procesa guardado
   - INSERT en tabla hpc_task
   - Si estado=2 (Comenzado) sin begindate: establece NOW()
   - Si estado=3 (Finalizado) sin enddate: establece NOW()
   - Si tiene taskflow_id: crea primer estado del flujo

10. Sistema retorna resultado
    - Muestra mensaje: "Tarea creada correctamente"
    - Recarga vista de tareas pendientes
    - Cierra/actualiza formulario

11. (Opcional) Si usuario tiene Google Calendar configurado
    - Sistema sincroniza tarea con Google Calendar
    - Establece task_googleid y task_googlesyncdate
    - Si falla: muestra warning pero no bloquea guardado
Errores Comunes:
  • Error: “Debe indicarse el tipo de tarea”
    • Causa: No se seleccionó tipo (task_tasktype_id vacío)
    • Solución: Seleccionar un tipo de la lista desplegable
  • Error: “Debe indicarse un usuario”
    • Causa: Campo usuario vacío (task_user_id vacío)
    • Solución: Seleccionar profesional asignado
  • Error: “La fecha Fin debe ser mayor o igual que la fecha de inicio”
    • Causa: enddate < begindate
    • Solución: Ajustar fechas correctamente

Workflow 2: Cambiar Estado de Tarea

1. Usuario abre tarea existente desde listado

2. Sistema muestra formulario con datos actuales
   - Estado actual visible en combo

3. Usuario modifica el estado
   - Cambia de "Pendiente" (1) a "Comenzado" (2), o
   - Cambia de "Comenzado" (2) a "Finalizado" (3)

4. Usuario hace clic en "ACEPTAR"

5. Sistema valida formulario
   - Mismo proceso que crear tarea

6. Sistema procesa cambio de estado (método save)
   - Si oldstatus ≠ newstatus:
     * Si newstatus = 2 (Comenzado) y begindate vacío:
       → establece begindate = NOW()
     * Si newstatus = 3 (Finalizado) y enddate vacío:
       → establece enddate = NOW()

7. Sistema UPDATE en hpc_task
   - Actualiza task_status
   - Actualiza begindate o enddate si corresponde

8. Sistema retorna resultado
   - Muestra mensaje: "Tarea modificada correctamente"
   - Actualiza color en listado (según estado)
   - Si cambió a "Finalizado": desaparece de pendientes
Variantes del flujo:
  • Si cambia de “Finalizado” a “Pendiente”: enddate se mantiene, no se borra
  • Si cambia prioridad: solo actualiza task_priority, sin efectos en fechas
Método específico: También se puede usar updatestatus($request):
$task->updatestatus($request, $taskId, $newstatus);
// Actualiza solo el estado sin pasar por validación completa

Workflow 3: Buscar Tareas con Filtros

1. Usuario hace clic en "Buscar tareas" del menú

   - Rango fechas: hoy 00:01 - 23:59 por defecto
   - Ejecuta búsqueda automática con fechas del día

3. Sistema ejecuta búsqueda inicial (doTaskSearch)
   - Filtros: solo fechas del día actual
   - findByCriteria en Task.php

4. Sistema construye consulta SQL
   - WHERE customer_id = [customer actual]
   - WHERE deleted = 0
   - WHERE task_creationdate ≥ 'hoy 00:01'
   - WHERE task_creationdate ≤ 'hoy 23:59'
   - WHERE (isprivate = 0 OR user_id = [usuario actual])

5. Sistema muestra resultados paginados
   - Grid con columnas: ID, Tipo, Usuario, Título, Notas, Fechas, Estado
   - Paginación si > 10 resultados

6. Usuario opcionalmente modifica filtros
   - Cambia rango de fechas
   - Selecciona profesionales específicos
   - Selecciona tipos de tarea
   - Selecciona estados
   - Introduce texto en título/notas

7. Usuario hace clic en "Buscar"

8. Sistema valida fechas
   - Si ambas fechas informadas: datefrom ≤ dateto
   - Si no: muestra "La fecha de inicio no puede ser mayor que la fecha final"

9. Sistema construye nueva consulta
   - Añade filtros seleccionados con OR entre valores:
     * Profesionales: (user_id = X OR user_id = Y)
     * Tipos: (tasktype_id = A OR tasktype_id = B)
     * Estados: (status = 1 OR status = 2)
   - Texto: task_name LIKE '%texto%'
   - Texto notas: task_notes LIKE '%texto%'

10. Sistema ejecuta búsqueda y muestra resultados
    - Resultados ordenados por fecha creación
    - Click en resultado abre formulario de edición
Filtros Especiales:
  • Búsqueda por paciente: Desde ficha de paciente
    • Añade: WHERE task_patient_id = [patient_id]
    • No filtra por usuarios
  • Vinculación con citas: (Funcionalidad deshabilitada por defecto)
    • checkboxApposTaskLinkedYes: WHERE task_appointment_id IS NOT NULL
    • checkboxApposTaskLinkedNo: WHERE task_appointment_id IS NULL

Workflow 4: Vincular Tarea con Cita

1. Usuario crea o edita tarea

2. Usuario ha creado previamente una cita de tipo videoconferencia
   - La cita tiene un código único

3. En el formulario de tarea, usuario hace clic en enlazar cita
   (Funcionalidad visible solo si configurada para el centro)

4. Sistema muestra diálogo: "Introducir código de cita"

5. Usuario introduce código de cita

6. Sistema busca cita por código (linktoappo)

7. Sistema valida cita encontrada
   - Si no existe: "Cita con código -[código]- no encontrada"
   - Si ya vinculada a otra tarea: "Cita ya está asociada a una tarea"

8. Sistema vincula cita con tarea
   - UPDATE task SET task_appointment_id = [appo_id]
   - Guarda relación

9. Sistema muestra información de cita en formulario
   - Fecha y hora de la cita
   - Paciente de la cita (con link)
   - Botón "Eliminar relación"
   - Fondo coloreado con color de la cita

10. Si usuario hace clic en "Eliminar relación"
    - Ejecuta removerelationappo()
    - UPDATE task SET task_appointment_id = NULL
    - Refresca formulario
Nota: Este flujo está disponible solo si:
$customer->allowLinkAppo2TaskFunctionallity() == true

Workflow 5: Gestión con Flujos de Trabajo

1. Administrador configura flujo de trabajo
   - Ejemplo: "Gestión de Autorización"
   - Define estados: Solicitada → Documentación → Aprobada/Rechazada
   - Desde Administración → Tareas → Flujos de trabajo

2. Usuario crea tarea seleccionando flujo
   - Campo "Flujo de trabajo" en formulario
   - Selecciona "Gestión de Autorización"

3. Sistema crea tarea con flujo (método save)
   - Guarda task con task_taskflow_id
   - Automáticamente crea primer estado del flujo:
     * Busca primer taskflowstatus del flujo (ordenado por theorder)
     * INSERT en hpc_tasktaskflowstatus:
       - tasktaskflowstatus_task_id
       - tasktaskflowstatus_taskflowstatus_id
       - creationdate = NOW()

4. Tarea queda en estado inicial "Solicitada"
   - Flujo de trabajo queda bloqueado (disabled) para edición
   - Solo puede avanzar por estados, no cambiar flujo

5. Usuario avanza estado del flujo
   - Abre detalles de tarea
   - Selecciona siguiente estado: "Documentación"
   - Confirma cambio

6. Sistema ejecuta updateflowstatus()
   - Valida nuevo estado pertenece al flujo
   - INSERT nuevo registro en hpc_tasktaskflowstatus
   - Ejecuta acciones automáticas si existen:
     * taskflowstatusaction puede disparar:
       - Envío de email
       - Creación de otra tarea
       - Actualización de datos del paciente

7. Sistema registra historial completo
   - getLastTaskFlowStatus() devuelve estado actual
   - Todos los cambios quedan registrados con fecha

8. Usuario continúa hasta estado final
   - "Aprobada" o "Rechazada"
   - Flujo queda completo
Estados de Flujo vs Estados de Tarea:
  • Estados de Tarea (task_status): Pendiente, Comenzado, Finalizado, Cancelado
  • Estados de Flujo (taskflowstatus): Personalizados según cada flujo
  • Ambos son independientes: una tarea puede estar “Comenzada” y en estado de flujo “Documentación”

Integraciones

Con Módulo Pacientes:
  • Tareas pueden vincularse a pacientes específicos vía task_patient_id
  • Desde ficha de paciente se pueden ver todas sus tareas
  • Al vincular paciente: se muestra nombre y número de historia
  • Búsqueda de paciente integrada en formulario de tarea
  • Datos compartidos: patient_id, patient_name, patient_number
Con Módulo Agenda:
  • Tareas pueden crear citas automáticamente vía createAppointment()
  • Tareas pueden vincularse a citas existentes vía task_appointment_id
  • Al vincular cita: se muestra fecha, hora, paciente y color de la cita
  • Desde cita se puede crear tarea de seguimiento
  • Datos compartidos: appointment_id, appointment_date, appointment_patient_id
Con Sistema de Usuarios:
  • Toda tarea debe tener usuario asignado (task_user_id)
  • Filtrado por permisos: ver solo tareas propias o de todo el centro
  • Tareas privadas: solo visibles para usuario asignado
  • Tareas públicas: visibles para todos los usuarios del centro
  • Color de usuario se refleja en visualización de tarea
Con Google Calendar:
  • Sincronización automática si usuario tiene configurado Google Calendar
  • Campos: task_googleid, task_googlesyncdate
  • Método: syncWithGoogleCalendar($timestamp)
  • Si falla sincronización: muestra warning pero no impide guardar tarea
  • Actualización bidireccional de cambios

Dependencias

Requiere:
  • Usuarios: Toda tarea debe tener usuario asignado
    • Módulo Administración → Usuarios debe tener al menos un usuario
  • Tipos de Tarea: Tipos configurados en el centro
    • Módulo Administración → Tareas → Tipos de tarea
    • Al menos un tipo de tarea debe existir
  • Customer activo: Sistema multi-tenant requiere customer_id
Es requerido por:
  • Flujos de Trabajo: TaskFlow depende de tareas para ejecutarse
  • Historial de Paciente: Tareas forman parte del historial del paciente
  • Reportes: Listados de productividad usan datos de tareas
Opcional:
  • Flujos de Trabajo (TaskFlow): Permiten gestión estructurada por etapas
  • Pacientes: Tareas pueden existir sin paciente (tareas administrativas)
  • Citas: Tareas pueden existir sin cita vinculada

Regla 1: Asignación Automática de Fechas según Estado

  • Descripción: Cuando cambia el estado de una tarea, ciertas fechas se establecen automáticamente
  • Cuándo aplica:
    • Al cambiar estado de cualquier valor a “Comenzado” (2)
    • Al cambiar estado de cualquier valor a “Finalizado” (3)
  • Efecto:
    • Si nuevo estado = 2 (Comenzado) y task_begindate es NULL: → Se establece task_begindate = NOW()
    • Si nuevo estado = 3 (Finalizado) y task_enddate es NULL: → Se establece task_enddate = NOW()
  • Código: Task.php líneas 436-442 (método save)

Regla 2: Privacidad de Tareas

  • Descripción: Las tareas pueden ser públicas o privadas, controlando su visibilidad
  • Cuándo aplica: Siempre, en toda visualización y búsqueda de tareas
  • Efecto:
    • Tareas públicas (isprivate = 0): visibles para todos los usuarios del centro
    • Tareas privadas (isprivate = 1): solo visibles para el usuario asignado (task_user_id)
    • Filtro aplicado: WHERE (isprivate = 0 OR task_user_id = [usuario_actual])
  • Código: Task.php línea 1047

Regla 3: Flujo de Trabajo Inmutable tras Creación

  • Descripción: Una vez asignado un flujo de trabajo a una tarea, no puede cambiarse
  • Cuándo aplica: Al editar una tarea existente que tiene task_taskflow_id informado
  • Efecto:
    • El combo “Flujo de trabajo” se muestra disabled
    • No se puede cambiar a otro flujo ni quitarlo
    • Solo se puede avanzar por los estados del flujo asignado
  • Razón: Mantener integridad del historial de estados del flujo

Regla 4: Inicialización Automática de Flujo de Trabajo

  • Descripción: Al crear tarea con flujo, se establece automáticamente el primer estado
  • Cuándo aplica: Al guardar tarea nueva (taskID == null) con task_taskflow_id informado
  • Efecto:
    • Sistema busca estados del flujo ordenados por theorder
    • Crea registro en hpc_tasktaskflowstatus con primer estado
    • Establece tasktaskflowstatus_creationdate = NOW()
    • Tarea inicia en primer estado del flujo
  • Código: Task.php líneas 447-465

Regla 5: Validación de Rango de Fechas

  • Descripción: La fecha de finalización debe ser posterior o igual a la de inicio
  • Cuándo aplica: Al guardar tarea con ambas fechas informadas
  • Efecto:
    • Validación JavaScript previa al envío del formulario
    • Si enddate < begindate: muestra error y no envía
    • Mensaje: “La fecha Fin debe ser mayor o igual que la fecha de inicio”

Regla 6: Vinculación Única Cita-Tarea

  • Descripción: Una cita solo puede estar vinculada a una tarea a la vez
  • Cuándo aplica: Al intentar vincular cita a tarea (método linktoappo)
  • Efecto:
    • Sistema verifica si cita ya tiene tarea asociada
    • Si appo.getTask() devuelve tarea existente: muestra error
    • Mensaje: “Cita con código -[código]- ya está asociada a una tarea”
    • Debe primero eliminarse la relación de la otra tarea
  • Código: Task.php líneas 1205-1212

Regla 7: Campos Obligatorios Mínimos

  • Descripción: Toda tarea debe tener usuario, tipo, estado y prioridad
  • Cuándo aplica: Al guardar tarea (método isValidToSave)
  • Efecto:
    • Si task_tasktype_id vacío: “Debe indicarse el tipo de tarea”
    • Si task_user_id vacío: “Debe indicarse un usuario”
    • Si en formulario JS falta estado: “Debe seleccionar un estado”
    • Si en formulario JS falta prioridad: “Debe seleccionar una prioridad”

Regla 8: Eliminación Lógica (Soft Delete)

  • Descripción: Las tareas nunca se borran físicamente de la base de datos
  • Cuándo aplica: Al eliminar una tarea
  • Efecto:
    • No se ejecuta DELETE FROM hpc_task
    • Se ejecuta UPDATE hpc_task SET deleted = 1
    • Tarea deja de aparecer en búsquedas (filtro WHERE deleted = 0)
    • Datos quedan preservados para auditoría
  • Código: Task.php método delete() líneas 81-84, 91-94

Mensajes de Éxito

  • “Tarea creada correctamente”
    • Cuándo: Al guardar nueva tarea sin errores
    • Dónde: Formulario de tarea, mensaje info verde
    • Código: Task.php línea 419
  • “Tarea modificada correctamente”
    • Cuándo: Al actualizar tarea existente sin errores
    • Dónde: Formulario de tarea, mensaje info verde
    • Código: Task.php línea 426
  • “Tarea eliminada correctamente”
    • Cuándo: Al eliminar tarea (marcar deleted=1) sin errores
    • Dónde: Listado de tareas
    • Código: Task.php línea 423

Mensajes de Error

  • “Debe indicarse el tipo de tarea”
    • Cuándo: Al guardar tarea sin seleccionar tipo (task_tasktype_id vacío)
    • Solución: Seleccionar un tipo de la lista desplegable “Tipo*”
    • Código: Task.php líneas 631-636
  • “Debe indicarse un usuario”
    • Cuándo: Al guardar tarea sin usuario asignado (task_user_id vacío)
    • Solución: Seleccionar profesional en combo “Usuario*”
    • Código: Task.php líneas 639-646
  • “Debe seleccionar un estado”
    • Cuándo: Al guardar desde formulario sin estado seleccionado (validación JS)
    • Solución: Seleccionar estado en combo “Estado*”
  • “Debe seleccionar una prioridad”
    • Cuándo: Al guardar desde formulario sin prioridad (validación JS)
    • Solución: Seleccionar prioridad en combo “Prioridad*”
  • “La fecha Fin debe ser mayor o igual que la fecha de inicio”
    • Cuándo: Al guardar con enddate < begindate (validación JS)
    • Solución: Ajustar fechas para que fin ≥ inicio o dejar una vacía
  • “Cita con código -[código]- no encontrada”
    • Cuándo: Al intentar vincular cita inexistente o código incorrecto
    • Solución: Verificar código de cita y que sea de tipo videoconferencia
    • Código: Task.php líneas 1197-1202
  • “Cita con código -[código]- ya está asociada a una tarea”
    • Cuándo: Al intentar vincular cita que ya tiene tarea asociada
    • Solución: Eliminar relación de la otra tarea primero
    • Código: Task.php líneas 1207-1212
  • “La fecha de inicio no puede ser mayor que la fecha final”
    • Cuándo: En búsqueda, al poner fecha desde > fecha hasta
    • Solución: Invertir fechas o corregir rango

Mensajes de Advertencia

  • “No se ha encontrado el calendario en Google Calendar. Los datos no se han sincronizado”
    • Cuándo: Al guardar tarea con Google Calendar configurado pero calendario no encontrado
    • Impacto: Tarea se guarda normalmente, solo falla sincronización
    • Solución: Revisar configuración de Google Calendar del usuario
    • Código: Task.php línea 356
  • “No está conectado con Google Calendar. Los datos no se han sincronizado”
    • Cuándo: Al guardar tarea con usuario sin Google Calendar configurado
    • Impacto: Tarea se guarda normalmente, no se sincroniza
    • Solución: Configurar Google Calendar en perfil de usuario si se desea sincronización
    • Código: Task.php línea 361
  • “Error al enviar la información a Google Calendar”
    • Cuándo: Excepción durante sincronización con Google Calendar
    • Impacto: Tarea guardada, sincronización fallida
    • Solución: Revisar logs, verificar conexión a Google, reconfigurar si necesario
    • Código: Task.php líneas 367-371

Preguntas Frecuentes

Q: ¿Cuál es la diferencia entre una tarea y una cita? A: Una cita es un evento en la agenda con fecha y hora específica, asociada siempre a un profesional y generalmente a un paciente. Una tarea es un recordatorio o pendiente que puede o no tener fecha específica, y su propósito es gestionar actividades que no son atención directa al paciente (llamadas, seguimientos, gestiones administrativas). Las tareas pueden vincularse a citas, pero son entidades independientes. Q: ¿Qué sucede si cambio el estado de una tarea a “Finalizado”? A: Al cambiar estado a “Finalizado” (valor 3), el sistema automáticamente registra la fecha y hora actual en el campo task_enddate si está vacío. La tarea desaparece del listado de “Tareas pendientes” pero puede encontrarse en la búsqueda histórica. Q: ¿Puedo ver las tareas de otros profesionales? A: Depende de dos factores:
  1. Tareas públicas: Siempre visibles para todos los usuarios del centro
  2. Tareas privadas: Solo visibles para el usuario asignado
Q: ¿Cómo puedo crear una tarea que solo yo vea? A: Al crear o editar la tarea, cambia el switch “Carácter” de “Público” a “Privado”. Esto establece isprivate = 1 y solo tú podrás ver esa tarea en el sistema. Q: ¿Puedo cambiar el flujo de trabajo de una tarea después de crearla? A: No. Una vez que guardas una tarea con un flujo de trabajo asignado, el campo queda bloqueado (disabled). Esto es para mantener la integridad del historial de estados. Si necesitas un flujo diferente, debes crear una nueva tarea. Q: ¿Qué es un flujo de trabajo y para qué sirve? A: Un flujo de trabajo (TaskFlow) es una secuencia predefinida de estados por los que debe pasar una tarea. Por ejemplo: “Solicitud → Documentación → Aprobación → Finalizada”. Cada cambio de estado queda registrado con fecha. Es útil para procesos estandarizados como gestión de autorizaciones, trámites administrativos, o protocolos clínicos con varias etapas. Q: ¿Por qué no aparecen mis tareas en “Tareas pendientes”? A: Verifica:
  1. Estado: Solo aparecen tareas en estado “Pendiente” (1) o “Comenzado” (2)
  2. Privacidad: Si es privada de otro usuario, no la verás
  3. Usuario: Por defecto filtra por tus tareas; usa búsqueda para ver todas
  4. Eliminada: Si fue eliminada (deleted=1), no aparece
Q: ¿Cómo vinculo una tarea con un paciente? A: En el formulario de tarea, sección “Paciente”:
  1. Escribe el nombre del paciente en el campo
  2. O haz clic en el botón lupa (🔍) para buscar
  3. Selecciona el paciente de la lista
  4. El número de historia se autocompletará
Q: ¿Puedo crear una tarea sin fecha? A: Sí, los campos “Fecha Inicio” y “Fecha finalización” son opcionales. Puedes crear una tarea solo con tipo, usuario, estado y prioridad. Es útil para recordatorios sin fecha límite específica. Q: ¿Qué pasa si elimino una tarea? A: Las tareas nunca se eliminan físicamente. Al “eliminar”, el sistema marca la tarea como deleted=1. La tarea:
  • Desaparece de todos los listados
  • Ya no es accesible desde la interfaz
  • Queda preservada en base de datos para auditoría
  • No puede recuperarse desde la interfaz (requiere acceso a BD)
Q: ¿Cómo funciona la sincronización con Google Calendar? A: Si el usuario tiene configurado Google Calendar en su perfil:
  1. Al guardar tarea, se intenta sincronizar automáticamente
  2. La tarea aparece en Google Calendar del usuario
  3. Se guarda el ID de Google (task_googleid)
  4. Si falla, muestra advertencia pero guarda la tarea igualmente
  5. La sincronización es unidireccional: de Nubidoc a Google
Q: ¿Cuál es la diferencia entre Estado y Flujo de trabajo? A:
  • Estado (task_status): Estado básico de la tarea → Pendiente, Comenzado, Finalizado, Cancelado. Es obligatorio siempre.
  • Flujo de trabajo (taskflow): Secuencia de estados personalizados opcionales para procesos específicos. Ejemplo: “Documentación pendiente → Revisión → Aprobado”.
  • Ambos pueden coexistir: una tarea puede estar en Estado=“Comenzado” y al mismo tiempo en estado de flujo=“Revisión”.
Q: ¿Puedo asignar una tarea a múltiples usuarios? A: No directamente. Cada tarea tiene un único usuario asignado (task_user_id). Si necesitas asignar a varios usuarios, debes crear tareas separadas para cada uno. Alternativamente, crea una tarea pública que todos puedan ver.

Campos de Búsqueda

CampoTipoOperadorDescripción
task_user_idArray (multiselect)INProfesionales asignados. Permite seleccionar múltiples.
task_tasktype_idArray (multiselect)INTipos/categorías de tarea. Permite seleccionar múltiples.
task_creationdate (from)DatetimeFecha de creación desde. Formato: yyyy-MM-dd HH:mm:ss
task_creationdate (to)DatetimeFecha de creación hasta. Formato: yyyy-MM-dd HH:mm:ss
task_nameTextLIKEBúsqueda en título de la tarea. Búsqueda parcial %texto%
task_notesTextLIKEBúsqueda en notas. Búsqueda parcial %texto%
task_statusArray (multiselect)INEstados: Pendiente (1), Comenzado (2), Finalizado (3)
task_patient_idInteger=ID del paciente (cuando se busca desde ficha de paciente)
task_appointment_idCheckboxIS NULL / IS NOT NULLCon/sin cita vinculada (funcionalidad condicional)

Lógica de Búsqueda

Operadores entre filtros: AND
  • Todos los filtros se combinan con AND
  • Ejemplo: Profesionales AND Fecha AND Estado
Operadores dentro de multiselect: OR
  • Múltiples valores del mismo filtro se combinan con OR
  • Ejemplo: (user_id=5 OR user_id=7 OR user_id=9)
Rango de fechas:
WHERE task_creationdate ≥ timestamp('2024-01-01 00:00:00')
  AND task_creationdate ≤ timestamp('2024-01-31 23:59:59')
Filtro automático de privacidad:
WHERE (task_isprivate = 0 OR task_user_id = [usuario_actual])
Filtro automático de eliminados:
WHERE deleted = 0

Resultados

Columnas mostradas:
ColumnaDescripciónOrigen
IDID numérico de la tareatask_id
TipoNombre del tipo de tareatasktype_name (JOIN)
UsuarioNombre corto del profesionaluser_shortname (JOIN)
TareaTítulo de la tareatask_name
NotasDescripción/notastask_notes
Fecha InicioFecha y hora de iniciotask_begindate (formateado)
Fecha FinFecha y hora de fintask_enddate (formateado)
EstadoNombre del estadoEstado traducido (1=Pendiente, etc.)
Color UsuarioColor del usuario (fondo)user_color
Color TareaColor de la tareatask_color
Color EstadoColor según estadoCalculado (verde=finalizado, etc.)
Orden de resultados:
  • Por defecto: ORDER BY task_creationdate DESC
  • Cuando se busca por paciente: ORDER BY task_patient_id, task_begindate DESC
Paginación:
  • Tamaño página por defecto: 10 registros (rowCount = 10)
  • Paginación controlada por parámetros page y rowcount
Acciones sobre resultados:
  • Clic en fila: Abre formulario de edición de la tarea
  • Ver detalles: Diálogo modal con información extendida
  • Eliminar: Marca tarea como deleted=1
  • Cambiar estado: Modificación rápida de estado

Búsquedas Especiales

Tareas Pendientes (openTasks):
WHERE task_status IN (1, 2)  -- Pendiente o Comenzado
  AND (isprivate = 0 OR task_user_id = [usuario_actual])
  AND deleted = 0
ORDER BY task_creationdate DESC
Tareas de un Paciente:
WHERE task_patient_id = [patient_id]
  AND deleted = 0
ORDER BY task_begindate DESC

Estados Visuales

Estados de Tarea (task_status):
EstadoValorColorIconoSignificado
Pendiente1Azul-Tarea aún no iniciada
Comenzado2Amarillo/Naranja-Tarea en progreso
Finalizado3VerdeTarea completada
Cancelado4Rojo/GrisTarea cancelada (no mostrado en UI normal)
Prioridades (task_priority):
PrioridadValorRepresentación VisualUso
Baja0Texto normal, sin énfasisTareas no urgentes
Normal1Texto normal (por defecto)Mayoría de tareas
Alta2Texto en negrita o destacadoTareas importantes
Muy Alta3Texto rojo/destacado especialTareas urgentes
Carácter de Tarea:
TipoValor isprivateIcono/IndicadorVisibilidad
Público0👁️ (ojo abierto)Todos los usuarios del centro
Privado1🔒 (candado)Solo usuario asignado

Iconos Principales

  • fa-solid fa-list - Icono del módulo Tareas en menú
  • fa-solid fa-list-check - Tareas pendientes (lista con checks)
  • fa fa-plus-circle - Crear nueva tarea
  • fa fa-search - Buscar tareas
  • fa fa-tasks - Icono genérico de tarea (en breadcrumb)
  • fa fa-pencil - Modificar tarea
  • fa fa-external-link-square - Ver detalles de tarea
  • fa fa-trash - Eliminar relación (con cita) o eliminar tarea
  • fa fa-eraser - Limpiar campos de búsqueda
  • fa fa-fw fa-search-plus - Filtro avanzado (actualmente deshabilitado)

Colores y Badges

Por Estado:
  • Pendiente: Sin color especial o azul claro
  • Comenzado: Amarillo/naranja
  • Finalizado: Verde
  • Cancelado: Gris
Por Prioridad:
  • Baja: Sin énfasis
  • Normal: Color estándar
  • Alta: Naranja o resaltado
  • Muy Alta: Rojo
Por Usuario:
  • Cada usuario tiene color configurado (user_color)
  • Se usa como fondo o borde en visualización de tareas
  • Ayuda a identificar rápidamente quién tiene la tarea

Niveles de Acceso

PrivilegioPermiteCódigo Constante
Acceso al módulo TareasVer y gestionar tareas propias(Sin privilegio específico, acceso base)

Restricciones

Visibilidad de Tareas:
-- Usuario solo ve:
WHERE task_isprivate = 0  -- Tareas públicas
   OR task_user_id = [current_user_id]  -- O sus propias tareas privadas
Edición de Tareas:
  • Usuario puede editar:
    • Sus propias tareas (siempre)
    • Tareas de usuarios con agenda compartida con él
Eliminación de Tareas:
  • Eliminación lógica (soft delete)
  • Solo el usuario asignado o administradores
  • No se puede eliminar si está vinculada a cita (debe primero quitar relación)
Flujos de Trabajo:
  • Usuario puede avanzar estados del flujo
  • No puede cambiar el flujo asignado
  • Acciones automáticas del flujo se ejecutan con permisos del sistema
Búsqueda Multi-Usuario:
    // Deshabilita selección de múltiples usuarios
    disableMultiselect('#w-tasksearch-options-user');
}

Reportes y Exportaciones

Actualmente el módulo de Tareas no incluye reportes específicos de exportación a Excel o PDF. Sin embargo, la información de tareas puede: Visualizarse en:
  • Listado de tareas pendientes (vista en pantalla)
  • Resultados de búsqueda (vista en pantalla paginada)
  • Ficha de paciente (sección de tareas del paciente)
Datos accesibles para reportes personalizados:
  • Tareas por usuario y rango de fechas
  • Tareas por tipo y estado
  • Tareas por paciente
  • Historial de cambios de estado en flujos de trabajo
  • Tiempos de finalización (enddate - begindate)
Posibles reportes futuros:
  • Productividad por usuario (tareas completadas)
  • Tiempo promedio de finalización por tipo
  • Tareas pendientes por prioridad
  • Eficiencia en flujos de trabajo (tiempo por estado)

Tipos de Tarea (TaskTypes)

Ubicación: Administración → Tareas → Tipos de tarea Configuración:
  • Cada centro puede definir sus propios tipos de tarea
  • Ejemplos: “Llamada telefónica”, “Seguimiento paciente”, “Gestión administrativa”, “Revisión resultados”
  • Campos: nombre, descripción, color
  • Los tipos se muestran en combo al crear/editar tarea

Flujos de Trabajo (TaskFlows)

Ubicación: Administración → Tareas → Flujos de trabajo Configuración:
  • Crear flujo con nombre y descripción
  • Definir estados del flujo en orden secuencial
  • Asignar orden a cada estado (theorder)
  • Opcionalmente: configurar acciones automáticas por estado
    • Envío de emails
    • Creación de otras tareas
    • Actualización de datos
Acciones Automáticas (TaskFlowStatusActions):
  • Se ejecutan al alcanzar un estado específico
  • Configurables por administrador
  • Ejecutadas por sistema automáticamente
  • Útiles para automatizar workflows complejos

Sincronización con Google Calendar

Configuración por usuario:
  • Perfil de usuario → Configuración Google Calendar
  • Requiere OAuth con cuenta Google
  • Campo user_googlecalid: ID del calendario
  • Al guardar tarea: intenta sincronización automática
  • Si falla: muestra warning pero guarda tarea
Comportamiento:
  • Sincronización unidireccional: Nubidoc → Google
  • Campos sincronizados: nombre, fechas, notas
  • Actualización: si existe googleid, actualiza; si no, crea
  • No sincroniza cambios de Google → Nubidoc

Permisos Personalizables

Configuración: Administración → Usuarios → Editar usuario → Permisos Permisos relacionados con tareas:
  • Ver lista de pacientes (para vincular a tareas)
  • Ver agenda de otros (para ver tareas de otros)
  • Modificar eventos de otros (para editar tareas de otros)

Tutorial 1: Crear mi primera tarea de seguimiento

Objetivo: Crear una tarea para llamar a un paciente en una semana Tiempo estimado: 2 minutos Pasos:
  1. Acceder al módulo
    • En el menú lateral izquierdo, clic en “Tareas”
    • Seleccionar “Crear tarea”
  2. Completar campos obligatorios
    • Usuario: Dejar preseleccionado (tú mismo)
    • Tipo: Seleccionar “Llamada telefónica” (o tipo disponible)
    • Estado: Dejar en “Pendiente”
    • Prioridad: Seleccionar “Normal”
  3. Añadir información de la tarea
    • Tarea: Escribir “Llamar a paciente para confirmar cita”
    • Notas adicionales: “Confirmar asistencia a cita del próximo martes”
    • Carácter: Dejar en “Público”
  4. Establecer fecha
    • Fecha Inicio: Clic en calendario
    • Seleccionar fecha: dentro de 7 días
    • Hora: 10:00
    • Fecha finalización: Dejar vacío (opcional)
  5. Vincular paciente (opcional)
    • En campo “Paciente”, escribir nombre del paciente
    • O clic en lupa (🔍) para buscar
    • Seleccionar paciente de la lista
    • Número HC se autocompletará
  6. Guardar
    • Clic en botón verde “ACEPTAR”
    • Esperar mensaje: “Tarea creada correctamente”
  7. Verificar
    • La tarea aparecerá en “Tareas pendientes”
    • En la fecha indicada, recordar realizar la llamada
    • Tras llamar: abrir tarea y cambiar estado a “Finalizado”

Tutorial 2: Gestionar tareas con flujo de trabajo

Objetivo: Crear y seguir una tarea de autorización de seguro con flujo Tiempo estimado: 5 minutos Pasos:
  1. Preparación (Primera vez - Administrador)
    • Ir a Administración → Tareas → Flujos de trabajo
    • Crear flujo “Autorización Seguro”
    • Definir estados:
      1. “Solicitud enviada”
      2. “Documentación pendiente”
      3. “En revisión”
      4. “Aprobada” / “Rechazada”
    • Guardar flujo
  2. Crear tarea con flujo
    • Menú Tareas → Crear tarea
    • Usuario: Seleccionar responsable
    • Tipo: “Gestión administrativa”
    • Estado: “Pendiente”
    • Prioridad: “Alta”
    • Flujo de trabajo: Seleccionar “Autorización Seguro”
  3. Completar información
    • Tarea: “Autorización tratamiento Sr. García”
    • Notas: “Tratamiento: [descripción]. Aseguradora: [nombre]”
    • Paciente: Vincular paciente correspondiente
    • Fecha inicio: Hoy
  4. Guardar
    • Clic “ACEPTAR”
    • Sistema crea tarea en estado inicial: “Solicitud enviada”
    • Nota: Flujo queda bloqueado, no se puede cambiar
  5. Avanzar estado del flujo
    • Abrir tarea desde “Tareas pendientes”
    • Clic en “Detalles”
    • En diálogo de detalles: sección “Estado del flujo”
    • Seleccionar siguiente estado: “Documentación pendiente”
    • Confirmar cambio
  6. Continuar proceso
    • Cada vez que se complete una etapa:
      • Abrir detalles
      • Avanzar al siguiente estado
    • Sistema registra fecha de cada cambio
    • Historial completo visible en detalles
  7. Finalizar flujo
    • Al llegar a estado final (“Aprobada” o “Rechazada”)
    • Cambiar estado de la tarea a “Finalizado”
    • Guardar
    • Tarea desaparece de pendientes
  8. Consultar historial (opcional)
    • Usar “Buscar tareas”
    • Filtrar por paciente o fechas
    • Abrir tarea finalizada
    • Ver detalles: todos los estados con fechas

Tutorial 3: Búsqueda avanzada de tareas

Objetivo: Encontrar todas las tareas finalizadas de un profesional en el último mes Tiempo estimado: 3 minutos Pasos:
  1. Acceder a búsqueda
    • Menú Tareas → Buscar tareas
    • Se abre formulario de búsqueda con búsqueda del día ejecutada
  2. Limpiar filtros actuales
    • Clic en botón circular con goma (🧹)
    • Todos los campos se vacían
  3. Establecer rango de fechas
    • Inicio entre Fecha:
      • Clic en primer campo de fecha
      • Seleccionar: hace 1 mes desde hoy
      • Hora: 00:00
    • y fecha:
      • Clic en segundo campo
      • Seleccionar: hoy
      • Hora: 23:59
  4. Seleccionar profesional
    • Profesionales: Clic en combo
    • Seleccionar nombre del profesional
    • Puede seleccionar múltiples si deseas
  5. Filtrar por estado
    • Estados: Clic en combo
    • Seleccionar solo “Finalizado”
    • Deseleccionar “Pendiente” y “Comenzado” si están marcados
  6. Filtros opcionales adicionales
    • Categoría: Si quieres solo cierto tipo (ej. “Llamadas”)
    • Título: Si recuerdas parte del título
    • Notas: Si recuerdas alguna palabra de las notas
  7. Ejecutar búsqueda
    • Clic en botón azul “Buscar” (🔍)
    • Sistema ejecuta búsqueda
    • Resultados aparecen en grid debajo
  8. Analizar resultados
    • Revisar listado de tareas finalizadas
    • Columnas muestran: ID, Tipo, Usuario, Título, Notas, Fechas, Estado
    • Clic en cualquier fila para ver detalles completos
    • Si muchos resultados: usar paginación al pie
  9. Refinar búsqueda (si necesario)
    • Modificar criterios
    • Volver a hacer clic en “Buscar”
    • Resultados se actualizan
  10. Exportar o actuar (opciones)
    • Para exportar: actualmente no disponible directamente
    • Para actuar sobre tarea: clic en fila → editar o ver detalles

Tablero de Seguimiento de Cancelaciones

Cuando el modulo de seguimiento de cancelaciones esta activo, las citas canceladas con motivo pueden generar automaticamente una tarea de seguimiento en un tablero Kanban dedicado. Acceso: Menu Agenda > Cancelaciones Columnas predefinidas:
  • Sin revisar — Cancelacion recien creada, pendiente de revision
  • Pendiente de contactar — Revisada, hay que contactar al paciente
  • Contactado — Se ha contactado al paciente
  • Reprogramada — El paciente ha reprogramado su cita
  • No recuperada — El paciente no va a volver
Como funciona:
  1. Al cancelar una cita con motivo, aparece la opcion “Crear seguimiento cancelacion” (activada por defecto)
  2. Si se deja activada, se crea automaticamente una tarea en la columna “Sin revisar”
  3. La tarjeta muestra el nombre del paciente, el motivo de cancelacion y el comentario
  4. Se puede arrastrar entre columnas para cambiar el estado del seguimiento
  5. Cada tarjeta muestra el numero de comentarios/notas si los tiene
Activacion: El administrador debe activar la preferencia “Seguimiento de cancelaciones” (moduleactivecanceltracking) para el centro. El tablero se crea automaticamente la primera vez que se accede. Las columnas son personalizables desde Administracion > Datos Maestros > Tareas > Tableros Kanban.

Tablero CRM Comercial

Tablero Kanban para gestionar leads y oportunidades comerciales. Permite hacer seguimiento del ciclo de vida de un contacto comercial desde que llega hasta que contrata o se pierde. Acceso: Menu principal > CRM (requiere privilegio “Acceso CRM”) Columnas predefinidas:
  • Nuevo — Lead recien llegado
  • Contactado — Se ha hablado con el contacto
  • En seguimiento — Mostro interes, requiere follow-up
  • Citado — Tiene cita programada
  • Ganado — Contrato o se convirtio en paciente
  • Perdido — No convirtio
Campos adicionales en tareas CRM:
  • Origen — De donde viene el lead (web, telefono, recomendacion)
  • Servicio de interes — Que servicio le interesa
  • Proxima accion — Fecha para la siguiente accion de seguimiento
  • Ultimo contacto — Fecha del ultimo contacto realizado
  • Resultado — Resultado final del lead
  • Motivo de perdida — Razon por la que no convirtio
Activacion: El administrador debe activar el modulo CRM (moduleactivecrm) y el usuario debe tener el privilegio “Acceso CRM” (activado por defecto para todos los perfiles). Las columnas son personalizables desde Administracion > Datos Maestros > Tareas > Tableros Kanban.

Etiquetas de tareas

Las etiquetas permiten clasificar las tareas dentro de un tablero kanban con un nombre, color y opcionalmente un efecto visual de alerta (parpadeo). Crear etiquetas: Administracion > Datos Maestros > Tareas > Etiquetas de tareas. Cada etiqueta se asocia a un tablero kanban concreto. Campos de la etiqueta:
  • Nombre — Texto descriptivo (ej: “Urgente”, “Correo enviado”)
  • Color — Color de fondo de la etiqueta
  • Tablero Kanban — A que tablero pertenece
  • Alertable — Si se activa, la etiqueta parpadea para llamar la atencion
Asignar etiquetas a tareas: En el tablero kanban, cada tarjeta tiene un icono de etiquetas en la esquina inferior derecha (solo si existen etiquetas para ese tablero). Al hacer clic se abre un dialogo para añadir o quitar etiquetas. Filtrar por etiquetas: En la barra de filtros del kanban aparece un selector de etiquetas (solo cuando se selecciona un tablero). Se pueden seleccionar varias y solo se mostraran las tareas que tengan al menos una de las etiquetas seleccionadas.

Historial de estados en el tablero

Cada vez que una tarea se mueve de una columna a otra en el tablero kanban, el sistema registra automaticamente:
  • A que columna se movio
  • Cuando se hizo el cambio
  • Quien lo hizo
En la tarjeta kanban: Se muestra debajo del contenido la fecha del ultimo cambio de columna y cuanto tiempo lleva en ese estado (ej: “En seguimiento: 05/04 14:00 (2d)”). En la ficha de la tarea: Al abrir los detalles de una tarea (clic en la tarjeta), se muestra la seccion “Historial del tablero” con la linea temporal completa de transiciones, incluyendo duracion en cada estado y el usuario que realizo el cambio.

Crear tarea desde el tablero kanban

Debajo del tablero kanban hay un boton “Crear nueva tarea” que abre el formulario de creacion con el tablero kanban pre-seleccionado. La tarea creada aparecera en la primera columna del tablero.

Accion “Seguimiento CRM” desde el paciente

Cuando el modulo CRM esta activo, en las acciones del paciente aparece un boton destacado “Seguimiento CRM” que permite crear rapidamente una tarea de seguimiento en el tablero CRM. El boton solo aparece si:
  • El paciente no tiene citas futuras programadas
  • El paciente no tiene ya una tarea abierta en el CRM
Al pulsar el boton se crea la tarea automaticamente (sin abrir formulario) y se abre el panel CRM donde aparece la nueva tarea.

Alerta de cita en Seguimiento de Cancelaciones

En el tablero de Seguimiento de Cancelaciones, si un paciente tiene una cita programada (no cancelada) posterior a la fecha del ultimo movimiento de la tarjeta, se muestra un boton verde con la fecha de la cita. Al hacer clic se abren las acciones de esa cita.
Última actualización: 2026-04-05 Versión del módulo: 3.0 Autor: Documentación generada para asistencia por IA