{
  "modulo": "programar-citas",
  "nombre": "Programar citas",
  "objetivo": "Programar servicios para un paciente con afiliación/convenio vigente, usando agenda o asignación directa auditada y entregando contexto administrativo suficiente al Ingreso clínico.",
  "ruta": "modulos/administrativa/citas/index.php",
  "estado_conocimiento": "implementado_con_brechas_no_bloqueantes",
  "version": "0.35.1-staging",
  "revisado_en": "2026-08-19",
  "procedimiento_correcto": [
    "Seleccionar paciente y validar afiliación principal y convenio vigente.",
    "Seleccionar sede y clase de cita/procedimiento.",
    "Resolver especialidad y seleccionar un profesional activo y compatible.",
    "Reservar agenda real o utilizar asignación directa con justificación cuando la configuración lo permita.",
    "Definir tipo de atención, modalidad, entorno y vía de cita.",
    "Seleccionar consultorio cuando el servicio presencial tenga consultorios configurados para la sede y especialidad; Homecare no usa consultorio físico.",
    "Gestionar autorización cuando aplique; una autorización en trámite se representa con c_autorizacion_servicio y no como una omisión ficticia.",
    "Confirmar la programación; el backend revalida paciente, profesional, especialidad, consultorio cuando aplique, agenda, cupo y cruces.",
    "La cita puede originar un Ingreso clínico persistente, pero Cita e Ingreso son entidades distintas.",
    "En Homecare, nuevas visitas/sesiones deben vincularse al mismo episodio longitudinal mientras no exista egreso."
  ],
  "reglas": [
    "La cita no equivale al episodio clínico.",
    "a_tipo_atencion define el escenario asistencial; p_tipo_atencion clasifica la naturaleza del acto/procedimiento.",
    "La agenda y los IDs se resuelven contra BD; la IA o la voz no inventan entidades ni cupos.",
    "La reprogramación con agenda conserva o transfiere la reserva de cupo y no convierte silenciosamente la cita en asignación directa.",
    "Una autorización EPS con concepto/valor informado es la fuente principal del recaudo cuando aplique.",
    "Homecare utiliza un episodio longitudinal; Consulta Externa puede generar múltiples ingresos independientes para distintas consultas/especialidades.",
    "El consultorio se resuelve por IPS, sede y especialidad cuando existe parametrización compatible; Homecare no requiere consultorio físico."
  ],
  "estado_actual_verificado": [
    "La programación manual y asistida por voz utiliza validaciones backend de paciente, convenio, clase, profesional, agenda y concurrencia.",
    "La voz resuelve paciente/documento, profesional, clase/procedimiento, fecha/hora y tipo de atención contra datos reales y nunca guarda automáticamente.",
    "La reprogramación de agenda usa un gestor común de cupos y evita conversiones silenciosas a asignación directa.",
    "c_autorizacion_servicio separa autorización EPS del estado de la cita y permite autorización pendiente.",
    "i_ingreso_clinico, i_ingreso_servicio e i_ingreso_historial ya existen como base persistente del episodio y su trazabilidad.",
    "La bandeja de Ingresos distingue Por ingresar, Ingresado, En atención y Cerrado.",
    "c_cita_programada.id_consultorio se valida por IPS, sede, especialidad y estado activo cuando existe parametrización compatible; Homecare lo mantiene vacío.",
    "Las anclas de ayuda de paciente, agenda, tipo de atención, autorización, voz y consultorio están conectadas en la vista de Citas.",
    "La selección automática de una agenda futura no ha podido probarse con cupos reales porque staging no tiene disponibilidad futura configurada."
  ],
  "brechas": [
    "Probar selección automática de agenda con una disponibilidad futura real.",
    "Implementar lista de oportunidad/cupo liberado con confirmación y reserva temporal.",
    "Completar el rediseño profesional del calendario operativo conectado a Coordinación/Jefatura.",
    "Separar definitivamente Citas de la creación automática temporal de h_atencion_medicas cuando el nuevo flujo clínico esté probado de punta a punta."
  ],
  "errores_frecuentes": [
    "Paciente sin convenio vigente.",
    "Profesional sin especialidad compatible.",
    "Cruce de horario del profesional.",
    "Agenda sin cupo o fuera de ventana.",
    "Asignación directa sin motivo.",
    "Confundir autorización pendiente con omisión administrativa.",
    "Confundir Cita con Ingreso o con Atención clínica.",
    "Usar consultorio no perteneciente a la IPS/sede/especialidad."
  ],
  "entidades": [
    "c_cita_programada",
    "c_cita_servicio",
    "c_cita_historial",
    "c_agenda_profesional_fecha",
    "c_configuracion_cita",
    "c_consultorio",
    "c_autorizacion_servicio",
    "i_ingreso_clinico",
    "i_ingreso_servicio"
  ],
  "integraciones": [
    "Pacientes",
    "Convenios",
    "Agenda de profesionales",
    "Consultorios",
    "Autorizaciones EPS",
    "Ingresos clínicos",
    "Servicios del episodio",
    "Coordinación/Jefatura futura",
    "Ayuda contextual de la IA"
  ],
  "limites": [
    "No afirmar que Urgencias u Hospitalización están operativos mientras sus flujos especializados sigan pendientes.",
    "No permitir que voz/IA reserve o guarde sin validación backend y confirmación humana.",
    "Los anclajes data-ayuda permiten ubicar elementos; no equivalen por sí solos a un recorrido multimodal completo."
  ],
  "resultado_esperado": "Cita programada con contexto suficiente para crear o continuar el episodio clínico correspondiente, conservando agenda, consultorio cuando aplique, autorización y trazabilidad sin mezclar programación con atención.",
  "ayuda_visual": [
    "[data-ayuda='paciente-cita']",
    "[data-ayuda='agenda-cita']",
    "[data-ayuda='tipo-atencion-cita']",
    "[data-ayuda='autorizacion-cita']",
    "[data-ayuda='voz-cita']",
    "[data-ayuda='consultorio-cita']"
  ]
}
