Membuat penyimpanan data penelusuran layanan kesehatan

Untuk menelusuri data klinis di Vertex AI Search, Anda dapat mengikuti salah satu alur kerja berikut:

  • Buat penyimpanan data layanan kesehatan, impor data FHIR R4 ke penyimpanan data, hubungkan ke aplikasi penelusuran layanan kesehatan, dan buat kueri data klinis.
  • Buat aplikasi penelusuran layanan kesehatan, buat penyimpanan data layanan kesehatan, dan impor data FHIR R4 ke dalam penyimpanan data selama proses pembuatan aplikasi, lalu buat kueri data klinis. Untuk mengetahui informasi selengkapnya, lihat Membuat aplikasi penelusuran layanan kesehatan.

Halaman ini menjelaskan metode pertama.

Tentang frekuensi impor data

Anda dapat mengimpor data FHIR R4 ke penyimpanan data dengan cara berikut:

  • Impor batch: impor satu kali. Data diimpor ke penyimpanan data. Untuk impor inkremental lebih lanjut, lihat Memperbarui data layanan kesehatan.

  • Impor streaming (Pratinjau): impor data streaming hampir real-time. Setiap perubahan inkremental di penyimpanan FHIR sumber disinkronkan di penyimpanan data Vertex AI Search. Streaming memerlukan konektor data, yang merupakan jenis penyimpanan data yang berisi entity. Entity juga merupakan instance penyimpanan data.

    Kecepatan streaming data untuk project Google Cloud tertentu bergantung pada kuota berikut. Jika melebihi kuota, Anda mungkin akan mengalami penundaan streaming.

    • Jumlah penulisan streaming FHIR atau BigQuery yang tertunda per menit. Untuk mengetahui informasi selengkapnya, lihat Kuota dan batas.
    • Jumlah operasi baca FHIR per menit per region. Untuk mengetahui informasi selengkapnya, lihat Kuota FHIR Cloud Healthcare API.

Anda dapat memilih frekuensi impor data pada saat pembuatan penyimpanan data dan Anda tidak dapat mengubah konfigurasi ini nanti.

Impor streaming tersedia untuk semua resource yang didukung Vertex AI Search. Untuk mengetahui informasi selengkapnya, lihat Referensi skema data FHIR R4 Layanan kesehatan.

Sebelum memulai

Sebelum membuat penyimpanan data layanan kesehatan dan mengimpor data ke dalamnya, selesaikan persyaratan berikut:

  • Pahami hubungan antara aplikasi dan penyimpanan data untuk penelusuran layanan kesehatan. Untuk informasi selengkapnya, lihat Tentang aplikasi dan penyimpanan data.

  • Siapkan data FHIR untuk penyerapan.

  • Vertex AI Search untuk layanan kesehatan hanya menyediakan layanan penelusuran di beberapa wilayah AS (us). Oleh karena itu, aplikasi penelusuran dan penyimpanan data layanan kesehatan Anda harus berada di beberapa wilayah us.

Membuat penyimpanan data

Anda dapat membuat penyimpanan data di konsol Google Cloud atau menggunakan API. Kedua pendekatan tersebut berbeda dalam hal berikut:

  • Di konsol Google Cloud: Pilih penyimpanan FHIR sumber di Cloud Healthcare API dan impor data FHIR sebagai bagian dari proses pembuatan penyimpanan data penelusuran layanan kesehatan. Untuk melakukan streaming data FHIR (Pratinjau), penyimpanan FHIR sumber Anda harus berada di project Google Cloud yang sama dengan penyimpanan data Vertex AI Search tujuan.
  • Melalui REST API: Anda dapat mengimpor data FHIR dari penyimpanan FHIR Cloud Healthcare API yang berada di project Google Cloud yang sama atau yang berbeda.
    1. Gunakan metode dataStores.create untuk membuat penyimpanan data layanan kesehatan.
    2. Gunakan metode documents.import untuk menentukan penyimpanan FHIR di Cloud Healthcare API dan mengimpor data FHIR R4.

Untuk membuat penyimpanan data layanan kesehatan, selesaikan langkah-langkah berikut.

Konsol

  1. Di konsol Google Cloud, buka halaman Agent Builder.

    Agent Builder

  2. Di menu navigasi, klik Penyimpanan Data.

  3. Klik Create data store.

  4. Di panel Select a data source, pilih Healthcare API (FHIR) sebagai sumber data Anda.
  5. Untuk mengimpor data dari penyimpanan FHIR, lakukan salah satu tindakan berikut:
    • Pilih penyimpanan FHIR dari daftar penyimpanan FHIR yang tersedia:
      1. Luaskan kolom Penyimpanan FHIR.
      2. Dalam daftar ini, pilih set data yang berada di lokasi yang diizinkan, lalu pilih penyimpanan FHIR yang menggunakan FHIR versi R4.

        Untuk melakukan streaming data FHIR (Pratinjau), penyimpanan FHIR sumber Anda harus berada di project Google Cloud yang sama dengan penyimpanan data Vertex AI Search tujuan.

    • Masukkan penyimpanan FHIR secara manual:
      1. Luaskan kolom Penyimpanan FHIR.
      2. Klik Enter FHIR store manually.
      3. Pada dialog Nama penyimpanan FHIR, masukkan nama lengkap penyimpanan FHIR dalam format berikut:

        project/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID

      4. Klik Simpan.
  6. Di bagian Sinkronisasi, pilih salah satu opsi berikut. Pilihan ini tidak dapat diubah setelah penyimpanan data dibuat.
    • Satu kali: untuk melakukan impor data batch satu kali. Untuk impor inkremental lebih lanjut, lihat Memuat ulang data layanan kesehatan.
    • Streaming: untuk melakukan impor data streaming mendekati real-time. Untuk melakukan streaming data, Anda harus membuat konektor data, yang merupakan jenis penyimpanan data. Ini adalah fitur Pratinjau. Untuk menyiapkan penyimpanan data streaming menggunakan REST API, hubungi engineer pelanggan Anda.
  7. Di bagian Apa skema untuk data ini?, pilih salah satu opsi berikut:
    • Skema standar Google: untuk mempertahankan konfigurasi skema yang ditentukan Google, seperti kemampuan pengindeksan, penelusuran, dan pengambilan, untuk resource dan elemen FHIR yang didukung. Setelah memilih opsi ini, Anda tidak dapat memperbarui skema setelah membuat penyimpanan data. Jika Anda ingin dapat mengubah skema setelah pembuatan penyimpanan data, pilih opsi Skema kustom (Pratinjau).
      1. Klik Lanjutkan.
      2. Di kolom Nama penyimpanan data Anda, masukkan nama untuk penyimpanan data Anda.
      3. Klik Create.
      4. Penyimpanan data yang Anda buat tercantum di halaman Penyimpanan Data.

    • Skema kustom (Pratinjau): untuk menentukan konfigurasi skema Anda sendiri, seperti kemampuan pengindeksan, penelusuran, dan pengambilan, untuk resource dan elemen FHIR yang didukung. Ini adalah fitur Pratinjau. Untuk menyiapkan skema yang dapat dikonfigurasi, hubungi customer engineer Anda.
      1. Klik Lanjutkan.
      2. Tinjau skema, luaskan setiap kolom, dan edit setelan kolom.
      3. Klik Tambahkan kolom baru untuk menambahkan kolom baru di resource FHIR yang didukung. Anda tidak dapat menghapus kolom yang disediakan dalam skema yang ditentukan Google.
      4. Klik Lanjutkan.
      5. Di kolom Nama konektor data Anda, masukkan nama untuk konektor data Anda.
      6. Klik Create.
      7. Konektor data yang Anda buat tercantum di halaman Penyimpanan Data. Penyimpanan FHIR sumber ditambahkan sebagai entity dalam konektor data.

  8. Klik Lanjutkan.

REST

  1. Buat penyimpanan data.

    curl -X POST\
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json"\
     -H "X-Goog-User-Project: PROJECT_ID" \
    "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
     -d '{
        "displayName": "DATA_STORE_DISPLAY_NAME",
        "industryVertical": "HEALTHCARE_FHIR",
        "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
        "searchTier": "STANDARD",
        "searchAddOns": ["LLM"]
    }'
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda.
    • DATA_STORE_ID: ID penyimpanan data Vertex AI Search yang ingin Anda buat. ID ini hanya boleh berisi huruf kecil, angka, garis bawah, dan tanda hubung.
    • DATA_STORE_DISPLAY_NAME: nama tampilan penyimpanan data Vertex AI Search yang ingin Anda buat.
  2. Jika penyimpanan FHIR sumber dan penyimpanan data Vertex AI Search target berada di project Google Cloud yang sama, panggil metode berikut untuk melakukan impor batch satu kali. Jika tidak berada dalam project yang sama, lanjutkan ke langkah berikutnya.

    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": "FULL",
       "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.
  3. Jika penyimpanan FHIR sumber dan penyimpanan data Vertex AI Search target berada di project Google Cloud yang berbeda, panggil metode berikut untuk melakukan impor batch satu kali. Jika keduanya berada dalam project yang sama, kembali ke langkah sebelumnya.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "X-Goog-User-Project: TARGET_PROJECT_ID" \
    "https://us-discoveryengine.googleapis.com/v1alpha/projects/TARGET_PROJECT_ID/locations/us/dataStores/DATA_STORE_ID/branches/0/documents:import" \
    -d '{
       "reconciliation_mode": "FULL",
       "fhir_store_source": {"fhir_store": "projects/SOURCE_PROJECT_ID/locations/CLOUD_HEALTHCARE_DATASET_LOCATION/datasets/CLOUD_HEALTHCARE_DATASET_ID/fhirStores/FHIR_STORE_ID"}
    }'
    

    Ganti kode berikut:

    • TARGET_PROJECT_ID: project ID Google Cloud yang berisi penyimpanan data Vertex AI Search.
    • DATA_STORE_ID: ID penyimpanan data Vertex AI Search.
    • SOURCE_PROJECT_ID: ID project Google Cloud yang berisi set data Cloud Healthcare API dan penyimpanan FHIR.
    • 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.
  4. Opsional: Untuk menyiapkan impor data streaming (Pratinjau) menggunakan REST API, hubungi teknisi pelanggan Anda.

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.

Membuat penyimpanan data


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: "global"
# data_store_id = "YOUR_DATA_STORE_ID"


def create_data_store_sample(
    project_id: str,
    location: str,
    data_store_id: str,
) -> str:
    #  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.DataStoreServiceClient(client_options=client_options)

    # The full resource name of the collection
    # e.g. projects/{project}/locations/{location}/collections/default_collection
    parent = client.collection_path(
        project=project_id,
        location=location,
        collection="default_collection",
    )

    data_store = discoveryengine.DataStore(
        display_name="My Data Store",
        # Options: GENERIC, MEDIA, HEALTHCARE_FHIR
        industry_vertical=discoveryengine.IndustryVertical.GENERIC,
        # Options: SOLUTION_TYPE_RECOMMENDATION, SOLUTION_TYPE_SEARCH, SOLUTION_TYPE_CHAT, SOLUTION_TYPE_GENERATIVE_CHAT
        solution_types=[discoveryengine.SolutionType.SOLUTION_TYPE_SEARCH],
        # TODO(developer): Update content_config based on data store type.
        # Options: NO_CONTENT, CONTENT_REQUIRED, PUBLIC_WEBSITE
        content_config=discoveryengine.DataStore.ContentConfig.CONTENT_REQUIRED,
    )

    request = discoveryengine.CreateDataStoreRequest(
        parent=parent,
        data_store_id=data_store_id,
        data_store=data_store,
        # Optional: For Advanced Site Search Only
        # create_advanced_site_search=True,
    )

    # Make the request
    operation = client.create_data_store(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.CreateDataStoreMetadata(operation.metadata)

    # Handle the response
    print(response)
    print(metadata)

    return operation.operation.name

Mengimpor dokumen

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)

Memverifikasi pembuatan penyimpanan data dan impor data FHIR

Tugas ini menunjukkan cara memverifikasi apakah penyimpanan data berhasil dibuat dan apakah data FHIR berhasil diimpor ke penyimpanan data.

  • Di konsol Google Cloud: Pilih penyimpanan data dan verifikasi detailnya.
  • Melalui REST API:
    1. Gunakan metode dataStores.get untuk mendapatkan detail penyimpanan data perawatan kesehatan.
    2. Gunakan metode operations.get untuk mendapatkan detail operasi impor.

Untuk memverifikasi pembuatan penyimpanan data dan impor data, selesaikan langkah-langkah berikut.

Konsol

  1. Di konsol Google Cloud, buka halaman Agent Builder.

    Agent Builder

  2. Di menu navigasi, klik Penyimpanan Data.

    Halaman Penyimpanan Data menampilkan daftar penyimpanan data di project Google Cloud Anda dengan detailnya.

  3. Verifikasi apakah penyimpanan data atau konektor data yang Anda buat ada dalam daftar penyimpanan data.

  4. Pilih penyimpanan data atau konektor data dan verifikasi detailnya.

    • Untuk penyimpanan data:
      • Tabel ringkasan mencantumkan detail berikut:
        • ID, jenis, dan region penyimpanan data.
        • Jumlah dokumen yang menunjukkan jumlah resource FHIR yang diimpor.
        • Stempel waktu saat dokumen terakhir diimpor.
        • Atau, klik Lihat detail untuk melihat detail impor dokumen, seperti detail tentang impor yang berhasil, sebagian, atau gagal.
      • Tab Documents mencantumkan ID resource dari resource FHIR yang diimpor dan jenis resource-nya dalam tabel yang diberi nomor halaman. Anda dapat memfilter tabel ini untuk memverifikasi apakah resource tertentu telah diimpor.
      • Tab Aktivitas mencantumkan detail impor dokumen, seperti detail tentang impor yang berhasil, sebagian, atau gagal.
    • Untuk konektor data:
      • Tabel ringkasan mencantumkan detail berikut:
        • ID, jenis, dan wilayah koleksi.
        • Nama aplikasi yang terhubung.
        • Status konektor, yang aktif atau dijeda.
      • Tabel Entities menampilkan entity dalam konektor data. Nama entity adalah nama penyimpanan FHIR sumber. ID entitas adalah ID konektor data yang ditambahkan dengan nama penyimpanan FHIR sumber.
        • Klik nama entity untuk melihat detailnya. Karena entity adalah instance penyimpanan data dalam konektor data, detail entity sama dengan detail penyimpanan data.
  5. Di tab Schema, lihat properti untuk resource dan elemen FHIR yang didukung. Klik Edit untuk mengonfigurasi skema. Ini adalah fitur pratinjau Pribadi. Untuk menyiapkan skema yang dapat dikonfigurasi, hubungi customer engineer Anda.

REST

  1. Verifikasi pembuatan penyimpanan data.

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json"\
     -H "X-Goog-User-Project: PROJECT_ID" \
     "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/collections/default_collection/dataStores/DATA_STORE_ID"
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda.
    • DATA_STORE_ID: ID penyimpanan data Vertex AI Search.
  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

Langkah selanjutnya