feat: Agregar relación entre análisis y tipos de muestra #44

Closed
opened 2025-07-15 02:19:46 +00:00 by luis_portillo · 5 comments

Contexto:
Para poder implementar la automatización de generación de muestras (Issue #32), es necesario establecer una relación entre los productos tipo análisis y los tipos de muestra que requieren.

Problema Actual:

  • Los productos tipo test (is_analysis=True) no tienen campo que indique qué tipo de muestra requieren
  • Los productos tipo muestra (is_sample_type=True) no están relacionados con los tests
  • El modelo stock.lot tiene container_type como Selection hardcodeado, no como relación

Tareas Requeridas:

  1. Modificar product.template:

    • Agregar campo Many2one 'required_sample_type_id' que relacione análisis con tipo de muestra
    • Domain: [('is_sample_type', '=', True)]
  2. Actualizar stock.lot:

    • Opción A: Cambiar container_type de Selection a Many2one hacia product.template
    • Opción B: Agregar nuevo campo sample_type_product_id
    • Mantener compatibilidad con datos existentes
  3. Actualizar vistas:

    • Agregar campo en formulario de productos cuando is_analysis=True
    • Mostrar tipo de muestra requerida en vistas de análisis
  4. Migración de datos:

    • Mapear valores actuales de container_type a productos tipo muestra
    • Actualizar registros existentes
  5. Actualizar demo data:

    • Asignar tipos de muestra correctos a cada análisis
    • Ejemplo: Hemograma → Tubo EDTA, Glucosa → Tubo Suero

Beneficios:

  • Permitirá automatizar la generación de muestras al confirmar órdenes
  • Evitará errores al saber exactamente qué contenedor usar para cada test
  • Facilitará la agrupación de análisis que usan el mismo tipo de muestra

Dependencia:
Este issue es prerequisito para poder implementar el Issue #32

**Contexto:** Para poder implementar la automatización de generación de muestras (Issue #32), es necesario establecer una relación entre los productos tipo análisis y los tipos de muestra que requieren. **Problema Actual:** - Los productos tipo test (is_analysis=True) no tienen campo que indique qué tipo de muestra requieren - Los productos tipo muestra (is_sample_type=True) no están relacionados con los tests - El modelo stock.lot tiene container_type como Selection hardcodeado, no como relación **Tareas Requeridas:** 1. **Modificar product.template:** - Agregar campo Many2one 'required_sample_type_id' que relacione análisis con tipo de muestra - Domain: [('is_sample_type', '=', True)] 2. **Actualizar stock.lot:** - Opción A: Cambiar container_type de Selection a Many2one hacia product.template - Opción B: Agregar nuevo campo sample_type_product_id - Mantener compatibilidad con datos existentes 3. **Actualizar vistas:** - Agregar campo en formulario de productos cuando is_analysis=True - Mostrar tipo de muestra requerida en vistas de análisis 4. **Migración de datos:** - Mapear valores actuales de container_type a productos tipo muestra - Actualizar registros existentes 5. **Actualizar demo data:** - Asignar tipos de muestra correctos a cada análisis - Ejemplo: Hemograma → Tubo EDTA, Glucosa → Tubo Suero **Beneficios:** - Permitirá automatizar la generación de muestras al confirmar órdenes - Evitará errores al saber exactamente qué contenedor usar para cada test - Facilitará la agrupación de análisis que usan el mismo tipo de muestra **Dependencia:** Este issue es prerequisito para poder implementar el Issue #32
Author
Owner

Iniciando desarrollo de la relación entre análisis y tipos de muestra.

He creado el branch feature/44-test-sample-relationship y el plan detallado de implementación.

📋 Plan de implementación: ISSUE44_PLAN.md

El plan incluye:

  • Modificación de modelos (product.template y stock.lot)
  • Actualización de vistas
  • Migración de datos existentes
  • Creación de datos iniciales de tipos de muestra
  • Preparación para la automatización del Issue #32

Procederé con la implementación siguiendo el plan establecido.

Iniciando desarrollo de la relación entre análisis y tipos de muestra. He creado el branch **feature/44-test-sample-relationship** y el plan detallado de implementación. 📋 **Plan de implementación:** [ISSUE44_PLAN.md](https://gitea.grupoconsiti.com/luis_portillo/clinical_laboratory/src/branch/feature/44-test-sample-relationship/documents/plans/ISSUE44_PLAN.md) El plan incluye: - Modificación de modelos (product.template y stock.lot) - Actualización de vistas - Migración de datos existentes - Creación de datos iniciales de tipos de muestra - Preparación para la automatización del Issue #32 Procederé con la implementación siguiendo el plan establecido.
Author
Owner

Tarea 1 completada: Modificar el modelo ProductTemplate

Se agregaron los siguientes campos al modelo :

  • : Campo Many2one para relacionar análisis con tipos de muestra
  • : Campo Float para especificar el volumen requerido
  • Validaciones con @api.constrains para asegurar que solo se usen en productos tipo análisis

La instancia de Odoo se levantó sin errores y los cambios están funcionando correctamente.

Commit: dde56b9

Procedo con la Tarea 2: Actualizar el modelo StockLot.

✅ **Tarea 1 completada**: Modificar el modelo ProductTemplate Se agregaron los siguientes campos al modelo : - : Campo Many2one para relacionar análisis con tipos de muestra - : Campo Float para especificar el volumen requerido - Validaciones con @api.constrains para asegurar que solo se usen en productos tipo análisis La instancia de Odoo se levantó sin errores y los cambios están funcionando correctamente. Commit: dde56b9 Procedo con la Tarea 2: Actualizar el modelo StockLot.
Author
Owner

Tarea 2 completada: Actualizar el modelo StockLot

Se implementó la Opción B del plan:

  • Agregado campo (Many2one) para referenciar productos tipo muestra
  • Mantenido campo para compatibilidad (marcado como legacy)
  • Agregado método para sincronizar ambos campos
  • Agregado método para obtener el nombre desde cualquier campo

La instancia de Odoo se levantó sin errores.

Commit: d240ba5

Procedo con la Tarea 3: Actualizar las vistas de producto.

✅ **Tarea 2 completada**: Actualizar el modelo StockLot Se implementó la Opción B del plan: - Agregado campo (Many2one) para referenciar productos tipo muestra - Mantenido campo para compatibilidad (marcado como legacy) - Agregado método para sincronizar ambos campos - Agregado método para obtener el nombre desde cualquier campo La instancia de Odoo se levantó sin errores. Commit: d240ba5 Procedo con la Tarea 3: Actualizar las vistas de producto.
Author
Owner

Tarea 3 completada: Actualizar las vistas de producto

Se actualizaron las vistas en analysis_views.xml:

  • Agregados campos required_sample_type_id y sample_volume_ml en la página de configuración de análisis
  • Creada vista de lista para productos de análisis mostrando la relación con tipos de muestra
  • Creada vista de lista para productos tipo muestra
  • Agregado campo is_sample_type al formulario de producto

La instancia de Odoo se levantó sin errores.

Commit: 4632a95

Procedo con la Tarea 4: Actualizar las vistas de stock.lot.

✅ **Tarea 3 completada**: Actualizar las vistas de producto Se actualizaron las vistas en analysis_views.xml: - Agregados campos required_sample_type_id y sample_volume_ml en la página de configuración de análisis - Creada vista de lista para productos de análisis mostrando la relación con tipos de muestra - Creada vista de lista para productos tipo muestra - Agregado campo is_sample_type al formulario de producto La instancia de Odoo se levantó sin errores. Commit: 4632a95 Procedo con la Tarea 4: Actualizar las vistas de stock.lot.
Author
Owner

Implementación completada

Se han completado todas las tareas del plan:

  1. ✓ Modificación de modelos con campos de relación test-muestra
  2. ✓ Actualización de vistas para mostrar las relaciones
  3. ✓ Creación de datos iniciales de tipos de muestra
  4. ✓ Actualización de datos demo con relaciones
  5. ✓ Creación de script de verificación
  6. ✓ Documentación completa de la implementación
  7. ✓ Pruebas exitosas en todas las tareas

Branch: feature/44-test-sample-relationship
Commits pushed successfully
Ready for PR to dev

✅ Implementación completada Se han completado todas las tareas del plan: 1. ✓ Modificación de modelos con campos de relación test-muestra 2. ✓ Actualización de vistas para mostrar las relaciones 3. ✓ Creación de datos iniciales de tipos de muestra 4. ✓ Actualización de datos demo con relaciones 5. ✓ Creación de script de verificación 6. ✓ Documentación completa de la implementación 7. ✓ Pruebas exitosas en todas las tareas Branch: feature/44-test-sample-relationship Commits pushed successfully Ready for PR to dev
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#44
No description provided.