Memperbarui data layanan kesehatan

Setelah impor data awal ke penyimpanan data layanan kesehatan Vertex AI Search, Anda mungkin telah melakukan salah satu pembaruan berikut di penyimpanan FHIR sumber:

  • Menambahkan resource FHIR baru
  • Memperbarui resource FHIR yang ada
  • Resource FHIR yang dihapus

Dalam kasus tersebut, Anda dapat merekonsiliasi perubahan dari penyimpanan FHIR sumber ke penyimpanan data layanan kesehatan Vertex AI Search.

Ringkasan rekonsiliasi

Anda dapat merekonsiliasi perubahan secara bertahap atau sepenuhnya. Kedua mode tersebut dibandingkan dalam tabel berikut.

Perubahan pada FHIR store sumber Mode inkremental Mode penuh
Resource FHIR baru Menambahkan dokumen baru ke penyimpanan data Vertex AI Search Menambahkan dokumen baru ke penyimpanan data Vertex AI Search
Resource FHIR yang diperbarui Mengganti dokumen yang ada di penyimpanan data Vertex AI Search sekaligus mempertahankan ID dokumen Mengganti dokumen yang ada di penyimpanan data Vertex AI Search sekaligus mempertahankan ID dokumen
Resource FHIR yang dihapus Tidak merekonsiliasi Menghapus dokumen yang sesuai dari penyimpanan data Vertex AI Search Anda

Sebelum memulai

Tinjau kuota dan batas untuk project Google Cloud Anda. Penyimpanan data layanan kesehatan Vertex AI Search Anda dapat berisi maksimal 1 juta dokumen per project. Jika kuota ini tercapai selama impor, proses impor akan berhenti.

Melakukan impor inkremental

Contoh berikut menunjukkan cara mengimpor perubahan inkremental dari penyimpanan FHIR Cloud Healthcare API menggunakan metode documents.import.

REST

  1. Lakukan impor inkremental.

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

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda.
    • DATA_STORE_ID: ID penyimpanan data Vertex AI Search.
    • CLOUD_HEALTHCARE_DATASET_ID: ID set data Cloud Healthcare API yang berisi penyimpanan FHIR sumber.
    • CLOUD_HEALTHCARE_DATASET_LOCATION: lokasi set data Cloud Healthcare API yang berisi penyimpanan FHIR sumber.
    • FHIR_STORE_ID: ID penyimpanan FHIR R4 Cloud Healthcare API.
  2. Verifikasi apakah operasi impor data FHIR sudah selesai.

    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"
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda.
    • DATA_STORE_ID: ID penyimpanan data Vertex AI Search.
    • IMPORT_OPERATION_ID: ID operasi dari operasi yang berjalan lama yang ditampilkan saat Anda memanggil metode import.

Python

Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI Agent Builder.

Untuk melakukan autentikasi ke Vertex AI Agent Builder, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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)