Actualizar datos sanitarios

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

  • Se han añadido nuevos recursos FHIR
  • Se han actualizado los recursos FHIR
  • Recursos FHIR eliminados

En estos casos, puede conciliar los cambios de su almacén FHIR de origen en su almacén de datos sanitarios de Vertex AI Search.

Descripción general de la conciliación

Puedes conciliar los cambios de forma incremental o completa. En la siguiente tabla se comparan los dos modos.

Cambios en el almacén FHIR de origen Modo incremental Modo completo
Nuevos recursos FHIR Añade documentos nuevos al almacén de datos de Vertex AI Search Añade documentos nuevos al almacén de datos de Vertex AI Search
Recursos FHIR actualizados Sustituye los documentos del almacén de datos de Vertex AI Search y conserva el ID de documento. Sustituye los documentos del almacén de datos de Vertex AI Search y conserva el ID de documento.
Recursos FHIR eliminados No se concilia Elimina los documentos correspondientes de tu almacén de datos de Vertex AI Search

Antes de empezar

Consulta las cuotas y los límites de tu Google Cloud proyecto. Tu almacén de datos sanitarios 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 se detendrá.

Realizar una importación incremental

En el siguiente ejemplo se muestra cómo importar cambios incrementales de un almacén FHIR de la API Cloud Healthcare mediante 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"}
    }'
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID de tu 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 FHIR de origen.
    • CLOUD_HEALTHCARE_DATASET_LOCATION: la ubicación del conjunto de datos de la API de Cloud Healthcare que contiene el almacén FHIR de origen.
    • FHIR_STORE_ID: el ID del almacén FHIR R4 de la API de Cloud Healthcare.
  2. Verifica si se ha completado la operación de importación de datos FHIR.

    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"
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID de tu proyecto de Google Cloud .
    • DATA_STORE_ID: el ID del almacén de datos de Vertex AI Search.
    • IMPORT_OPERATION_ID: el ID de operación de la operación de larga duración que se devuelve al llamar al método import.

Python

Para obtener más información, consulta la documentación de referencia de la API AI Applications Python.

Para autenticarte en las aplicaciones de IA, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en 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)