Atualizar dados de saúde

Depois da importação inicial de dados para o repositório de dados de saúde da Pesquisa do agente, você pode ter feito uma das seguintes atualizações no armazenamento FHIR de origem:

  • Adição de novos recursos FHIR
  • Atualização de recursos FHIR atuais
  • Exclusão de recursos FHIR

Nesses casos, é possível reconciliar as mudanças do armazenamento FHIR de origem no repositório de dados de saúde da Pesquisa do agente.

Visão geral da reconciliação

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

Mudanças no repositório FHIR de origem Modo incremental Modo completo
Novos recursos FHIR Adiciona novos documentos ao repositório de dados da Pesquisa do agente Adiciona novos documentos ao repositório de dados da Pesquisa do agente
Recursos FHIR atualizados Substitui os documentos atuais no repositório de dados da Pesquisa do agente, mantendo o ID do documento Substitui os documentos atuais no repositório de dados da Pesquisa do agente, mantendo o ID do documento
Recursos FHIR excluídos Não reconcilia Remove os documentos correspondentes do repositório de dados da Pesquisa do agente

Antes de começar

Consulte as cotas e os limites do Google Cloud projeto. O repositório de dados de saúde da Pesquisa do agente pode conter no máximo 1 milhão de documentos por projeto. Se essa cota for atingida durante a importação, o processo de importação será 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 documents.import método.

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 Google Cloud projeto.
    • DATA_STORE_ID: o ID do repositório de dados da Pesquisa do agente.
    • CLOUD_HEALTHCARE_DATASET_ID: o ID do conjunto de dados da API Cloud Healthcare que contém o repositório FHIR de origem.
    • CLOUD_HEALTHCARE_DATASET_LOCATION: o local do conjunto de dados da API Cloud Healthcare que contém o repositório 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 Google Cloud projeto.
    • DATA_STORE_ID: o ID do repositório de dados da Pesquisa do agente.
    • IMPORT_OPERATION_ID: o ID da operação de longa duração que é retornada quando você chama o método import.

Python

Para mais informações, consulte a Pesquisa do agente Python API documentação de referência.

Para autenticar na Pesquisa do agente, configure o Application Default Credentials. Se quiser 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)