#!/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)