

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Atualizando um recurso FHIR
<a name="managing-fhir-resources-update"></a>

A `update` interação FHIR cria uma nova versão atual para um recurso existente ou cria uma versão inicial se nenhum recurso já existir para o determinado. `id` Para obter informações adicionais, consulte a [https://hl7.org/fhir/R4/http.html#update](https://hl7.org/fhir/R4/http.html#update)documentação da API **FHIR R4 RESTful **.

**Para atualizar um recurso FHIR**  


1. Colecione HealthLake `region` e `datastoreId` valorize. Para obter mais informações, consulte [Obter propriedades do datastore](managing-data-stores-describe.md).

1. Determine o tipo de FHIR `Resource` para atualizar e coletar o valor associado`id`. Para obter mais informações, consulte [Resource types](reference-fhir-resource-types.md). 

1. Crie uma URL para a solicitação usando os valores coletados para HealthLake `region` `datastoreId` e. Inclua também o `Resource` tipo FHIR e seus associados. `id` Para ver todo o caminho do URL no exemplo a seguir, role até o botão **Copiar**.

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

1. Crie um `JSON` corpo para a solicitação, especificando as atualizações de dados do FHIR a serem feitas. Para fins desse procedimento, salve o arquivo 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. Envie a solicitação . A `update` interação FHIR usa uma `PUT` solicitação com [AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) ou SMART na autorização FHIR. O `curl` exemplo a seguir atualiza um `Patient` recurso em HealthLake. Para ver o exemplo inteiro, role até o botão **Copiar**.

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

   Autorização 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
   ```

   Sua solicitação retornará um código de status `200` HTTP se um recurso existente for *atualizado* ou um código de status `201` HTTP se um novo recurso for criado.

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

   SMART no exemplo de autorização FHIR para o tipo de [https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html)dados.

   ```
   {
       "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\"]}"
   }
   ```

   O chamador pode atribuir permissões na autorização lambda. Para obter mais informações, consulte [OAuth escopos 2.0](reference-smart-on-fhir-oauth-scopes.md).

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

   1. Faça login na página [Executar consulta](https://console.aws.amazon.com/healthlake/home#/crud) no HealthLake console.

   2. Na seção **Configurações da consulta**, faça as seguintes seleções.
   + **ID do armazenamento de dados** — escolha um ID do armazenamento de dados para gerar uma sequência de caracteres de consulta.
   + **Tipo de consulta** — escolha`Update (PUT)`.
   + **Tipo de recurso** — escolha o [tipo de recurso](reference-fhir-resource-types.md) FHIR para atualizar ou criar.
   + **Corpo da solicitação** — construa um corpo JSON para a solicitação, especificando os dados FHIR com os quais atualizar o recurso.

   3. Selecione **Executar consulta**.

------

## Atualização dos recursos do FHIR com base nas condições
<a name="managing-fhir-resources-update-conditional"></a>

A atualização condicional permite que você atualize um recurso existente com base em alguns critérios de pesquisa de identificação, em vez de usar o `id` FHIR lógico. Quando o servidor processa a atualização, ele realiza uma pesquisa usando seus recursos de pesquisa padrão para o tipo de recurso, com o objetivo de resolver uma única lógica `id` para a solicitação.

A ação que o servidor executa depende de quantas correspondências ele encontra:
+ **Sem correspondências, não `id` fornecido no corpo da solicitação**: o servidor cria o recurso FHIR.
+ **Nenhuma correspondência, `id` fornecida e o recurso ainda não existe com o `id`**: O servidor trata a interação como uma interação de atualização como criação.
+ **Nenhuma correspondência, `id` fornecida e já existe**: o servidor rejeita a atualização com um `409 Conflict` erro.
+ **Uma correspondência, nenhum recurso `id` fornecido OU (recurso `id` fornecido e corresponde ao recurso encontrado)**: O servidor executa a atualização em relação ao recurso correspondente conforme descrito acima, onde, se o recurso foi atualizado, o servidor DEVE retornar `200 OK` a.
+ **One Match, recurso `id` fornecido, mas não corresponde ao recurso encontrado**: o servidor retorna um `409 Conflict` erro indicando que a especificação do ID do cliente era um problema, preferencialmente com um `OperationOutcome`
+ **Várias correspondências**: o servidor retorna um `412 Precondition Failed` erro indicando que os critérios do cliente não foram seletivos o suficiente, de preferência com um OperationOutcome

O exemplo a seguir atualiza um `Patient` recurso cujo nome é peter, data de nascimento é 1º de janeiro de 2000 e número de telefone 1234567890.

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

## Configurando o nível de validação para atualizações de recursos
<a name="validation-level-resource-updates"></a>

Ao atualizar um recurso FHIR, você pode especificar opcionalmente um cabeçalho `x-amzn-healthlake-fhir-validation-level` HTTP para configurar um nível de validação para o recurso. AWS HealthLake atualmente suporta os seguintes níveis de validação:
+ `strict`: os recursos são validados de acordo com o elemento de perfil do recurso ou com a especificação R4 se nenhum perfil estiver presente. Esse é o nível de validação padrão para AWS HealthLake.
+ `structure-only`: os recursos são validados em relação ao R4, ignorando quaisquer perfis referenciados.
+ `minimal`: os recursos são validados minimamente, ignorando certas regras do R4. Os recursos que falharem nas verificações de estrutura exigidas search/analytics serão atualizados para incluir um aviso para auditoria.

Recursos atualizados com o nível mínimo de validação podem ser ingeridos em um Datastore, apesar da falha na validação necessária para a indexação de pesquisas. Nesse caso, os recursos serão atualizados para incluir uma extensão específica do Healthlake para documentar essas falhas:

```
{
    "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.\"}]}"
}
```

Além disso, o seguinte cabeçalho de resposta HTTP será incluído com o valor “true”:

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

**nota**  
Observe que os dados ingeridos que estão malformados de acordo com a especificação R4 podem não ser pesquisáveis conforme o esperado se esses erros estiverem presentes.