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
| 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 |
Sí | 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:
-
Valida la sintaxis del parche JSON según las RFC 6902 y RFC 6901
-
Aplica las operaciones de forma atómica: todas las operaciones se realizan correctamente o todas fallan
-
Actualiza el ID de versión del recurso y crea una nueva entrada en el historial
-
Conserva el recurso original en el historial antes de aplicar los cambios
-
Valida las restricciones de recursos del FHIR después de aplicar los parches
-
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+jsonel 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