v1 API への移行

このページでは、Cloud Healthcare API の v1beta1 と v1 の主な違いについて説明します。また、v1beta1 から v1 に移行する方法の例も示します。

2020 年 8 月 26 日以降、v1beta1 は改定バージョンへの更新を開始しました。このページでは、この日付より前の v1beta1 のバージョンを「以前の v1beta1」と呼びます。それ以降のバージョンは「新しい v1beta1」と呼びます。

使用している v1beta1 API のバージョンに応じて、次のいずれかのパスを入力します。

以前の v1beta1 から v1 への移行

このセクションでは、Cloud Healthcare API の以前の v1beta1 と v1 との主な違いについて説明します。また、以前の v1beta1 から v1 に移行する方法の例も紹介します。

REST パス

Cloud Healthcare API へのすべての REST パスで、v1beta1 ではなく v1 が使用されるようになりました。例:

v1beta1:

GET https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID

v1:

GET https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID

DICOM の変更

取引を検索

以前の v1beta1 では、検索は成功したもののクエリに一致する結果がなかった場合、検索トランザクション メソッドは 200 レスポンス コードを返していました。レスポンス本文にも、空の結果の配列が含まれていました。

DICOM PS3.18 - Web サービス標準に合わせて、新しい v1beta1 の検索トランザクション メソッドは 200 レスポンス コードではなく 204 レスポンス コードを返します。空の結果の配列を返すのではなく、空のレスポンス本文が返されます。

DICOMweb の削除メソッド

以前の v1beta1 では、正常に実行されると次のメソッドは空のレスポンス コードを返していました。

v1 では、メソッドは長時間実行オペレーションを返します。削除が完了すると、長時間実行オペレーションに done: true が含まれます。

Cloud Storage レスポンスから DICOM データをインポートする

以前の v1beta1 では、projects.locations.datasets.dicomStores.import メソッドは Operation.error.status.details オブジェクトで ImportDicomDataErrorDetails を返しました。v1 では、このメソッドはエラーに対してこのレスポンスを返しません。その代わりに、Cloud Logging への Operation.metadata に URL が入力され、エラーの詳細を表示できます。

FHIR の変更

FHIR ストアの作成

FHIR ストアを作成するときは、そのストアの FHIR バージョン(DSTU2、STU3、または R4)を指定する必要があります。バージョンを指定しない場合、Cloud Healthcare API はエラーを返します。

例:

gcloud

次のサンプルは、FHIR ストアを作成する方法を示しています。

gcloud beta healthcare fhir-stores create FHIR_STORE_ID \
  --dataset=DATASET_ID \
  --location=LOCATION \
  --version={DSTU2|STU3|R4}

API

curl

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'version': 'FHIR_STORE_VERSION'
    }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?fhirStoreId=FHIR_STORE_ID"

PowerShell

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
      'version': 'FHIR_STORE_VERSION'
  }" `
  
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?fhirStoreId=FHIR_STORE_ID" | Select-Object -Expand Content

BigQuery へのエクスポート時のスキーマ

以前の v1beta1 では、FHIR リソースを BigQuery にエクスポートするときに、projects.locations.datasets.fhirStores.export メソッドで次のスキーマタイプを指定できました。

  • SCHEMA_TYPE_UNSPECIFIED: スキーマタイプが指定されていません。LOSSLESS と同じ。
  • LOSSLESS: エクスポートされる FHIR データに存在するフィールドから生成されたデータドリブン スキーマ。追加の簡略化はありません。
  • ANALYTICS: FHIR コミュニティで定義されているアナリティクス スキーマ。https://github.com/FHIR/sql-on-fhir/blob/master/sql-on-fhir.md をご覧ください。

v1 では、SCHEMA_TYPE_UNSPECIFIEDLOSSLESS のスキーマタイプは使用できなくなりました。デフォルトのスキーマタイプ値はなくなりました。ANALYTICS スキーマタイプを指定しないと、Cloud Healthcare API はエラーを返します。

FHIR 条件メソッド

FHIR 条件メソッドは、v1beta1 の以前のバージョンと新しいバージョンでは使用できますが、v1 では使用できません。FHIR 条件メソッドは次のとおりです。

executeBundle capabilities

FHIR 条件メソッドは v1 で使用できないため、projects.locations.datasets.fhirStores.fhir.executeBundle を呼び出す際にバンドル内の FHIR 条件メソッドを呼び出すことはできません。バンドルの実行時に FHIR 条件メソッドを使用するには、新しい v1beta1 を使用します。

Data de-identification の変更

DeidentifyErrorDetails 削除

DeidentifyErrorDetails レスポンスは、v1 では使用できなくなりました。代わりに、Cloud Logging でエラーの詳細を表示できます。

SuccessResourceCount 削除

以前の v1beta1 では、次のレスポンスに SuccessResourceCount フィールドが含まれていました。

v1 では、これらのレスポンスに SuccessResourceCount フィールドが含まれなくなりました。代わりに、Cloud Healthcare API が正常に匿名化したリソースを、長時間実行オペレーション レスポンスの progress_counter.success フィールドに表示できます。

SuccessStoreCountFailureStoreCount の削除

以前の v1beta1 では、次のレスポンスに SuccessStoreCount フィールドが含まれていました。

DeidentifyErrorDetails にも FailureStoreCount フィールドが含まれていました。

v1 では、これらのレスポンスに SuccessStoreCount フィールドや FailureStoreCount フィールドが含まれなくなりました。

FailureResourceCount 削除

以前の v1beta1 では、次のレスポンスに FailureResourceCount フィールドが含まれていました。

v1 では、これらのレスポンスに FailureResourceCount フィールドが含まれなくなりました。代わりに、Cloud Healthcare API で匿名化に失敗したリソースを、長時間実行オペレーションレ スポンスの progress_counter.failure フィールドに表示できます。

新しい v1beta1 から v1 への移行

このセクションでは、新しい v1beta1 から v1 に移行する方法について説明します。また、新しい v1beta1 から v1 への移行方法の例も紹介します。すでに v1beta1 の更新を完了している場合は、移行作業の大部分が完了していますが、新しい v1beta1 から v1 へのすべての変更を確認するには、下記のセクションをご覧ください。

REST パス

Cloud Healthcare API へのすべての REST パスで、v1beta1 ではなく v1 が使用されるようになりました。例:

v1beta1:

GET https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID

v1:

GET https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID

FHIR の変更

BigQuery へのエクスポート時のスキーマ

新しい v1beta1 では、FHIR リソースを BigQuery にエクスポートするときに、projects.locations.datasets.fhirStores.export メソッドで次のスキーマタイプを指定できます。

  • SCHEMA_TYPE_UNSPECIFIED: スキーマタイプが指定されていません。LOSSLESS と同じ。
  • LOSSLESS: エクスポートされる FHIR データに存在するフィールドから生成されたデータドリブン スキーマ。追加の簡略化はありません。
  • ANALYTICS: FHIR コミュニティで定義されているアナリティクス スキーマ。https://github.com/FHIR/sql-on-fhir/blob/master/sql-on-fhir.md をご覧ください。

v1 では、LOSSLESSSCHEMA_TYPE_UNSPECIFIED のスキーマタイプは使用できなくなりました。これらのスキーマタイプを指定するか、schemaType フィールドを設定しない場合、Cloud Healthcare API はエラーを返します。

FHIR 条件メソッド

FHIR 条件メソッドは、以前の v1beta1 と新しい v1beta1 では使用できますが、v1 では使用できません。FHIR 条件メソッドは次のとおりです。

executeBundle capabilities

FHIR 条件メソッドは v1 で使用できないため、projects.locations.datasets.fhirStores.fhir.executeBundle を呼び出す際にバンドル内の FHIR 条件メソッドを呼び出すことはできません。バンドルの実行時に FHIR 条件メソッドを使用するには、新しい v1beta1 を使用します。