> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nubidoc.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Administración fuera de pauta

> Contrato del registro factual, conservación histórica y verificación de la hoja mensual

## Alcance y permisos

El eMAR admite una administración ya realizada de medicamento, suplemento o fitoterapia sin
línea en el plan. No crea prescripción, tomas pendientes ni una incidencia clínica automática.
Se presenta en la misma hoja mensual y PDF, en una fila propia por acto.

El alta, la corrección y la anulación exigen las preferencias de plan de cuidados y centros de
mayores, acceso a la historia y al plan, historia abierta en edición y el privilegio explícito
`CAREPLAN_ADMIN_RECORD`. El tipo recibido no determina el permiso. No se requiere gestionar
el plan y una autorización de ronda no sustituye la edición de historia.

## Entrada e identidad

La acción interna POST `careplanrecordsave` recibe `unplannedtoken` como UUIDv4 y
`unplanneddata` como objeto o JSON. El servidor construye `unplanned:` seguido del UUID en
minúsculas. La cantidad debe ser positiva, la hora realizada no puede ser futura y el estado
de alta es `administered`. No se pueden mezclar referencias de pautas u otras ocurrencias.

El objeto contiene exactamente estos siete campos de texto obligatorios:

| Campo    | Contenido y límite                                               |
| -------- | ---------------------------------------------------------------- |
| `kind`   | `medicamento`, `suplemento` o `fitoterapia`                      |
| `name`   | Producto, 250 caracteres                                         |
| `route`  | Vía, 100 caracteres                                              |
| `unit`   | Unidad, 80 caracteres                                            |
| `reason` | Motivo clínico, 1024 caracteres                                  |
| `origin` | `indicacion_puntual`, `protocolo` o `sin_indicacion_documentada` |
| `source` | Quién lo indicó, referencia o explicación, 1024 caracteres       |

El servidor rechaza campos desconocidos y valores que no sean cadenas; recorta espacios
exteriores. Solo motivo y referencia admiten saltos de línea, normalizados a LF. Genera un
snapshot JSON canónico de versión 1 con las etiquetas históricas de tipo y origen. Las lecturas
conservan esas etiquetas y cada fila física mantiene sus propios datos.

El mismo UUID con la misma carga normalizada recupera el resultado; una carga distinta no
puede reclamarlo. Corregir y anular añaden filas, con autor y motivo, sin cambiar el original.
Un rechazo de validación permite editar conservando el UUID; una respuesta incierta mantiene
congelada la carga para reintentar. La interfaz conserva ese intento en la página abierta,
incluido cerrar y reabrir el diálogo, sin garantizar persistencia tras recargar la página.

## Migración y conservación histórica

La migración `20260908_add_unplanned_careplanrecord.sql` añade `unplanned_snapshot` nullable y
permite NULL en la pareja `hpc_careplanline_careplankey` / `hpc_careplanline_version`.
Conserva valores, índices y claves ajenas históricos; usa guardas compatibles con MariaDB 10.5
y MySQL 8 para poder repetirse. Debe aplicarse antes de utilizar esta entrada.

Las filas nuevas fuera de pauta usan `hash_version=3`, que incorpora el snapshot a la preimagen
v2. Las filas ordinarias siguen usando v2. Las preimágenes v1/v2 no cambian y el verificador
admite cadenas mixtas, rechazando versiones desconocidas.

## Hoja mensual y cierres

Las referencias NULL no agrupan actos independientes ni generan falsas pautas en `plan_snapshot`.
La anulación conserva el detalle pero no suma una administración. Una corrección posterior al
cierre queda pendiente de un suplemento y respeta el alcance del cierre anterior.

Los nuevos cierres usan `digest_version=2`, separado de `version`, que numera cierre y
suplementos. El formato separa explícitamente las preimágenes de resumen y firma. Antes de
validar el resumen se recalcula el hash de todas las filas incluidas del mes, según la versión
de cada una; también se hace en la comprobación parcial del PDF. Así la firma cubre de forma
transitiva el snapshot de la administración. La verificación completa sigue comprobando además
la cadena. El formato de cierre 1 conserva exactamente sus bytes y su comportamiento histórico;
un formato desconocido no se considera válido.

Consulta el [procedimiento de usuario](/guia-usuario/registro-administraciones-cuidados#registrar-una-administraci%C3%B3n-fuera-de-pauta).
