

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à.

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

L'`delete`interazione FHIR rimuove una risorsa FHIR esistente da un HealthLake archivio dati. Per ulteriori informazioni, consulta la documentazione dell'[https://hl7.org/fhir/R4/http.html#delete](https://hl7.org/fhir/R4/http.html#delete)API **FHIR RESTful R4**.

**Per eliminare una risorsa FHIR**  


1. Raccogli 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 eliminare e raccogli 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**.

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

1. Inviare la richiesta . L'`delete`interazione FHIR utilizza una `DELETE` 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 rimuove una `Patient` risorsa FHIR esistente da un HealthLake archivio dati. Per visualizzare l'intero esempio, scorrete il pulsante **Copia**.

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

   Autorizzazione SIGv4

   ```
   curl --request DELETE \
     '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'
   ```

   Il server restituisce un codice di stato `204` HTTP che conferma che la risorsa è stata rimossa dall' HealthLake archivio dati. Se una richiesta di eliminazione ha esito negativo, riceverai una `400` serie di codici di stato HTTP che indica il motivo per cui la richiesta non è riuscita.

------
#### [ 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`Delete`.
   + **Tipo di risorsa**: scegli il [tipo di risorsa](reference-fhir-resource-types.md) FHIR da eliminare.
   + **ID risorsa**: immettere l'ID della risorsa FHIR.

   3. Scegli **Esegui query**.

------

## Eliminazione delle risorse FHIR in base a condizioni
<a name="conditional-delete-fhir"></a>

L'eliminazione condizionale è particolarmente utile quando non si conosce l'ID specifico della risorsa FHIR ma si hanno altre informazioni di identificazione sulla risorsa che si desidera eliminare.

L'eliminazione condizionale consente di eliminare una risorsa esistente in base a criteri di ricerca anziché in base all'ID FHIR logico. Quando il server elabora la richiesta di eliminazione, esegue una ricerca utilizzando funzionalità di ricerca standard per il tipo di risorsa per risolvere un singolo ID logico per la richiesta.

### Come funziona l'eliminazione condizionale
<a name="conditional-delete-works"></a>

**L'azione del server dipende dal numero di corrispondenze che trova:**  


1. **Nessuna corrispondenza**: il server tenta un'eliminazione ordinaria e risponde in modo appropriato (404 Not Found per una risorsa inesistente, 204 Nessun contenuto per una risorsa già eliminata)

1. **Una risposta: il server esegue un'eliminazione ordinaria sulla risorsa corrispondente**

1. **Corrispondenze multiple**: restituisce un errore 412 Precondition Failed che indica che i criteri del client non erano sufficientemente selettivi

### Scenari di risposta
<a name="response-scenerios"></a>

AWS HealthLake gestisce le operazioni di eliminazione condizionale con i seguenti modelli di risposta:

**Operazioni riuscite**  

+ Quando i criteri di ricerca identificano correttamente una singola risorsa attiva, il sistema restituisce **204 No Content** dopo aver completato l'eliminazione, proprio come le operazioni di eliminazione standard.

**Eliminazione condizionale basata su ID**  
Quando si esegue l'eliminazione condizionale in base `id` a parametri aggiuntivi (`createdAt`,`tag`, o): `_lastUpdated`
+ **204 Nessun contenuto**: la risorsa è già stata eliminata
+ **404 Not Found**: La risorsa non esiste
+ **409 Conflitto**: l'ID corrisponde ma gli altri parametri non corrispondono

**Non-ID-Based Eliminazione condizionale**  
Quando non `id` viene fornito o quando si utilizzano parametri diversi da `createdAt``tag`, oppure`_lastUpdated`:
+ **404 non trovato**: Nessuna corrispondenza trovata

**Situazioni di conflitto**  
Diversi scenari generano 412 risposte non riuscite alla condizione preliminare:
+ Diverse risorse corrispondono ai criteri di ricerca (criteri non sufficientemente specifici)
+ La versione è in conflitto quando si utilizzano ETag intestazioni con `If-Match`
+ Aggiornamenti delle risorse che si verificano tra le operazioni di ricerca ed eliminazione

**Esempio di eliminazione condizionale riuscita**  
L'esempio seguente elimina una risorsa Patient in base a criteri specifici:

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

Questa richiesta elimina una risorsa Patient in cui:
+ Il nome è «peter»
+ La data di nascita è il 1 gennaio 2000
+ Il numero di telefono è 1234567890

**Best practice**  


1. Utilizza criteri di ricerca specifici per evitare corrispondenze multiple ed evitare 412 errori.

1. Prendi in considerazione le ETag intestazioni per il controllo della versione quando necessario per gestire le modifiche simultanee.

1. Gestisci le risposte agli errori in modo appropriato:
   + Per 404: perfeziona i criteri di ricerca
   + Per 412: rendi i criteri più specifici o risolvi i conflitti di versione

1. Preparatevi ai conflitti temporali in ambienti ad alta concorrenza in cui le risorse possono essere modificate tra le operazioni di ricerca ed eliminazione.