Aggiornare i dati sanitari

Dopo l'importazione iniziale dei dati nel datastore di dati sanitari di Vertex AI Search, potresti aver eseguito uno dei seguenti aggiornamenti nell'archivio FHIR di origine:

  • Aggiunte nuove risorse FHIR
  • Risorse FHIR esistenti aggiornate
  • Risorse FHIR eliminate

In questi casi, puoi riconciliare le modifiche dall'archivio FHIR di origine nell'datastore sanitari di Vertex AI Search.

Panoramica della riconciliazione

Puoi riconciliare le modifiche in modo incrementale o completo. Le due modalità sono confrontate nella tabella seguente.

Modifiche al datastore FHIR di origine Modalità incrementale Modalità completa
Nuove risorse FHIR Aggiunge nuovi documenti al datastore Vertex AI Search Aggiunge nuovi documenti al datastore Vertex AI Search
Risorse FHIR aggiornate Sostituisce i documenti esistenti nel datastore Vertex AI Search mantenendo l'ID documento Sostituisce i documenti esistenti nel datastore Vertex AI Search mantenendo l'ID documento
Risorse FHIR eliminate Non viene riconciliato Rimuove i documenti corrispondenti dal datastore Vertex AI Search

Prima di iniziare

Esamina le quote e i limiti per il tuo progetto Google Cloud . Il datastore dei dati sanitari di Vertex AI Search può contenere un massimo di 1 milione di documenti per progetto. Se questa quota viene raggiunta durante l'importazione, il processo di importazione si interrompe.

Eseguire un'importazione incrementale

L'esempio seguente mostra come importare le modifiche incrementali da un archivio FHIR dell'API Cloud Healthcare utilizzando il metodo documents.import.

REST

  1. Esegui un'importazione incrementale.

    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"}
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • DATA_STORE_ID: l'ID del datastore Vertex AI Search.
    • CLOUD_HEALTHCARE_DATASET_ID: l'ID del set di dati dell'API Cloud Healthcare che contiene l'archivio FHIR di origine.
    • CLOUD_HEALTHCARE_DATASET_LOCATION: la posizione del set di dati dell'API Cloud Healthcare che contiene l'archivio FHIR di origine.
    • FHIR_STORE_ID: l'ID dello store FHIR R4 dell'API Cloud Healthcare.
  2. Verifica se l'operazione di importazione dei dati FHIR è stata completata.

    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"
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • DATA_STORE_ID: l'ID del datastore Vertex AI Search.
    • IMPORT_OPERATION_ID: l'ID operazione dell'operazione a lunga esecuzione restituito quando chiami il metodo import.

Python

Per saperne di più, consulta la documentazione di riferimento dell'API AI Applications per Python.

Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

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)