Atualizar dados de saúde

Após a importação inicial de dados para a Vertex AI para Pesquisa de saúde repositório de dados, é possível que você tenha realizado uma das seguintes atualizações em sua fonte Repositório de FHIR:

  • Foram adicionados novos recursos FHIR
  • Atualização dos recursos FHIR
  • Recursos FHIR excluídos

Nesses casos, é possível conciliar as mudanças da sua origem do armazenamento FHIR no armazenamento de dados de saúde da Vertex AI para Pesquisa.

Visão geral da reconciliação

É possível reconciliar as alterações de forma incremental ou completa. Os dois modos são comparados na tabela a seguir.

Alterações no repositório FHIR de origem Modo incremental Modo completo
Novos recursos FHIR Adiciona novos documentos ao repositório de dados da Vertex AI para Pesquisa Adiciona novos documentos ao repositório de dados da Vertex AI para Pesquisa
Recursos FHIR atualizados Substitui os documentos existentes no repositório de dados da Vertex AI para Pesquisa, mantendo o ID do documento Substitui os documentos no repositório de dados da Vertex AI para Pesquisa mantendo o ID do documento
Recursos FHIR excluídos Não reconcilia Remove os documentos correspondentes do repositório de dados da Vertex AI para Pesquisa

Antes de começar

Revise as cotas e limites do seu projeto do Google Cloud. O repositório de dados de saúde da Vertex AI para Pesquisa pode conter no máximo um milhão de documentos por projeto. Se essa cota for atingida durante a importação, o o processo de importação é interrompido.

Fazer uma importação incremental

O exemplo a seguir mostra como importar mudanças incrementais de um armazenamento FHIR da API Cloud Healthcare usando o método documents.import.

REST

  1. Faça uma importação 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"}
    }'
    

    Substitua:

    • PROJECT_ID: o ID do seu projeto do Google Cloud.
    • DATA_STORE_ID: o ID do repositório de dados da Vertex AI para Pesquisa.
    • CLOUD_HEALTHCARE_DATASET_ID: o ID do conjunto de dados da API Cloud Healthcare que contém o armazenamento FHIR de origem.
    • CLOUD_HEALTHCARE_DATASET_LOCATION: o local do conjunto de dados da API Cloud Healthcare que contém o armazenamento FHIR de origem.
    • FHIR_STORE_ID: o ID do armazenamento FHIR R4 da API Cloud Healthcare.
  2. Verifique se a operação de importação de dados FHIR foi concluída.

    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"
    

    Substitua:

    • PROJECT_ID: o ID do seu projeto do Google Cloud.
    • DATA_STORE_ID: o ID do repositório de dados da Vertex AI para Pesquisa.
    • IMPORT_OPERATION_ID: o ID da operação de longa duração que é retornado quando você chama o método import.

Python

Para mais informações, consulte a documentação de referência da API Python do Vertex AI Agent Builder.

Para autenticar no Vertex AI Agent Builder, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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)