clinical_laboratory/lims_management/models/lims_config.py
Luis Ernesto Portillo Zaldivar 0cf2e42f7a feat(#60): Implementar automatización configurable de re-muestreo
- Agregar modelo de configuración del laboratorio (lims.config.settings)
- Implementar generación automática de re-muestras al rechazar
- Añadir campos de trazabilidad: parent_sample_id, child_sample_ids
- Crear vista de configuración accesible desde menú admin
- Mejorar vistas de stock.lot con información de re-muestreo
- Incluir notificaciones automáticas a recepcionistas
- Configurar límite máximo de re-muestreos por muestra

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-16 07:39:43 -06:00

44 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
from odoo import models, fields, api
class LimsConfig(models.TransientModel):
_name = 'lims.config.settings'
_inherit = 'res.config.settings'
_description = 'Configuración del Laboratorio'
auto_resample_on_rejection = fields.Boolean(
string='Re-muestreo Automático al Rechazar',
help='Si está activo, se generará automáticamente una nueva muestra cuando se rechace una existente',
config_parameter='lims_management.auto_resample_on_rejection',
default=True
)
resample_state = fields.Selection([
('pending_collection', 'Pendiente de Recolección'),
('collected', 'Recolectada'),
], string='Estado Inicial para Re-muestras',
help='Estado en el que se crearán las nuevas muestras generadas por re-muestreo',
config_parameter='lims_management.resample_state',
default='pending_collection'
)
auto_notify_resample = fields.Boolean(
string='Notificar Re-muestreo Automático',
help='Enviar notificación al recepcionista cuando se genera una nueva muestra por re-muestreo',
config_parameter='lims_management.auto_notify_resample',
default=True
)
resample_prefix = fields.Char(
string='Prefijo para Re-muestras',
help='Prefijo que se añadirá al código de las muestras generadas por re-muestreo (ej: RE-)',
config_parameter='lims_management.resample_prefix',
default='RE-'
)
max_resample_attempts = fields.Integer(
string='Máximo de Re-muestreos',
help='Número máximo de veces que se puede re-muestrear una muestra (0 = sin límite)',
config_parameter='lims_management.max_resample_attempts',
default=3
)