割り当てと上限

Cloud Healthcare API は、さまざまな理由でリソースの使用を制限しています。たとえば、割り当て量を制限して予期しない使用量の急増を防ぐことで Google Cloud ユーザーのコミュニティを保護しています。Google Cloud では無料トライアルの割り当ても用意しています。この割り当て量制限により、Google Cloud(Cloud Healthcare API を含む)を試しているユーザーは、制限付きでアクセスできます。

Cloud Healthcare API の割り当ては、リージョン単位とマルチリージョン単位のいずれかでプロジェクトによって適用されます。単一のリージョンの割り当てが枯渇しても、他のリージョンでの Cloud Healthcare API の使用には影響しません。

割り当てと使用量を確認する

割り当てとは、ストレージの上限(上り上限とも呼ばれる)とオペレーションの制限のことです。

プロジェクトで利用できるリソースの割り当て量は、Google Cloud コンソールの [割り当て] ページで確認できます。

Cloud Healthcare API の割り当てのみを表示するには、[テーブルをフィルタリング] プルダウン リストから [サービス] を選択し、[Cloud Healthcare API] を選択します。

割り当て量はすべてのプロジェクトで同じとは限りません。Cloud Healthcare API の使用が多くなるに伴い、割り当てが増加する可能性があります。使用量の大幅な増加が見込まれる場合は、事前に Google Cloud Console の [割り当て] ページから割り当て量の調整をリクエストできます。割り当ての増加リクエストを行っても課金されません。料金が発生するのは、リソースの使用量が増えたときのみです。

リソースの上限

Cloud Healthcare API は、リクエストのコンテンツのサイズを制限します。たとえば、DICOM リクエストの X 線画像のサイズなどが制限されます。リソース上限の変更はリクエストできません。ただし、状況によっては、インポート オペレーションを使用して、リソース上限よりも大きなコンテンツをインポートできます。

以下のリソース上限が適用されます。また、これらは変更される可能性があります。

モダリティ リクエスト サイズの上限
DICOM
  • Store トランザクション: 無制限。その他すべてのメソッドは 10 MBです。
  • Store トランザクション / Retrieve トランザクション: オペレーションが 1 時間を超えるとタイムアウトが発生します。
  • Search トランザクション メソッドの最大オフセットは 1,000,000 件で、スタディ / シリーズの場合は最大 5,000 件、インスタンスの場合は最大 50,000 件です。
  • 匿名化: 匿名化では、ピクセル リダクションが含まれる場合、1 GB を超える DICOM ファイルを処理できません
  • 取り込んだ DICOM ファイルの上限はタグ 1 つあたり 2 GB です。この上限には、ネイティブ形式でエンコードされた PixelData が含まれます。
  • DICOM データをコード変換する場合、最大ファイルサイズは 1 GB、最大フレームサイズは 150 MB
  • dicomStores.import: 最大ファイルサイズは 20 GB です。
FHIR executeBundle: 50 MB。その他すべてのメソッドは 10 MB です。
HL7v2 10 MB

関連するリソース上限を超えるコンテンツを処理しようとすると、エラーが発生します。

リソース上限を超えるコンテンツへのインポート オペレーションの使用

インポート オペレーションにより、関連するリソース上限を超えるコンテンツを処理できます。インポート オペレーションのコンテンツ サイズは、個々のオブジェクトに対する Google Cloud の最大ストレージ サイズである 5 TB によってのみ制限されます。インポート オペレーションは、インポート オペレーションにかかる時間を決定するストレージの割り当てに影響を受けます。たとえば、DICOM ストアに多くの DICOM インスタンスを格納する必要があり、リクエスト サイズの上限による影響を受けたくない場合は、インポート オペレーションを使用することをおすすめします。利用可能なストア トランザクション メソッドを使用してインスタンスをアップロードする代わりに、インスタンスを Cloud Storage バケットにアップロードしてから、DICOM ストアにインポートできます。

インポート オペレーションを使用して DICOM データをインポートするための詳細な手順については、DICOM データのインポートとエクスポートを参照してください。

インポート オペレーションを使用して FHIR リソースをインポートするための詳細な手順については、FHIR リソースのインポートとエクスポートを参照してください。

インポート オペレーションを使用して HL7v2 メッセージをインポートするための詳細な手順については、HL7v2 メッセージのインポートを参照してください。

割り当ての変更をリクエストする

割り当て量の変更をリクエストするには、serviceusage.quotas.update 権限が必要です。この権限は、事前定義ロール(オーナー、編集者、割り当て管理者)にはデフォルトで含まれています。

  1. [割り当て] ページに移動します。

    [割り当て] に移動

  2. [割り当て] ページで、変更する割り当てを選択します。Cloud Healthcare API の割り当てのみを表示するには、フィルタ テーブルプルダウン リストからサービスを選択し、次に Cloud Healthcare API を選択します。

  3. 編集する割り当てのチェックボックスをオンにします。

  4. ページ上部にある [割り当てを編集] ボタンをクリックします。

  5. フォームに記入し、[次へ] をクリックします。

  6. リクエストする上限を入力し、[次へ] をクリックします。

  7. [リクエストを送信] をクリックします。

割り当てを減らすリクエストは、デフォルトでは拒否されます。割り当て量を減らしたい場合は、要件の説明を記載してサポートメールに返信してください。サポート担当者が対応いたします。

リクエストの送信後、24~48 時間以内に Cloud Healthcare API チームから返信いたします。

リクエストの完了に十分な時間が確保されるように、少なくとも数日前に追加のリソースを計画してリクエストしてください。

割り当て上限

以下のセクションでは、Cloud Healthcare API のデータストアとオペレーションに関連する割り当てについて説明します。

DICOM の割り当て

次の表に、DICOM ストアと DICOM オペレーションに関連付けられた Cloud Healthcare API の割り当てを示します。

指標名 表示名 説明
dicomweb_ops 1 分間、1 リージョンあたりの DICOMweb オペレーション数 以下のメソッドが含まれます。
  • v1beta1v1 のすべての projects.locations.datasets.dicomStores.studies メソッド
  • v1beta1v1 のすべての projects.locations.datasets.dicomStores.studies.series メソッド
  • v1beta1v1 のすべての projects.locations.datasets.dicomStores.studies.series.instances メソッド
  • v1beta1v1 のすべての projects.locations.datasets.dicomStores.studies.series.instances.frames メソッド
dicom_structured_storage_bytes 1 分間、1 リージョンあたりの上り(内向き)の構造化 DICOM ストレージ(バイト) DICOM タグと関連するメタデータの形式で、dicomweb_ops オペレーションの処理中に Cloud Healthcare API に送信される構造化バイト。
dicom_store_ops 1 分間、1 リージョンあたりの DICOM ストア オペレーション数 DICOM データではなく、DICOM ストアに対するオペレーション。以下のメソッドが含まれます。
dicom_store_lro_ops 1 分間、1 リージョンあたりの DICOM ストアの長時間実行オペレーション数 長時間実行オペレーションを返す、DICOM データではなく DICOM ストアに対するオペレーション。以下のメソッドが含まれます。
dicom_structured_storage_operations_bytes 1 分間、1 リージョンあたりの、長時間実行オペレーションのための上り(内向き)の構造化 DICOM ストレージ(バイト) DICOM タグと関連するメタデータの形式で、dicom_store_lro_ops オペレーションの処理中に Cloud Healthcare API に送信される構造化バイト。

FHIR の割り当て

次の表に、FHIR ストアと FHIR のオペレーションに関連付けられた Cloud Healthcare API の割り当てを示します。

指標名 表示名 説明
fhir_ops 1 分間、1 リージョンあたりの FHIR オペレーション数 ユニットで測定されます。ここで、各ユニットは、v1beta1v1projects.locations.datasets.fhirStores.fhir メソッドに対する 1 つのリクエストです。
fhir_read_ops 1 分間、1 リージョンあたりの FHIR 読み取りオペレーション数 ユニットで測定されます。ここで、1 つのユニットは個々の FHIR リソースに対する 1 つの読み取りリクエストです。

次のメソッドが含まれます。

v1beta1: v1:
fhir_write_ops 1 分間、1 リージョンあたりの FHIR 書き込みオペレーション数 ユニットで測定されます。ここで、1 ユニットは、個々の FHIR リソースに対して 1 つの作成、更新、削除リクエストです。

次のメソッドが含まれます。

v1beta1: v1:
fhir_search_ops 1 分間、1 リージョンあたりの FHIR 検索オペレーション数 ユニットで測定されます。ここで、1 つのユニットは、_include が使用されている場合を除き、検索で参照を解決する必要がない FHIR リソースタイプに対する検索リクエストです。たとえば、Observation?subject:Patient.identifier=system|value 検索では 2 つの fhir_search_ops 割り当てユニットを消費します。1 つは Observation リソースに対して、もう 1 つは Patient リソースに対する検索として、subject を参照として使用するためです。

次のメソッドが含まれます。

v1beta1: v1:
fhir_storage_egress_bytes 1 分間、1 リージョンあたりの下り(外向き)の FHIR ストレージ(バイト) ユニットで測定されます。ここで、1 つのユニットは Cloud Healthcare API が fhir_read_ops オペレーション、fhir_write_ops オペレーションおよび fhir_search_ops オペレーションの処理中にストレージから読み取る 1 バイトです。
fhir_storage_bytes 1 分間、1 リージョンあたりの上り(内向き)の FHIR ストレージ(バイト) fhir_ops オペレーションの処理中に Cloud Healthcare API に送信されるバイト数。
fhir_store_ops 1 分間、1 リージョンあたりの FHIR ストア オペレーション数 FHIR データではなく FHIR ストアに対するオペレーション。

次のメソッドが含まれます。
fhir_store_lro_ops 1 分間、1 リージョンあたりの FHIR ストアの長時間実行オペレーション数 長時間実行オペレーションを返す、FHIR データではなく FHIR ストアに対するオペレーション。

次のメソッドが含まれます。
fhir_storage_operations_bytes 1 分間、1 リージョンあたりの、長時間実行オペレーションのための上り(内向き)の FHIR ストレージ(バイト) fhir_store_lro_ops オペレーションの処理中に Cloud Healthcare API に送信されるバイト数。

1 つのリクエストで複数の割り当てユニットを消費できます。たとえば、検索パラメータとして Observation?subject:Patient.identifier=system|value を使用する GET 検索リクエストは、2 つの fhir_search_ops 割り当てユニットを消費します。subject を参照として使用し、2 つの検索オペレーションを Observation リソースと Patient リソースに対して実行します。

検索条件として Observation?status=canceled を使用する条件付き削除リクエストが 6 つの Observation リソースを検索して削除すると、次の割り当てユニットが消費されます。

  • 1 つの fhir_search_ops 割り当てユニット。GET 検索リクエストは 1 種類の FHIR リソース(Observation リソース)でのみ実行されます。検索条件に一致するすべての Observation リソースがリクエストから返されます。
  • 6 つの fhir_write_ops 割り当てユニット。削除された Observation リソースには合計 6 つの DELETE オペレーションがあるため。

バンドルの割り当て消費を実行する

バンドル実行リクエストを送信するには、リクエストが使用する割り当てに関係なく、Google Cloud プロジェクトに次の割り当てごとに少なくとも 1 つのユニットが必要です。

  • fhir_read_ops
  • fhir_write_ops
  • fhir_search_ops

これらの割り当てが利用できない場合、バンドルの実行リクエストは失敗します。

たとえば、100 個の POST オペレーションを含むトランザクション バンドルがある fhir.executeBundle リクエストを送信する場合、それぞれが FHIR リソースを作成し、Cloud Healthcare API はまず、fhir_read_opsfhir_write_opsfhir_search_ops に対して少なくとも 1 つの割り当てユニットが利用可能であることを確認します。検証が成功すると、Cloud Healthcare API はバンドルを実行し、FHIR リソースを作成します。これは合計 100 個の fhir_write_ops 割り当てユニットを消費します。

次のトランザクション バンドルでは、reference が存在する場合、条件付き参照を使用して Observation リソースを作成します。

{
  "resourceType": "Bundle",
  "type": "transaction",
  "entry": [
    {
      "request": {
        "method": "POST",
        "url": "Observation"
      },
      "resource": {
        "resourceType": "Observation",
        "subject": {
          "reference": "Patient?identifier=a1b2c3d4e5"
        }
      }
    }
  ]
}

バンドルを実行すると、Cloud Healthcare API はまず、fhir_read_opsfhir_write_opsfhir_search_ops に対して少なくとも 1 つの割り当てユニットが利用可能であることを確認します。検証が成功すると、Cloud Healthcare API はバンドルを実行します。次の割り当てユニットが消費されます。

  • 1 つの fhir_write_ops で新しい Observation リソースを作成します。
  • 1 つの fhir_search_ops。1 回の検索オペレーションが Patient?identifier=a1b2c3d4e5 リファレンスに対して実行されるため。