Memperbarui data layanan kesehatan

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

  • Menambahkan resource FHIR baru
  • Mengupdate resource FHIR yang ada
  • Menghapus resource FHIR

Dalam kasus tersebut, Anda dapat mereferensikan perubahan dari penyimpanan FHIR sumber ke penyimpanan data layanan kesehatan Agent Search.

Ringkasan rekonsiliasi

Anda dapat mereferensikan perubahan secara inkremental atau penuh. Kedua mode tersebut dibandingkan dalam tabel berikut.

Perubahan pada penyimpanan FHIR sumber Mode inkremental Mode penuh
Resource FHIR baru Menambahkan dokumen baru ke penyimpanan data Agent Search Menambahkan dokumen baru ke penyimpanan data Agent Search
Resource FHIR yang diupdate Mengganti dokumen yang ada di penyimpanan data Agent Search sambil mempertahankan ID dokumen Mengganti dokumen yang ada di penyimpanan data Agent Search sambil mempertahankan ID dokumen
Resource FHIR yang dihapus Tidak mereferensikan Menghapus dokumen yang sesuai dari penyimpanan data Agent Search

Sebelum memulai

Tinjau kuota dan batas untuk Google Cloud project Anda. Penyimpanan data layanan kesehatan Agent Search 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: IDproject Anda Google Cloud .
    • DATA_STORE_ID: ID penyimpanan data Agent 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: IDproject Anda Google Cloud .
    • DATA_STORE_ID: ID penyimpanan data Agent Search.
    • IMPORT_OPERATION_ID: ID operasi yang berjalan lama yang ditampilkan saat Anda memanggil metode import.

Python

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Python API Agent Search.

Untuk melakukan autentikasi ke Agent Search, 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)