Vertex AI Search の医療データストアにデータを最初にインポートした後、ソースの FHIR ストアで次のいずれかの更新を行った可能性があります。
新しい FHIR リソースを追加しました
既存の FHIR リソースを更新しました
削除された FHIR リソース
このような場合は、ソース FHIR ストアから Vertex AI Search ヘルスケア データストアに変更を調整 できます。
調整の概要
キーワード: Vertex AI Search のヘルスケア データストア内のドキュメントは、FHIR ストア内の FHIR R4 リソースに対応しています。 変更の調整は、増分または完全な方法で行うことができます。次の表に、2 つのモードの比較を示します。
ソース FHIR ストアの変更
増分モード
フルモード
新しい FHIR リソース
Vertex AI Search データストアに新しいドキュメントを追加します。
Vertex AI Search データストアに新しいドキュメントを追加します。
FHIR リソースの更新
ドキュメント ID を保持しながら、Vertex AI Search データストア内の既存のドキュメントを置き換えます。
ドキュメント ID を保持しながら、Vertex AI Search データストア内の既存のドキュメントを置き換えます。
削除された FHIR リソース
調整されない
Vertex AI Search データストアから対応するドキュメントを削除します。
始める前に
Google Cloud プロジェクトの割り当てと上限 を確認します。Vertex AI Search のヘルスケア データストアには、プロジェクトごとに最大 100 万個のドキュメントを含めることができます。インポート中にこの割り当てに達すると、インポート プロセスは停止します。
次のサンプルは、documents.import
メソッドを使用して Cloud Healthcare API FHIR ストアから増分変更をインポートする方法を示しています。
このタスクに必要な権限
service-PROJECT_NUMBER @gcp-sa-discoveryengine.iam.gserviceaccount.com
サービス アカウントに次の権限、または 、次の Identity and Access Management(IAM) ロールを付与します。
Cloud Healthcare API の FHIR ストアから FHIR データを 1 回だけインポートする場合。
権限
bigquery.jobs.create
bigquery.datasets.create
bigquery.tables.export
healthcare.datasets.get
healthcare.datasets.list
healthcare.fhirStores.get
healthcare.fhirStores.list
healthcare.fhirStores.export
ロール
Cloud Healthcare API(プレビュー版)の FHIR ストアから FHIR データをストリーミング インポートする場合。権限
healthcare.datasets.get
healthcare.datasets.list
healthcare.fhirStores.get
healthcare.fhirStores.update
healthcare.fhirStores.list
healthcare.fhirStores.export
healthcare.fhirResources.get
ロール
データストア(プレビュー版)の作成時にスキーマをカスタマイズして、FHIR リソースと要素のインデックス登録可能性、検索可能性、取得可能性を構成するには。
権限
storage.objects.create
storage.objects.delete
storage.objects.list
ロール
Google Cloud 内のファイルを参照する FHIR データをインポートするには。参照されるファイルが Vertex AI Search アプリと同じ Google Cloud プロジェクトにある場合、これらの権限はデフォルトで付与されます。
権限
storage.objects.get
storage.buckets.create
ロール
REST
増分インポートを実行します。
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 "}
}'
以下を置き換えます。
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。
レスポンス
次のような JSON レスポンスが返されます。レスポンスには、長時間実行オペレーションの ID が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでにかなりの時間がかかる場合に返されます。IMPORT_OPERATION_ID の値をメモします。この値は、インポートのステータスを確認 するために必要です。
{
"name": "projects/PROJECT_ID /locations/us/collections/default_collection/dataStores/DATA_STORE_ID /branches/0/operations/IMPORT_OPERATION_ID ",
"metadata": {
"@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.ImportDocumentsMetadata"
}
}
FHIR データのインポート オペレーションが完了しているかどうかを確認します。
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 "
以下を置き換えます。
PROJECT_ID
: Google Cloud プロジェクトの ID。
DATA_STORE_ID
: Vertex AI Search データストアの ID。
IMPORT_OPERATION_ID
: import
メソッドの呼び出し時に返される長時間実行オペレーションのオペレーション ID。
レスポンス
次のような JSON レスポンスが返されます。インポート オペレーションは長時間実行オペレーションです。オペレーションの実行中、レスポンスには次のフィールドが含まれます。
successCount
: これまでに正常にインポートされた FHIR リソースの数を示します。
failureCount
: これまでにインポートに失敗した FHIR リソースの数を示します。このフィールドは、インポートに失敗した FHIR リソースがある場合にのみ表示されます。
オペレーションが完了すると、レスポンスに次のフィールドが含まれます。
successCount
: 正常にインポートされた FHIR リソースの数を示します。
failureCount
: インポートに失敗した FHIR リソースの数を示します。このフィールドは、インポートに失敗した FHIR リソースがある場合にのみ表示されます。
totalCount
: ソース FHIR ストアにある FHIR リソースの数を示します。このフィールドは、インポートに失敗した FHIR リソースがある場合にのみ表示されます。
done
: インポート オペレーションが完了したことを示す値 true
があります。
errorSamples
: インポートに失敗したリソースに関する情報を提供します。このフィールドは、インポートに失敗した FHIR リソースがある場合にのみ表示されます。
errorConfig
: エラーの概要ログファイルを含む Cloud Storage のロケーションのパスを提供します。
{
"name": "projects/PROJECT_ID /locations/us/collections/default_collection/dataStores/DATA_STORE_ID /branches/0/operations/IMPORT_OPERATION_ID ",
"metadata": {
"@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.ImportDocumentsMetadata",
"createTime": "START_TIMESTAMP ",
"updateTime": "END_TIMESTAMP ",
"successCount": "SUCCESS_COUNT ",
"failureCount": "FAILURE_COUNT ",
"totalCount": "TOTAL_COUNT ",
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.ImportDocumentsResponse",
"errorSamples": [ERROR_SAMPLE ],
"errorConfig": {
"gcsPrefix": "LOG_FILE_LOCATION "
}
}
}