Commit Graph
42 Commits
Author SHA1 Message Date
Lizandro GuarnizoandClaude Sonnet 4.6 17a9f05005 fix(portal): agregar 'del Laboratorio Ximena Caicedo' en mensaje WhatsApp del enfermero
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-30 21:00:49 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 79a5438531 feat(domicilios): enfermero puede editar domicilios asignados desde el portal
- save_domicilio.php: permite editar si el enfermero está asignado (no solo si lo creó)
- enfermero_portal.php: botón Editar en domcard, método abrirEditar() pre-carga el modal existente

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-30 20:44:38 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 1efdc7bbad fix(portal): permitir superadmin ver portal enfermero y simular agenda
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-30 20:34:27 -05:00
Lizandro Guarnizo b317639258 up 2026-05-27 21:39:53 -05:00
Lizandro Guarnizo 2f72d87c3b cambios 2026-05-27 20:40:17 -05:00
Lizandro Guarnizo f197118acb cambios importates 2026-05-11 12:21:56 -05:00
Lizandro Guarnizo 56fd2d9174 indicativo 2026-04-18 13:19:36 -05:00
Lizandro Guarnizo 8f0b28fc7c 8 2026-04-18 13:13:34 -05:00
Lizandro Guarnizo 1b441461ad up 2026-04-18 13:10:47 -05:00
Lizandro Guarnizo c8bef9d9c4 up 2026-04-10 23:04:28 -05:00
Lizandro Guarnizo 6a8b82b8a2 Update enfermero_portal.php 2026-04-09 10:32:10 -05:00
Lizandro Guarnizo f700442bd8 Update enfermero_portal.php 2026-04-09 10:09:50 -05:00
Lizandro Guarnizo c68a79a3a7 subir mas de un archivo, reprogramados 2026-04-08 10:31:12 -05:00
Lizandro Guarnizo 882ce56e96 multiples documentos 2026-04-08 09:58:08 -05:00
Lizandro Guarnizo db254ca02f direccion 2026-04-08 09:47:47 -05:00
Lizandro Guarnizo 4a11171690 Update enfermero_portal.php 2026-04-08 09:43:26 -05:00
Lizandro Guarnizo 26d16b5d82 Update enfermero_portal.php 2026-04-08 08:21:47 -05:00
Lizandro Guarnizo 4f1b2e146c up 2026-04-07 15:57:53 -05:00
Lizandro Guarnizo f325eb5d9b fix: nota obligatoria para completar domicilio es la ficha clínica
- Cambia condición: solo exige cache.clinica !== null (no notas libres)
- Abre directamente el formulario de ficha clínica al bloquear
- Actualiza mensaje del banner a 'Ficha clínica obligatoria'
2026-04-02 11:34:03 -05:00
Lizandro Guarnizo d8ceb3f822 feat: 6 nuevas funcionalidades - notas obligatorias turno, reporte enfermero, plantilla WhatsApp, adjuntar orden modal, roles solo lectura, fix valores copago 2026-04-02 09:41:49 -05:00
Lizandro Guarnizo 7917f4852e fix: parsear d.data[] de la API de notas (no d.clinica/d.libres inexistentes) 2026-03-25 14:21:17 -05:00
Lizandro Guarnizo 921c6abd8c fix: eliminar bloque huérfano de métodos de notasManager (SyntaxError toggle) 2026-03-25 14:18:33 -05:00
Lizandro Guarnizo c1027fe671 fix: eliminar declaración duplicada de notasManager (SyntaxError) 2026-03-25 14:12:04 -05:00
Lizandro Guarnizo 429439d6af fix: toggleFinalizados usa display:block en lugar de cadena vacía 2026-03-25 14:09:00 -05:00
Lizandro Guarnizo da640680d3 feat: accordion por hora, activo/finalizado, notas en detalle e informe domicilio
- enfermero_portal: cards colapsables con toggle en cabecera, ordenadas por hora_programada
- enfermero_portal: sección 'Finalizados' colapsada abajo para completado/cancelado
- enfermero_portal: acudiente en ficha clínica solo si fecha nacimiento confirma menor de edad
- lab_domicilios: notas del enfermero read-only en panel de detalle (cargarNotasDetalle)
- lab_domicilios: botón 'Informe' abre modal con datos del paciente + ficha clínica + notas libres
2026-03-25 14:06:42 -05:00
Lizandro Guarnizo 5f695b5604 feat: sistema de notas clínicas para enfermero (ficha + notas libres) y fix lab_reportes métricas 2026-03-25 13:14:25 -05:00
Lizandro Guarnizo 4ba890a0d5 feat: métricas completas, export Excel domicilios con filtros, hora llegada/salida visible 2026-03-25 11:48:24 -05:00
Lizandro Guarnizo 2abce6d4c2 feat: multi-archivo órdenes visible en enfermero, domicilios y órdenes médicas
- OrdenMedica::filtrarCampos(): agrega domicilio_id al whitelist
- Domicilio::obtener(): consulta secundaria archivos_ordenes[] con fallback
- Enfermera::agenda(): bulk-query archivos_ordenes[] por domicilio_id
- api/lab/link_ordenes_domicilio.php: API POST vincula orden_ids a domicilio_id
- conversations.php guardar(): trackea allOrdenIds[], llama link API post-save
- lab_domicilios.php: renderOrdenesDetail() multi-archivo en detalle
- enfermero_portal.php: renderOrdenesEnfermero() multi-archivo en cards
- lab_ordenes.php: botón 'Ver domicilio' cuando domicilio_id está vinculado
- migrations/: ALTER TABLE lab_ordenes_medicas ADD domicilio_id + índice
2026-03-24 21:51:29 -05:00
Lizandro Guarnizo c781863cd4 portal: orden médica siempre muestra botón descarga (fix PDF/bin) 2026-03-17 15:18:54 -05:00
Lizandro Guarnizo 9e5a7017e1 portal enfermero: ver formularios paciente + fix orden médica .bin via descargar_orden.php 2026-03-17 15:04:35 -05:00
Lizandro Guarnizo 027c8a6f26 fix: tipo_servicio hardcodeado como 'domicilio' en portal enfermero 2026-03-13 13:15:03 -05:00
Lizandro Guarnizo 7cc29fac1e fix: quitar campo Tipo de servicio del portal enfermero 2026-03-13 13:12:00 -05:00
Lizandro Guarnizo 4bcfd585cd fix: enf-nombre muestra nombre real desde sesión PHP (no queda en Cargando…) 2026-03-13 09:03:31 -05:00
Lizandro Guarnizo e9c8cf7d9b feat: crear nuevo paciente desde modal de agendamiento (enfermero portal) 2026-03-12 23:18:31 -05:00
Lizandro Guarnizo 5c4ddd1cd8 fix: portal enfermero — agendamiento siempre particular, sin campo seguro 2026-03-12 23:04:34 -05:00
Lizandro Guarnizo 702323f852 fix: corrección portal enfermero — pagos y agendamiento
- fix: portal.renderAgenda → portal._renderLista() (error JS al registrar pago)
- feat: modal nueva agenda añade tipo_cliente (particular/seguro), seguro_nombre, autorizacion, valor_domicilio, valor_copago
- feat: toggleSeguro() muestra/oculta campo EPS según tipo seleccionado
- fix: abrir() resetea todos los campos nuevos en cada apertura del modal
- datos de cobro se envían al guardar y se auto-asigna la enfermera creadora
2026-03-12 23:02:48 -05:00
Lizandro Guarnizo beb1bbe1d4 feat: sistema de pagos domicilios — cobro enfermero y estado pago admin
- database/07_add_pago_domicilio.sql: 6 columnas nuevas en lab_domicilios
  (pago_estado ENUM, pago_modo, pago_monto, pago_fecha, pago_notas, pago_registrado_por)
- Domicilio::filtrarCampos(): permite guardar campos de pago vía actualizar()
- Enfermera::agenda(): incluye valor_domicilio, valor_copago, pago_estado, pago_modo, pago_monto, pago_notas
- api/lab/registrar_pago.php: endpoint POST para registrar/actualizar pago del domicilio
- enfermero_portal.php: bloque cobro en card, modal registrar pago (efectivo/transferencia/exento), objeto pagoModal JS
- lab_domicilios.php: badge pago //🔵 en fila tabla, sección pago detallada en panel lateral
2026-03-12 22:53:24 -05:00
Lizandro Guarnizo c42e0976d7 fix: enfermero_portal - mostrar imagen de la orden aunque no esté vinculada al domicilio
Si lab_domicilios.orden_id es NULL (domicilio creado antes del fix
o desde otro flujo), usa subquery para encontrar la orden más reciente
del mismo paciente que tenga local_file.

Así el enfermero siempre ve la imagen de la orden del paciente
independientemente de cómo se agendó el domicilio.
2026-03-12 22:38:48 -05:00
Lizandro Guarnizo 8956de8eaa fix: ruta doble en local_file al mostrar imagen de orden médica
La BD guarda local_file con 'uploads/media/...' incluido.
El código le añadía otro 'uploads/media/' dando ruta doble.

- lab_ordenes.php: helper _resolveImg() detecta si el path
  ya empieza con 'uploads/' y no añade el prefijo de nuevo
- enfermero_portal.php: nueva función resImg() con misma lógica,
  usada en _cardHTML() al renderizar la imagen de la orden
2026-03-12 22:23:15 -05:00
Lizandro Guarnizo d362598a70 feat: relacionar imagen de WhatsApp con orden médica al agendar domicilio
Al abrir el modal desde una imagen en el chat:
- guardar() crea primero la OrdenMedica via crear_desde_whatsapp.php
  y pasa el orden_id resultante a save_domicilio.php
- Enfermera::agenda() hace LEFT JOIN a lab_ordenes_medicas para traer
  local_file de la orden asociada (as orden_local_file)
- enfermero_portal._cardHTML() muestra la imagen de la orden médica
  con link para ampliar
2026-03-12 22:14:04 -05:00
Lizandro Guarnizo 12e7b411d7 feat: enfermero_portal - mostrar todos los datos del paciente en tarjeta de domicilio
La tarjeta ahora muestra: documento, fecha de nacimiento, EPS,
teléfono (clickeable), correo (clickeable), exámenes solicitados
y tipo de cliente (particular/seguro con nombre del seguro).

Cambios:
- Enfermera::agenda() amplía SELECT con email, fecha_nacimiento,
  numero_documento, tipo_documento, eps, examenes_solicitados,
  tipo_cliente, seguro_nombre, ciudad, indicaciones_dir, notas_admin
- my_agenda.php simplificado: ya no re-consulta lab_domicilios por
  los campos que ahora vienen directo en la query
- enfermero_portal.php _cardHTML() muestra todos los campos nuevos
2026-03-12 22:05:47 -05:00
Lizandro Guarnizo db469b2134 up 2026-03-10 18:42:51 -05:00