Vertex AI Search で臨床データを検索するには、次のいずれかのワークフローを使用します。
- 医療データストアを作成し、FHIR R4 データをデータストアにインポートして医療検索アプリに接続し、臨床データをクエリします。
- 医療検索アプリを作成し、医療データストアを作成して、アプリの作成プロセス中に FHIR R4 データをデータストアにインポートし、臨床データをクエリします。 詳細については、医療検索アプリを作成するをご覧ください。
このページでは、最初の方法について説明します。
データ インポートの頻度について
FHIR R4 データをデータストアにインポートするには、次の方法があります。
一括インポート: 1 回限りのインポート。データはバッチでデータストアにインポートされます。その他の増分インポートについては、医療データを更新するをご覧ください。
ストリーミング インポート: ニア リアルタイムのストリーミング データのインポート。ソース FHIR ストアの増分変更は、Vertex AI Search データストアで同期されます。ストリーミングには、データストアの一種であるデータコネクタが必要です。データコネクタを作成するには、コレクションを設定する必要があります。データコネクタにはエンティティが含まれています。これはデータストア インスタンスでもあります。
また、ストリーミングの一時停止と再開、必要に応じた手動同期も可能です。詳細については、医療検索データストアを管理するをご覧ください。
特定の Google Cloud プロジェクトのデータ ストリーミング レートは、次の割り当てによって異なります。割り当てを超えると、ストリーミングが遅延する可能性があります。
- 1 分あたりの保留中の FHIR または BigQuery ストリーミング書き込みの数。 詳細については、割り当てと上限をご覧ください。
- 1 分間、1 リージョンあたりの FHIR 読み取りオペレーション数。詳細については、Cloud Healthcare API FHIR の割り当てをご覧ください。
データ インポートの頻度は、データストアの作成時に選択できます。この構成は後で変更できません。
始める前に
医療データストアを作成してデータをインポートする前に、次のことを理解しておいてください。
医療検索のアプリとデータストアの関係。詳細については、アプリとデータストアについてをご覧ください。
Vertex AI Search for Healthcare は、米国のマルチリージョン(
us
)でのみ検索サービスを提供します。したがって、医療検索アプリとデータストアはus
マルチリージョンに配置する必要があります。1 つの Google Cloud プロジェクトの Cloud Healthcare API FHIR ストアから別の Google Cloud プロジェクトの Vertex AI Search データストアに医療データをインポートし、VPC Service Controls を使用している場合、2 つのプロジェクトは同じ境界内に存在する必要があります。
データストアを作成してデータをインポートする
Google Cloud コンソールまたは API を使用して、次の方法でデータストアを作成し、FHIR R4 データをインポートできます。
- 1 回限りのバッチ インポートで静的データストアを作成できます。詳細については、静的データストアを作成して 1 回限りのバッチ インポートを実行するをご覧ください。
- Cloud Healthcare API FHIR ストアの変更を Vertex AI Search データストアに継続的にストリーミングするストリーミング データストアを作成できます。詳細については、ストリーミング データストアを作成してストリーミング インポートを設定するをご覧ください。
静的データストアを作成して 1 回限りの一括インポートを実行する
このセクションでは、バッチ インポートのみを実行できる Vertex AI Search データストアを作成する方法について説明します。バッチデータは、データストアを最初に作成するときにインポートできます。また、必要に応じて増分バッチ インポートを実行することもできます。
コンソール
Google Cloud コンソールで、[AI Applications] ページに移動します。
ナビゲーション メニューで [データストア] をクリックします。
add_boxデータストアを作成 をクリックします。
- [データソースを選択] ペインで、データソースとして [Healthcare API(FHIR)] を選択します。
- FHIR ストアからデータをインポートするには、次のいずれかを行います。
- 使用可能な FHIR ストアのリストから FHIR ストアを選択します。
- [FHIR ストア] フィールドを開きます。
- このリストで、許可されたロケーションにあるデータセットを選択し、FHIR バージョン R4 を使用する FHIR ストアを選択します。
- FHIR ストアを手動で入力します。
- [FHIR ストア] フィールドを開きます。
- [FHIR ストアを手動で入力] をクリックします。
- [FHIR ストア名] ダイアログで、FHIR ストアの完全な名前を次の形式で入力します。
project/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID
- [保存] をクリックします。
- 使用可能な FHIR ストアのリストから FHIR ストアを選択します。
- [ロケーション] セクションで、次のいずれかのオプションを選択します。
この選択は、データストアの作成後に変更することはできません
- 1 回限り: 1 回限りの一括データ インポートを実行します。その他の増分インポートについては、医療データを更新するをご覧ください。
- ストリーミング: ニア リアルタイムのストリーミング データのインポートを実行します。データをストリーミングするには、データストアの一種であるデータコネクタを作成する必要があります。REST API を使用してストリーミング データストアを設定するには、カスタマー エンジニアにお問い合わせください。
- [このデータのスキーマ] セクションで、次のいずれかのオプションを選択します。
- Google の事前定義スキーマ: サポートされている FHIR リソースと要素に対して、Google が定義したスキーマ構成(インデックス登録可能性、検索可能性、取得可能性など)を保持します。このオプションを選択すると、データストアの作成後にスキーマを更新することはできません。データストアの作成後にスキーマを変更できるようにするには、[カスタム スキーマ] オプションを選択します。
- [続行] をクリックします。
- [データストア名] フィールドに、データストアの名前を入力します。
- [作成] をクリックします。
作成したデータストアが [データストア] ページに表示されます。
- カスタム スキーマ: サポートされている FHIR リソースと要素に独自のスキーマ構成(インデックス登録可能性、検索可能性、取得可能性など)を定義します。構成可能なスキーマを設定するには、カスタマー エンジニアにお問い合わせください。
- [続行] をクリックします。
- スキーマを確認し、各フィールドを開いて、フィールド設定を編集します。
- [新しいフィールドを追加] をクリックして、サポートされている FHIR リソースに新しいフィールドを追加します。Google 定義のスキーマで提供されているフィールドは削除できません。
- [続行] をクリックします。
- [データコネクタの名前] フィールドに、データコネクタの名前を入力します。
- [作成] をクリックします。
作成したデータコネクタが [データストア] ページに表示されます。 ソース FHIR ストアは、データコネクタ内のエンティティとして追加されます。
- Google の事前定義スキーマ: サポートされている FHIR リソースと要素に対して、Google が定義したスキーマ構成(インデックス登録可能性、検索可能性、取得可能性など)を保持します。このオプションを選択すると、データストアの作成後にスキーマを更新することはできません。データストアの作成後にスキーマを変更できるようにするには、[カスタム スキーマ] オプションを選択します。
- [続行] をクリックします。
REST
データストアを作成します。
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/v1/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"], "healthcareFhirConfig": { "enableConfigurableSchema": CONFIGURABLE_SCHEMA_TRUE|FALSE } }'
次のように置き換えます。
PROJECT_ID
: 実際の Google Cloud プロジェクト ID。DATA_STORE_ID
: 作成する Vertex AI Search データストアの ID。この ID に使用できるのは、小文字、数字、アンダースコア、ハイフンのみです。DATA_STORE_DISPLAY_NAME
: 作成する Vertex AI Search データストアの表示名。CONFIGURABLE_SCHEMA_TRUE|FALSE
:true
に設定すると、schema.update
メソッドを使用してデータストア スキーマを構成できます。
ソース FHIR ストアとターゲット Vertex AI Search データストアが同じ Google Cloud プロジェクトにある場合は、次のメソッドを呼び出して 1 回限りの一括インポートを実行します。同じプロジェクトにない場合は、次のステップに進みます。
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/v1/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"} }'
次のように置き換えます。
PROJECT_ID
: 実際の Google Cloud プロジェクト ID。DATA_STORE_ID
: Vertex AI Search データストアの ID。CLOUD_HEALTHCARE_DATASET_ID
: ソース FHIR ストアを含む Cloud Healthcare API データセットの ID。CLOUD_HEALTHCARE_DATASET_LOCATION
: ソース FHIR ストアを含む Cloud Healthcare API データセットのロケーション。FHIR_STORE_ID
: Cloud Healthcare API FHIR R4 ストアの ID。
ソース FHIR ストアとターゲット Vertex AI Search データストアが異なる Google Cloud プロジェクトにある場合は、次のメソッドを呼び出して 1 回限りの一括インポートを実行します。同じプロジェクトにある場合は、前の手順に戻ります。
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/v1/projects/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"} }'
次のように置き換えます。
PROJECT_ID
: Vertex AI Search データストアを含む Google Cloudプロジェクトの ID。DATA_STORE_ID
: Vertex AI Search データストアの ID。SOURCE_PROJECT_ID
: Cloud Healthcare API データセットと FHIR ストアを含む Google Cloudプロジェクトの ID。CLOUD_HEALTHCARE_DATASET_ID
: ソース FHIR ストアを含む Cloud Healthcare API データセットの ID。CLOUD_HEALTHCARE_DATASET_LOCATION
: ソース FHIR ストアを含む Cloud Healthcare API データセットのロケーション。FHIR_STORE_ID
: Cloud Healthcare API FHIR R4 ストアの ID。
Python
詳細については、Vertex AI Search Python API のリファレンス ドキュメントをご覧ください。
Vertex AI Search に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
データストアを作成
ドキュメントのインポート
次のステップ
ストリーミング データストアを作成してストリーミング インポートを設定する
このセクションでは、Cloud Healthcare API FHIR ストアから変更を継続的にストリーミングするストリーミング Vertex AI Search データストアを作成する方法について説明します。
コンソール
Google Cloud コンソールで、[AI Applications] ページに移動します。
ナビゲーション メニューで [データストア] をクリックします。
add_boxデータストアを作成 をクリックします。
- [データソースを選択] ペインで、データソースとして [Healthcare API(FHIR)] を選択します。
- FHIR ストアからデータをインポートするには、次のいずれかを行います。
- 使用可能な FHIR ストアのリストから FHIR ストアを選択します。
- [FHIR ストア] フィールドを開きます。
- このリストで、許可されたロケーションにあるデータセットを選択し、FHIR バージョン R4 を使用する FHIR ストアを選択します。
- FHIR ストアを手動で入力します。
- [FHIR ストア] フィールドを開きます。
- [FHIR ストアを手動で入力] をクリックします。
- [FHIR ストア名] ダイアログで、FHIR ストアの完全な名前を次の形式で入力します。
project/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID
- [保存] をクリックします。
- 使用可能な FHIR ストアのリストから FHIR ストアを選択します。
- [ロケーション] セクションで、次のいずれかのオプションを選択します。
この選択は、データストアの作成後に変更することはできません
- 1 回限り: 1 回限りの一括データ インポートを実行します。その他の増分インポートについては、医療データを更新するをご覧ください。
- ストリーミング: ニア リアルタイムのストリーミング データのインポートを実行します。データをストリーミングするには、データストアの一種であるデータコネクタを作成する必要があります。REST API を使用してストリーミング データストアを設定するには、カスタマー エンジニアにお問い合わせください。
- [このデータのスキーマ] セクションで、次のいずれかのオプションを選択します。
- Google の事前定義スキーマ: サポートされている FHIR リソースと要素に対して、Google が定義したスキーマ構成(インデックス登録可能性、検索可能性、取得可能性など)を保持します。このオプションを選択すると、データストアの作成後にスキーマを更新することはできません。データストアの作成後にスキーマを変更できるようにするには、[カスタム スキーマ] オプションを選択します。
- [続行] をクリックします。
- [データストア名] フィールドに、データストアの名前を入力します。
- [作成] をクリックします。
作成したデータストアが [データストア] ページに表示されます。
- カスタム スキーマ: サポートされている FHIR リソースと要素に独自のスキーマ構成(インデックス登録可能性、検索可能性、取得可能性など)を定義します。構成可能なスキーマを設定するには、カスタマー エンジニアにお問い合わせください。
- [続行] をクリックします。
- スキーマを確認し、各フィールドを開いて、フィールド設定を編集します。
- [新しいフィールドを追加] をクリックして、サポートされている FHIR リソースに新しいフィールドを追加します。Google 定義のスキーマで提供されているフィールドは削除できません。
- [続行] をクリックします。
- [データコネクタの名前] フィールドに、データコネクタの名前を入力します。
- [作成] をクリックします。
作成したデータコネクタが [データストア] ページに表示されます。 ソース FHIR ストアは、データコネクタ内のエンティティとして追加されます。
- Google の事前定義スキーマ: サポートされている FHIR リソースと要素に対して、Google が定義したスキーマ構成(インデックス登録可能性、検索可能性、取得可能性など)を保持します。このオプションを選択すると、データストアの作成後にスキーマを更新することはできません。データストアの作成後にスキーマを変更できるようにするには、[カスタム スキーマ] オプションを選択します。
- [続行] をクリックします。
REST
データ コネクタを作成してストリーミングを設定します。
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:setUpDataConnector" \ -d ' { "collectionId": "COLLECTION_ID", "collectionDisplayName": "COLLECTION_NAME", "dataConnector": { "dataSource": "gcp_fhir", "params": { "instance_uri": "projects/SOURCE_PROJECT_ID/locations/CLOUD_HEALTHCARE_DATASET_LOCATION/datasets/CLOUD_HEALTHCARE_DATASET_ID" }, "entities": [ { "entityName": "FHIR_STORE_NAME" "healthcareFhirConfig": { "enableConfigurableSchema": CONFIGURABLE_SCHEMA_TRUE|FALSE, "enableStaticIndexingForBatchIngestion": STATIC_INDEXING_TRUE|FALSE } } ], "syncMode": "STREAMING" } }'
次のように置き換えます。
PROJECT_ID
: 実際の Google Cloud プロジェクト ID。COLLECTION_ID
: FHIR R4 データをストリーミングするコレクションの ID。COLLECTION_NAME
: FHIR R4 データをストリーミングするコレクションの名前。SOURCE_PROJECT_ID
: Cloud Healthcare API データセットと FHIR ストアを含む Google Cloudプロジェクトの ID。CLOUD_HEALTHCARE_DATASET_ID
: ソース FHIR ストアを含む Cloud Healthcare API データセットの ID。CLOUD_HEALTHCARE_DATASET_LOCATION
: ソース FHIR ストアを含む Cloud Healthcare API データセットのロケーション。FHIR_STORE_ID
: Cloud Healthcare API FHIR R4 ストアの ID。CONFIGURABLE_SCHEMA_TRUE|FALSE
:true
に設定すると、schema.update
メソッドを使用してデータストア スキーマを構成できるブール値。STATIC_INDEXING_TRUE|FALSE
:true
に設定すると、インデックス作成割り当て量が多い過去のデータをインポートできます。これは、検索アプリでデータ量が増加することが予想される場合に便利です。ただし、個々のレコードのインデックス作成には時間がかかります。このフィールドはtrue
に設定することを強くおすすめします。
- コレクションが正常に作成されると、 Google Cloud コンソールの [データストア] ページのデータストアのリストにデータコネクタが追加されます。
- 作成されたデータコネクタには、データのストリーミング元である FHIR R4 ストアと同じ名前のエンティティが含まれています。
次のステップ
データストアの作成と FHIR データのインポートを確認する
このタスクでは、データストアが正常に作成されたかどうか、FHIR データがデータストアに正常にインポートされたかどうかを確認する方法について説明します。
- Google Cloud コンソールで、データストアを選択して詳細を確認します。
- REST API を使用する:
dataStores.get
メソッドを使用して、医療データストアの詳細を取得します。operations.get
メソッドを使用して、インポート オペレーションの詳細を取得します。
データストアの作成とデータ インポートを確認する手順は次のとおりです。
コンソール
Google Cloud コンソールで、[AI Applications] ページに移動します。
ナビゲーション メニューで [データストア] をクリックします。
[データストア] ページに、 Google Cloudプロジェクトのデータストアのリストとその詳細が表示されます。
作成したデータストアまたはデータコネクタがデータストアのリストにあるかどうかを確認します。データストアのリストで、データをストリーミングするデータ コネクタには、Cloud Healthcare API FHIR ストアと同じ名前のデータストアが含まれています。
データストアまたはデータコネクタを選択し、詳細を確認します。
- データストアの場合:
- 概要表には、次の詳細が表示されます。
- データストアの ID、タイプ、リージョン。
- インポートされた FHIR リソースの数を示すドキュメントの数。
- 最後のドキュメントがインポートされたときのタイムスタンプ。
- 必要に応じて、[詳細を表示] をクリックして、ドキュメントのインポートの詳細(インポートの成功、部分的な成功、失敗など)を確認します。
- [ドキュメント] タブには、インポートされた FHIR リソースのリソース ID とそのリソースタイプがページネーションされた表に表示されます。このテーブルをフィルタして、特定のリソースがインポートされたかどうかを確認できます。
- [アクティビティ] タブには、ドキュメントのインポートの詳細(インポートの成功、部分的な成功、失敗など)が表示されます。
- 概要表には、次の詳細が表示されます。
- データコネクタの場合:
- 概要表には、次の詳細が表示されます。
- コレクション ID、タイプ、リージョン。
- 接続アプリの名前。
- コネクタの状態(有効または一時停止)。
- [エンティティ] テーブルには、データコネクタ内のエンティティが表示されます。エンティティの名前は、ソース FHIR ストアの名前です。エンティティの ID は、ソース FHIR ストア名が付加されたデータ コネクタの ID です。
- ポリシー名をクリックして、その詳細を確認します。エンティティはデータコネクタ内のデータストア インスタンスであるため、エンティティの詳細はデータストアの詳細と同じです。
- 概要表には、次の詳細が表示されます。
- データストアの場合:
[スキーマ] タブで、サポートされている FHIR リソースと要素のプロパティを表示します。[編集] をクリックしてスキーマを構成します。
REST
データストアの作成を確認します。
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/v1/projects/PROJECT_ID/locations/us/collections/default_collection/dataStores/DATA_STORE_ID"
次のように置き換えます。
PROJECT_ID
: 実際の Google Cloud プロジェクト ID。DATA_STORE_ID
: Vertex AI Search データストアの ID。
FHIR データのインポート オペレーションが完了したかどうかを確認します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://us-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/us/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/operations/IMPORT_OPERATION_ID"
次のように置き換えます。
PROJECT_ID
: 実際の Google Cloud プロジェクト ID。DATA_STORE_ID
: Vertex AI Search データストアの ID。IMPORT_OPERATION_ID
:import
メソッドの呼び出し時に返される長時間実行オペレーションのオペレーション ID
次のステップ
- 医療検索アプリを作成し、データストアを接続する。
- 医療検索アプリで医療データを検索する。
- 医療データを更新する。