feat(#7): Crear plan de desarrollo para gestion de muestras
This commit is contained in:
parent
c557014cac
commit
291ceb9bfd
50
documents/plans/ISSUE7_PLAN.md
Normal file
50
documents/plans/ISSUE7_PLAN.md
Normal file
|
@ -0,0 +1,50 @@
|
|||
# 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 a `res.partner`) para vincular la muestra al paciente.
|
||||
- [ ] Añadir un campo `request_id` (Many2one a `sale.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').
|
||||
|
||||
- [ ] **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 por `stock.lot`) se gestione adecuadamente. Se puede crear un producto de servicio genérico llamado "Muestra de Laboratorio" y asignarlo por defecto.
|
||||
|
||||
- [ ] **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 modelo `stock.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, establecer `default_is_lab_sample = True` y, si se decide, el `default_product_id`.
|
||||
- [ ] Crear un `menuitem` para "Muestras" o "Gestión de Muestras" dentro del menú principal del LIMS.
|
||||
|
||||
- [ ] **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 en `stock.lot`.
|
||||
- [ ] Aplicar un dominio al campo `patient_id` en la vista de muestra para que solo muestre contactos que estén marcados como pacientes.
|
||||
|
||||
- [ ] **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 clave `data` en `__manifest__.py`.
|
||||
|
||||
- [ ] **Verificación Final:**
|
||||
- [ ] Reiniciar la instancia de Odoo (`docker-compose down -v` y `docker-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.
|
||||
|
||||
- [ ] **(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`.
|
Loading…
Reference in New Issue
Block a user