Retención documental
Conservación controlada de versiones obsoletas durante el período de retención GMP. Cumplido el plazo, QA lo verifica y firma, y la versión queda liberada de la retención. No se destruye nada.
¿Qué es el módulo de Retención?
El módulo Retención documental (ruta /retention, submenú de CDMS) conserva las versiones obsoletas de los documentos durante el período de retención GMP. Un documento obsoleto no desaparece del sistema: entra en retención y permanece consultable. Cumplido el plazo, QA lo verifica, firma, y la versión queda liberada de la retención.
No hay destrucción en un sistema digital. Liberar de la retención no borra nada: la versión, su archivo original y su PDF sellado se conservan y se siguen descargando después del acto. Lo único que cambia es que el período de guarda obligatoria terminó. Lo que la firma declara es una verificación: que el plazo se cumplió.
- El período de retención por defecto es de 10 años.
- Las políticas de retención por clase de documento son visibles en el panel "Políticas" del módulo.
- La entrada a retención es automática: cuando una versión se obsoletiza (por nueva versión efectiva, retiro, etc.), el sistema la incorpora a retención sin intervención manual.
- La salida no es automática: cuando el plazo se cumple, el sistema avisa a QA y Admin, y la liberación la dispara una firma. El reloj no libera nada por su cuenta.
ALCOA+ y 21 CFR Parte 11. La retención documental garantiza que los registros obsoletos sigan siendo disponibles y duraderos durante todo el período regulatorio — y también después: nada se elimina. El ciclo tiene una sola transición firmada, la liberación de la retención, que requiere firma electrónica. El asiento de esa firma se conserva permanentemente: qué versión, cuándo, quién la verificó y con qué motivo.
Estados y ciclo de vida
Cada versión en retención pasa por un ciclo lineal de dos estados vigentes —en retención y retención liberada—, más un tercero legado (cierre autorizado) al que ya no lleva nada y que la pantalla sigue mostrando con contador y chip propios porque hay versiones ahí. No hay vueltas atrás, y no hay un estado final de destrucción: el ciclo termina en retención liberada, con la versión y sus archivos intactos.
| Estado | Código | Qué significa |
|---|---|---|
| En retención | in_retention |
La versión obsoleta se conserva durante el período de retención GMP. No puede liberarse hasta que el plazo se cumpla. |
| Retención liberada | retention_closed |
QA verificó que el plazo se cumplió y firmó. Es el estado final. Nada se eliminó: la versión, su archivo y su PDF sellado siguen accesibles, y el asiento de la firma es permanente. |
| Cierre autorizado (legado) | closure_authorized |
Estado del modelo del 21-ago-2026, retirado. Nada lleva a él: quedan las versiones que se autorizaron ese día, y se liberan con la misma firma que cualquier otra. |
La pantalla de Retención
La pantalla usa un split panel: listado de versiones en retención a la izquierda, detalle de la seleccionada a la derecha. Arriba:
- 3 KPIs: En retención / Cierre autoriz. (legado) / Retención liberada.
- Buscador y filtros por Área y por Clase de documento, más chips de estado para acotar el listado.
- Panel "Políticas" con los períodos de retención vigentes por clase.
- Export PDF del listado, con marca de agua "REPORTE EXTRAÍDO — ION eQMS".
En cada fila, la columna "Retención expira" muestra la fecha de vencimiento del período; si ya venció, se muestra en rojo con ✓ y la fila lleva el badge "Período vencido — acción requerida".
La transición firmada
El ciclo tiene un solo acto firmado: la liberación de la retención. Requiere firma electrónica con motivos precargados, el permiso cdms.document.archive y rol QA o Admin. La lectura del módulo requiere cdms.document.view_all.
| Acción | De → a | Endpoint | Quién puede | Firma | Condiciones |
|---|---|---|---|---|---|
| ✍ Verificar y liberar de la retención | in_retention → retention_closed |
POST /retention/versions/{id}/release |
QA / Admin (cdms.document.archive) |
🔐 sí + motivos precargados | Solo si el plazo ya transcurrió (retention_expires_at anterior a este momento). El botón está deshabilitado hasta entonces. Regla fail-closed: sin fecha de fin de retención cargada, también se bloquea. También se acepta como origen el estado legado closure_authorized. |
Qué estás firmando. La firma de la liberación declara una cosa concreta: que verificaste que el plazo de retención se cumplió. No autoriza ningún borrado —no hay borrado— pero sí cierra el período de guarda obligatoria de esa versión, y el asiento queda a tu nombre de forma permanente. Antes de firmar, verificá que la versión sea la correcta y que no exista una razón regulatoria, legal o de investigación para extender la retención.
Panel de detalle
retention_expires_at ≤ now(), y hoy explica que al vencer llega un aviso para verificar y firmar; el pie nombraba una bandera ENFORCE_RETENTION_EXPIRY que se eliminó el 21-ago-2026. Los tres contadores y los chips de filtro tienen los mismos desfasajes que la captura de arriba. En esta imagen no aparece el historial de retención. Vale el texto de esta página, no la imagen. La captura se rehace en una tanda aparte.Al seleccionar una fila, el panel derecho muestra:
- Metadatos: Version ID, número de versión, estado, fecha de obsoletización y fecha en que expira la retención. Si el estado es Retención liberada, también la fecha de la liberación y quién la firmó. En las versiones que cerró el proceso nocturno durante la ventana del 21 al 22 de agosto de 2026 —un modelo ya retirado— ese campo aparece vacío: aquel cierre no lo firmaba nadie.
- "📄 Ver documento obsoleto": abre un modal de solo lectura con un banner rojo OBSOLETO y la opción de descargar el PDF sellado de esa versión.
- Historial de retención (append-only): cada entrada registra el estado resultante, el timestamp UTC, el significado de la firma, el comentario y el actor. Las entradas nunca se editan ni se borran.
Preguntas frecuentes
El período de retención GMP es un mínimo regulatorio, y lo que la firma declara es que ese mínimo se cumplió. Firmarla antes la convertiría en una declaración falsa. Por eso el sistema compara el instante de vencimiento con el momento de la firma —no el día— y bloquea hasta que el plazo haya transcurrido de verdad. La regla es fail-closed: si la versión no tiene fecha de fin de retención cargada, tampoco se puede liberar. No hay excepción manual — si necesitás corregir una fecha, contactá al administrador.
Se conserva intacto y consultable: desde el detalle podés abrir "📄 Ver documento obsoleto", que muestra el contenido en modo solo lectura con un banner rojo OBSOLETO y permite descargar el PDF sellado. Así el documento sigue siendo legible y disponible durante todo el período, pero nadie puede confundirlo con una versión vigente.
Un proceso automático barre todos los días a las 09:00 ART —media mañana, no de madrugada— las versiones cuyo plazo ya transcurrió y todavía están en retención, y le manda a QA y Admin un aviso en la aplicación —"Retención cumplida: <código>"— más un correo consolidado. El aviso no se repite por cada corrida sobre el mismo hecho, y deja de mandarse cuando la versión se libera. El aviso sólo sale cuando el plazo terminó de verdad: el día en que llega, la firma ya se puede ejercer.
Solo usuarios con el permiso cdms.document.archive (roles QA y Admin), y siempre con firma electrónica y motivo. El sistema registra la identidad de quien firma, el instante UTC y el significado exacto de la firma, congelado en el asiento.
No. No hay destrucción en un sistema digital. Después de la liberación la fila, el archivo original y el PDF sellado siguen ahí y se siguen descargando. Lo único que ocurre es que el período de guarda obligatoria de esa versión terminó y quedó asentado quién lo verificó. Una versión anterior de esta ayuda describía un ciclo que terminaba en "Destruido": ese modelo se retiró el 21 de agosto de 2026 porque el sistema nunca borró nada.