アノテーション レコードの作成と管理

このページでは、アノテーション レコードの作成、表示、一覧表示、削除する方法について説明します。アノテーション レコードの例には、ヘルスケアのテキスト、画像、音声のラベルとタグがあります。アノテーション ストアとアノテーション レコードの概要については、アノテーションをご覧ください。

アノテーション レコードの作成

アノテーション レコードを作成する前に、アノテーション ストアを作成する必要があります。

次のサンプルは、アノテーション レコードの作成方法を示しています。詳細については、projects.locations.datasets.annotationStores.annotations.create をご覧ください。

curl

アノテーション レコードを作成するには、POST リクエストを行い、次の情報を指定します。

  • 親データセットの名前
  • 親アノテーション ストアの名前
  • アノテーション レコードのソース
  • アノテーション レコードのタイプ
  • アクセス トークン

次のサンプルは、DICOM イメージのアノテーション レコードを作成する curl を使用する POST リクエストを示しています。アノテーションでは、境界ボックスを使用してイメージの一部のディメンションをマークし、境界領域に「bounding-box」という名前のラベルを付けます。このサンプルでは、すでに DICOM ストアに DICOM インスタンスを格納していることを前提としています。この DICOM インスタンスは、cloudHealthcareSourcename フィールドで参照されます。

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'annotationSource': {
        'cloudHealthcareSource': {
          'name': 'projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID'
        }
      },
      'imageAnnotation': {
        'boundingPolys': [
          {
            'vertices': [
              {
                'x': 100,
                'y': 100
              },
              {
                'x': 100,
                'y': 400
              },
              {
                'x': 400,
                'y': 100
              },
              {
                'x': 400,
                'y': 400
              }
            ],
            'label': 'bounding-box'
          }
        ]
      }
    }" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations"

リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
    }
  },
  "imageAnnotation": {
    "boundingPolys": [
      {
        "vertices": [
          {
            "x": 100,
            "y": 100
          },
          {
            "x": 100,
            "y": 400
          },
          {
            "x": 400,
            "y": 100
          },
          {
            "x": 400,
            "y": 400
          }
        ],
        "label": "bounding-box"
      }
    ]
  }
}

PowerShell

アノテーション レコードを作成するには、POST リクエストを行い、次の情報を指定します。

  • 親データセットの名前
  • 親アノテーション ストアの名前
  • アノテーション レコードのソース
  • アノテーション レコードのタイプ
  • アクセス トークン

次のサンプルは、Windows PowerShell を使用して DICOM イメージのアノテーション レコードを作成する POST リクエストを示しています。アノテーションでは、境界ボックスを使用してイメージの一部のディメンションをマークし、境界領域に「bounding-box」という名前のラベルを付けます。このサンプルでは、すでに DICOM ストアに DICOM インスタンスを格納していることを前提としています。この DICOM インスタンスは、cloudHealthcareSourcename フィールドで参照されます。

$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 "{
    'annotationSource': {
      'cloudHealthcareSource': {
        'name': 'projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID'
      }
    },
    'imageAnnotation': {
      'boundingPolys': [
        {
          'vertices': [
            {
              'x': 100,
              'y': 100
            },
            {
              'x': 100,
              'y': 400
            },
            {
              'x': 400,
              'y': 100
            },
            {
              'x': 400,
              'y': 400
            }
          ],
          'label': 'bounding-box'
        }
      ]
    }
  }" `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations" | Select-Object -Expand Content

リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
    }
  },
  "imageAnnotation": {
    "boundingPolys": [
      {
        "vertices": [
          {
            "x": 100,
            "y": 100
          },
          {
            "x": 100,
            "y": 400
          },
          {
            "x": 400,
            "y": 100
          },
          {
            "x": 400,
            "y": 400
          }
        ],
        "label": "bounding-box"
      }
    ]
  }
}

アノテーション レコードの編集

次のサンプルは、アノテーション レコードの作成からアノテーション レコードを編集してリソースタイプにラベルを付ける方法を示しています。詳細については、projects.locations.datasets.annotationStores.annotations.patch をご覧ください。

curl

アノテーション レコードを編集するには、PATCH リクエストを行い、次の情報を指定します。

  • 親データセットの名前
  • 親アノテーション ストアの名前
  • アノテーション レコード ID
  • 更新するデータ
  • 更新マスク
  • アクセス トークン

次のサンプルは、DICOM インスタンスのアノテーション レコードに対して curl を使用する PATCH リクエストを示しています。

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'resourceAnnotation': {
        'label': 'VALUE'
      }
    }" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID?updateMask=resourceAnnotation"

リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
    }
  },
  "resourceAnnotation": {
    "label": "VALUE"
  }
}

PowerShell

アノテーション レコードを編集するには、PATCH リクエストを行い、次の情報を指定します。

  • 親データセットの名前
  • 親アノテーション ストアの名前
  • アノテーション レコード ID
  • 更新するデータ
  • 更新マスク
  • アクセス トークン

次のサンプルは、DICOM インスタンスのアノテーション レコードに対して Windows PowerShell を使用する PATCH リクエストを示しています。

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

Invoke-WebRequest `
  -Method Patch `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
    'resourceAnnotation': {
      'label': 'VALUE'
    }
  }" `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID?updateMask=resourceAnnotation" | Select-Object -Expand Content

リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
    }
  },
  "resourceAnnotation": {
    "label": "VALUE"
  }
}

アノテーション レコードの詳細の取得

次のサンプルは、アノテーション レコードの詳細を取得する方法を示しています。詳細については、projects.locations.datasets.annotationStores.annotations.get をご覧ください。

curl

アノテーション レコードの詳細を取得するには、GET リクエストを行い、次の情報を指定します。

  • 親データセットの名前
  • 親アノテーション ストアの名前
  • アノテーション レコード ID
  • アクセス トークン

次のサンプルは、curl を使用して DICOM インスタンスのアノテーション レコードを表示する GET リクエストを示しています。

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID"

リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
    }
  }
}

Annotation リソースでフィールドを構成した場合は、そのフィールドもレスポンスに表示されます。

PowerShell

アノテーション レコードの詳細を取得するには、GET リクエストを行い、次の情報を指定します。

  • 親データセットの名前
  • 親アノテーション ストアの名前
  • アノテーション レコード ID
  • アクセス トークン

次のサンプルは、Windows PowerShell を使用して DICOM インスタンスのアノテーション レコードを表示する GET リクエストを示しています。

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

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID" | Select-Object -Expand Content

リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
    }
  }
}

Annotation リソースでフィールドを構成した場合は、そのフィールドもレスポンスに表示されます。

アノテーション ストア内のアノテーション レコードの一覧表示

次のサンプルは、アノテーション ストア内のアノテーションレコードを一覧表示する方法を示しています。 詳細については、projects.locations.datasets.annotationStores.annotations.list をご覧ください。

curl

アノテーション ストア内のアノテーション レコードを一覧表示するには、GET リクエストを作成し、次の情報を指定します。

  • 親データセットの名前
  • アノテーション ストアの名前
  • アクセス トークン

次のサンプルは、DICOM インスタンスのアノテーション レコードが含まれるアノテーション ストアに対する curl を使用する GET リクエストを示しています。

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations"

リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。

{
  "annotations": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
      "annotationSource": {
        "cloudHealthcareSource": {
          "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
        }
      }
    }
  ]
}

Annotation リソースでフィールドを構成した場合は、そのフィールドもレスポンスに表示されます。

PowerShell

アノテーション ストア内のアノテーション レコードを一覧表示するには、GET リクエストを作成し、次の情報を指定します。

  • 親データセットの名前
  • アノテーション ストアの名前
  • アクセス トークン

次のサンプルは、DICOM インスタンスのアノテーション レコードが含まれるアノテーション ストアに対して Windows PowerShell を使用する GET リクエストを示しています。

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

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations" | Select-Object -Expand Content

リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。

{
  "annotations": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
      "annotationSource": {
        "cloudHealthcareSource": {
          "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
        }
      }
    }
  ]
}

Annotation リソースでフィールドを構成した場合は、そのフィールドもレスポンスに表示されます。

アノテーション レコードの削除

次のサンプルは、アノテーション レコードを削除する方法を示しています。詳細については、projects.locations.datasets.annotationStores.annotations.delete をご覧ください。

curl

アノテーション レコードを削除するには、DELETE リクエストを行い、次の情報を指定します。

  • 親データセットの名前
  • 親アノテーション ストアの名前
  • アノテーション レコード ID
  • アクセス トークン

次のサンプルは、curl を使用した DELETE リクエストを示しています。

curl -X DELETE \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID"

リクエストが成功すると、サーバーは JSON 形式の空のレスポンス本文を返します。

{}

PowerShell

アノテーション レコードを削除するには、DELETE リクエストを行い、次の情報を指定します。

  • 親データセットの名前
  • 親アノテーション ストアの名前
  • アノテーション レコード ID
  • アクセス トークン

次のサンプルは、Windows PowerShell を使用した DELETE リクエストを示しています。

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

Invoke-WebRequest `
  -Method Delete `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID" | Select-Object -Expand Content

リクエストが成功すると、サーバーは JSON 形式の空のレスポンス本文を返します。

{}