Aggiornare i dati sanitari

Dopo l'importazione iniziale dei dati nel datastore sanitario della ricerca dell'agente, potresti aver eseguito uno dei seguenti aggiornamenti nel datastore FHIR di origine:

  • Aggiunta di nuove risorse FHIR
  • Aggiornamento delle risorse FHIR esistenti
  • Eliminazione di risorse FHIR

In questi casi, puoi riconciliare le modifiche dal datastore FHIR di origine nel datastore sanitario della ricerca dell'agente.

Panoramica della riconciliazione

Puoi riconciliare le modifiche in modo incrementale o completo. I due modi sono confrontati nella tabella seguente.

Modifiche al datastore FHIR di origine Modalità incrementale Modalità completa
Nuove risorse FHIR Aggiunge nuovi documenti al datastore della ricerca dell'agente Aggiunge nuovi documenti al datastore della ricerca dell'agente
Risorse FHIR aggiornate Sostituisce i documenti esistenti nel datastore della ricerca dell'agente mantenendo l'ID documento Sostituisce i documenti esistenti nel datastore della ricerca dell'agente mantenendo l'ID documento
Risorse FHIR eliminate Non riconcilia Rimuove i documenti corrispondenti dal datastore della ricerca dell'agente

Prima di iniziare

Esamina le quote e i limiti per il tuo Google Cloud progetto. Il datastore sanitario della ricerca dell'agente 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.

Esegui un'importazione incrementale

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

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 della ricerca dell'agente.
    • CLOUD_HEALTHCARE_DATASET_ID: l'ID del set di dati dell'API Cloud Healthcare che contiene il datastore FHIR di origine.
    • CLOUD_HEALTHCARE_DATASET_LOCATION: la località del set di dati dell'API Cloud Healthcare che contiene il datastore FHIR di origine.
    • FHIR_STORE_ID: l'ID del datastore 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 della ricerca dell'agente.
    • IMPORT_OPERATION_ID: l'ID operazione dell'operazione a lunga esecuzione restituita quando chiami il metodo import.

Python

Per ulteriori informazioni, consulta la documentazione di riferimento dell'PythonAPI della ricerca dell'agente.

Per eseguire l'autenticazione nella ricerca dell'agente, configura le credenziali predefinite dell'applicazione. Per saperne di più, 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)