Memperbarui data layanan kesehatan

Setelah impor awal data ke penyimpanan data layanan kesehatan Penelusuran Agen, 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 Penelusuran Agen.

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 Penelusuran Agen Menambahkan dokumen baru ke penyimpanan data Penelusuran Agen
Resource FHIR yang diupdate 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 mereferensikan Menghapus dokumen yang sesuai dari penyimpanan data Penelusuran Agen

Sebelum memulai

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

Python

Untuk mengetahui informasi selengkapnya, lihat Penelusuran Agen Python API dokumentasi referensi.

Untuk melakukan autentikasi ke Penelusuran Agen, 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)