
- Agregar estado 'rejected' al ciclo de vida de la muestra - Crear modelo lims.rejection.reason para gestionar motivos de rechazo - Agregar campos de rechazo en stock.lot (reason, notes, rejected_by, date) - Crear wizard para proceso de rechazo con validaciones - Implementar acción de rechazo con notificaciones - Crear vistas para muestras rechazadas con filtros y búsquedas - Agregar 10 motivos de rechazo predefinidos (hemolizada, coagulada, etc.) - Incluir permisos de seguridad para los nuevos modelos - Agregar menús para gestión de rechazos y muestras rechazadas - Corregir compatibilidad con Odoo 18 en vistas existentes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
95 lines
4.8 KiB
XML
95 lines
4.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data noupdate="1">
|
|
<!-- Rejection Reasons -->
|
|
<record id="rejection_reason_insufficient" model="lims.rejection.reason">
|
|
<field name="name">Muestra Insuficiente</field>
|
|
<field name="code">INSUF</field>
|
|
<field name="description">El volumen de muestra recibido es insuficiente para realizar los análisis solicitados</field>
|
|
<field name="severity">high</field>
|
|
<field name="requires_new_sample" eval="True"/>
|
|
<field name="sequence">10</field>
|
|
</record>
|
|
|
|
<record id="rejection_reason_hemolyzed" model="lims.rejection.reason">
|
|
<field name="name">Muestra Hemolizada</field>
|
|
<field name="code">HEMO</field>
|
|
<field name="description">La muestra presenta hemólisis que interfiere con los análisis</field>
|
|
<field name="severity">high</field>
|
|
<field name="requires_new_sample" eval="True"/>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
|
|
<record id="rejection_reason_coagulated" model="lims.rejection.reason">
|
|
<field name="name">Muestra Coagulada</field>
|
|
<field name="code">COAG</field>
|
|
<field name="description">La muestra presenta coágulos que impiden su procesamiento</field>
|
|
<field name="severity">high</field>
|
|
<field name="requires_new_sample" eval="True"/>
|
|
<field name="sequence">30</field>
|
|
</record>
|
|
|
|
<record id="rejection_reason_lipemic" model="lims.rejection.reason">
|
|
<field name="name">Muestra Lipémica</field>
|
|
<field name="code">LIP</field>
|
|
<field name="description">La muestra presenta lipemia excesiva que interfiere con los análisis</field>
|
|
<field name="severity">medium</field>
|
|
<field name="requires_new_sample" eval="True"/>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
|
|
<record id="rejection_reason_wrong_container" model="lims.rejection.reason">
|
|
<field name="name">Recipiente Inadecuado</field>
|
|
<field name="code">RECIP</field>
|
|
<field name="description">El tipo de recipiente utilizado no es apropiado para el análisis solicitado</field>
|
|
<field name="severity">high</field>
|
|
<field name="requires_new_sample" eval="True"/>
|
|
<field name="sequence">50</field>
|
|
</record>
|
|
|
|
<record id="rejection_reason_wrong_id" model="lims.rejection.reason">
|
|
<field name="name">Identificación Incorrecta</field>
|
|
<field name="code">ID</field>
|
|
<field name="description">La identificación de la muestra no coincide con la solicitud o es ilegible</field>
|
|
<field name="severity">critical</field>
|
|
<field name="requires_new_sample" eval="True"/>
|
|
<field name="sequence">60</field>
|
|
</record>
|
|
|
|
<record id="rejection_reason_no_label" model="lims.rejection.reason">
|
|
<field name="name">Muestra sin Rotular</field>
|
|
<field name="code">NOLAB</field>
|
|
<field name="description">La muestra no tiene etiqueta de identificación</field>
|
|
<field name="severity">critical</field>
|
|
<field name="requires_new_sample" eval="True"/>
|
|
<field name="sequence">70</field>
|
|
</record>
|
|
|
|
<record id="rejection_reason_transport" model="lims.rejection.reason">
|
|
<field name="name">Condiciones de Transporte Inadecuadas</field>
|
|
<field name="code">TRANS</field>
|
|
<field name="description">La muestra no fue transportada en las condiciones requeridas (temperatura, tiempo, etc.)</field>
|
|
<field name="severity">high</field>
|
|
<field name="requires_new_sample" eval="True"/>
|
|
<field name="sequence">80</field>
|
|
</record>
|
|
|
|
<record id="rejection_reason_contaminated" model="lims.rejection.reason">
|
|
<field name="name">Muestra Contaminada</field>
|
|
<field name="code">CONT</field>
|
|
<field name="description">La muestra presenta signos evidentes de contaminación</field>
|
|
<field name="severity">critical</field>
|
|
<field name="requires_new_sample" eval="True"/>
|
|
<field name="sequence">90</field>
|
|
</record>
|
|
|
|
<record id="rejection_reason_expired" model="lims.rejection.reason">
|
|
<field name="name">Tiempo de Entrega Excedido</field>
|
|
<field name="code">TIME</field>
|
|
<field name="description">La muestra fue recibida fuera del tiempo límite establecido para su procesamiento</field>
|
|
<field name="severity">high</field>
|
|
<field name="requires_new_sample" eval="True"/>
|
|
<field name="sequence">100</field>
|
|
</record>
|
|
</data>
|
|
</odoo> |