Actualiza los datos de atención médica

Después de la importación inicial de datos en tu almacén de datos de atención médica de Vertex AI Search, es posible que hayas realizado cualquiera de las siguientes actualizaciones en tu almacenamiento de FHIR de origen:

  • Se agregaron nuevos recursos de FHIR
  • Se actualizaron los recursos de FHIR existentes
  • Recursos de FHIR borrados

En esos casos, puedes conciliar los cambios de tu almacén de FHIR de origen en tu almacén de datos de atención médica de Vertex AI Search.

Descripción general de la conciliación

Puedes conciliar los cambios de forma incremental o total. Los dos modos se comparan en la siguiente tabla.

Cambios en la tienda de FHIR de origen Modo incremental Modo completo
Nuevos recursos de FHIR Agrega documentos nuevos al almacén de datos de Vertex AI Search Agrega documentos nuevos al almacén de datos de Vertex AI Search
Recursos de FHIR actualizados Reemplaza los documentos existentes en el almacén de datos de Vertex AI Search y conserva el ID del documento. Reemplaza los documentos existentes en el almacén de datos de Vertex AI Search y conserva el ID del documento.
Recursos de FHIR borrados No se concilia Quita los documentos correspondientes de tu almacén de datos de Vertex AI Search.

Antes de comenzar

Revisa las cuotas y los límites de tu proyecto de Google Cloud. Tu almacén de datos de atención médica de Vertex AI Search puede contener un máximo de 1 millón de documentos por proyecto. Si se alcanza esta cuota durante la importación, el proceso de importar se detiene.

Cómo realizar una importación incremental

En el siguiente ejemplo, se muestra cómo importar cambios incrementales desde un almacén de FHIR de la API de Cloud Healthcare con el método documents.import.

REST

  1. Realiza una importación incremental.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/dataStores/DATA_STORE_ID/branches/0/documents:import" \
    -d '{
       "reconciliation_mode": "INCREMENTAL",
       "fhir_store_source": {"fhir_store": "projects/PROJECT_ID/locations/CLOUD_HEALTHCARE_DATASET_LOCATION/datasets/CLOUD_HEALTHCARE_DATASET_ID/fhirStores/FHIR_STORE_ID"}
    }'
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto de Google Cloud.
    • DATA_STORE_ID: el ID del almacén de datos de Vertex AI Search.
    • CLOUD_HEALTHCARE_DATASET_ID: El ID del conjunto de datos de la API de Cloud Healthcare que contiene el almacén de FHIR de origen.
    • CLOUD_HEALTHCARE_DATASET_LOCATION: Es la ubicación del conjunto de datos de la API de Cloud Healthcare que contiene el almacén de FHIR de origen.
    • FHIR_STORE_ID: Es el ID del almacén de FHIR R4 de la API de Cloud Healthcare.
  2. Verifica si la operación de importación de datos de FHIR está completa.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/operations/IMPORT_OPERATION_ID"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto de Google Cloud.
    • DATA_STORE_ID: el ID del almacén de datos de Vertex AI Search.
    • IMPORT_OPERATION_ID: Es el ID de la operación de larga duración que se muestra cuando llamas al método import.

Python

Para obtener más información, consulta la documentación de referencia de la API de Python del compilador de agentes de Vertex AI.

Para autenticarte en Vertex AI Agent Builder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine

# TODO(developer): Uncomment these variables before running the sample.
# project_id = "YOUR_PROJECT_ID"
# location = "YOUR_LOCATION" # Values: "us"
# data_store_id = "YOUR_DATA_STORE_ID"
# healthcare_project_id = "YOUR_HEALTHCARE_PROJECT_ID"
# healthcare_location = "YOUR_HEALTHCARE_LOCATION"
# healthcare_dataset_id = "YOUR_HEALTHCARE_DATASET_ID"
# healthcare_fihr_store_id = "YOUR_HEALTHCARE_FHIR_STORE_ID"

#  For more information, refer to:
# https://cloud.google.com/generative-ai-app-builder/docs/locations#specify_a_multi-region_for_your_data_store
client_options = (
    ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
    if location != "global"
    else None
)

# Create a client
client = discoveryengine.DocumentServiceClient(client_options=client_options)

# The full resource name of the search engine branch.
# e.g. projects/{project}/locations/{location}/dataStores/{data_store_id}/branches/{branch}
parent = client.branch_path(
    project=project_id,
    location=location,
    data_store=data_store_id,
    branch="default_branch",
)

request = discoveryengine.ImportDocumentsRequest(
    parent=parent,
    fhir_store_source=discoveryengine.FhirStoreSource(
        fhir_store=client.fhir_store_path(
            healthcare_project_id,
            healthcare_location,
            healthcare_dataset_id,
            healthcare_fihr_store_id,
        ),
    ),
    # Options: `FULL`, `INCREMENTAL`
    reconciliation_mode=discoveryengine.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL,
)

# Make the request
operation = client.import_documents(request=request)

print(f"Waiting for operation to complete: {operation.operation.name}")
response = operation.result()

# After the operation is complete,
# get information from operation metadata
metadata = discoveryengine.ImportDocumentsMetadata(operation.metadata)

# Handle the response
print(response)
print(metadata)