주석 레코드 만들기 및 관리

이 페이지에서는 주석 레코드를 생성, 확인, 나열, 삭제하는 방법을 설명합니다. 주석 레코드의 예시에는 의료 텍스트, 이미지, 오디오에 대한 라벨 및 태그가 포함됩니다. 주석 저장소 및 주석 레코드 개요는 주석을 참조하세요.

주석 레코드 만들기

주석 레코드를 만들려면 먼저 주석 저장소를 만들어야 합니다.

다음 샘플은 주석 레코드를 만드는 방법을 보여줍니다. 자세한 내용은 projects.locations.datasets.annotationStores.annotations.create를 참조하세요.

curl

주석 레코드를 만들려면 POST 요청을 수행하고 다음 정보를 제공합니다.

  • 상위 데이터 세트의 이름
  • 상위 주석 저장소의 이름
  • 주석 레코드의 소스
  • 주석 레코드의 유형
  • 액세스 토큰

다음 샘플은 curl을 사용하여 DICOM 이미지의 주석 레코드를 만드는 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
  • 액세스 토큰

다음 샘플은 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/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
  • 액세스 토큰

다음 샘플은 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/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 형식으로 빈 응답 본문을 반환합니다.

{}