Crear búsquedas FHIR personalizadas

En esta página se describe cómo configurar un almacén FHIR para que admita parámetros de búsqueda personalizados de campos y extensiones que no estén cubiertos por los parámetros de búsqueda estándar de FHIR.

Los parámetros de búsqueda personalizados pueden ser útiles en muchas situaciones, como las siguientes:

  • Necesitas buscar un campo en un recurso FHIR, pero no hay ningún parámetro de búsqueda compatible para ese campo.
  • Debes buscar en las extensiones añadidas al modelo de datos FHIR.

Información general

De forma predeterminada, la búsqueda de recursos FHIR admite los parámetros de búsqueda estándar definidos en la especificación de FHIR, con algunas exclusiones documentadas en la declaración de funciones de FHIR o en la declaración de conformidad de FHIR.

Puede crear uno o varios parámetros de búsqueda personalizados y configurar el almacén FHIR para que los admita en las consultas mediante el método search. Los parámetros de búsqueda personalizados son útiles en las siguientes situaciones:

  • Para buscar en campos que no están cubiertos por los parámetros de búsqueda estándar.
  • Para buscar en extensiones del modelo de datos FHIR.

En muchas guías de implementación de FHIR se definen parámetros de búsqueda que puedes usar en tus búsquedas.

Los parámetros de búsqueda personalizados admiten el mismo comportamiento de búsqueda, incluidas las funciones avanzadas de búsqueda FHIR que los parámetros de búsqueda estándar, como los siguientes:

  • modificadores
  • _include y _revinclude
  • búsqueda encadenada
  • _sort

Para habilitar una búsqueda personalizada en tu almacén FHIR, primero debes crear uno o varios recursos SearchParameter que definan el comportamiento de la búsqueda. SearchParameter es un tipo de recurso FHIR estándar que se puede crear, actualizar o eliminar con los mismos métodos que cualquier otro tipo de recurso. Consulta Crear un recurso de parámetro de búsqueda en el almacén.

Los recursos SearchParameter de un almacén FHIR no se aplican hasta que se configuran con el método configureSearch. Este método habilita una lista de parámetros de búsqueda personalizada. Cada vez que se llama, se sustituye la lista de parámetros anterior. Se activa una operación de larga duración para configureSearch con el fin de reindexar todos los recursos relevantes del almacén según la nueva configuración de búsqueda. Todos los recursos nuevos y actualizados después de la llamada al método se indexan según la nueva configuración. Se eliminan los datos de índice de los parámetros de búsqueda personalizados que ya no están en la configuración. Para obtener más información sobre cómo usar configureSearch, consulte Habilitar el parámetro de búsqueda personalizada en un almacén FHIR.

El CapabilityStatement de la tienda, obtenido mediante el método fhir.capabilities, muestra tanto los parámetros de búsqueda estándar como los personalizados. Los parámetros de búsqueda de un recurso se encuentran en el campo rest.resource.searchParam.

Crear un recurso SearchParameter en el almacén FHIR

En los siguientes ejemplos se muestra cómo crear un recurso de parámetro de búsqueda personalizado con el método projects.locations.datasets.fhirStores.fhir.create. También puedes usar el método projects.locations.datasets.fhirStores.import.

Para ver las descripciones de los campos relevantes de los parámetros de búsqueda, consulta Campos del recurso SearchParameter.

curl

En el siguiente ejemplo se muestra una solicitud POST que utiliza curl.

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
        \"resourceType\": \"SearchParameter\",
        \"url\": \"CANONICAL_URL\",
        \"base\": [\"RESOURCE_TYPE\"],
        \"code\": \"SEARCH_PARAMETER_CODE\",
        \"name\": \"SEARCH_PARAMETER_NAME\",
        \"type\": \"SEARCH_PARAMETER_TYPE\",
        \"expression\": \"SEARCH_PARAMETER_EXPRESSION\",
        \"status\": \"active\",
        \"description\": \"SEARCH_PARAMETER_DESCRIPTION\"
    }" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/SearchParameter"

Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

{
  "resourceType": "SearchParameter",
  "url": "CANONICAL_URL",
  "base": ["RESOURCE_TYPE"],
  "code": "SEARCH_PARAMETER_CODE",
  "name": "SEARCH_PARAMETER_NAME",
  "type": "SEARCH_PARAMETER_TYPE",
  "expression": "SEARCH_PARAMETER_EXPRESSION",
  "status": "active",
  "description": "SEARCH_PARAMETER_DESCRIPTION",
  "meta": {
    "lastUpdated": "LAST_UPDATED",
    "versionId": "VERSION_ID"
  },
}

PowerShell

En el siguiente ejemplo se muestra una solicitud POST que utiliza Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

$SearchParameter = '{
    "resourceType": "SearchParameter",
    "url": "CANONICAL_URL",
    "base": ["RESOURCE_TYPE"],
    "code": "SEARCH_PARAMETER_CODE",
    "name": "SEARCH_PARAMETER_NAME",
    "type": "SEARCH_PARAMETER_TYPE",
    "expression": "SEARCH_PARAMETER_EXPRESSION",
    "status": "active",
    "description": "SEARCH_PARAMETER_DESCRIPTION"
}'

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $SearchParameter `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/SearchParameter" | ConvertTo-Json

Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

{
  "resourceType": "SearchParameter",
  "url": "CANONICAL_URL",
  "base": ["RESOURCE_TYPE"],
  "code": "SEARCH_PARAMETER_CODE",
  "name": "SEARCH_PARAMETER_NAME",
  "type": "SEARCH_PARAMETER_TYPE",
  "expression": "SEARCH_PARAMETER_EXPRESSION",
  "status": "active",
  "description": "SEARCH_PARAMETER_DESCRIPTION",
  "meta": {
    "lastUpdated": "LAST_UPDATED",
    "versionId": "VERSION_ID"
  },
}

Habilitar el parámetro de búsqueda personalizado en tu almacén de FHIR

Para habilitar uno o varios parámetros de búsqueda personalizados en tu almacén FHIR, haz una solicitud POST al método [store base URL]:configureSearch y especifica la URL canónica de cada parámetro de búsqueda que quieras habilitar.

Las URLs canónicas se especifican en uno de los siguientes formatos:

  • uri: selecciona el version más grande disponible en la tienda para ese URI.
  • uri|version Selecciona una versión específica.

Por ejemplo, si la tienda contiene las versiones 1.0.0 y 1.0.1 de los parámetros de búsqueda con el URI http://example.com/search, la URL canónica http://example.com/search|1.0.0 selecciona la versión 1.0.0. La URL canónica http://example.com/search selecciona la versión 1.0.1.

La lista de URLs proporcionada a este método sustituye cualquier configuración anterior y elimina los parámetros de búsqueda personalizada que estuvieran en vigor. La configuración se almacena en caché en función del contenido de los SearchParameterrecursos que existían en el momento en que se llamó a configureSearch. La configuración no se actualizará si se actualizan o eliminan los recursos de SearchParameter hasta que se vuelva a llamar a configureSearch.

Si la llamada al método [store base URL]:configureSearch se realiza correctamente, el valor devuelto es el nombre de una operación de larga duración para reindexar los recursos de la tienda según la nueva configuración. Puedes ver el estado de la operación de larga duración con el método operations.get y cancelarla con el método operations.cancel. El estado contiene un contador que indica cuántos recursos se han reindexado correctamente.

Las búsquedas en la tienda siguen funcionando con normalidad mientras se ejecuta la operación de larga duración, excepto que los parámetros de búsqueda personalizados que se añadan o cambien con esta operación devuelven resultados parciales. Puedes cancelar la operación sin problemas, pero se indexarán parcialmente los parámetros de búsqueda personalizada. Es importante completar toda la operación de reindexación correctamente antes de buscar con los parámetros recién añadidos o modificados.

Si hay errores, se muestran en Cloud Logging.

El método configureSearch también se puede usar con la opción "validate_only": true para validar los parámetros de búsqueda especificados sin modificar la configuración de la tienda y sin reindexar ningún dato.

En los siguientes ejemplos se muestra cómo habilitar uno o varios parámetros de búsqueda personalizados en un almacén FHIR mediante el método projects.locations.datasets.fhirStores.configureSearch.

curl

En el siguiente ejemplo se muestra una solicitud POST que utiliza curl.

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
        \"canonicalUrls\": [\"CANONICAL_URL1\",\"CANONICAL_URL2\"],
    }" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:configureSearch"

Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
}

La respuesta contiene un nombre de operación. Para hacer un seguimiento del estado de la operación, puedes usar el método Operation get:

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

Si la operación de larga duración sigue en curso, el servidor devuelve una respuesta con el número de recursos FHIR pendientes de reindexación en formato JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1beta1.fhir.FhirStoreService.ConfigureSearch",
    "createTime": "CREATE_TIME",
    "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL",
    "counter": {
      "pending": "PENDING_COUNT"
    }
  }
}

Cuando finaliza la operación de larga duración, el servidor devuelve una respuesta con el estado de la operación en formato JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1.fhir.FhirService.configureSearch",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME",
    "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL",
    "counter": {
      "success": "SUCCESS_COUNT"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty",
  }
}

Si la operación de larga duración se completa correctamente, la respuesta contiene el número de recursos FHIR que se han reindexado correctamente y un tipo de respuesta google.protobuf.Empty.

PowerShell

En el siguiente ejemplo se muestra una solicitud POST que utiliza Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

$configureSearch = '{
  "canonical_urls": [
    "CANONICAL_URL1",
    "CANONICAL_URL2"
  ]
}'

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $configureSearch `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:configureSearch"

Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
}

La respuesta contiene un nombre de operación. Para hacer un seguimiento del estado de la operación, puedes usar el método Operation get:

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

Si la operación de larga duración sigue en curso, el servidor devuelve una respuesta con el número de recursos FHIR pendientes de reindexación en formato JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1beta1.fhir.FhirStoreService.ConfigureSearch",
    "createTime": "CREATE_TIME",
    "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL",
    "counter": {
      "pending": "PENDING_COUNT"
    }
  }
}

Cuando finaliza la operación de larga duración, el servidor devuelve una respuesta con el estado de la operación en formato JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1.fhir.FhirService.configureSearch",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME",
    "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL",
    "counter": {
      "success": "SUCCESS_COUNT"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty",
  }
}

Si la operación de larga duración se completa correctamente, la respuesta contiene el número de recursos FHIR que se han reindexado correctamente y un tipo de respuesta google.protobuf.Empty.

Puedes buscar usando un SearchParameter personalizado de la misma forma que cualquier otra búsqueda. Usa el valor code del recurso de parámetro de búsqueda como key para la consulta de búsqueda. Para obtener más información, consulta Buscar recursos FHIR.

Campos de recursos SearchParameter

En la siguiente sección se describen los campos del recurso SearchParameter que son relevantes para las búsquedas personalizadas. Estos campos están disponibles en las versiones STU3 y R4 de FHIR.

uri y version

El campo uri, que es obligatorio, y los campos version, que son opcionales, definen la URL canónica del recurso SearchParameter. La combinación de uri y version debe ser única en el almacén de FHIR.

La URL canónica es la que se usa en la llamada configureSearch.

name, description y status

Los campos name, description y status son obligatorios, pero no tienen ningún efecto funcional.

base

El campo base muestra los tipos de recursos FHIR a los que se aplica esta búsqueda.

Si hay más de un tipo, el campo expression debe tener una cláusula para cada tipo. No hay ninguna diferencia entre definir un parámetro en dos tipos o definir un parámetro para cada tipo. Si defines un parámetro para varios tipos de recursos, las definiciones serán más compactas.

code

El campo code define la clave que se va a usar en una consulta de búsqueda de FHIR. Por ejemplo, si code se define como payment-type y base se define como Claim, una consulta de búsqueda que use este parámetro sería Claim?payment-type=ABC.

El campo code no puede tener el mismo valor que ningún otro parámetro de búsqueda estándar o personalizado del mismo tipo de recurso. Los parámetros de búsqueda estándar no se pueden redefinir ni modificar con parámetros de búsqueda personalizados. El método configureSearch rechaza los parámetros de búsqueda duplicados.

El valor del campo code debe cumplir los siguientes requisitos:

  • Debe empezar por una letra
  • No puede tener más de 64 caracteres
  • Solo debe contener lo siguiente:
    • Caracteres alfanuméricos
    • Carácter de guion -
    • Carácter de guion bajo _

La convención estándar de FHIR para el campo code es usar minúsculas con guiones.

type

El campo type define el tipo de parámetro de búsqueda. El tipo de parámetro de búsqueda determina la semántica de las condiciones de búsqueda tal como se define en la especificación de búsqueda de FHIR. El valor de type debe ser compatible con el tipo de datos del campo especificado por el campo expression. Si no es así, configureSearch rechaza el parámetro de búsqueda personalizado.

El campo type debe definirse como uno de los siguientes:

  • number
  • date
  • string
  • token
  • reference
  • quantity
  • uri

No se admiten los tipos composite y special.

expression

El campo expression define qué campos o extensiones consulta el parámetro de búsqueda. Este campo usa un conjunto limitado de la sintaxis y las funciones de FHIRPath.

Sintaxis de los campos

El campo expression se define como una ruta que empieza por el tipo de recurso y va seguida de uno o varios campos separados por .. Por ejemplo, Patient.contact.name.given. La estructura de los campos de los datos FHIR se puede consultar en los recursos FHIR y los tipos de datos FHIR.

Varias cláusulas

El campo expression puede contener varias cláusulas separadas por |. En este caso, el parámetro de búsqueda coincide si alguna de las cláusulas coincide con el recurso. Por ejemplo, un parámetro de búsqueda con la expresión Patient.name.given | Patient.name.family coincide con cualquiera de esos dos campos. Usa varias cláusulas cuando se especifique más de un tipo de recurso en base. Por ejemplo, Patient.name.given | Practitioner.name.given para un parámetro de búsqueda que se aplica tanto a Patient como a Practitioner.

.as([data type])

Usa la función .as([data type]) cuando un campo tenga más de un tipo de datos posible. Por ejemplo, el campo Observation.value puede contener muchos tipos diferentes, como Quantity y String, que funcionan con diferentes tipos de búsqueda. Puedes seleccionar estos tipos de búsqueda con Observation.value.as(Quantity) o Observation.value.as(String).

Seleccionar extensiones

Puedes seleccionar extensiones con la función .extension([canonical url]). Como las extensiones contienen un campo value que puede contener cualquier tipo de datos, la ruta completa se define como .extension([canonical url]).value.as([data type]). Las extensiones complejas pueden usar varios componentes .extension(), como Patient.extension('http://hl7.org/fhir/StructureDefinition/patient-citizenship').extension('code').value.as(CodeableConcept).

También puedes usar la función .extension.where(url='[canonical url]') para seleccionar extensiones. Este es el único contexto en el que se permite la función where().

No se admiten otras funciones de FHIRPath.

target

Si el campo type se define como reference, el campo target debe contener uno o varios tipos de recursos FHIR que definan qué tipos de recursos pueden ser el destino de esta búsqueda de referencias.

Por ejemplo, si el campo Patient.generalPractitioner permite referencias a Practitioner, PractitionerRole y Organization, un parámetro de búsqueda puede coincidir específicamente con referencias a Practitioner, PractitionerRole o Organization. Para que coincidan todos los tipos de destino de las referencias, incluya todos los tipos en el campo target.

modifier, comparator, multipleOr, multipleAnd y chain

Se ignoran los campos modifier, comparator, multipleOr, multipleAnd y chain. Las opciones y funciones disponibles con un parámetro de búsqueda personalizado son las mismas que las admitidas por el almacén de FHIR en un parámetro de búsqueda estándar del mismo tipo.

Si vas a implementar parámetros de búsqueda obtenidos de una guía de implementación de FHIR, importa los recursos SearchParameter del archivo JSON de tu guía de implementación al almacén FHIR mediante uno de los siguientes métodos:

En algunos casos, debe convertir un parámetro de búsqueda publicado para que sea compatible con la API Cloud Healthcare. Si los parámetros de búsqueda no se convierten, el método configureSearch los rechaza. Las siguientes restricciones se aplican a los parámetros de búsqueda de las guías de implementación:

  • Si el parámetro de búsqueda es idéntico a los parámetros de la especificación FHIR base, el método configureSearch rechaza los parámetros de búsqueda duplicados. Omitir los duplicados al llamar a configureSearch. Para obtener más información, consulta code.

  • Si el parámetro de búsqueda solo contiene una expresión xpath, conviértela en una expresión FHIRPath equivalente y úsala en el campo expression. Para obtener más información, consulta expression.

  • No se admiten los tipos de parámetros de búsqueda composite y special.

  • No se admite la sintaxis alternativa de conversión de tipos ([field] as [data type]). Convierte el valor al equivalente admitido [field].as([data type]). Para obtener más información, consulta .as([data type]).

  • No se admite la convención [reference field].where(resolve() is [resource type]) para restringir el tipo de un recurso referenciado. Quita la cláusula where() y almacena el tipo de recurso al que se hace referencia en el campo SearchParameter.target. Para obtener más información, consulta target.

  • Algunas guías de implementación usan expresiones para extensiones que omiten algunos de los componentes de ruta necesarios para el almacén FHIR de la API Cloud Healthcare. Por ejemplo, Patient.extension('url') debe modificarse a Patient.extension('url').value.as([data type]) y Patient.extension('url').extension.value debe modificarse a Patient.extension('url').extension('url2').value.as([data type]).

Ejemplos

Usar una búsqueda personalizada para buscar en un campo de extensión

En los siguientes pasos se muestra un ejemplo de cómo buscar texto en la extensión mothersMaidenName de los recursos Patient.

  1. Crea un recurso Patient de ejemplo:

    curl

    En el siguiente ejemplo se muestra cómo crear un recurso Patient haciendo una solicitud POST con curl. Este recurso Patient tiene la extensión mothersMaidenName con el valor Marca.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data "{
          \"name\": [
              {
                  \"use\": \"official\",
                  \"family\": \"Smith\",
                  \"given\": [
                      \"Darcy\"
                  ]
              }
          ],
          \"gender\": \"female\",
          \"birthDate\": \"1970-01-01\",
          \"resourceType\": \"Patient\",
          \"extension\": [
              {
                  \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName\",
                  \"valueString\": \"Marca\"
              }
          ]
        }" \
        "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"

    Si la solicitud se realiza de forma correcta, el servidor devuelve una respuesta similar a la siguiente en formato JSON:

    {
      "birthDate": "1970-01-01",
      "gender": "female",
      "id": "PATIENT_ID",
      "meta": {
        "lastUpdated": "2020-01-01T00:00:00+00:00",
        "versionId": "VERSION_ID"
      },
      "name": [
        {
          "family": "Smith",
          "given": [
            "Darcy"
          ],
          "use": "official"
        }
      ],
      "resourceType": "Patient"
      "extension": [
        {
            "url": "http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName",
            "valueString": "Marca"
        }
      ]
    }
    

    PowerShell

    En el siguiente ejemplo se muestra cómo crear un recurso Patient enviando una solicitud POST con Windows PowerShell. Este recurso Patient tiene la extensión mothersMaidenName definida como Marca.

    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    $Patient = '{
        "name": [
            {
                "use": "official",
                "family": "Smith",
                "given": [
                    "Darcy"
                ]
            }
        ],
        "gender": "female",
        "birthDate": "1970-01-01",
        "resourceType": "Patient",
        "extension": [
            {
                "url": "http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName",
                "valueString": "Marca"
            }
        ]
    }'
    
    Invoke-RestMethod `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/fhir+json; charset=utf-8" `
      -Body $Patient `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | ConvertTo-Json

    Si la solicitud se realiza de forma correcta, el servidor devuelve una respuesta similar a la siguiente en formato JSON:

    {
      "birthDate": "1970-01-01",
      "gender": "female",
      "id": "PATIENT_ID",
      "meta": {
        "lastUpdated": "2020-01-01T00:00:00+00:00",
        "versionId": "VERSION_ID"
      },
      "name": [
        {
          "family": "Smith",
          "given": [
            "Darcy"
          ],
          "use": "official"
        }
      ],
      "resourceType": "Patient"
      "extension": [
        {
            "url": "http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName",
            "valueString": "Marca"
        }
      ]
    }
    

  2. Crea un recurso de parámetro de búsqueda personalizado:

    curl

    En el siguiente ejemplo se muestra cómo crear el recurso de parámetro de búsqueda personalizado para la extensión mothersMaidenName haciendo una solicitud POST con curl.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data "{
            \"resourceType\": \"SearchParameter\",
            \"url\": \"http://example.com/SearchParameter/patient-mothersMaidenName\",
            \"base\": [\"Patient\"],
            \"code\": \"mothers-maiden-name\",
            \"name\": \"mothers-maiden-name\",
            \"type\": \"string\",
            \"expression\": \"Patient.extension('http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName').value.as(String)\",
            \"status\": \"active\",
            \"description\": \"search on mother's maiden name\"
      }" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/SearchParameter"

    Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

    { 
     "resourceType": "SearchParameter",
     "url": "http://example.com/SearchParameter/patient-mothersMaidenName",
     "base": ["Patient"],
     "code": "mothers-maiden-name",
     "name": "mothers-maiden-name",
     "type": "string",
     "expression": "Patient.extension('http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName').value.as(String)",
     "status": "active",
     "description": "search on mother's maiden name",
     "meta": {
      "lastUpdated": "2020-01-01T00:00:00+00:00",
      "versionId": "VERSION_ID"
     },
    }

    PowerShell

    A continuación, se muestra cómo crear el recurso de parámetro de búsqueda personalizado para la extensión `mothersMaidenName` enviando una solicitud `POST` mediante Windows PowerShell.
    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    $SearchParameter = '{
        "resourceType": "SearchParameter",
        "url": "http://example.com/SearchParameter/patient-mothersMaidenName",
        "base": ["Patient"],
        "code": "mothers-maiden-name",
        "name": "mothers-maiden-name",
        "type": "string",
        "expression": "Patient.extension(''http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName'').value.as(String)",
        "status": "active",
        "description": "search on mother''s maiden name"
    }'
    
    Invoke-WebRequest `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/json; charset=utf-8" `
      -Body $SearchParameter `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/SearchParameter"

    Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

    { 
     "resourceType": "SearchParameter",
     "url": "http://example.com/SearchParameter/patient-mothersMaidenName",
     "base": ["Patient"],
     "code": "mothers-maiden-name",
     "name": "mothers-maiden-name",
     "type": "string",
     "expression": "Patient.extension('http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName').value.as(String)",
     "status": "active",
     "description": "search on mother's maiden name",
     "meta": {
       "lastUpdated": "2020-01-01T00:00:00+00:00",
       "versionId": "VERSION_ID"
     },
    }
    Para orientar a un tipo de datos diferente en el campo expression, usa la función .as([data type]). Por ejemplo, para especificar la expresión de búsqueda de un valor booleano, utilice .value.as(Boolean). Para obtener más información, consulta .as([data type]).

  3. Habilita el parámetro de búsqueda:

    curl

    Para habilitar el parámetro de búsqueda personalizado, haz una solicitud POST y especifica la URL canónica de cada parámetro de búsqueda que quieras habilitar.

    En el siguiente ejemplo se muestra una solicitud POST que utiliza curl.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data "{
            \"canonicalUrls\": [\"http://example.com/SearchParameter/patient-mothersMaidenName\"],
        }" \
        "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:configureSearch"

    Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
    }
    

    PowerShell

    Para habilitar el parámetro de búsqueda personalizado, haz una solicitud POST y especifica la URL canónica de cada parámetro de búsqueda que quieras habilitar.

    En el siguiente ejemplo se muestra una solicitud POST que utiliza Windows PowerShell.

    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    $configureSearch = '{
      "canonicalUrls": "http://example.com/SearchParameter/patient-mothersMaidenName"
    }' `
    
    Invoke-WebRequest `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/json; charset=utf-8" `
      -Body $configureSearch `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:configureSearch"

    Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
    }
    

  4. Busca con el parámetro de búsqueda personalizada:

    curl

    En el siguiente ejemplo se muestra cómo buscar recursos Patient que contengan la cadena Marca en la extensión mothersMaidenName. Para ello, se envía una solicitud GET mediante curl.

    curl -X GET \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient?mothers-maiden-name:exact=Marca"

    Si la solicitud se realiza correctamente, el servidor devuelve la respuesta como un recurso FHIR Bundle en formato JSON. El Bundle.type es searchset y los resultados de búsqueda son entradas de la matriz Bundle.entry. En este ejemplo, la solicitud devuelve un solo recurso Patient, incluidos los datos de ese recurso:

    {
      "entry": [
        {
          "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID",
          "resource": {
            "birthDate": "1970-01-01",
            "gender": "female",
            "id": "PATIENT_ID",
            "meta": {
              "lastUpdated": "LAST_UPDATED",
              "versionId": "VERSION_ID"
            },
            "name": [
              {
                "family": "Smith",
                "given": [
                  "Darcy"
                ],
                "use": "official"
              }
            ],
            "resourceType": "Patient"
            "extension": [
              {
                  "url": "http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName",
                  "valueString": "Marca"
              }
            ]
          },
          "search": {
            "mode": "match"
          }
        }
      ],
      "link": [
        {
          "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?family%3Aexact=Smith"
        }
      ],
      "resourceType": "Bundle",
      "total": 1,
      "type": "searchset"
    }
    

    PowerShell

    En el siguiente ejemplo se muestra cómo buscar recursos Patient que contengan la cadena `Marca` en la extensión `mothersMaidenName` enviando una solicitud `GET` con Windows PowerShell.
    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    Invoke-RestMethod `
      -Method Get `
      -Headers $headers `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient?mothers-maiden-name:exact=Marca" | ConvertTo-Json

    Si la solicitud se realiza correctamente, el servidor devuelve la respuesta como un recurso FHIR Bundle en formato JSON. El Bundle.type es searchset y los resultados de búsqueda son entradas de la matriz Bundle.entry. En este ejemplo, la solicitud devuelve un solo recurso Patient, incluidos los datos de ese recurso:

    {
      "entry": [
        {
          "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID",
          "resource": {
            "birthDate": "1970-01-01",
            "gender": "female",
            "id": "PATIENT_ID",
            "meta": {
              "lastUpdated": "LAST_UPDATED",
              "versionId": "VERSION_ID"
            },
            "name": [
              {
                "family": "Smith",
                "given": [
                  "Darcy"
                ],
                "use": "official"
              }
            ],
            "resourceType": "Patient"
            "extension": [
              {
                  "url": "http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName",
                  "valueString": "Marca"
              }
            ]
          },
          "search": {
            "mode": "match"
          }
        }
      ],
      "link": [
        {
          "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?family%3Aexact=Smith"
        }
      ],
      "resourceType": "Bundle",
      "total": 1,
      "type": "searchset"
    }
    

Usar una búsqueda personalizada para buscar en un campo de extensión de dos niveles

En los siguientes pasos se muestra cómo buscar el código en la extensión us-core-ethnicity de un recurso Patient.

  1. Crea un recurso Patient de ejemplo:

    curl

    En el siguiente ejemplo se muestra cómo crear un recurso Patient haciendo una solicitud POST con curl. Este recurso Patient tiene definida la extensión us-core-ethnicity.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data "{
          \"name\": [
              {
                  \"use\": \"official\",
                  \"family\": \"Smith\",
                  \"given\": [
                      \"Darcy\"
                  ]
              }
          ],
          \"gender\": \"female\",
          \"birthDate\": \"1970-01-01\",
          \"resourceType\": \"Patient\",
          \"extension\": [
              {
                \"url\": \"http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity\",
                \"extension\": [
                  {
                    \"url\" : \"ombCategory\",
                    \"valueCoding\" : {
                      \"system\" : \"urn:oid:2.16.840.1.113883.6.238\",
                      \"code\" : \"2028-9\",
                      \"display\" : \"Asian\"
                    }
                  }
                ]
              }
          ]
        }" \
        "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"

    Si la solicitud se realiza de forma correcta, el servidor devuelve una respuesta similar a la siguiente en formato JSON:

    {
      "birthDate": "1970-01-01",
      "gender": "female",
      "id": "PATIENT_ID",
      "meta": {
        "lastUpdated": "2020-01-01T00:00:00+00:00",
        "versionId": "VERSION_ID"
      },
      "name": [
        {
          "family": "Smith",
          "given": [
            "Darcy"
          ],
          "use": "official"
        }
      ],
      "resourceType": "Patient"
      "extension": [
        {
          "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
          "extension": [
            {
              "url" : "ombCategory",
              "valueCoding" : {
                "system" : "urn:oid:2.16.840.1.113883.6.238",
                "code" : "2028-9",
                "display" : "Asian"
              }
            }
          ]
        }
      ]
    }
    

    PowerShell

    En el siguiente ejemplo se muestra cómo crear un recurso Patient enviando una solicitud POST con Windows PowerShell. Este recurso Patient tiene definida la extensión us-core-ethnicity.

    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    $Patient = '{
        "name": [
            {
                "use": "official",
                "family": "Smith",
                "given": [
                    "Darcy"
                ]
            }
        ],
        "gender": "female",
        "birthDate": "1970-01-01",
        "resourceType": "Patient",
        "extension": [
          {
            "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
            "extension": [
              {
                "url" : "ombCategory",
                "valueCoding" : {
                  "system" : "urn:oid:2.16.840.1.113883.6.238",
                  "code" : "2028-9",
                  "display" : "Asian"
                }
              }
            ]
          }
        ]
    }'
    
    Invoke-RestMethod `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/fhir+json; charset=utf-8" `
      -Body $Patient `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | ConvertTo-Json

    Si la solicitud se realiza de forma correcta, el servidor devuelve una respuesta similar a la siguiente en formato JSON:

    {
      "birthDate": "1970-01-01",
      "gender": "female",
      "id": "PATIENT_ID",
      "meta": {
        "lastUpdated": "2020-01-01T00:00:00+00:00",
        "versionId": "VERSION_ID"
      },
      "name": [
        {
          "family": "Smith",
          "given": [
            "Darcy"
          ],
          "use": "official"
        }
      ],
      "resourceType": "Patient"
      "extension": [
        {
          "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
          "extension": [
            {
              "url" : "ombCategory",
              "valueCoding" : {
                "system" : "urn:oid:2.16.840.1.113883.6.238",
                "code" : "2028-9",
                "display" : "Asian"
              }
            }
          ]
        }
      ]
    }
    

  2. Crea un recurso de parámetro de búsqueda personalizado:

    curl

    En el siguiente ejemplo se muestra cómo crear el recurso de parámetro de búsqueda personalizado para la extensión us-core-ethnicity haciendo una solicitud POST con curl.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data "{
            \"resourceType\": \"SearchParameter\",
            \"url\": \"http://example.com/SearchParameter/patient-us-core-ethnicity\",
            \"base\": [\"Patient\"],
            \"code\": \"ethnicity\",
            \"name\": \"ethnicity\",
            \"type\": \"token\",
            \"expression\": \"Patient.extension('http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity').extension('ombCategory').value.as(Coding)\",
            \"status\": \"active\",
            \"description\": \"search on the ombCategory of a patient.\"
      }" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/SearchParameter"

    Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

    {
      "resourceType": "SearchParameter",
      "url": "http://example.com/SearchParameter/patient-us-core-ethnicity",
      "base": ["Patient"],
      "code": "ethnicity",
      "name": "ethnicity",
      "type": "token",
      "expression": "Patient.extension('http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity').extension('ombCategory').value.as(Coding)",
      "status": "active",
      "description": "search on the ombCategory of a patient.",
      "meta": {
        "lastUpdated": "2020-01-01T00:00:00+00:00",
        "versionId": "VERSION_ID"
      },
    }
    
    

    PowerShell

    En el siguiente ejemplo se muestra cómo crear el recurso de parámetro de búsqueda personalizado para la extensión `mothersMaidenName` enviando una solicitud `POST` mediante Windows PowerShell.
    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    $SearchParameter = '{
        "resourceType": "SearchParameter",
        "url": "http://example.com/SearchParameter/patient-us-core-ethnicity",
        "base": ["Patient"],
        "code": "ethnicity",
        "name": "ethnicity",
        "type": "token",
        "expression": "Patient.extension(''http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity'').extension(''ombCategory'').value.as(Coding)",
        "status": "active",
        "description": "search on the ombCategory of a patient."
    }'
    
    Invoke-WebRequest `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/json; charset=utf-8" `
      -Body $SearchParameter `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/SearchParameter"

    Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

    {
      "resourceType": "SearchParameter",
      "url": "http://example.com/SearchParameter/patient-us-core-ethnicity",
      "base": ["Patient"],
      "code": "ethnicity",
      "name": "ethnicity",
      "type": "token",
      "expression": "Patient.extension('http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity').extension('ombCategory').value.as(Coding)",
      "status": "active",
      "description": "search on the ombCategory of a patient.",
      "meta": {
        "lastUpdated": "2020-01-01T00:00:00+00:00",
        "versionId": "VERSION_ID"
      },
    }
    
    

  3. Habilita el parámetro de búsqueda:

    curl

    Para habilitar el parámetro de búsqueda personalizado, haz una solicitud POST y especifica la URL canónica de cada parámetro de búsqueda que quieras habilitar.

    En el siguiente ejemplo se muestra una solicitud POST que utiliza curl.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data "{
            \"canonicalUrls\": [\"http://example.com/SearchParameter/patient-us-core-ethnicity\"],
        }" \
        "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:configureSearch"

    Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
    }
    

    PowerShell

    Para habilitar el parámetro de búsqueda personalizado, haz una solicitud POST y especifica la URL canónica de cada parámetro de búsqueda que quieras habilitar.

    En el siguiente ejemplo se muestra una solicitud POST que utiliza Windows PowerShell.

    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    $configureSearch = '{
      "canonicalUrls": "http://example.com/SearchParameter/patient-us-core-ethnicity"
    }' `
    
    Invoke-WebRequest `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/json; charset=utf-8" `
      -Body $configureSearch `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:configureSearch"

    Si la solicitud se realiza de forma correcta, el servidor devuelve la respuesta en formato JSON:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
    }
    

  4. Busca con el parámetro de búsqueda personalizada:

    curl

    En el siguiente ejemplo se muestra cómo buscar recursos Patient con el código urn:oid:2.16.840.1.113883.6.238|2028-9 en la extensión us-core-ethnicity haciendo una solicitud GET con curl.

    curl -X GET \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient?ethnicity=urn:oid:2.16.840.1.113883.6.238|2028-9"

    Si la solicitud se realiza correctamente, el servidor devuelve la respuesta como un recurso FHIR Bundle en formato JSON. El Bundle.type es searchset y los resultados de búsqueda son entradas de la matriz Bundle.entry. En este ejemplo, la solicitud devuelve un solo recurso Patient, incluidos los datos de ese recurso:

    {
      "entry": [
        {
          "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID",
          "resource": {
            "birthDate": "1970-01-01",
            "gender": "female",
            "id": "PATIENT_ID",
            "meta": {
              "lastUpdated": "LAST_UPDATED",
              "versionId": "VERSION_ID"
            },
            "name": [
              {
                "family": "Smith",
                "given": [
                  "Darcy"
                ],
                "use": "official"
              }
            ],
            "resourceType": "Patient"
            "extension": [
              {
                "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
                "extension": [
                  {
                    "url" : "ombCategory",
                    "valueCoding" : {
                      "system" : "urn:oid:2.16.840.1.113883.6.238",
                      "code" : "2028-9",
                      "display" : "Asian"
                    }
                  }
                ]
              }
            ]
          },
          "search": {
            "mode": "match"
          }
        }
      ],
      "link": [
        {
          "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?ethnicity=urn:oid:2.16.840.1.113883.6.238|2028-9"
        }
      ],
      "resourceType": "Bundle",
      "total": 1,
      "type": "searchset"
    }
    

    PowerShell

    En el siguiente ejemplo se muestra cómo buscar recursos Patient con el código `urn:oid:2.16.840.1.113883.6.238|2028-9` en la extensión `us-core-ethnicity` mediante una solicitud `GET` con Windows PowerShell.
    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    Invoke-RestMethod `
      -Method Get `
      -Headers $headers `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient?ethnicity=urn:oid:2.16.840.1.113883.6.238|2028-9 | ConvertTo-Json

    Si la solicitud se realiza correctamente, el servidor devuelve la respuesta como un recurso FHIR Bundle en formato JSON. El Bundle.type es searchset y los resultados de búsqueda son entradas de la matriz Bundle.entry. En este ejemplo, la solicitud devuelve un solo recurso Patient, incluidos los datos de ese recurso:

    {
      "entry": [
        {
          "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID",
          "resource": {
            "birthDate": "1970-01-01",
            "gender": "female",
            "id": "PATIENT_ID",
            "meta": {
              "lastUpdated": "LAST_UPDATED",
              "versionId": "VERSION_ID"
            },
            "name": [
              {
                "family": "Smith",
                "given": [
                  "Darcy"
                ],
                "use": "official"
              }
            ],
            "resourceType": "Patient"
            "extension": [
              {
                "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
                "extension": [
                  {
                    "url" : "ombCategory",
                    "valueCoding" : {
                      "system" : "urn:oid:2.16.840.1.113883.6.238",
                      "code" : "2028-9",
                      "display" : "Asian"
                    }
                  }
                ]
              }
            ]
          },
          "search": {
            "mode": "match"
          }
        }
      ],
      "link": [
        {
          "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?ethnicity=urn:oid:2.16.840.1.113883.6.238|2028-9"
        }
      ],
      "resourceType": "Bundle",
      "total": 1,
      "type": "searchset"
    }