feat: Implementar flujo de rechazo de muestras #58

Closed
opened 2025-07-16 04:18:50 +00:00 by luis_portillo · 2 comments

Descripción

Implementar la funcionalidad para rechazar muestras por diversos motivos (insuficiente, hemolizada, coagulada, etc.) y gestionar el flujo asociado.

Objetivos

  • Agregar estado 'rechazada' al ciclo de vida de la muestra
  • Permitir registrar el motivo del rechazo
  • Notificar al paciente/médico sobre el rechazo
  • Permitir solicitar nueva muestra
  • Mantener trazabilidad del rechazo

Tareas

  1. Agregar estado 'rejected' a stock.lot (muestra)
  2. Crear modelo para motivos de rechazo (lims.rejection.reason)
  3. Agregar campos de rechazo en stock.lot:
    • rejection_reason_id (Many2one)
    • rejection_notes (Text)
    • rejected_by (Many2one a res.users)
    • rejection_date (Datetime)
  4. Crear wizard para rechazar muestra con motivo
  5. Implementar acción de rechazo con validaciones
  6. Crear vista para muestras rechazadas
  7. Implementar notificación de rechazo
  8. Permitir solicitar nueva muestra desde el rechazo

Criterios de aceptación

  • Se puede rechazar una muestra en cualquier estado previo a 'completado'
  • Es obligatorio indicar un motivo de rechazo
  • Se mantiene historial de rechazos
  • Se notifica automáticamente al solicitante
  • Se puede solicitar nueva muestra desde el registro de rechazo

Motivos de rechazo comunes

  • Muestra insuficiente
  • Muestra hemolizada
  • Muestra coagulada
  • Muestra lipémica
  • Recipiente inadecuado
  • Identificación incorrecta
  • Muestra sin rotular
  • Condiciones de transporte inadecuadas
  • Muestra contaminada
  • Tiempo de entrega excedido
## Descripción Implementar la funcionalidad para rechazar muestras por diversos motivos (insuficiente, hemolizada, coagulada, etc.) y gestionar el flujo asociado. ## Objetivos - Agregar estado 'rechazada' al ciclo de vida de la muestra - Permitir registrar el motivo del rechazo - Notificar al paciente/médico sobre el rechazo - Permitir solicitar nueva muestra - Mantener trazabilidad del rechazo ## Tareas 1. Agregar estado 'rejected' a stock.lot (muestra) 2. Crear modelo para motivos de rechazo (lims.rejection.reason) 3. Agregar campos de rechazo en stock.lot: - rejection_reason_id (Many2one) - rejection_notes (Text) - rejected_by (Many2one a res.users) - rejection_date (Datetime) 4. Crear wizard para rechazar muestra con motivo 5. Implementar acción de rechazo con validaciones 6. Crear vista para muestras rechazadas 7. Implementar notificación de rechazo 8. Permitir solicitar nueva muestra desde el rechazo ## Criterios de aceptación - [ ] Se puede rechazar una muestra en cualquier estado previo a 'completado' - [ ] Es obligatorio indicar un motivo de rechazo - [ ] Se mantiene historial de rechazos - [ ] Se notifica automáticamente al solicitante - [ ] Se puede solicitar nueva muestra desde el registro de rechazo ## Motivos de rechazo comunes - Muestra insuficiente - Muestra hemolizada - Muestra coagulada - Muestra lipémica - Recipiente inadecuado - Identificación incorrecta - Muestra sin rotular - Condiciones de transporte inadecuadas - Muestra contaminada - Tiempo de entrega excedido
Author
Owner

Implementación completada del flujo de rechazo de muestras.

Cambios realizados:

  • Estado 'rejected' agregado al ciclo de vida de la muestra
  • Modelo lims.rejection.reason creado con campos de severidad y configuración
  • Campos de rechazo agregados en stock.lot
  • Wizard para proceso de rechazo con validaciones
  • Vista de muestras rechazadas con filtros y agrupaciones
  • 10 motivos de rechazo predefinidos
  • Menús agregados en Configuración y vista principal

Funcionalidades implementadas:

  • Botón 'Rechazar Muestra' en el formulario de muestra (visible solo en estados válidos)
  • Wizard que obliga a seleccionar motivo y permite agregar notas
  • Registro automático de usuario y fecha de rechazo
  • Notificación en la muestra y en la orden de laboratorio asociada
  • Vista dedicada para muestras rechazadas con filtros por severidad
  • Configuración de motivos de rechazo con estadísticas de uso

La instancia se levantó correctamente y está lista para pruebas.

Branch: feature/58-sample-rejection-flow
Commit: 87640b4

Implementación completada del flujo de rechazo de muestras. ## Cambios realizados: - ✅ Estado 'rejected' agregado al ciclo de vida de la muestra - ✅ Modelo lims.rejection.reason creado con campos de severidad y configuración - ✅ Campos de rechazo agregados en stock.lot - ✅ Wizard para proceso de rechazo con validaciones - ✅ Vista de muestras rechazadas con filtros y agrupaciones - ✅ 10 motivos de rechazo predefinidos - ✅ Menús agregados en Configuración y vista principal ## Funcionalidades implementadas: - Botón 'Rechazar Muestra' en el formulario de muestra (visible solo en estados válidos) - Wizard que obliga a seleccionar motivo y permite agregar notas - Registro automático de usuario y fecha de rechazo - Notificación en la muestra y en la orden de laboratorio asociada - Vista dedicada para muestras rechazadas con filtros por severidad - Configuración de motivos de rechazo con estadísticas de uso La instancia se levantó correctamente y está lista para pruebas. Branch: feature/58-sample-rejection-flow Commit: 87640b4
Author
Owner

Implementación completada y mergeada a dev.

Resumen de cambios:

  • Estado 'rejected' agregado con campos de trazabilidad
  • Modelo lims.rejection.reason con 10 motivos predefinidos
  • Wizard de rechazo con validaciones
  • Vista de muestras rechazadas
  • Permisos corregidos para todos los grupos
  • PR #61 mergeado exitosamente

Issues relacionados creados:

  • #59: bug: Validar y corregir permisos de acceso (documentación completa de permisos)
  • #60: feat: Automatización configurable de re-muestreo (mejora futura)

La funcionalidad base está completa. El re-muestreo actualmente notifica la necesidad pero no genera automáticamente nueva muestra (se abordará en #60).

Cerrando issue.

✅ Implementación completada y mergeada a dev. ## Resumen de cambios: - Estado 'rejected' agregado con campos de trazabilidad - Modelo lims.rejection.reason con 10 motivos predefinidos - Wizard de rechazo con validaciones - Vista de muestras rechazadas - Permisos corregidos para todos los grupos - PR #61 mergeado exitosamente ## Issues relacionados creados: - #59: bug: Validar y corregir permisos de acceso (documentación completa de permisos) - #60: feat: Automatización configurable de re-muestreo (mejora futura) La funcionalidad base está completa. El re-muestreo actualmente notifica la necesidad pero no genera automáticamente nueva muestra (se abordará en #60). Cerrando issue.
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Grupo-Consiti/clinical_laboratory#58
No description provided.