
- Agregar QWeb template para generar PDF profesional con: - Encabezado con datos del laboratorio y logo - Información completa del paciente y orden - Tabla de resultados con indicadores visuales para valores fuera de rango - Sección de observaciones y notas - Información del validador y fecha de validación - Agregar campo computado reference_text en parameter_range para mostrar rangos formateados - Agregar botón "Imprimir Informe de Resultados" en vista de órdenes (solo visible cuando hay pruebas validadas) - Agregar campo lab_notes en sale.order para observaciones generales - Reorganizar vista de lims.test con pestañas para mejor UX - Corregir manejo de employee_ids en el reporte para casos donde no existe el módulo HR - Incluir scripts de prueba para generar datos de demostración El informe resalta valores críticos y fuera de rango con colores distintivos, facilitando la interpretación rápida de los resultados por parte del médico. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
67 lines
2.1 KiB
Python
67 lines
2.1 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Script para verificar los datos de la orden S00025
|
|
"""
|
|
|
|
import odoo
|
|
|
|
def check_order_s00025(env):
|
|
"""Verificar datos específicos de la orden S00025"""
|
|
|
|
# Buscar la orden S00025
|
|
order = env['sale.order'].search([
|
|
('name', '=', 'S00025')
|
|
], limit=1)
|
|
|
|
if not order:
|
|
print("❌ No se encontró la orden S00025")
|
|
return
|
|
|
|
patient = order.partner_id
|
|
print(f"Orden: {order.name}")
|
|
print(f" Es orden de laboratorio: {order.is_lab_request}")
|
|
print(f" Paciente: {patient.name}")
|
|
print(f" ID Paciente: {patient.id}")
|
|
print(f" Fecha de nacimiento: {patient.birthdate_date}")
|
|
print(f" Edad: {patient.age if patient.birthdate_date else 'N/A'}")
|
|
print(f" Género: {patient.gender or 'No especificado'}")
|
|
|
|
# Verificar estado de las pruebas
|
|
print(f"\nPruebas de laboratorio ({len(order.lab_test_ids)}):")
|
|
for test in order.lab_test_ids:
|
|
print(f" - {test.product_id.name}: {test.state}")
|
|
|
|
# Verificar si puede imprimir resultados
|
|
print(f"\n¿Puede imprimir resultados?: {order.can_print_results}")
|
|
|
|
# Si el paciente no tiene fecha de nacimiento, actualizarla
|
|
if not patient.birthdate_date:
|
|
print("\n⚠️ El paciente no tiene fecha de nacimiento. Actualizando...")
|
|
patient.write({'birthdate_date': '1985-01-15'})
|
|
print(f" Fecha de nacimiento actualizada a: {patient.birthdate_date}")
|
|
print(f" Edad calculada: {patient.age} años")
|
|
|
|
if __name__ == '__main__':
|
|
# Configuración
|
|
db_name = 'lims_demo'
|
|
|
|
# Conectar a Odoo
|
|
odoo.tools.config.parse_config(['--database', db_name])
|
|
|
|
# Obtener el registro de la base de datos
|
|
registry = odoo.registry(db_name)
|
|
|
|
# Crear cursor y environment
|
|
with registry.cursor() as cr:
|
|
env = odoo.api.Environment(cr, odoo.SUPERUSER_ID, {})
|
|
|
|
try:
|
|
# Verificar datos
|
|
check_order_s00025(env)
|
|
cr.commit()
|
|
|
|
except Exception as e:
|
|
print(f"\n❌ Error: {str(e)}")
|
|
import traceback
|
|
traceback.print_exc() |