

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.

# Actualización de un recurso del FHIR
<a name="managing-fhir-resources-update"></a>

La `update` interacción del FHIR crea una nueva versión actual para un recurso existente o crea una versión inicial si aún no existe ningún recurso para ese recurso. `id` Para obtener información adicional, consulte la documentación de [https://hl7.org/fhir/R4/http.html#update](https://hl7.org/fhir/R4/http.html#update)la API **R4 RESTful del FHIR**.

**Para actualizar un recurso del FHIR**  


1.  HealthLake `region`Recopila y `datastoreId` valora. Para obtener más información, consulte [Obtención de propiedades de los almacenes de datos](managing-data-stores-describe.md).

1. Determine el tipo de `Resource` FHIR que desea actualizar y recopile el `id` valor asociado. Para obtener más información, consulte [Tipos de recurso](reference-fhir-resource-types.md). 

1. Cree una URL para la solicitud utilizando los valores recopilados para HealthLake `region` y`datastoreId`. Incluya también el `Resource` tipo FHIR y su correspondiente`id`. Para ver la ruta URL completa en el siguiente ejemplo, desplázate sobre el botón **Copiar**.

   ```
   PUT https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Resource/id
   ```

1. Cree un `JSON` cuerpo para la solicitud, especificando las actualizaciones de datos del FHIR que se van a realizar. Para este procedimiento, guarde el archivo como`update-patient.json`.

   ```
   {
       "id": "2de04858-ba65-44c1-8af1-f2fe69a977d9",
       "resourceType": "Patient",
       "active": true,
       "name": [
           {
               "use": "official",
               "family": "Doe",
               "given": [
                   "Jane"
               ]
           },
           {
               "use": "usual",
               "given": [
                   "Jane"
               ]
           }
       ],
       "gender": "female",
       "birthDate": "1985-12-31"
   }
   ```

1. Envíe la solicitud . La `update` interacción con el FHIR utiliza una `PUT` solicitud con la [versión 4 de AWS Signature](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) o SMART previa autorización del FHIR. En el siguiente `curl` ejemplo, se actualiza un `Patient` recurso en. HealthLake Para ver el ejemplo completo, desplázate sobre el botón **Copiar**.

------
#### [ SigV4 ]

   Autorización SigV4

   ```
   curl --request PUT \
     'https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id' \
     --aws-sigv4 'aws:amz:region:healthlake' \
     --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
     --header "x-amz-security-token:$AWS_SESSION_TOKEN" \
     --header 'Accept: application/json' \
     --data @update-patient.json
   ```

   Su solicitud devolverá un código de estado `200` HTTP si se *actualiza* un recurso existente o un código de estado `201` HTTP si se crea un recurso nuevo.

------
#### [ SMART on FHIR ]

   Ejemplo de autorización SMART on FHIR para el tipo [https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html)de datos.

   ```
   {
       "AuthorizationStrategy": "SMART_ON_FHIR",
       "FineGrainedAuthorizationEnabled": true,
       "IdpLambdaArn": "arn:aws:lambda:your-region:your-account-id:function:your-lambda-name",
       "Metadata": "{\"issuer\":\"https://ehr.example.com\", \"jwks_uri\":\"https://ehr.example.com/.well-known/jwks.json\",\"authorization_endpoint\":\"https://ehr.example.com/auth/authorize\",\"token_endpoint\":\"https://ehr.token.com/auth/token\",\"token_endpoint_auth_methods_supported\":[\"client_secret_basic\",\"foo\"],\"grant_types_supported\":[\"client_credential\",\"foo\"],\"registration_endpoint\":\"https://ehr.example.com/auth/register\",\"scopes_supported\":[\"openId\",\"profile\",\"launch\"],\"response_types_supported\":[\"code\"],\"management_endpoint\":\"https://ehr.example.com/user/manage\",\"introspection_endpoint\":\"https://ehr.example.com/user/introspect\",\"revocation_endpoint\":\"https://ehr.example.com/user/revoke\",\"code_challenge_methods_supported\":[\"S256\"],\"capabilities\":[\"launch-ehr\",\"sso-openid-connect\",\"client-public\",\"permission-v2\"]}"
   }
   ```

   La persona que llama puede asignar permisos en la lambda de autorización. Para obtener más información, consulte [OAuth osciloscopios 2.0](reference-smart-on-fhir-oauth-scopes.md).

------
#### [ AWS Console ]

   1. Inicie sesión en la página [Ejecutar consultas](https://console.aws.amazon.com/healthlake/home#/crud) de la HealthLake consola.

   2. En la sección de **configuración de consultas**, realice las siguientes selecciones.
   + **ID de almacén de datos**: elija un ID de almacén de datos para generar una cadena de consulta.
   + **Tipo de consulta**: elija`Update (PUT)`.
   + **Tipo de recurso**: elija el [tipo de recurso](reference-fhir-resource-types.md) FHIR que desee actualizar o crear.
   + **Cuerpo de la solicitud**: cree un cuerpo JSON para la solicitud y especifique los datos del FHIR con los que se va a actualizar el recurso.

   3. Elija **Ejecutar consulta**.

------

## Actualización de los recursos del FHIR en función de las condiciones
<a name="managing-fhir-resources-update-conditional"></a>

La actualización condicional permite actualizar un recurso existente en función de algunos criterios de búsqueda de identificación, en lugar de hacerlo mediante el FHIR `id` lógico. Cuando el servidor procesa la actualización, realiza una búsqueda utilizando sus capacidades de búsqueda estándar para el tipo de recurso, con el objetivo de resolver una única lógica `id` para la solicitud.

La acción que realice el servidor depende del número de coincidencias que encuentre:
+ **No hay coincidencias, no `id` se proporciona en el cuerpo de la solicitud**: el servidor crea el recurso FHIR.
+ **No hay coincidencias, `id` se ha proporcionado y el recurso aún no existe con el `id`**: el servidor trata la interacción como una interacción entre actualizar y crear.
+ **No hay coincidencias, `id` se ha proporcionado y ya existe**: el servidor rechaza la actualización con un `409 Conflict` error.
+ **Una coincidencia, no `id` se proporcionó ningún recurso O (recurso `id` proporcionado y coincide con el recurso encontrado)**: el servidor realiza la actualización con el recurso coincidente como se indica anteriormente, donde, si el recurso se actualizó, el servidor DEVOLVERÁ un`200 OK`.
+ **Una coincidencia, recurso `id` proporcionado pero no coincide con el recurso encontrado**: el servidor devuelve un `409 Conflict` error que indica que la especificación del identificador de cliente era un problema, preferiblemente con un `OperationOutcome`
+ **Varias coincidencias**: el servidor devuelve un `412 Precondition Failed` error que indica que los criterios del cliente no fueron lo suficientemente selectivos, preferiblemente con un OperationOutcome

En el siguiente ejemplo, se actualiza un `Patient` recurso cuyo nombre es peter, su fecha de nacimiento es el 1 de enero de 2000 y su número de teléfono es 1234567890.

```
PUT https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?name=peter&birthdate=2000-01-01&phone=1234567890
```

## Configurar el nivel de validación para las actualizaciones de recursos
<a name="validation-level-resource-updates"></a>

Al actualizar un recurso del FHIR, puede especificar opcionalmente un encabezado `x-amzn-healthlake-fhir-validation-level` HTTP para configurar un nivel de validación para el recurso. AWS HealthLake actualmente admite los siguientes niveles de validación:
+ `strict`: Los recursos se validan según el elemento de perfil del recurso o según la especificación R4 si no hay ningún perfil presente. Este es el nivel de validación predeterminado para AWS HealthLake.
+ `structure-only`: Los recursos se validan con el R4 e ignoran los perfiles a los que se hace referencia.
+ `minimal`: Los recursos se validan mínimamente, ignorando ciertas reglas de R4. Los recursos que no superen las comprobaciones de estructura requeridas se search/analytics actualizarán para incluir una advertencia para la auditoría.

Los recursos actualizados con el nivel de validación mínimo pueden incorporarse a un almacén de datos a pesar de no pasar la validación necesaria para la indexación de las búsquedas. En este caso, los recursos se actualizarán para incluir una extensión específica de Healthlake para documentar dichos errores:

```
{
    "url": "http://healthlake.amazonaws.com/fhir/StructureDefinition/validation-issue",
    "valueString": "{\"resourceType\":\"OperationOutcome\",\"issue\":[{\"severity\":\"error\",\"code\":\"processing\",\"details\":{\"text\":\"FHIR resource in payload failed FHIR validation rules.\"},\"diagnostics\":\"FHIR resource in payload failed FHIR validation rules.\"}]}"
}
```

Además, se incluirá el siguiente encabezado de respuesta HTTP con el valor «true»:

```
x-amzn-healthlake-validation-issues : true
```

**nota**  
Tenga en cuenta que es posible que los datos ingresados que tengan un formato incorrecto según la especificación R4 no se puedan buscar como se esperaba si se presentan estos errores.