[Core] Gestión de Pruebas y Resultados #8

Closed
opened 2025-07-12 22:06:48 +00:00 by luis_portillo · 10 comments
  • Crear el modelo lims.test para representar la ejecución de un análisis:
    • sale_order_line_id (Many2one a sale.order.line).
    • patient_id y product_id (relacionados desde la línea de pedido).
    • sample_id (Many2one a stock.lot).
    • state (Selección: draft, in_process, result_entered, validated, cancelled).
    • validator_id (Many2one a res.users), validation_date (Datetime).
  • Crear el modelo lims.result para almacenar cada valor de resultado:
    • test_id (Many2one a lims.test).
    • parameter_id (Many2one a lims.test.parameter).
    • value_numeric (Float), value_text (Char), value_selection (Selección).
    • is_out_of_range (Booleano, calculado).
    • notes (Texto para comentarios del técnico).
  • Desarrollar la interfaz de ingreso de resultados: una vista de formulario para lims.test con una lista editable (One2many) de sus lims.result, donde los campos de parámetro se cargan dinámicamente.
  • Implementar la lógica visual para resaltar en rojo los resultados (lims.result) que estén fuera de su rango de referencia.
- Crear el modelo `lims.test` para representar la ejecución de un análisis: - `sale_order_line_id` (Many2one a `sale.order.line`). - `patient_id` y `product_id` (relacionados desde la línea de pedido). - `sample_id` (Many2one a `stock.lot`). - `state` (Selección: `draft`, `in_process`, `result_entered`, `validated`, `cancelled`). - `validator_id` (Many2one a `res.users`), `validation_date` (Datetime). - Crear el modelo `lims.result` para almacenar cada valor de resultado: - `test_id` (Many2one a `lims.test`). - `parameter_id` (Many2one a `lims.test.parameter`). - `value_numeric` (Float), `value_text` (Char), `value_selection` (Selección). - `is_out_of_range` (Booleano, calculado). - `notes` (Texto para comentarios del técnico). - Desarrollar la interfaz de ingreso de resultados: una vista de formulario para `lims.test` con una lista editable (`One2many`) de sus `lims.result`, donde los campos de parámetro se cargan dinámicamente. - Implementar la lógica visual para resaltar en rojo los resultados (`lims.result`) que estén fuera de su rango de referencia.
Author
Owner

"### Estimaci�n de Tiempo de Desarrollo\n\nAn�lisis:\nEste es un issue central que implica la creaci�n de los modelos para gestionar las pruebas y sus resultados. Es la base para la emisi�n de informes.\n\nDesglose de Tareas Estimadas:\n- Creaci�n del modelo lims.test para las pruebas: 2 - 3 horas\n- Creaci�n del modelo lims.result para los resultados: 2 - 3 horas\n- Creaci�n de vistas de formulario y lista para pruebas y resultados: 3 - 4 horas\n- L�gica para la creaci�n autom�tica de pruebas desde la orden de laboratorio: 2 - 3 horas\n\nTiempo Total Estimado: 9 - 13 horas\n\nNota: Esta es una estimaci�n y puede variar seg�n la complejidad que surja durante el desarrollo."
- \"### Estimaci�n de Tiempo de Desarrollo\n\n**An�lisis:**\nEste es un issue central que implica la creaci�n de los modelos para gestionar las pruebas y sus resultados. Es la base para la emisi�n de informes.\n\n**Desglose de Tareas Estimadas:**\n- Creaci�n del modelo `lims.test` para las pruebas: 2 - 3 horas\n- Creaci�n del modelo `lims.result` para los resultados: 2 - 3 horas\n- Creaci�n de vistas de formulario y lista para pruebas y resultados: 3 - 4 horas\n- L�gica para la creaci�n autom�tica de pruebas desde la orden de laboratorio: 2 - 3 horas\n\n**Tiempo Total Estimado:** 9 - 13 horas\n\n*Nota: Esta es una estimaci�n y puede variar seg�n la complejidad que surja durante el desarrollo.*\"
Author
Owner

Plan actualizado según los requisitos específicos del issue:

  • Enfocado únicamente en los modelos lims.test y lims.result
  • Interfaz dinámica de entrada de resultados
  • Resaltado visual de valores fuera de rango
  • Validación por administrador ahora es opcional/configurable
  • Eliminadas funcionalidades de otros issues (PDF, seguridad avanzada)

7 tareas principales, estimación: 9 horas

Plan actualizado según los requisitos específicos del issue: - Enfocado únicamente en los modelos lims.test y lims.result - Interfaz dinámica de entrada de resultados - Resaltado visual de valores fuera de rango - Validación por administrador ahora es opcional/configurable - Eliminadas funcionalidades de otros issues (PDF, seguridad avanzada) 7 tareas principales, estimación: 9 horas
Author
Owner

Plan de trabajo detallado disponible en: documents/plans/ISSUE8_PLAN.md

Iniciando implementación de las 7 tareas definidas.

Plan de trabajo detallado disponible en: [documents/plans/ISSUE8_PLAN.md](https://gitea.grupoconsiti.com/luis_portillo/clinical_laboratory/src/branch/feature/8-test-results-management/documents/plans/ISSUE8_PLAN.md) Iniciando implementación de las 7 tareas definidas.
Author
Owner

Task 1 y 2 completadas:

  • Modelo lims.test creado con campos especificados
  • Modelo lims.result creado con múltiples tipos de valor
  • Flujo de estados implementado
  • Validación de un solo tipo de valor por resultado
  • Instancia validada sin errores

Continuando con Task 3: Interfaz de entrada de resultados

✅ Task 1 y 2 completadas: - Modelo lims.test creado con campos especificados - Modelo lims.result creado con múltiples tipos de valor - Flujo de estados implementado - Validación de un solo tipo de valor por resultado - Instancia validada sin errores Continuando con Task 3: Interfaz de entrada de resultados
Author
Owner

Task 3 completada:

  • Interfaz de entrada de resultados con lista editable
  • Campos dinámicos según tipo de valor
  • Vista formulario, lista y kanban implementadas
  • Preparado para resaltado de valores fuera de rango
  • Instancia validada sin errores

Continuando con Task 4: Resaltado visual para valores fuera de rango

✅ Task 3 completada: - Interfaz de entrada de resultados con lista editable - Campos dinámicos según tipo de valor - Vista formulario, lista y kanban implementadas - Preparado para resaltado de valores fuera de rango - Instancia validada sin errores Continuando con Task 4: Resaltado visual para valores fuera de rango
Author
Owner

Task 4 completada:

  • CSS personalizado para valores fuera de rango
  • Integración con decoration-danger
  • Estilos en rojo para valores anormales
  • Instancia validada sin errores

Continuando con Task 5: Configuración de validación opcional

✅ Task 4 completada: - CSS personalizado para valores fuera de rango - Integración con decoration-danger - Estilos en rojo para valores anormales - Instancia validada sin errores Continuando con Task 5: Configuración de validación opcional
Author
Owner

Task 5 completada:

  • Configuración de validación opcional implementada
  • Auto-validación cuando no se requiere validación manual
  • Vista de configuración accesible desde menú
  • Instancia validada sin errores

Continuando con Task 6: Vistas básicas

✅ Task 5 completada: - Configuración de validación opcional implementada - Auto-validación cuando no se requiere validación manual - Vista de configuración accesible desde menú - Instancia validada sin errores Continuando con Task 6: Vistas básicas
Author
Owner

Task 7 completada:

  • Script Python para datos de demostración
  • Pruebas con diferentes estados creadas
  • Resultados con valores dentro y fuera de rango
  • Instancia validada sin errores

Todas las tareas del Issue #8 completadas exitosamente

Resumen de lo implementado:

  • Modelos lims.test y lims.result
  • Interfaz dinámica de entrada de resultados
  • Resaltado visual en rojo para valores fuera de rango
  • Validación opcional configurable
  • Datos de demostración

Listo para crear PR y merge a dev.

✅ Task 7 completada: - Script Python para datos de demostración - Pruebas con diferentes estados creadas - Resultados con valores dentro y fuera de rango - Instancia validada sin errores ✅ **Todas las tareas del Issue #8 completadas exitosamente** Resumen de lo implementado: - Modelos lims.test y lims.result - Interfaz dinámica de entrada de resultados - Resaltado visual en rojo para valores fuera de rango - Validación opcional configurable - Datos de demostración Listo para crear PR y merge a dev.
Author
Owner

Fixed: Implementación de generación automática de pruebas y mejora en selección de muestras

Problema resuelto: Las órdenes de laboratorio aprobadas ahora generan pruebas automáticamente y las muestras están disponibles para selección.

Cambios implementados:

  1. Agregado método _generate_lab_tests() que se ejecuta al confirmar órdenes
  2. Las pruebas se crean automáticamente con la muestra correcta asignada
  3. Mejorado el dominio de selección de muestras para filtrar por:
    • Paciente correcto
    • Estado apropiado (collected o in_analysis)
    • Tipo de muestra requerido por el análisis
  4. Agregado método _onchange_sale_order_line() que actualiza dinámicamente las opciones de muestra

Flujo mejorado:

  1. Al confirmar una orden de laboratorio → Se generan muestras Y pruebas automáticamente
  2. Al crear una prueba manual → Solo se muestran las muestras del paciente en estado válido
  3. Si solo hay una muestra válida → Se selecciona automáticamente

Commit: 820c05f

Fixed: Implementación de generación automática de pruebas y mejora en selección de muestras ✅ **Problema resuelto**: Las órdenes de laboratorio aprobadas ahora generan pruebas automáticamente y las muestras están disponibles para selección. **Cambios implementados**: 1. ✅ Agregado método _generate_lab_tests() que se ejecuta al confirmar órdenes 2. ✅ Las pruebas se crean automáticamente con la muestra correcta asignada 3. ✅ Mejorado el dominio de selección de muestras para filtrar por: - Paciente correcto - Estado apropiado (collected o in_analysis) - Tipo de muestra requerido por el análisis 4. ✅ Agregado método _onchange_sale_order_line() que actualiza dinámicamente las opciones de muestra **Flujo mejorado**: 1. Al confirmar una orden de laboratorio → Se generan muestras Y pruebas automáticamente 2. Al crear una prueba manual → Solo se muestran las muestras del paciente en estado válido 3. Si solo hay una muestra válida → Se selecciona automáticamente Commit: 820c05f
Author
Owner

Issue completado

La implementación de la gestión de pruebas y resultados ha sido completada exitosamente.

Pull Request

  • PR #52: feat(#8): Implementar gestión de pruebas y resultados de laboratorio
  • Branch: feature/8-test-results-management → dev

Funcionalidades implementadas

  • Modelos lims.test y lims.result con flujo completo
  • Generación automática de pruebas al confirmar órdenes
  • Interfaz dinámica para ingreso de resultados
  • Validación opcional configurable
  • Resaltado visual de valores fuera de rango

Mejoras futuras

Se identificó la necesidad de implementar un catálogo de parámetros de laboratorio para estandarizar la gestión de resultados. Esta mejora se desarrollará en el Issue #51.

Una vez que se complete el Issue #51, el sistema tendrá:

  • Catálogo maestro de parámetros
  • Rangos de referencia por edad/sexo
  • Validación automática de tipos de datos
  • Generación automática de plantillas de resultados

Cerrando este issue. Las mejoras continuarán en el Issue #51.

## ✅ Issue completado La implementación de la gestión de pruebas y resultados ha sido completada exitosamente. ### Pull Request - PR #52: feat(#8): Implementar gestión de pruebas y resultados de laboratorio - Branch: feature/8-test-results-management → dev ### Funcionalidades implementadas - Modelos lims.test y lims.result con flujo completo - Generación automática de pruebas al confirmar órdenes - Interfaz dinámica para ingreso de resultados - Validación opcional configurable - Resaltado visual de valores fuera de rango ### Mejoras futuras Se identificó la necesidad de implementar un catálogo de parámetros de laboratorio para estandarizar la gestión de resultados. Esta mejora se desarrollará en el **Issue #51**. Una vez que se complete el Issue #51, el sistema tendrá: - Catálogo maestro de parámetros - Rangos de referencia por edad/sexo - Validación automática de tipos de datos - Generación automática de plantillas de resultados Cerrando este issue. Las mejoras continuarán en el Issue #51.
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#8
No description provided.