#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Script para verificar los datos de pacientes en las órdenes de laboratorio """ import odoo def check_patient_data(env): """Verificar datos de pacientes en órdenes recientes""" # Buscar órdenes de laboratorio recientes orders = env['sale.order'].search([ ('is_lab_request', '=', True), ('name', 'in', ['S00032', 'S00033']) ], order='id desc', limit=5) if not orders: orders = env['sale.order'].search([ ('is_lab_request', '=', True) ], order='id desc', limit=5) print(f"Verificando {len(orders)} órdenes de laboratorio...") for order in orders: patient = order.partner_id print(f"\nOrden: {order.name}") 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'}") print(f" ¿Tiene campo age?: {hasattr(patient, 'age')}") print(f" ¿Tiene campo birthdate_date?: {hasattr(patient, 'birthdate_date')}") # Verificar si podemos acceder a los campos try: age_value = patient.age print(f" Valor de age: {age_value}") except Exception as e: print(f" Error al acceder a age: {str(e)}") 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_patient_data(env) except Exception as e: print(f"\n❌ Error: {str(e)}")