

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Búsqueda de recursos del FHIR con POST
<a name="searching-fhir-resources-post"></a>

Puede utilizar la [https://hl7.org/fhir/R4/search.html](https://hl7.org/fhir/R4/search.html)interacción del FHIR con `POST` las solicitudes para buscar en un banco de HealthLake datos. Cuando se usa`POST`, HealthLake admite los parámetros de búsqueda en la URL o en el cuerpo de una solicitud, pero no puede usar ambos en una sola solicitud.

**Importante**  
Para las búsquedas que incluyen información de identificación personal (PII) o información de salud protegida (PHI), las mejores prácticas de seguridad recomiendan el uso de `POST` solicitudes, ya que la PII y la PHI se agregan como parte del cuerpo de la solicitud y se cifran durante el tránsito.

El siguiente procedimiento va seguido de ejemplos en los que se utiliza la `search` interacción del FHIR R4 `POST` para buscar en un almacén de datos. HealthLake Los ejemplos muestran cómo especificar los parámetros de búsqueda en el cuerpo de la solicitud JSON.

**Para buscar en un HealthLake banco de datos con `POST`**  


1. Recopile HealthLake `region` y `datastoreId` valore. Para obtener más información, consulte [Obtención de propiedades de los almacenes de datos](managing-data-stores-describe.md).

1. Determine el tipo de recurso del FHIR para buscar y recopilar el `id` valor asociado. Para obtener más información, consulte [Tipos de recurso](reference-fhir-resource-types.md). 

1. Cree una URL para la solicitud utilizando los valores recopilados para HealthLake `region` y`datastoreId`. Incluya también el `Resource` tipo y la `_search` interacción del FHIR. Para ver la ruta URL completa en el siguiente ejemplo, desplázate sobre el botón **Copiar**.

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

1. Cree un cuerpo JSON para la solicitud y especifique los datos del FHIR que desee buscar. Para realizar este procedimiento, buscará `Observation` recursos para encontrar pacientes que nunca hayan fumado. Para especificar el estado del código médico`Never smoker`, configúrelo `value-concept=266919005` en el cuerpo de la solicitud en JSON. Guarde el archivo como `search-observation.json`.

   ```
   value-concept=266919005
   ```

1. Envíe la solicitud . La `search` interacción con el FHIR utiliza la `GET` solicitud con la [versión 4 de AWS Signature](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) o SMART si cuenta con la autorización del FHIR.
**nota**  
Al realizar una `POST` solicitud con parámetros de búsqueda en el cuerpo de la solicitud, utilícelos `Content-Type: application/x-www-form-urlencoded` como parte del encabezado.

   En el siguiente `curl` ejemplo, se realiza una solicitud de búsqueda basada en POST para el tipo `Observation` de recurso. La solicitud utiliza el parámetro [https://hl7.org/fhir/R4/observation.html#search](https://hl7.org/fhir/R4/observation.html#search)de búsqueda para buscar un código médico `266919005` que indique un valor`Never smoker`. Para ver el ejemplo completo, desplázate sobre el botón **Copiar**.

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

   Autorización 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 ]

   Ejemplo de autorización SMART on FHIR para el tipo de [https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html)datos.

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

   La persona que llama puede asignar permisos en la lambda de autorización. Para obtener más información, consulte [OAuth osciloscopios 2.0](reference-smart-on-fhir-oauth-scopes.md).

------

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

Las siguientes pestañas proporcionan ejemplos para buscar tipos de recursos específicos del FHIR con. `POST` Los ejemplos muestran cómo especificar una solicitud en el URLs.

**nota**  
La HealthLake consola solo admite la autorización SiGv4. La autorización SMART on FHIR se admite mediante AWS CLI y. AWS SDKs  
HealthLake admite un subconjunto de parámetros de búsqueda del FHIR R4. Para obtener más información, consulte [Parámetros de búsqueda](reference-fhir-search-parameters.md).

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

Si bien la edad no es un tipo de recurso definido en el FHIR, se captura como un elemento del tipo de recurso. [https://hl7.org/fhir/R4/patient.html](https://hl7.org/fhir/R4/patient.html) Utilice el siguiente ejemplo para realizar una solicitud de búsqueda `POST` basada en el tipo de `Patient` recurso. En el siguiente ejemplo de búsqueda, se utiliza el `eq` [comparador](reference-fhir-search-parameters.md#search-comparators) de búsquedas para buscar personas nacidas en 1997.

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

Para especificar el año 1997 en la búsqueda, añada el siguiente elemento al cuerpo de la solicitud.

```
birthdate=eq1997
```

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

Utilice lo siguiente para realizar una `POST` solicitud sobre el tipo `Condition` de recurso. Esta búsqueda busca ubicaciones en su almacén de HealthLake datos que contienen el código médico`72892002`.

Debe especificar la URL de la solicitud y el cuerpo de la solicitud. A continuación, se muestra un ejemplo de la URL de la solicitud.

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

Para especificar el código médico que desea buscar, añada el siguiente elemento JSON al cuerpo de la solicitud.

```
code=72892002
```

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

Para ver los resultados del procesamiento HealthLake del lenguaje natural (NLP) integrado al realizar una `POST` solicitud sobre el tipo de `DocumentReference` recurso, formatee la solicitud de la siguiente manera.

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

Para especificar los parámetros de `DocumentReference` búsqueda a los que se debe hacer referencia, consulte[Tipos de parámetros de búsqueda](reference-fhir-search-parameters.md#search-parameter-types). La siguiente cadena de consulta utiliza varios parámetros de búsqueda para buscar en las operaciones de la API Amazon Comprehend Medical utilizadas para generar los resultados de la PNL integrada.

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

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

Utilice el siguiente ejemplo para realizar una `POST` solicitud sobre el tipo de `Location` recurso. La búsqueda busca ubicaciones en el almacén de HealthLake datos que contienen el nombre de la ciudad Boston como parte de la dirección.

Debe especificar la URL y el cuerpo de la solicitud. A continuación, se muestra un ejemplo de la URL de la solicitud.

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

Para `Boston` especificarlo en la búsqueda, agrega el siguiente elemento al cuerpo de la solicitud:

```
address=Boston
```

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

Utilice el siguiente ejemplo para realizar una solicitud de búsqueda `POST` basada en el tipo `Observation` de recurso. La búsqueda utiliza el parámetro de `value-concept` búsqueda para buscar el código médico `266919005` que indica`Never smoker`.

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

Para especificar el estado`Never smoker`, `value-concept=266919005` establézcalo en el cuerpo del JSON.

```
value-concept=266919005
```

------