Memperbarui data layanan kesehatan

Setelah impor awal data 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 menyelaraskan 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 Menggantikan dokumen yang ada di penyimpanan data Vertex AI Search sambil mempertahankan ID dokumen Menggantikan dokumen yang ada di penyimpanan data Vertex AI Search sambil mempertahankan ID dokumen
Resource FHIR yang dihapus Tidak sesuai Menghapus dokumen terkait 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 Google Cloud project 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 telah 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 Google Cloud project 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 Aplikasi AI.

Untuk melakukan autentikasi ke Aplikasi AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat 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)