🔬 Equipos HPLC/UHPLC

Equipos HPLC/UHPLC

El módulo Equipos es el núcleo de ITS Lab: gestiona los equipos cromatográficos de los clientes, sus módulos componentes, los servicios GMP de calificación (IQ/OQ/PQ, calibraciones, mantenimientos) y sus consumibles. La pantalla es una lista de tarjetas expandibles: cada tarjeta muestra el estado de vigencia de un equipo de un vistazo y, al abrirla, todo su detalle. Los servicios GMP se crean, registran y archivan desde acá.

⚖️
Registros GMP — sin eliminar, solo archivar

Los equipos, módulos y servicios son registros GMP: no se pueden borrar. La API responde 405 a cualquier DELETE. Para dar de baja se archiva con un motivo obligatorio (≥5 caracteres en pantalla) y queda en el audit trail. Restaurar es exclusivo de administradores.

La lista de tarjetas

Cada equipo se muestra como una tarjeta (no una fila de tabla). La fila visible contiene:

ElementoQué es
Flecha ▸Expande / colapsa el panel de detalle de la tarjeta.
Badge del ID del equipoEl id_propietario asignado por el cliente (ej: HPLC03). Al clickearlo se abre la Ficha técnica del equipo.
Marca + modeloFabricante y modelo del equipo.
Laboratorio · SectorCliente y sector al que pertenece el equipo.
Pastillas por servicioUna pastilla por cada servicio GMP: sigla del tipo + vencimiento AAAA-MM, con un semáforo de color en el borde según qué tan cerca está el vencimiento.
Acciones de la filaEditar y Archivar (o Restaurar si ya está archivado).

El panel expandido de cada tarjeta reúne todo el detalle del equipo:

Módulos Servicios Consumibles Notas internas Adjuntos Etiquetas Usuarios del sector

Filtros, orden y agrupación

ControlOpciones
BúsquedaTexto libre (marca, modelo, ID, sector…).
LaboratorioFiltra por cliente.
SectorFiltra por sector.
MarcaFiltra por fabricante.
VencimientoTodos · Vencidos · Próximos 30 días · Próximos 60 días · Vigentes. No existe "90 días".
OrdenCliente A-Z · Nombre del equipo · Próximo vencimiento · ID del equipo.
AgruparSin agrupación · por Cliente · por Marca. No agrupa por Sector.
Filtro por ID de equipoAísla la tarjeta de un equipo puntual por su ID.
Ver archivadosToggle que incluye los equipos archivados en el listado.
⚠️
Limitación conocida — archivados sin distintivo

Hoy, al activar "Ver archivados", los equipos archivados aparecen mezclados sin un distintivo visual que los diferencie de los activos (el listado no expone el flag de archivado). Es un comportamiento conocido: para confirmar el estado de un equipo, abrí su Ficha técnica.

Campos del equipo y del módulo

Equipo

CampoObligatorioDetalle
Equipo (ID)✅ Síid_propietario: el ID que le asigna el cliente (ej: HPLC03).
Marca✅ SíFabricante del equipo.
Modelo✅ SíModelo del equipo.
Sector✅ SíDetermina laboratorio, sector y usuarios del equipo. Es la relación de la que cuelga todo.
Fecha de último servicioFecha referencial del último servicio previo al alta en ITS Lab. No genera historial.

Módulo

CampoObligatorioDetalle
Marca✅ SíFabricante del módulo (bomba, detector, inyector, degasificador…).
Modelo✅ SíModelo del módulo.
N° de serieOpcional pero recomendable para la trazabilidad GMP.

Servicios GMP del equipo

La sección Servicios del panel muestra las calificaciones y calibraciones del equipo. Cada servicio tiene un estado (equipo_servicio) que define si bloquea crear otro del mismo tipo y si se puede archivar:

EstadoSemántica¿Bloquea crear otro del mismo tipo?¿Archivable?
Por RealizarCreado, aún no iniciado.✅ Sí
ProgramadoCon fecha coordinada con el cliente.✅ Sí
En EjecuciónTécnico trabajando en sitio.✅ Sí
FinalizadoServicio completado.✅ Sí
CanceladoServicio cancelado.✅ Sí

Los tres estados activos (Por Realizar, Programado, En Ejecución) bloquean crear otro servicio del mismo tipo. Solo los dos estados terminales (Finalizado, Cancelado) son archivables.

Crear un servicio GMP desde el equipo

1
Expandí la tarjeta → sección "Servicios" → "+ Agregar"
2
Elegí el Tipo de servicio

Si elegís un tipo AT/RB (asistencia técnica / reparación), el modal muta a "Nueva intervención (AT/RB)" y hace POST /asistencias con numeración automática. El backend rechaza registrar AT/RB como servicio GMP con un 422: no son servicios calificados, son intervenciones. Ver AT y Reparaciones.

3
Cargá la Fecha de ejecución

El vencimiento se autocalcula al último día del mes = fecha de ejecución + periodicidad del tipo.

4
Guardá

Dos opciones:
"Guardar" — crea el servicio sin protocolo.
"Guardar y Registrar"POST /equipo-servicios/con-registro: crea el servicio + el historial de forma atómica y le asigna el número ITS-AAAAMMDD-NN, que abre el Protocolo ITS.

Conflicto: ya existe un servicio del mismo tipo

Si al crear ya existe un servicio del mismo tipo en el equipo, el sistema abre un modal de conflicto:

Situación / OpciónQué pasa
Existente activo
(Por Realizar / Programado / En Ejecución)
Bloqueado. No se puede crear otro mientras haya uno activo. Primero finalizá o cancelá el existente.
ReemplazarArchiva el servicio viejo y el nuevo pasa a ser la calificación vigente.
Recalificación parcialCrea el nuevo como hijo del existente (servicio_padre_id). El padre sigue marcando la vigencia; el hijo lleva el badge Recalif. parcial.
⚖️
Campos inmutables del servicio

Una vez creado, numero_protocolo, equipo_id y servicio_padre_id son inmutables: no cambian con una edición. Si un servicio ya tiene protocolo y cambiás la fecha a otro mes, la edición se rechaza (409) — el flujo correcto es cancelar y crear uno nuevo.

⚖️
Guard de hijos al archivar

Solo se archivan servicios en estado terminal (Finalizado o Cancelado). Además, si el servicio es padre y tiene hijos parentados activos (recalificaciones parciales), archivarlo se rechaza con 409: primero hay que resolver los hijos.

Endpoints

Equipos

AcciónEndpointCondiciones
ListarGET /equipos/
CrearPOST /equipos/Sector, ID, marca y modelo obligatorios.
EditarPUT /equipos/{id}409 si el equipo está archivado.
ArchivarPATCH /equipos/{id}/archivarMotivo obligatorio.
RestaurarPATCH /equipos/{id}/restaurarSolo administrador.
EliminarDELETEResponde 405 — no existe borrado.

Módulos

Mismas operaciones sobre /modulos (GET · POST · PUT /{id} con 409 si archivado · PATCH /{id}/archivar · PATCH /{id}/restaurar solo admin · DELETE405).

Servicios GMP

AcciónEndpointCondiciones
Listar del equipoGET /equipo-servicios/equipo/{id}
CrearPOST /equipo-servicios/422 si es intervención AT/RB · 409 si el equipo está archivado · valida el parentesco.
Crear + registrarPOST /equipo-servicios/con-registroAtómico (servicio + historial + número ITS). Fecha obligatoria.
EditarPUT /equipo-servicios/{id}409 si archivado. numero_protocolo, servicio_padre_id y equipo_id inmutables. Cambio de mes con protocolo → 409.
ArchivarPATCH /equipo-servicios/{id}/archivarSolo Finalizado / Cancelado. 409 si tiene hijos parentados activos.
RestaurarPATCH /equipo-servicios/{id}/restaurarSolo administrador.

Consumibles del equipo

Se asocian y desasocian sobre GET/POST/DELETE /equipos/{id}/consumibles… (los consumibles son catálogo, no registros GMP del equipo: sí admiten DELETE de la asociación).

Escáner QR

El botón "📷 Escanear QR" abre la cámara del dispositivo. El QR de la etiqueta ION codifica un correo cuyo asunto es "Solicitud de Asistencia Técnica – Equipo: <ID>". El escáner extrae el ID de ese asunto, limpia los filtros activos y expande la tarjeta del equipo correspondiente. Es la vía rápida para llegar a un equipo desde su etiqueta física.

Etiquetas

El botón "🏷️ Etiquetas" abre un selector con tres modos:

ModoQué genera
Por equipoEtiqueta del equipo completo.
Por móduloEtiqueta por cada módulo.
Zebra (ZPL)Código ZPL para impresora Zebra, con textarea + botones copiar y descargar.
ℹ️
El QR solo va en Mantenimiento Preventivo

El código QR se incluye únicamente en las etiquetas de tipo Mantenimiento Preventivo. Las demás etiquetas se generan sin QR.

Notas internas y Adjuntos

⚠️
Las notas internas y los adjuntos NO son registros GMP

A diferencia de los equipos, módulos y servicios (que nunca se borran), las notas internas y los adjuntos son material de trabajo interno: admiten borrado permanente (con confirmación, sin motivo) y no aparecen en los reportes.

Los adjuntos son binarios con un límite de 5 MB y se suben de tres maneras: drag & drop, elegir archivo o tomar foto con la cámara. Usalos para material de apoyo que no forma parte del expediente regulado del equipo.

Ficha técnica

Al hacer click en el badge del ID del equipo se abre la Ficha técnica: un modal imprimible que consolida todo el expediente del equipo en una sola vista:

Datos del equipo Usuarios del sector Módulos Servicios GMP Consumibles Historial Intervenciones AT/RB

Políticas GMP del módulo

⚖️
Reglas regulatorias del módulo — resumen

Sin eliminar: equipos, módulos y servicios responden 405 a DELETE; solo se archivan con motivo (≥5 caracteres en pantalla).
Inmutables: numero_protocolo, equipo_id y servicio_padre_id no cambian nunca tras crearse.
Guard de hijos: no se archiva un servicio padre con hijos parentados activos (409).
Solo estados terminales (Finalizado / Cancelado) son archivables.
Restaurar es admin-only en equipos, módulos y servicios.


Preguntas frecuentes

Elegí un tipo AT/RB y el formulario cambió solo.+
Es correcto. Los tipos AT (asistencia técnica) y RB (reparación) no son servicios GMP calificados: son intervenciones. Al elegir uno, el modal muta a "Nueva intervención (AT/RB)" y crea la intervención con numeración automática (POST /asistencias). El backend rechaza registrar AT/RB como servicio GMP con 422. Ver AT y Reparaciones.
¿Qué diferencia hay entre "Reemplazar" y "Recalificación parcial"?+
Reemplazar archiva el servicio viejo y el nuevo pasa a ser la calificación vigente. Recalificación parcial crea el nuevo como hijo del existente (servicio_padre_id): el padre sigue marcando la vigencia y el hijo lleva el badge "Recalif. parcial". Usá recalificación parcial cuando solo re-calificás una parte del equipo sin invalidar la calificación completa vigente.
El botón "Archivar servicio" está grisado.+
Solo se archivan servicios en estado Finalizado o Cancelado. Si el servicio está activo (Por Realizar, Programado, En Ejecución), primero cambiá su estado. Y aunque esté terminal, si es un padre con hijos parentados activos tampoco se archiva (409): resolvé primero los hijos.
Cambié la fecha a otro mes y me pidió confirmación.+
Si el servicio ya tiene número de protocolo ITS y movés la fecha de ejecución a un mes distinto, la edición directa se rechaza (409): un número ITS corresponde a un mes específico. El flujo correcto cancela el servicio actual (preservando su protocolo) y recrea uno nuevo con la fecha correcta y un número ITS nuevo.
Borré una nota (o un adjunto) y desapareció del todo.+
Es esperable: las notas internas y los adjuntos no son registros GMP. Admiten borrado permanente (con confirmación, sin motivo) y no aparecen en reportes. A diferencia de ellos, equipos, módulos y servicios nunca se borran: solo se archivan.
¿Cómo abro la Ficha técnica o las Etiquetas de un equipo?+
La Ficha técnica se abre haciendo click en el badge del ID del equipo (el modal imprimible con todo su expediente). Las Etiquetas se generan con el botón "🏷️ Etiquetas", que ofrece etiqueta por equipo, por módulo o código ZPL para Zebra.