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
次のステップ
- 医療検索アプリを作成し、データストアを接続する。
- 医療検索アプリで医療データを検索する。
- 医療データを更新する。