
- Eliminar método create duplicado que sobrescribía la lógica de secuencias - Consolidar la generación de secuencias en un único método create - Agregar contexto especial para evitar validaciones durante la inicialización - Ahora todos los tests se crean con códigos secuenciales (LAB-YYYY-NNNNN) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
104 lines
3.6 KiB
Plaintext
104 lines
3.6 KiB
Plaintext
# Determinar automáticamente valores críticos/anormales para parámetros de selección múltiple
|
|
|
|
## Descripción
|
|
|
|
Actualmente, el sistema puede determinar automáticamente si un valor numérico es crítico basándose en rangos mínimos y máximos. Sin embargo, para parámetros de tipo selección (como Positivo/Negativo, Reactivo/No Reactivo), no existe una forma dinámica de determinar cuándo un valor es crítico o anormal.
|
|
|
|
## Problema actual
|
|
|
|
Los parámetros de selección múltiple no tienen forma de indicar qué valores son:
|
|
- Normales
|
|
- Anormales
|
|
- Críticos
|
|
|
|
Ejemplos de parámetros afectados:
|
|
- Prueba de embarazo: Positivo/Negativo
|
|
- HIV: Reactivo/No Reactivo/Indeterminado
|
|
- Hepatitis: Reactivo/No Reactivo
|
|
- Otros marcadores infecciosos
|
|
|
|
## Solución propuesta
|
|
|
|
### Opción 1: Agregar campos al modelo `lims.analysis.parameter`
|
|
|
|
Agregar campos que permitan definir qué valores de selección son críticos:
|
|
```python
|
|
critical_values = fields.Text(
|
|
string="Valores Críticos",
|
|
help="Lista de valores separados por coma que se consideran críticos"
|
|
)
|
|
abnormal_values = fields.Text(
|
|
string="Valores Anormales",
|
|
help="Lista de valores separados por coma que se consideran anormales"
|
|
)
|
|
```
|
|
|
|
### Opción 2: Crear modelo relacionado `lims.parameter.selection.value`
|
|
|
|
Crear un modelo que defina cada opción de selección con sus propiedades:
|
|
```python
|
|
class LimsParameterSelectionValue(models.Model):
|
|
_name = 'lims.parameter.selection.value'
|
|
|
|
parameter_id = fields.Many2one('lims.analysis.parameter')
|
|
value = fields.Char(string="Valor")
|
|
is_normal = fields.Boolean(string="Es Normal", default=True)
|
|
is_critical = fields.Boolean(string="Es Crítico", default=False)
|
|
sequence = fields.Integer(string="Secuencia")
|
|
notes_template = fields.Text(string="Plantilla de Notas")
|
|
```
|
|
|
|
### Opción 3: Usar configuración JSON
|
|
|
|
Almacenar la configuración en un campo JSON:
|
|
```python
|
|
selection_config = fields.Json(
|
|
string="Configuración de Valores",
|
|
help="Configuración de valores normales, anormales y críticos"
|
|
)
|
|
```
|
|
|
|
## Beneficios esperados
|
|
|
|
1. **Automatización completa**: El sistema podrá determinar automáticamente si cualquier tipo de resultado es crítico
|
|
2. **Flexibilidad**: Cada laboratorio podrá configurar qué valores considera críticos según sus protocolos
|
|
3. **Consistencia**: Aplicación uniforme de criterios en todos los resultados
|
|
4. **Alertas mejoradas**: Mejor identificación de resultados que requieren atención inmediata
|
|
|
|
## Casos de uso
|
|
|
|
1. **Prueba de embarazo**:
|
|
- Normal: Negativo (para pacientes no embarazadas)
|
|
- Anormal: Positivo (puede requerir seguimiento)
|
|
- Crítico: Indeterminado (requiere repetición)
|
|
|
|
2. **HIV**:
|
|
- Normal: No Reactivo
|
|
- Crítico: Reactivo, Indeterminado
|
|
|
|
3. **Marcadores tumorales**:
|
|
- Normal: Negativo, No Detectado
|
|
- Anormal: Débilmente Positivo
|
|
- Crítico: Positivo, Fuertemente Positivo
|
|
|
|
## Consideraciones técnicas
|
|
|
|
- Mantener compatibilidad con el sistema actual
|
|
- Permitir migración de datos existentes
|
|
- Interfaz de usuario intuitiva para configuración
|
|
- Integración con el autocompletado de notas críticas existente
|
|
|
|
## Tareas propuestas
|
|
|
|
1. Análisis de la mejor opción de implementación
|
|
2. Diseño del modelo de datos
|
|
3. Implementación de campos/modelos necesarios
|
|
4. Actualización de la lógica de `is_critical` en `lims.result`
|
|
5. Creación de interfaz de configuración
|
|
6. Migración de parámetros existentes
|
|
7. Pruebas exhaustivas
|
|
8. Documentación
|
|
|
|
## Prioridad
|
|
|
|
Media-Alta: Esta mejora completaría la funcionalidad de detección automática de valores críticos para todos los tipos de parámetros. |