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
  • 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 Agent 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 Penelusuran Agen Menambahkan dokumen baru ke penyimpanan data Penelusuran Agen
Resource FHIR yang diperbarui Mengganti dokumen yang ada di penyimpanan data Penelusuran Agen sambil mempertahankan ID dokumen Mengganti dokumen yang ada di penyimpanan data Penelusuran Agen sambil mempertahankan ID dokumen
Resource FHIR yang dihapus Tidak sesuai Menghapus dokumen yang sesuai dari penyimpanan data Penelusuran Agen Anda

Sebelum memulai

Tinjau kuota dan batas untuk project Google Cloud Anda. Penyimpanan data layanan kesehatan Penelusuran Agen Anda dapat berisi maksimum 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 Penelusuran Agen.
    • 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 Penelusuran Agen.
    • 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 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)