

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Aggiornamento di una risorsa FHIR
<a name="managing-fhir-resources-update"></a>

L'`update`interazione FHIR crea una nuova versione corrente per una risorsa esistente o crea una versione iniziale se non esiste già alcuna risorsa per la determinata risorsa. `id` Per ulteriori informazioni, consulta la [https://hl7.org/fhir/R4/http.html#update](https://hl7.org/fhir/R4/http.html#update)documentazione dell'API **FHIR R4 RESTful **.

**Per aggiornare una risorsa FHIR**  


1. Colleziona HealthLake `region` e `datastoreId` valorizza. Per ulteriori informazioni, consulta [Ottenere le proprietà dell'archivio dati](managing-data-stores-describe.md).

1. Determina il tipo di FHIR `Resource` da aggiornare e raccogliere il `id` valore associato. Per ulteriori informazioni, consulta [Tipi di risorse](reference-fhir-resource-types.md). 

1. Costruisci un URL per la richiesta utilizzando i valori raccolti per HealthLake `region` e. `datastoreId` Includi anche il `Resource` tipo FHIR e il relativo associato. `id` Per visualizzare l'intero percorso dell'URL nell'esempio seguente, scorri il pulsante **Copia**.

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

1. Costruisci un `JSON` corpo per la richiesta, specificando gli aggiornamenti dei dati FHIR da effettuare. Ai fini di questa procedura, salva il file con nome. `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. Inviare la richiesta . L'`update`interazione FHIR utilizza una `PUT` richiesta con autorizzazione [AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) o SMART on FHIR. L'`curl`esempio seguente aggiorna una `Patient` risorsa in. HealthLake Per visualizzare l'intero esempio, scorri il pulsante **Copia**.

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

   Autorizzazione 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
   ```

   La richiesta restituirà un codice di stato `200` HTTP se una risorsa esistente viene *aggiornata* o un codice di stato `201` HTTP se viene creata una nuova risorsa.

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

   Esempio di autorizzazione SMART on FHIR per il tipo di [https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html)dati.

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

   Il chiamante può assegnare le autorizzazioni nella lambda di autorizzazione. Per ulteriori informazioni, consulta [OAuth Cannocchiali 2.0](reference-smart-on-fhir-oauth-scopes.md).

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

   1. Accedi alla pagina [Esegui query](https://console.aws.amazon.com/healthlake/home#/crud) sulla console. HealthLake 

   2. Nella sezione **Impostazioni della query**, effettua le seguenti selezioni.
   + **Data Store ID**: scegli un ID del data store per generare una stringa di query.
   + **Tipo di query**: scegli`Update (PUT)`.
   + **Tipo di risorsa**: scegli il [tipo di risorsa](reference-fhir-resource-types.md) FHIR da aggiornare o creare.
   + **Corpo della richiesta**: crea un corpo JSON per la richiesta, specificando i dati FHIR con cui aggiornare la risorsa.

   3. Scegli **Esegui query**.

------

## Aggiornamento delle risorse FHIR in base alle condizioni
<a name="managing-fhir-resources-update-conditional"></a>

L'aggiornamento condizionale consente di aggiornare una risorsa esistente in base ad alcuni criteri di ricerca di identificazione, anziché tramite FHIR logico. `id` Quando il server elabora l'aggiornamento, esegue una ricerca utilizzando le funzionalità di ricerca standard per il tipo di risorsa, con l'obiettivo di risolvere una singola logica `id` per la richiesta.

L'azione intrapresa dal server dipende dal numero di corrispondenze trovate:
+ **Nessuna corrispondenza, non `id` fornita nel corpo della richiesta**: il server crea la risorsa FHIR.
+ **Nessuna corrispondenza, `id` fornita e la risorsa non esiste già con`id`: Il** server considera l'interazione come un'interazione Update as Create.
+ **Nessuna corrispondenza, `id` fornita e già esistente**: il server rifiuta l'aggiornamento con un `409 Conflict` errore.
+ **Una corrispondenza, nessuna risorsa `id` fornita OPPURE (risorsa `id` fornita e corrisponde alla risorsa trovata)**: il server esegue l'aggiornamento rispetto alla risorsa corrispondente come sopra dove, se la risorsa è stata aggiornata, il server DEVE restituire un`200 OK`.
+ **One Match, risorsa `id` fornita ma non corrispondente alla risorsa trovata**: il server restituisce un `409 Conflict` errore che indica che la specifica dell'ID del client era un problema, preferibilmente con un `OperationOutcome`
+ **Corrispondenze multiple**: Il server restituisce un `412 Precondition Failed` errore che indica che i criteri del client non erano sufficientemente selettivi, preferibilmente con un OperationOutcome

L'esempio seguente aggiorna una `Patient` risorsa il cui nome è peter, la data di nascita è il 1° gennaio 2000 e il numero di telefono è 1234567890.

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

## Configurazione del livello di convalida per gli aggiornamenti delle risorse
<a name="validation-level-resource-updates"></a>

Quando si aggiorna una risorsa FHIR, è possibile facoltativamente specificare un'intestazione `x-amzn-healthlake-fhir-validation-level` HTTP per configurare un livello di convalida per la risorsa. AWS HealthLake attualmente supporta i seguenti livelli di convalida:
+ `strict`: Le risorse vengono convalidate in base all'elemento del profilo della risorsa o alla specifica R4 se non è presente alcun profilo. Questo è il livello di convalida predefinito per. AWS HealthLake
+ `structure-only`: Le risorse vengono convalidate rispetto a R4, ignorando i profili di riferimento.
+ `minimal`: Le risorse vengono convalidate minimamente, ignorando alcune regole R4. Le risorse che non superano i controlli di struttura richiesti search/analytics verranno aggiornate per includere un avviso per l'audit.

Le risorse aggiornate con il livello di convalida minimo possono essere inserite in un Datastore nonostante la convalida non riuscita richiesta per l'indicizzazione della ricerca. In questo caso, le risorse verranno aggiornate per includere un'estensione specifica di Healthlake per documentare tali errori:

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

Inoltre, la seguente intestazione di risposta HTTP verrà inclusa con il valore «true»:

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

**Nota**  
Tieni presente che i dati inseriti in formato non corretto secondo la specifica R4 potrebbero non essere ricercabili come previsto se sono presenti questi errori.