3.7 KiB
3.7 KiB
Plan de Actividades: Issue #7 - Gestión de Muestras de Laboratorio
Objetivo
Extender el modelo de Lotes/Números de Serie de Odoo (stock.lot
) para representar y gestionar las Muestras de Laboratorio. Esto permitirá la trazabilidad completa de la muestra desde su recolección hasta el análisis.
TODO
-
Extender el Modelo de Lote/Número de Serie (
stock.lot
):- Crear el archivo
lims_management/models/stock_lot.py
. - Heredar del modelo
stock.lot
. - Añadir un campo booleano
is_lab_sample
para identificar los registros que son muestras de laboratorio. - Añadir un campo
patient_id
(Many2one ares.partner
) para vincular la muestra al paciente. - Añadir un campo
request_id
(Many2one asale.order
) para vincular la muestra a la solicitud de laboratorio correspondiente. - Añadir un campo
collection_date
(Datetime) para registrar la fecha y hora de la toma de la muestra. - Añadir un campo
container_type
(Selection) para el tipo de recipiente (ej. 'Tubo de suero', 'Tubo EDTA', 'Hisopo', 'Orina').
- Crear el archivo
-
Adaptar las Vistas de Lote/Número de Serie:
- Crear el archivo
lims_management/views/stock_lot_views.xml
. - Crear una nueva vista de lista (
list
) para las muestras, mostrando campos clave como el número de muestra (name
), paciente, fecha de recolección y tipo de recipiente. - Crear una nueva vista de formulario (
form
) para el registro de muestras, incluyendo todos los campos nuevos. - Asegurarse de que el campo
product_id
(requerido porstock.lot
) se gestione adecuadamente. Se puede crear un producto de servicio genérico llamado "Muestra de Laboratorio" y asignarlo por defecto.
- Crear el archivo
-
Crear el Menú "Gestión de Muestras":
- Modificar
lims_management/views/menus.xml
. - Crear una nueva acción de ventana (
ir.actions.act_window
) para el modelostock.lot
. - Establecer un dominio en la acción para mostrar solo los registros que son muestras de laboratorio (
is_lab_sample = True
). - En el
context
de la acción, establecerdefault_is_lab_sample = True
y, si se decide, eldefault_product_id
. - Crear un
menuitem
para "Muestras" o "Gestión de Muestras" dentro del menú principal del LIMS.
- Modificar
-
Establecer Permisos y Reglas de Dominio:
- Modificar
lims_management/security/ir.model.access.csv
para asegurar que los usuarios del LIMS tengan permisos para crear, leer, escribir y eliminar registros enstock.lot
. - Aplicar un dominio al campo
patient_id
en la vista de muestra para que solo muestre contactos que estén marcados como pacientes.
- Modificar
-
Actualizar el Manifiesto (
__manifest__.py
):- Añadir el nuevo archivo de modelo (
stock_lot.py
) al__init__.py
correspondiente. - Añadir el nuevo archivo de vistas (
stock_lot_views.xml
) a la clavedata
en__manifest__.py
.
- Añadir el nuevo archivo de modelo (
-
Verificación Final:
- Reiniciar la instancia de Odoo (
docker-compose down -v
ydocker-compose up -d
). - Revisar los logs de
odoo_init
en busca de errores de instalación o actualización. - Verificar la funcionalidad en la interfaz de Odoo:
- Navegar al nuevo menú "Muestras".
- Crear una nueva muestra, asociarla a un paciente y (si la funcionalidad de solicitud ya existiera) a una solicitud.
- Confirmar que la lista de muestras solo muestra los registros correctos.
- Reiniciar la instancia de Odoo (
-
(Opcional) Crear Datos de Demostración:
- Crear un archivo
demo/z_sample_demo.xml
. - Definir al menos dos muestras de ejemplo, vinculadas a los pacientes de demostración.
- Añadir el archivo a la clave
demo
en__manifest__.py
.
- Crear un archivo