Ir al contenido

Troubleshooting de usuario final

Esta página resuelve los problemas operativos más frecuentes. Si no encuentras tu caso, escribe a soporte@emahealth.io con un screenshot del error y la URL de tu pantalla.

  • Revisa que el correo esté escrito sin espacios.
  • Confirma con tu admin que tu usuario está activo.
  • Si olvidaste la contraseña, click en ¿Olvidaste tu contraseña? → recibirás un magic link por email.
  • Verifica que estés en la URL correcta de tu lab (ej: aurora.lab.emahealth.io, no lab.emahealth.io directamente).
  • Limpia el localStorage del navegador (DevTools → Application → Local Storage → Clear).
  • Pídele a tu admin que verifique tu fila en user_roles con product='lab'.
  • Normal después de ~1h de inactividad.
  • Solo vuelve a loguearte. Los drafts de resultado se preservan.

El check-in rechaza un tubo con “barcode no encontrado”

Sección titulada «El check-in rechaza un tubo con “barcode no encontrado”»

Causas:

  • Etiqueta dañada — barcode no escanea bien. Re-imprime etiqueta con Imprimir etiqueta desde la orden.
  • Orden de otro tenant — el barcode existe pero en otro lab. Verifica con recepción del lab origen.
  • Barcode generado fuera del sistema — solo aceptamos códigos generados por EMA Lab (Code 128B + Luhn).

Solución: si la etiqueta está dañada, escanear manualmente el código o ingresarlo a mano y re-imprimir.

Causas posibles:

  1. El test fue ruteado a otra sección — verificar routing_rules. Si la sección destino es errónea, admin puede corregir.
  2. Tu rol no tiene acceso a esa sección — verificar tech_section_auth (L028). Admin agrega tu fila.
  3. El test sigue en orden, no llegó muestraSpecimen.status debe ser received antes de aparecer en worklist.

”No autorizado para validar esta sección”

Sección titulada «”No autorizado para validar esta sección”»

Causa: tu tech_section_auth no tiene esa sección + level activo.

Solución:

  • Admin va a Settings → Users → <tu nombre> → Tab Secciones.
  • Marca el checkbox de la sección correspondiente.
  • Selecciona level: technical (puedes validar técnico) o clinical (puedes firmar clínico — director).
  • Click Guardar.
  • Refresh tu navegador.

El resultado no entra a Stage 2 EMI (queda en Stage 1)

Sección titulada «El resultado no entra a Stage 2 EMI (queda en Stage 1)»

Causas:

  • tech_section_auth no autorizó tu firma técnica → revisar arriba.
  • Resultado fuera de rangos físicos (ej: glicemia=10000) → sistema bloquea Stage 2 hasta que TM corrija o confirme.
  • EMI evaluator timeout → esperar 30s o re-trigger con POST /api/validation/stage2/:id/retry.

Causas:

  • Sin datos en el rango — el engine corre sobre el periodo seleccionado. Si no hay órdenes, sale vacío.
  • Filtros mal aplicados — verifica que el cliente / sección seleccionados sí tengan actividad.
  • R2 binding no configurado — error 501 visible. Avisar a admin.

Diagnóstico paso a paso:

  1. Verificar Docker corriendo: docker ps | grep emalab-hub.
  2. Ver logs: docker logs emalab-hub | tail -100.
  3. Probar internet desde container: docker exec emalab-hub ping -c 3 lab.emahealth.io.
  4. Verificar token activo: admin chequea hub_registry en DB.
  5. Renovar token si expiró: admin ejecuta POST /api/hub/renew-token y actualiza el .env del Docker.
  6. Cambiar CONNECTION_MODE si el firewall bloquea SSE: polling es el más conservador.
  7. Hacer pull de la última imagen: docker pull ghcr.io/emahealth/emalab-hub:0.2.0 y restart.

El cultivo está en stage incubation por días sin moverse

Sección titulada «El cultivo está en stage incubation por días sin moverse»

Causas:

  • TM olvidó marcar growth_detected — sistema no lee la placa por vos, hay que actualizar manual.
  • Cultivo realmente sin crecimiento — esperar timeout (48h o específico por tipo) y marcar negative (NO automático per ADR-021).

Causas posibles (ver FAQ técnica):

  1. critical_value_source no marcó la Observation como critical (L047). Verificar:
    SELECT * FROM emalab.critical_value_source
    WHERE observation_fhir_id = '<id>';
  2. Trigger del flag hemocultivo+ no se activó — re-trigger manual: POST /api/micro/cultures/:id/escalate-critical con razón.
  3. Notification settings del MD están off — admin verifica client_config.notification_channels.

Causas:

  • Verify code expirado (90 días default) → re-firmar DR.
  • DR fue amended → el QR del original se invalida. Usar el del DR actual.
  • Tenant slug incorrecto en URL → debe ser /portal/verify/:code?tenant={slug} exacto.
  • Rate limit (30/min público) → esperar 1 min.

Causas:

  • Parser no registrado — admin agrega parser nuevo a parser-registry.ts.
  • Header del archivo cambió (vendor actualizó formato) — admin ajusta match() del parser.
  • Archivo corrupto / no es CSV/JSON válido — verificar abrir en Excel o text editor.

El conector HL7v2 outbound rechaza con “ACK no AA”

Sección titulada «El conector HL7v2 outbound rechaza con “ACK no AA”»

Causas:

  • EHR cliente recibió pero rechazó (mensaje malformado, paciente no encontrado, etc.) — ver el ACK detail.
  • Sistema lo encola en retry queue (L048) — espera reintento automático cron */5min.
  • Si después de N retries sigue fallando → DLQ alert (Loops email) al admin.
  • En login, click ¿Olvidaste tu contraseña?.
  • Recibes magic link (válido 15 min).
  • Al ingresar, configuras nueva en Mi perfil.

Cualquier rol puede ver el audit de su propia actividad en Mi perfil → Mi actividad. El admin puede ver el de todo el lab en Config → Audit logs.

Si nada de lo anterior aplica:

  1. Reproducir el bug.
  2. Tomar screenshot.
  3. Abrir DevTools (F12) → tab Console → screenshot también.
  4. Enviar a soporte@emahealth.io con:
    • Pasos para reproducir.
    • Screenshots.
    • Hora aprox del bug.
    • Tu rol y la URL de tu lab.