

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

# Ricerca di risorse FHIR in AWS HealthLake
<a name="searching-fhir-resources"></a>

Utilizza l'[https://hl7.org/fhir/R4/http.html#search](https://hl7.org/fhir/R4/http.html#search)interazione FHIR per cercare un set di risorse FHIR in un archivio HealthLake dati in base ad alcuni criteri di filtro. L'`search`interazione può essere eseguita utilizzando una richiesta `GET` or`POST`. Per le ricerche che coinvolgono informazioni di identificazione personale (PII) o informazioni sanitarie protette (PHI), si consiglia di utilizzare `POST` le richieste, poiché PII e PHI vengono aggiunti come parte del corpo della richiesta e vengono crittografati durante il transito.

**Nota**  
L'`search`interazione FHIR descritta in questo capitolo è costruita in conformità allo standard FHIR R4 per lo HL7 scambio di dati sanitari. Poiché si tratta di una rappresentazione di un servizio HL7 FHIR, non viene offerto tramite e. AWS CLI AWS SDKs Per ulteriori informazioni, consulta la [https://hl7.org/fhir/R4/http.html#search](https://hl7.org/fhir/R4/http.html#search)documentazione dell'API **FHIR R4 RESTful **.

HealthLake supporta un sottoinsieme di parametri di ricerca FHIR R4. Per ulteriori informazioni, consulta [Parametri di ricerca FHIR R4 per HealthLake](reference-fhir-search-parameters.md).

**Topics**
+ [Ricerca con GET](searching-fhir-resources-get.md)
+ [Ricerca con POST](searching-fhir-resources-post.md)
+ [Livelli di coerenza della ricerca](searching-fhir-consistency-levels.md)

# Ricerca di risorse FHIR con GET
<a name="searching-fhir-resources-get"></a>

È possibile utilizzare `GET` le richieste per effettuare ricerche in un archivio HealthLake dati. Durante l'utilizzo`GET`, HealthLake supporta la fornitura di parametri di ricerca come parte dell'URL, ma non come parte del corpo della richiesta. Per ulteriori informazioni, consulta [Parametri di ricerca FHIR R4 per HealthLake](reference-fhir-search-parameters.md).

**Importante**  
Per le ricerche che coinvolgono informazioni di identificazione personale (PII) o informazioni sanitarie protette (PHI), le migliori pratiche di sicurezza richiedono l'utilizzo delle `POST` richieste, poiché PII e PHI vengono aggiunti come parte del corpo della richiesta e vengono crittografati durante il transito. Per ulteriori informazioni, consulta [Ricerca di risorse FHIR con POST](searching-fhir-resources-post.md).

La procedura seguente è seguita da esempi da utilizzare `GET` per effettuare ricerche in un archivio dati. HealthLake 

**Per effettuare ricerche in un HealthLake data store con `GET`**  


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 risorsa FHIR da cercare 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 i parametri di [ricerca](reference-fhir-search-parameters.md) supportati. Per visualizzare l'intero percorso dell'URL nell'esempio seguente, scorri il pulsante **Copia**.

   ```
   GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Resource{?[parameters]{&_format=[mime-type]}}
   ```

1. Invia la `GET` richiesta con l'autorizzazione [AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) o SMART on FHIR. L'`curl`esempio seguente restituisce il numero totale di `Patient` risorse in un archivio HealthLake dati. Per visualizzare l'intero esempio, scorri il pulsante **Copia**.

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

   Autorizzazione SIGv4

   ```
   curl --request GET \
     'https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_total=accurate' \   
     --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'
   ```

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

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

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

**Nota**  
La HealthLake console supporta solo l'autorizzazione SigV4. L'autorizzazione SMART on FHIR è supportata tramite e. AWS CLI AWS SDKs

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

   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`Search with GET`.
   + **Tipo di risorsa**: scegli il [tipo di risorsa](reference-fhir-resource-types.md) FHIR su cui eseguire la ricerca.
   + **Parametri di ricerca**: seleziona un [parametro di ricerca](reference-fhir-search-parameters.md) o una combinazione di parametri di ricerca per concentrare la ricerca su record specifici.

   3. Scegli **Esegui query**.

------

## Esempi: ricerca con GET
<a name="searching-fhir-resources-get-examples"></a>

Le schede seguenti forniscono esempi per la ricerca su tipi di risorse FHIR specifici con. `GET` Gli esempi mostrano come specificare i parametri di ricerca nella richiesta. URLs

**Nota**  
La HealthLake console supporta solo l'autorizzazione SigV4. L'autorizzazione SMART on FHIR è supportata tramite e. AWS CLI AWS SDKs  
HealthLake supporta un sottoinsieme di parametri di ricerca FHIR R4. Per ulteriori informazioni, consulta [Parametri di ricerca](reference-fhir-search-parameters.md).

------
#### [ Patient (age) ]

Sebbene l'età non sia un tipo di risorsa definito in FHIR, viene acquisita come elemento del tipo di risorsa. [https://hl7.org/fhir/R4/patient.html](https://hl7.org/fhir/R4/patient.html) Utilizzate l'esempio seguente per effettuare una richiesta di ricerca `GET` basata sui tipi di [https://hl7.org/fhir/R4/patient.html](https://hl7.org/fhir/R4/patient.html)risorse utilizzando l'elemento [BirthDate](https://hl7.org/fhir/R4/patient-definitions.html#Patient.birthDate) e il `eq` [comparatore](reference-fhir-search-parameters.md#search-comparators) di ricerca per cercare individui nati nel 1997.

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?birthdate=eq1997
```

------
#### [ Condition ]

Utilizzate l'esempio seguente per effettuare una `GET` richiesta sul tipo di [https://hl7.org/fhir/R4/condition.html](https://hl7.org/fhir/R4/condition.html)risorsa. La ricerca trova le condizioni nell'archivio HealthLake dati che contengono il codice medico SNOMED`72892002`, che si traduce in. `Normal pregnancy`

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Condition?code=72892002
```

------
#### [ DocumentationReference ]

L'esempio seguente mostra come creare una `GET` richiesta sul tipo di [https://hl7.org/fhir/R4/documentreference.html](https://hl7.org/fhir/R4/documentreference.html)risorsa per `Patient` una o più persone con diagnosi di streptococco e a cui è stata prescritta anche amoxicillina.

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/DocumentReference?_lastUpdated=le2021-12-19&infer-icd10cm-entity-text-concept-score;=streptococcal|0.6&infer-rxnorm-entity-text-concept-score=Amoxicillin|0.8
```

------
#### [ Location ]

Utilizzate l'esempio seguente per effettuare una richiesta sul tipo di risorsa. `GET` [https://hl7.org/fhir/R4/location.html](https://hl7.org/fhir/R4/location.html) La ricerca seguente trova le posizioni nel tuo archivio HealthLake dati che contengono il nome della città Boston come parte dell'indirizzo.

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Location?address=boston
```

------
#### [ Observation ]

Utilizza l'esempio seguente per effettuare una richiesta di ricerca `GET` basata sul tipo di [https://hl7.org/fhir/R4/observation.html](https://hl7.org/fhir/R4/observation.html)risorsa. Questa ricerca utilizza il [parametro `value-concept` di ricerca](reference-fhir-search-parameters.md) per cercare il codice medico`266919005`, che si traduce in`Never smoker`.

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Observation?value-concept=266919005
```

------

# Ricerca di risorse FHIR con POST
<a name="searching-fhir-resources-post"></a>

Puoi utilizzare l'[https://hl7.org/fhir/R4/search.html](https://hl7.org/fhir/R4/search.html)interazione FHIR con `POST` le richieste di ricerca in un archivio HealthLake dati. Quando si utilizza`POST`, HealthLake supporta i parametri di ricerca nell'URL o nel corpo di una richiesta, ma non è possibile utilizzarli entrambi in una singola richiesta.

**Importante**  
Per le ricerche che coinvolgono informazioni di identificazione personale (PII) o informazioni sanitarie protette (PHI), le migliori pratiche di sicurezza richiedono l'utilizzo delle `POST` richieste, poiché PII e PHI vengono aggiunti come parte del corpo della richiesta e vengono crittografati durante il transito.

La procedura seguente è seguita da esempi che utilizzano l'interazione FHIR R4 `search` con per effettuare ricerche in un archivio dati. `POST` HealthLake Gli esempi mostrano come specificare i parametri di ricerca nel corpo della richiesta JSON.

**Per effettuare ricerche in un archivio HealthLake dati con `POST`**  


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 risorsa FHIR da cercare 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 e `_search` l'interazione FHIR. Per visualizzare l'intero percorso dell'URL nell'esempio seguente, scorri il pulsante **Copia**.

   ```
   POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Resource/_search
   ```

1. Costruisci un corpo JSON per la richiesta, specificando i dati FHIR da cercare. Ai fini di questa procedura, cercherai `Observation` risorse per scoprire pazienti che non hanno mai fumato. Per specificare lo stato del codice medico`Never smoker`, impostalo `value-concept=266919005` nel corpo della richiesta JSON. Salva il file con nome `search-observation.json`.

   ```
   value-concept=266919005
   ```

1. Inviare la richiesta . L'`search`interazione FHIR utilizza la `GET` richiesta con l'autorizzazione [AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) o SMART on FHIR.
**Nota**  
Quando si effettua una `POST` richiesta con parametri di ricerca nel corpo della richiesta, usala `Content-Type: application/x-www-form-urlencoded` come parte dell'intestazione.

   L'`curl`esempio seguente effettua una richiesta di ricerca basata su POST sul tipo di `Observation` risorsa. La richiesta utilizza il parametro [https://hl7.org/fhir/R4/observation.html#search](https://hl7.org/fhir/R4/observation.html#search)di ricerca per cercare il codice medico `266919005` che indichi il valore`Never smoker`. Per visualizzare l'intero esempio, scorri il pulsante **Copia**.

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

   Autorizzazione SIGv4

   ```
   curl --request POST \
     'https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Observation/_search' \						
     --aws-sigv4 'aws:amz:region:healthlake' \
     --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
     --header "x-amz-security-token:$AWS_SESSION_TOKEN" \
     --header "Content-Type: application/x-www-form-urlencoded"							
     --header "Accept: application/json"
     --data @search-observation.json
   ```

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

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

   ```
   {
       "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).

------

## Esempi: ricerca con POST
<a name="searching-fhir-resources-post-examples"></a>

Le schede seguenti forniscono esempi per la ricerca su tipi di risorse FHIR specifici con. `POST` Gli esempi mostrano come specificare una richiesta in. URLs

**Nota**  
La HealthLake console supporta solo l'autorizzazione SIGv4. L'autorizzazione SMART on FHIR è supportata tramite e. AWS CLI AWS SDKs  
HealthLake supporta un sottoinsieme di parametri di ricerca FHIR R4. Per ulteriori informazioni, consulta [Parametri di ricerca](reference-fhir-search-parameters.md).

------
#### [ Patient (age) ]

Sebbene l'età non sia un tipo di risorsa definito in FHIR, viene acquisita come elemento del tipo di risorsa. [https://hl7.org/fhir/R4/patient.html](https://hl7.org/fhir/R4/patient.html) Utilizzate l'esempio seguente per effettuare una richiesta di ricerca `POST` basata sul tipo di `Patient` risorsa. L'esempio di ricerca seguente utilizza il `eq` [comparatore](reference-fhir-search-parameters.md#search-comparators) di ricerca per cercare persone nate nel 1997.

```
POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/_search
```

Per specificare l'anno 1997 nella ricerca, aggiungete il seguente elemento al corpo della richiesta.

```
birthdate=eq1997
```

------
#### [ Condition ]

Utilizzare quanto segue per effettuare una `POST` richiesta sul tipo di `Condition` risorsa. Questa ricerca consente di trovare le posizioni nell'archivio HealthLake dati che contengono il codice medico`72892002`.

È necessario specificare l'URL della richiesta e il corpo della richiesta. Ecco un esempio di URL di richiesta.

```
POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Condition/_search
```

Per specificare il codice medico da cercare, aggiungi il seguente elemento JSON al corpo della richiesta.

```
code=72892002
```

------
#### [ DocumentReference ]

Per visualizzare i risultati dell'elaborazione integrata HealthLake del linguaggio naturale (NLP) quando si effettua una `POST` richiesta sul tipo di `DocumentReference` risorsa, formatta una richiesta come segue.

```
POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/DocumentReference/_search
```

Per specificare i parametri di `DocumentReference` ricerca a cui fare riferimento, vedere. [Tipi di parametri di ricerca](reference-fhir-search-parameters.md#search-parameter-types) La seguente stringa di query utilizza più parametri di ricerca per cercare nelle operazioni dell'API Amazon Comprehend Medical utilizzate per generare i risultati NLP integrati.

```
_lastUpdated=le2021-12-19&infer-icd10cm-entity-text-concept-score;=streptococcal|0.6&infer-rxnorm-entity-text-concept-score=Amoxicillin|0.8
```

------
#### [ Location ]

Usa l'esempio seguente per effettuare una `POST` richiesta sul tipo di risorsa. `Location` La ricerca trova le posizioni nell'archivio HealthLake dati che contengono il nome della città Boston come parte dell'indirizzo.

È necessario specificare un URL e un corpo della richiesta. Ecco un esempio di URL di richiesta.

```
POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Location/_search
```

Per specificare `Boston` nella ricerca, aggiungi il seguente elemento al corpo della richiesta:

```
address=Boston
```

------
#### [ Observation ]

Utilizzate l'esempio seguente per effettuare una richiesta di ricerca `POST` basata sul tipo di `Observation` risorsa. La ricerca utilizza il parametro `value-concept` di ricerca per cercare il codice medico, `266919005` che indica`Never smoker`.

```
POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Observation/_search
```

Per specificare lo stato`Never smoker`, imposta `value-concept=266919005` nel corpo del file JSON.

```
value-concept=266919005
```

------

# Livelli di coerenza della ricerca FHIR
<a name="searching-fhir-consistency-levels"></a>

L'indice HealthLake di ricerca di AWS opera su un modello Eventual Consistency per `GET` e `POST` con le operazioni SEARCH. Con una certa coerenza, se c'è un aggiornamento dell'indice di ricerca in sospeso per una risorsa, i risultati della ricerca escludono la versione N-1 della risorsa fino al completamento dell'aggiornamento dell'indice.

 AWS HealthLake ora include la possibilità di selezionare il comportamento del modello di coerenza per le risorse aggiornate. Gli sviluppatori possono includere «Eventual Consistency», il comportamento predefinito descritto sopra o «Strong Consistency». Strong Consistency consentirà di includere nei risultati di ricerca la versione N-1 della risorsa per le risorse con aggiornamenti dell'indice di ricerca in sospeso. Questo può essere utilizzato in scenari d'uso in cui tutte le risorse sono necessarie nel risultato anche quando l'aggiornamento dell'indice di ricerca non è ancora stato completato. I clienti possono controllare questo comportamento utilizzando l'intestazione della `x-amz-fhir-history-consistency-level` richiesta. 

## Livelli di coerenza
<a name="fhir-search-consistency-levels"></a>

Forte coerenza  
Impostato `x-amz-fhir-history-consistency-level: strong` per restituire tutti i record corrispondenti, inclusi quelli con aggiornamenti dell'indice di ricerca in sospeso. Utilizzate questa opzione quando avete bisogno di cercare risorse subito dopo gli aggiornamenti.

Consistenza finale  
Impostata `x-amz-fhir-history-consistency-level: eventual` per restituire solo i record che hanno completato gli aggiornamenti dell'indice di ricerca. Questo è il comportamento predefinito se non viene specificato alcun livello di coerenza.

## Esempio di utilizzo
<a name="fhir-search-usage"></a>

1. Quando si aggiorna una risorsa:

   ```
   POST <baseURL>/Patient
   Content-Type: application/fhir+json
   x-amz-fhir-history-consistency-level: strong
   
   {
     "resourceType": "Patient",
     "id": "123",
     "meta": {
       "profile": ["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]
     },
     "identifier": [
       {
         "system": "http://example.org/identifiers",
         "value": "123"
       }
     ],
     "active": true,
     "name": [
       {
         "family": "Smith",
         "given": ["John"]
       }
     ],
     "gender": "male",
     "birthDate": "1970-01-01"
   }
   ```

1. Ricerca successiva:

   ```
   GET <baseURL>/Patient?_id=123
   ```

## Best practice
<a name="fhir-search-best-practices"></a>
+ Usa una forte coerenza quando devi cercare immediatamente risorse aggiornate di recente
+ Utilizza la coerenza finale per le domande generiche in cui la visibilità immediata non è fondamentale
+ Considerate il compromesso tra visibilità immediata e potenziale impatto sulle prestazioni

**Nota**  
L'impostazione del livello di coerenza influisce sulla velocità di visualizzazione delle risorse aggiornate nei risultati di ricerca, ma non sull'effettiva archiviazione delle risorse.  
L'impostazione dell'`x-amz-fhir-history-consistency-level`intestazione opzionale su «strong» raddoppia il consumo di capacità di scrittura per risorsa.  
Questa funzionalità è applicabile solo ai data store per cui è abilitata la cronologia delle versioni (tutti i datastore creati dopo il 25 ottobre 2024 l'hanno abilitata per impostazione predefinita).