
- 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>
65 lines
2.0 KiB
Python
65 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Script para actualizar la fecha de nacimiento de los pacientes existentes
|
|
"""
|
|
|
|
import odoo
|
|
from datetime import date, timedelta
|
|
import random
|
|
|
|
def update_patient_birthdates(env):
|
|
"""Actualizar fechas de nacimiento de pacientes existentes"""
|
|
|
|
# Buscar pacientes sin fecha de nacimiento
|
|
patients = env['res.partner'].search([
|
|
('is_patient', '=', True),
|
|
('birthdate_date', '=', False)
|
|
])
|
|
|
|
if patients:
|
|
print(f"Actualizando {len(patients)} pacientes sin fecha de nacimiento...")
|
|
|
|
for patient in patients:
|
|
# Generar una edad aleatoria entre 20 y 70 años
|
|
age_years = random.randint(20, 70)
|
|
birthdate = date.today() - timedelta(days=age_years * 365 + random.randint(0, 364))
|
|
|
|
# Actualizar fecha de nacimiento
|
|
patient.write({
|
|
'birthdate_date': birthdate.strftime('%Y-%m-%d')
|
|
})
|
|
|
|
print(f" - {patient.name}: {birthdate.strftime('%Y-%m-%d')} ({age_years} años)")
|
|
else:
|
|
print("Todos los pacientes ya tienen fecha de nacimiento.")
|
|
|
|
return patients
|
|
|
|
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:
|
|
# Actualizar pacientes
|
|
patients = update_patient_birthdates(env)
|
|
|
|
# Confirmar cambios
|
|
cr.commit()
|
|
|
|
if patients:
|
|
print(f"\n✅ Se actualizaron {len(patients)} pacientes con fecha de nacimiento.")
|
|
|
|
except Exception as e:
|
|
cr.rollback()
|
|
print(f"\n❌ Error: {str(e)}") |