

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

# Pesquisando recursos do FHIR em AWS HealthLake
<a name="searching-fhir-resources"></a>

Use a [https://hl7.org/fhir/R4/http.html#search](https://hl7.org/fhir/R4/http.html#search)interação FHIR para pesquisar um conjunto de recursos FHIR em um armazenamento de HealthLake dados com base em alguns critérios de filtro. A `search` interação pode ser realizada usando uma `POST` solicitação `GET` ou. Para pesquisas que envolvam informações de identificação pessoal (PII) ou informações de saúde protegidas (PHI), é recomendável usar `POST` solicitações, pois PII e PHI são adicionadas como parte do corpo da solicitação e criptografadas em trânsito.

**nota**  
A `search` interação FHIR descrita neste capítulo é construída em conformidade com o padrão HL7 FHIR R4 para troca de dados de assistência médica. Por ser uma representação de um serviço HL7 FHIR, não é oferecido por meio AWS CLI de e. AWS SDKs Para obter mais informações, consulte a [https://hl7.org/fhir/R4/http.html#search](https://hl7.org/fhir/R4/http.html#search)documentação da API **FHIR R4 RESTful **.

HealthLake suporta um subconjunto de parâmetros de pesquisa FHIR R4. Para obter mais informações, consulte [Parâmetros de pesquisa FHIR R4 para HealthLake](reference-fhir-search-parameters.md).

**Topics**
+ [Pesquisando com GET](searching-fhir-resources-get.md)
+ [Pesquisando com POST](searching-fhir-resources-post.md)
+ [Níveis de consistência de pesquisa](searching-fhir-consistency-levels.md)

# Pesquisando recursos do FHIR com GET
<a name="searching-fhir-resources-get"></a>

Você pode usar `GET` solicitações para pesquisar um armazenamento HealthLake de dados. Ao usar`GET`, HealthLake suporta o fornecimento de parâmetros de pesquisa como parte do URL, mas não como parte do corpo de uma solicitação. Para obter mais informações, consulte [Parâmetros de pesquisa FHIR R4 para HealthLake](reference-fhir-search-parameters.md).

**Importante**  
Para pesquisas que envolvem informações de identificação pessoal (PII) ou informações de saúde protegidas (PHI), as melhores práticas de segurança exigem o uso de `POST` solicitações, pois PII e PHI são adicionadas como parte do corpo da solicitação e criptografadas em trânsito. Para obter mais informações, consulte [Pesquisando recursos do FHIR com POST](searching-fhir-resources-post.md).

O procedimento a seguir é seguido por exemplos usados `GET` para pesquisar um armazenamento HealthLake de dados.

**Para pesquisar um armazenamento HealthLake de dados com `GET`**  


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 recurso FHIR para pesquisar 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 de FHIR e os parâmetros de [pesquisa](reference-fhir-search-parameters.md) compatíveis. Para ver todo o caminho do URL no exemplo a seguir, role até o botão **Copiar**.

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

1. Envie a `GET` 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 retorna o número total de `Patient` recursos em um armazenamento HealthLake de dados. Para ver o exemplo inteiro, role até o botão **Copiar**.

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

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

   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 ]

**nota**  
O HealthLake console suporta somente a autorização SigV4. A autorização SMART on FHIR é suportada por meio de e. AWS CLI AWS SDKs

   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`Search with GET`.
   + **Tipo de recurso** — escolha o [tipo de recurso](reference-fhir-resource-types.md) FHIR para pesquisar.
   + **Parâmetros de pesquisa** — Selecione um [parâmetro de pesquisa](reference-fhir-search-parameters.md) ou uma combinação de parâmetros de pesquisa para focar sua consulta em registros específicos.

   3. Selecione **Executar consulta**.

------

## Exemplos: pesquisar com GET
<a name="searching-fhir-resources-get-examples"></a>

As guias a seguir fornecem exemplos para pesquisar tipos específicos de recursos do FHIR com. `GET` Os exemplos mostram como especificar parâmetros de pesquisa na solicitação URLs.

**nota**  
O HealthLake console suporta somente a autorização SigV4. A autorização SMART on FHIR é suportada por meio de e. AWS CLI AWS SDKs  
HealthLake suporta um subconjunto de parâmetros de pesquisa FHIR R4. Para obter mais informações, consulte [Parâmetros de pesquisa](reference-fhir-search-parameters.md).

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

Embora a idade não seja um tipo de recurso definido no FHIR, ela é capturada como um elemento no tipo de [https://hl7.org/fhir/R4/patient.html](https://hl7.org/fhir/R4/patient.html)recurso. Use o exemplo a seguir para fazer uma solicitação de pesquisa `GET` baseada em tipos de [https://hl7.org/fhir/R4/patient.html](https://hl7.org/fhir/R4/patient.html)recursos usando o elemento [BirthDate](https://hl7.org/fhir/R4/patient-definitions.html#Patient.birthDate) e o `eq` [comparador](reference-fhir-search-parameters.md#search-comparators) de pesquisa para pesquisar indivíduos nascidos no ano de 1997.

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

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

Use o exemplo a seguir para fazer uma `GET` solicitação sobre o tipo de [https://hl7.org/fhir/R4/condition.html](https://hl7.org/fhir/R4/condition.html)recurso. A pesquisa encontra condições em seu armazenamento de HealthLake dados que contêm o código médico SNOMED`72892002`, que se traduz em. `Normal pregnancy`

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

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

O exemplo a seguir mostra como criar uma `GET` solicitação sobre o tipo de [https://hl7.org/fhir/R4/documentreference.html](https://hl7.org/fhir/R4/documentreference.html)recurso para `Patient` (s) com diagnóstico de estreptococos e para quem também foi prescrita amoxicilina.

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

Use o exemplo a seguir para fazer uma `GET` solicitação sobre o tipo de [https://hl7.org/fhir/R4/location.html](https://hl7.org/fhir/R4/location.html)recurso. A pesquisa a seguir encontra locais em seu armazenamento de HealthLake dados que contêm o nome da cidade Boston como parte do endereço.

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

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

Use o exemplo a seguir para fazer uma solicitação de pesquisa `GET` baseada no tipo de [https://hl7.org/fhir/R4/observation.html](https://hl7.org/fhir/R4/observation.html)recurso. Essa pesquisa usa o [parâmetro de `value-concept` pesquisa](reference-fhir-search-parameters.md) para procurar o código médico`266919005`, que se traduz em. `Never smoker`

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

------

# Pesquisando recursos do FHIR com POST
<a name="searching-fhir-resources-post"></a>

Você pode usar a [https://hl7.org/fhir/R4/search.html](https://hl7.org/fhir/R4/search.html)interação do FHIR com `POST` solicitações para pesquisar um armazenamento de HealthLake dados. Ao usar`POST`, HealthLake oferece suporte a parâmetros de pesquisa no URL ou no corpo da solicitação, mas você não pode usar os dois em uma única solicitação.

**Importante**  
Para pesquisas que envolvem informações de identificação pessoal (PII) ou informações de saúde protegidas (PHI), as melhores práticas de segurança exigem o uso de `POST` solicitações, pois PII e PHI são adicionadas como parte do corpo da solicitação e criptografadas em trânsito.

O procedimento a seguir é seguido por exemplos usando a `search` interação do FHIR R4 com `POST` para pesquisar um HealthLake armazenamento de dados. Os exemplos mostram como especificar parâmetros de pesquisa no corpo da solicitação JSON.

**Para pesquisar um armazenamento HealthLake de dados com `POST`**  


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 recurso FHIR para pesquisar 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 e `_search` a interação do FHIR. Para ver todo o caminho do URL no exemplo a seguir, role até o botão **Copiar**.

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

1. Crie um corpo JSON para a solicitação, especificando os dados FHIR a serem pesquisados. Para fins deste procedimento, você buscará `Observation` recursos para descobrir pacientes que nunca fumaram. Para especificar o status do código médico`Never smoker`, defina `value-concept=266919005` no corpo da solicitação JSON. Salve o arquivo como `search-observation.json`.

   ```
   value-concept=266919005
   ```

1. Envie a solicitação . A `search` interação FHIR usa a `GET` solicitação com [AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) ou SMART na autorização FHIR.
**nota**  
Ao fazer uma `POST` solicitação com parâmetros de pesquisa no corpo da solicitação, use `Content-Type: application/x-www-form-urlencoded` como parte do cabeçalho.

   O `curl` exemplo a seguir faz uma solicitação de pesquisa baseada em POST sobre o tipo `Observation` de recurso. A solicitação usa o parâmetro de [https://hl7.org/fhir/R4/observation.html#search](https://hl7.org/fhir/R4/observation.html#search)pesquisa para procurar o código médico `266919005` que indica o valor`Never smoker`. Para ver o exemplo inteiro, role até o botão **Copiar**.

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

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

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

------

## Exemplos: pesquisar com POST
<a name="searching-fhir-resources-post-examples"></a>

As guias a seguir fornecem exemplos para pesquisar tipos específicos de recursos do FHIR com. `POST` Os exemplos mostram como especificar uma solicitação no URLs.

**nota**  
O HealthLake console suporta somente a autorização SigV4. A autorização SMART on FHIR é suportada por meio de e. AWS CLI AWS SDKs  
HealthLake suporta um subconjunto de parâmetros de pesquisa FHIR R4. Para obter mais informações, consulte [Parâmetros de pesquisa](reference-fhir-search-parameters.md).

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

Embora a idade não seja um tipo de recurso definido no FHIR, ela é capturada como um elemento no tipo de [https://hl7.org/fhir/R4/patient.html](https://hl7.org/fhir/R4/patient.html)recurso. Use o exemplo a seguir para fazer uma solicitação de pesquisa `POST` baseada no tipo de `Patient` recurso. O exemplo de pesquisa a seguir usa o `eq` [comparador](reference-fhir-search-parameters.md#search-comparators) de pesquisa para pesquisar indivíduos nascidos em 1997.

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

Para especificar o ano de 1997 na pesquisa, adicione o seguinte elemento ao corpo da solicitação.

```
birthdate=eq1997
```

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

Use o seguinte para fazer uma `POST` solicitação sobre o tipo de `Condition` recurso. Essa pesquisa encontra locais em seu armazenamento HealthLake de dados que contêm o código médico`72892002`.

Você precisa especificar uma URL e um corpo da solicitação. Aqui está um exemplo de URL de solicitação.

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

Para especificar o código médico que você deseja pesquisar, adicione o seguinte elemento JSON ao corpo da solicitação.

```
code=72892002
```

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

Para ver os resultados HealthLake do processamento integrado de linguagem natural (NLP) ao fazer uma `POST` solicitação sobre o tipo de `DocumentReference` recurso, formate uma solicitação da seguinte forma.

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

Para especificar os parâmetros `DocumentReference` de pesquisa a serem referenciados, consulte[Tipos de parâmetros de pesquisa](reference-fhir-search-parameters.md#search-parameter-types). A sequência de caracteres de consulta a seguir usa vários parâmetros de pesquisa para pesquisar as operações da API Amazon Comprehend Medical usadas para gerar os resultados integrados de PNL.

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

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

Use o exemplo a seguir para fazer uma `POST` solicitação sobre o tipo de `Location` recurso. A pesquisa encontra locais em seu armazenamento de HealthLake dados que contêm o nome da cidade Boston como parte do endereço.

Você deve especificar uma URL e um corpo da solicitação. Aqui está um exemplo de URL de solicitação.

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

Para especificar `Boston` na pesquisa, adicione o seguinte elemento ao corpo da solicitação:

```
address=Boston
```

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

Use o exemplo a seguir para fazer uma solicitação de pesquisa `POST` baseada no tipo de `Observation` recurso. A pesquisa usa o parâmetro de `value-concept` pesquisa para procurar o código médico, `266919005` isso indica`Never smoker`.

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

Para especificar o status`Never smoker`, defina `value-concept=266919005` no corpo do JSON.

```
value-concept=266919005
```

------

# Níveis de consistência de pesquisa do FHIR
<a name="searching-fhir-consistency-levels"></a>

O índice HealthLake de pesquisa da AWS opera em um modelo de consistência eventual para `GET` e `POST` com operações de PESQUISA. Com consistência eventual, se houver uma atualização pendente do índice de pesquisa para um recurso, os resultados da pesquisa excluirão a versão N-1 do recurso até que a atualização do índice seja concluída.

 A AWS HealthLake agora inclui a capacidade de selecionar como o modelo de consistência se comportará para recursos atualizados. Os desenvolvedores podem incluir “Consistência eventual”, o comportamento padrão descrito acima, ou “Consistência forte”. O Strong Consistency permitirá que a versão N-1 do recurso para recursos com atualizações pendentes do índice de pesquisa seja incluída nos resultados da pesquisa. Isso pode ser usado para cenários de casos de uso em que todos os recursos são necessários no resultado, mesmo quando a atualização do índice de pesquisa ainda não foi concluída. Os clientes podem controlar esse comportamento usando o cabeçalho da `x-amz-fhir-history-consistency-level` solicitação. 

## Níveis de consistência
<a name="fhir-search-consistency-levels"></a>

Consistência forte  
Configure `x-amz-fhir-history-consistency-level: strong` para retornar todos os registros correspondentes, incluindo aqueles com atualizações pendentes do índice de pesquisa. Use essa opção quando precisar pesquisar recursos imediatamente após as atualizações.

Consistência eventual  
`x-amz-fhir-history-consistency-level: eventual`Defina para retornar somente registros que tenham concluído as atualizações do índice de pesquisa. Esse é o comportamento padrão se nenhum nível de consistência for especificado.

## Exemplo de uso
<a name="fhir-search-usage"></a>

1. Ao atualizar um recurso:

   ```
   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. Pesquisa subseqüente:

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

## Práticas recomendadas
<a name="fhir-search-best-practices"></a>
+ Use uma consistência forte quando precisar pesquisar imediatamente recursos atualizados recentemente
+ Use a consistência eventual para consultas gerais em que a visibilidade imediata não é essencial
+ Considere a compensação entre visibilidade imediata e impacto potencial no desempenho

**nota**  
A configuração do nível de consistência afeta a rapidez com que os recursos atualizados aparecem nos resultados da pesquisa, mas não afeta o armazenamento real dos recursos.  
Definir o `x-amz-fhir-history-consistency-level` cabeçalho opcional como 'forte' dobra o consumo da capacidade de gravação por recurso.  
Esse recurso é aplicável somente para armazenamentos de dados com histórico de versões ativado (todos os armazenamentos de dados criados após 25 de outubro de 2024 o têm ativado por padrão).