6.1 KiB
Plan de Actividades: Issue #5 - Catálogo de Análisis Clínicos
TODO
-
Extender el Modelo de Productos (
product.template
):- Crear
lims_management/models/product.py
. - Heredar de
product.template
. - Añadir campo booleano
is_analysis
. - Añadir campo de selección
analysis_type
. - Añadir campo de texto
technical_specifications
. - Crear campo
value_range
(One2many) que enlace al nuevo modelolims.analysis.range
.
- Crear
-
Crear el Modelo para Rangos de Referencia (
lims.analysis.range
):- Crear
lims_management/models/analysis_range.py
. - Definir campos:
analysis_id
(Many2one),gender
,age_min
,age_max
,min_value
,max_value
,unit_of_measure
.
- Crear
-
Definir Permisos de Seguridad:
- Modificar
lims_management/security/ir.model.access.csv
. - Añadir permisos para el modelo
lims.analysis.range
.
- Modificar
-
Crear las Vistas para el Catálogo de Análisis:
- Crear
lims_management/views/analysis_views.xml
. - Crear vista de lista/Kanban para análisis clínicos.
- Heredar de la vista de formulario de productos para añadir la pestaña "Configuración de Análisis".
- Mostrar campos condicionalmente (
is_analysis = True
). - Crear una vista de árbol independiente para los rangos de referencia (
lims.analysis.range
). - En la vista de formulario del producto, referenciar la nueva vista de árbol para el campo
value_range_ids
. - (Nuevo) Modificar las etiquetas en la acción de ventana para que se muestre "Análisis Clinico" en lugar de "Producto".
- Crear
-
Crear el Menú "Catálogo de Análisis":
- Modificar
lims_management/views/menus.xml
. - Crear una nueva acción de ventana (
ir.actions.act_window
). - (Nuevo) Definir valores por defecto en el
context
de la acción para:type
,purchase_ok
,categ_id
. - (Nuevo) Crear la categoría de producto "Análisis Clínico" mediante un archivo de datos.
- Crear un
menuitem
para "Catálogo de Análisis".
- Modificar
-
Actualizar el Manifiesto (
__manifest__.py
):- Añadir los nuevos modelos al
__init__.py
de la carpetamodels
. - Añadir el nuevo archivo de vistas a la lista
data
en__manifest__.py
.
- Añadir los nuevos modelos al
-
Verificación Final:
- Reiniciar la instancia de Odoo (
docker-compose down -v
ydocker-compose up -d
). - Revisar logs de
odoo_init
. - Verificar la funcionalidad en la interfaz de Odoo.
- Reiniciar la instancia de Odoo (
-
(Nuevo) Crear Datos de Demostración:
- Crear el archivo
demo/analysis_demo.xml
. - Definir registros de ejemplo para análisis clínicos (Hemograma, Perfil Lipídico, etc.).
- Asegurarse de que los datos de demostración incluyan la configuración de los rangos de referencia.
- Añadir el archivo
analysis_demo.xml
a la clavedemo
en__manifest__.py
.
- Crear el archivo
Consideraciones Adicionales para Valores por Defecto
1. Análisis y Justificación
Para mejorar la experiencia de usuario y asegurar la consistencia de los datos, se realizó un análisis para determinar qué campos del modelo product.template
deberían tener valores por defecto al crear un nuevo "Análisis Clínico". Esta decisión se basa en el estudio del código fuente de Odoo 18 (product.template.py
) y los documentos de requerimientos y diseño del proyecto.
-
Análisis del Modelo
product.template
: La revisión del modelo base de productos en Odoo 18 revel<65><6C> campos clave que definen el comportamiento de un producto en el sistema, tales comotype
,sale_ok
,purchase_ok
, ycateg_id
. Estos campos son fundamentales para que un producto se integre correctamente con los módulos de Ventas, Compras e Inventario. -
Relación con los Requerimientos y Diseño Técnico:
- El documento
RequerimientoInicial.md
especifica que los análisis clínicos deben ser considerados servicios facturables. Esto justifica la necesidad de configurar los análisis como productos de tipo "Servicio" (type='service'
) que se puedan vender (sale_ok=True
). - El documento
ToBeDesing.md
enfatiza la importancia de categorizar la información para mantener el sistema organizado y facilitar los filtros. Esto respalda la creación de una categoría de producto específica, "Análisis Clínico", para agrupar todos estos servicios y separarlos de otros productos que la empresa pueda manejar. - Ambos documentos dejan claro que el laboratorio presta estos servicios, pero no los compra. Por lo tanto, deshabilitar la opción de compra (
purchase_ok=False
) es coherente con el flujo de negocio, evitando que los análisis aparezcan en contextos de compra.
- El documento
2. Propuesta de Valores por Defecto
Basado en el análisis anterior, se implementarán los siguientes valores por defecto al crear un nuevo análisis clínico desde su menú correspondiente:
Campo en product.template |
Valor por Defecto Recomendado | Justificación |
---|---|---|
type (Tipo de Producto) |
'service' (Servicio) |
Un análisis es un servicio prestado, no un bien físico. Esto evita que Odoo intente gestionar su stock. |
purchase_ok (Se puede Comprar) |
False (Falso) |
El laboratorio vende análisis, no los compra. Esto limpia la interfaz en los flujos de compra. |
categ_id (Categoría de Producto) |
Análisis Clínico |
Permite agrupar, filtrar y aplicar reglas contables específicas a todos los análisis clínicos. |
sale_ok (Se puede Vender) |
True (Verdadero) |
Esencial para que los análisis puedan ser añadidos a las órdenes de laboratorio (órdenes de venta). |
Estos valores se configurarán en el context
de la acción de ventana (ir.actions.act_window
) que gestiona la creación de nuevos análisis, asegurando que cada nuevo registro se cree con la configuración correcta de forma automática.