
- Creados 36 parámetros de análisis en parameter_demo.xml - Creados 31 rangos de referencia en parameter_range_demo.xml - Creadas 40 configuraciones parámetro-análisis en analysis_parameter_config_demo.xml - Consolidado script de creación de datos demo en test/create_demo_data.py - Actualizado init_odoo.py para usar script consolidado - Eliminados scripts obsoletos (04_demo_lab_orders.sh, create_test_demo_data.py) - Verificada carga exitosa de todos los datos demo
159 lines
5.1 KiB
Python
159 lines
5.1 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Script para verificar los datos de demostración cargados.
|
|
"""
|
|
|
|
import odoo
|
|
import json
|
|
|
|
def verify_demo_data(cr):
|
|
"""Verificar datos de demostración"""
|
|
|
|
# Verificar parámetros
|
|
cr.execute("""
|
|
SELECT COUNT(*) as total,
|
|
COUNT(DISTINCT value_type) as tipos
|
|
FROM lims_analysis_parameter
|
|
""")
|
|
params = cr.fetchone()
|
|
|
|
# Verificar rangos
|
|
cr.execute("""
|
|
SELECT COUNT(*) as total,
|
|
COUNT(DISTINCT parameter_id) as parametros_con_rangos
|
|
FROM lims_parameter_range
|
|
""")
|
|
ranges = cr.fetchone()
|
|
|
|
# Verificar configuración de parámetros en análisis
|
|
cr.execute("""
|
|
SELECT pt.name as analisis,
|
|
COUNT(ptp.id) as parametros_configurados
|
|
FROM product_template pt
|
|
LEFT JOIN product_template_parameter ptp ON ptp.product_tmpl_id = pt.id
|
|
WHERE pt.is_analysis = true
|
|
GROUP BY pt.id, pt.name
|
|
ORDER BY pt.name
|
|
""")
|
|
analysis_config = cr.fetchall()
|
|
|
|
# Verificar órdenes de laboratorio
|
|
cr.execute("""
|
|
SELECT COUNT(*) as total_ordenes,
|
|
COUNT(DISTINCT partner_id) as pacientes_distintos,
|
|
COUNT(CASE WHEN state = 'sale' THEN 1 END) as confirmadas
|
|
FROM sale_order
|
|
WHERE is_lab_request = true
|
|
""")
|
|
orders = cr.fetchone()
|
|
|
|
# Verificar muestras
|
|
cr.execute("""
|
|
SELECT COUNT(*) as total_muestras,
|
|
COUNT(DISTINCT sample_state) as estados_distintos
|
|
FROM stock_lot
|
|
WHERE is_lab_sample = true
|
|
""")
|
|
samples = cr.fetchone()
|
|
|
|
# Verificar pruebas
|
|
cr.execute("""
|
|
SELECT COUNT(*) as total_pruebas,
|
|
COUNT(CASE WHEN state = 'validated' THEN 1 END) as validadas,
|
|
COUNT(CASE WHEN state = 'result_entered' THEN 1 END) as con_resultados
|
|
FROM lims_test
|
|
""")
|
|
tests = cr.fetchone()
|
|
|
|
# Verificar resultados
|
|
cr.execute("""
|
|
SELECT COUNT(*) as total_resultados,
|
|
COUNT(CASE WHEN is_out_of_range = true THEN 1 END) as fuera_rango,
|
|
COUNT(CASE WHEN is_critical = true THEN 1 END) as criticos
|
|
FROM lims_result
|
|
""")
|
|
results = cr.fetchone()
|
|
|
|
return {
|
|
'parametros': {
|
|
'total': params[0],
|
|
'tipos_distintos': params[1]
|
|
},
|
|
'rangos': {
|
|
'total': ranges[0],
|
|
'parametros_con_rangos': ranges[1]
|
|
},
|
|
'analisis_configurados': [
|
|
{'analisis': row[0], 'parametros': row[1]}
|
|
for row in analysis_config
|
|
],
|
|
'ordenes': {
|
|
'total': orders[0],
|
|
'pacientes_distintos': orders[1],
|
|
'confirmadas': orders[2]
|
|
},
|
|
'muestras': {
|
|
'total': samples[0],
|
|
'estados_distintos': samples[1]
|
|
},
|
|
'pruebas': {
|
|
'total': tests[0],
|
|
'validadas': tests[1],
|
|
'con_resultados': tests[2]
|
|
},
|
|
'resultados': {
|
|
'total': results[0],
|
|
'fuera_rango': results[1],
|
|
'criticos': results[2]
|
|
}
|
|
}
|
|
|
|
|
|
if __name__ == '__main__':
|
|
import sys
|
|
sys.path.insert(0, '/usr/lib/python3/dist-packages')
|
|
|
|
db_name = 'lims_demo'
|
|
registry = odoo.registry(db_name)
|
|
|
|
with registry.cursor() as cr:
|
|
data = verify_demo_data(cr)
|
|
|
|
print("\n" + "="*60)
|
|
print("VERIFICACIÓN DE DATOS DE DEMOSTRACIÓN")
|
|
print("="*60)
|
|
|
|
print(f"\n📊 PARÁMETROS DE ANÁLISIS:")
|
|
print(f" - Total: {data['parametros']['total']}")
|
|
print(f" - Tipos distintos: {data['parametros']['tipos_distintos']}")
|
|
|
|
print(f"\n📏 RANGOS DE REFERENCIA:")
|
|
print(f" - Total: {data['rangos']['total']}")
|
|
print(f" - Parámetros con rangos: {data['rangos']['parametros_con_rangos']}")
|
|
|
|
print(f"\n🧪 ANÁLISIS CONFIGURADOS:")
|
|
for item in data['analisis_configurados']:
|
|
if item['parametros'] > 0:
|
|
print(f" - {item['analisis']}: {item['parametros']} parámetros")
|
|
|
|
print(f"\n📋 ÓRDENES DE LABORATORIO:")
|
|
print(f" - Total: {data['ordenes']['total']}")
|
|
print(f" - Pacientes distintos: {data['ordenes']['pacientes_distintos']}")
|
|
print(f" - Confirmadas: {data['ordenes']['confirmadas']}")
|
|
|
|
print(f"\n🧪 MUESTRAS:")
|
|
print(f" - Total: {data['muestras']['total']}")
|
|
print(f" - Estados distintos: {data['muestras']['estados_distintos']}")
|
|
|
|
print(f"\n🔬 PRUEBAS:")
|
|
print(f" - Total: {data['pruebas']['total']}")
|
|
print(f" - Validadas: {data['pruebas']['validadas']}")
|
|
print(f" - Con resultados: {data['pruebas']['con_resultados']}")
|
|
|
|
print(f"\n📊 RESULTADOS:")
|
|
print(f" - Total: {data['resultados']['total']}")
|
|
print(f" - Fuera de rango: {data['resultados']['fuera_rango']}")
|
|
print(f" - Críticos: {data['resultados']['criticos']}")
|
|
|
|
print("\n" + "="*60) |