Modificación de recursos con la operación PATCH - AWS HealthLake

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Modificación de recursos con la operación PATCH

AWS HealthLake ahora es compatible con la operación PATCH para los recursos del FHIR, lo que le permite modificar los recursos seleccionando elementos específicos para añadirlos, sustituirlos o eliminarlos sin necesidad de actualizar todo el recurso. Esta operación resulta especialmente útil para los clientes remotos o aquellos con un ancho de banda limitado que desean reducir el uso de la red. Esta operación resulta especialmente útil cuando se necesita:

  • Realice actualizaciones específicas en recursos de gran tamaño

  • Reduzca el uso del ancho de banda de

  • Realice modificaciones atómicas en elementos de recursos específicos

  • Minimice el riesgo de sobrescribir los cambios simultáneos

Uso

La operación PATCH se puede invocar en los recursos del FHIR mediante el método HTTP PATCH:

Operaciones admitidas

PATCH [base]/[resource-type]/[id]{?_format=[mime-type]}

Operaciones PATCH compatibles

HealthLake admite las siguientes operaciones de parches JSON según el RFC 6902:

Operation Descripción
add Añada un nuevo valor al recurso
remove Eliminar un valor del recurso
replace Reemplace un valor existente en el recurso
move Funcionalmente idéntico a una operación de «eliminar» en la ubicación «desde», seguida inmediatamente de una operación de «adición» en la ubicación de destino con el valor que se acaba de eliminar
copy Copie el valor de una ubicación específica a la ubicación de destino
test Compruebe que un valor en la ubicación de destino es igual a un valor especificado

Encabezados de solicitud

Encabezado Obligatorio Descripción
Content-Type Debe ser application/json-patch+json
If-Match No Actualización condicional específica de la versión mediante ETag

Ejemplos

Solicitud de PARCHE con múltiples operaciones

PATCH [base]/Patient/example Content-Type: application/json-patch+json If-Match: W/"1" [ { "op": "replace", "path": "/name/0/family", "value": "Smith" }, { "op": "add", "path": "/telecom/-", "value": { "system": "phone", "value": "************", "use": "home" } }, { "op": "remove", "path": "/address/0" }, { "op": "move", "from": "/name/0/family", "path": "/name/1/family" }, { "op": "test", "path": "/gender", "value": "male" }, { "op": "copy", "from": "/name/0", "path": "/name/1" } ]
Solicitud de PARCHE con una sola operación

PATCH [base]/Patient/example Content-Type: application/json-patch+json [ { "op": "replace", "path": "/active", "value": false } ]
Respuesta de ejemplo

La operación devuelve el recurso actualizado con la información de la nueva versión:

HTTP/1.1 200 OK Content-Type: application/fhir+json ETag: W/"2" Last-Modified: Mon, 05 May 2025 10:10:10 GMT { "resourceType": "Patient", "id": "example", "active": true, "name": [ { "family": "Smith", "given": ["John"] } ], "telecom": [ { "system": "phone", "value": "************", "use": "home" } ], "meta": { "versionId": "2", "lastUpdated": "2025-05-05T10:10:10Z" } }

Sintaxis de la ruta del parche JSON

El parámetro de ruta utiliza la sintaxis JSON Pointer (RFC 6901):

Ejemplo de ruta Descripción
/name/0/family Elemento familiar del nombre
/telecom/- Añádalo a la matriz de telecomunicaciones
/active Elemento activo a nivel de raíz
/address/0/line/1 Segunda línea de la primera dirección

Comportamiento

La operación PATCH:

  1. Valida la sintaxis del parche JSON según las RFC 6902 y RFC 6901

  2. Aplica las operaciones de forma atómica: todas las operaciones se realizan correctamente o todas fallan

  3. Actualiza el ID de versión del recurso y crea una nueva entrada en el historial

  4. Conserva el recurso original en el historial antes de aplicar los cambios

  5. Valida las restricciones de recursos del FHIR después de aplicar los parches

  6. Admite actualizaciones condicionales mediante el encabezado If-Match con ETag

Gestión de errores

La operación gestiona las siguientes condiciones de error:

  • 400 Solicitud errónea: sintaxis de parche no válida (solicitud no conforme o parche JSON mal formado)

  • 404 No encontrado: no se encontró el recurso (el ID especificado no existe)

  • 409 Conflicto: conflicto de versiones (se proporciona un identificador de versión no actualizado o actualizaciones simultáneas)

  • 422 Entidad inprocesable: las operaciones de parche no se pueden aplicar a los elementos de recursos especificados

Advertencias

  • Solo se admite application/json-patch+json el tipo de contenido

  • No se admiten las operaciones PATCH condicionales que utilizan condiciones de búsqueda

Para obtener más información sobre las operaciones PATCH, consulte la documentación del FHIR R4 PATCH.