Crear y administrar registros de anotaciones

En esta página, se explica cómo crear, ver, enumerar y borrar registros de anotaciones. Los ejemplos de registros de anotaciones incluyen etiquetas y marcas para texto, imágenes y audio de atención médica. Para obtener una descripción general de los almacenes y los registros de anotaciones, consulta Anotaciones.

Crea un registro de anotaciones

Antes de crear un registro de anotaciones, debes crear un almacén de anotaciones.

En los siguientes ejemplos, se muestra cómo crear un registro de anotaciones. Para obtener más información, consulta projects.locations.datasets.annotationStores.annotations.create.

curl

Para crear un registro de anotaciones, realiza una solicitud POST y proporciona la siguiente información:

  • El nombre del conjunto de datos superior
  • El nombre del almacén de anotaciones superior
  • La fuente del registro de anotaciones
  • El tipo de registro de anotaciones
  • Un token de acceso

En el siguiente ejemplo, se muestra una solicitud POST con curl que crea un registro de anotaciones para una imagen de DICOM. La anotación usa un cuadro de límite para marcar las dimensiones de una parte de la imagen y etiqueta el área limitada con el nombre “cuadro de límite”. En esta muestra, se supone que ya almacenaste una instancia de DICOM en un almacén de DICOM. Se hace referencia a esta instancia de DICOM en el campo name de cloudHealthcareSource.

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"

Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:

{
  "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

Para crear un registro de anotaciones, realiza una solicitud POST y proporciona la siguiente información:

  • El nombre del conjunto de datos superior
  • El nombre del almacén de anotaciones superior
  • La fuente del registro de anotaciones
  • El tipo de registro de anotaciones
  • Un token de acceso

En el siguiente ejemplo, se muestra una solicitud POST mediante Windows PowerShell que crea un registro de anotaciones para una imagen de DICOM. La anotación usa un cuadro de límite para marcar las dimensiones de una parte de la imagen y etiqueta el área limitada con el nombre “cuadro de límite”. En esta muestra, se supone que ya almacenaste una instancia de DICOM en un almacén de DICOM. Se hace referencia a esta instancia de DICOM en el campo name de cloudHealthcareSource.

$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

Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:

{
  "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"
      }
    ]
  }
}

Edita un registro de anotación

En los siguientes ejemplos, se muestra cómo editar el registro de anotaciones de Crea un registro de anotación para que tenga una etiqueta de tipo de recurso. Para obtener más información, consulta projects.locations.datasets.annotationStores.annotations.patch.

curl

Para editar un registro de anotaciones, realiza una solicitud PATCH y proporciona la siguiente información:

  • El nombre del conjunto de datos superior
  • El nombre del almacén de anotaciones superior
  • El ID del registro de anotaciones
  • Los datos que se actualizarán
  • Una máscara de actualización
  • Un token de acceso

En el siguiente ejemplo, se muestra una solicitud PATCH mediante curl en un registro de anotación para una instancia DICOM.

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"

Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:

{
  "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

Para editar un registro de anotaciones, realiza una solicitud PATCH y proporciona la siguiente información:

  • El nombre del conjunto de datos superior
  • El nombre del almacén de anotaciones superior
  • El ID del registro de anotaciones
  • Los datos que se actualizarán
  • Una máscara de actualización
  • Un token de acceso

En el siguiente ejemplo, se muestra una solicitud PATCH mediante Windows PowerShell en un registro de anotación para una instancia DICOM.

$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

Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:

{
  "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"
  }
}

Obtén detalles del registro de anotaciones

En los siguientes ejemplos, se muestra cómo obtener detalles sobre un registro de anotaciones. Para obtener más información, consulta projects.locations.datasets.annotationStores.annotations.get.

curl

Para obtener detalles sobre un almacén de anotaciones, realiza una solicitud GET y proporciona la siguiente información:

  • El nombre del conjunto de datos superior
  • El nombre del almacén de anotaciones superior
  • El ID del registro de anotaciones
  • Un token de acceso

En el siguiente ejemplo, se muestra una solicitud GET que usa curl a fin de ver un registro de anotación para una instancia DICOM.

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"

Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:

{
  "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"
    }
  }
}

Si configuraste algún campo en el recurso Annotation, también aparecerá en la respuesta.

PowerShell

Para obtener detalles sobre un almacén de anotaciones, realiza una solicitud GET y proporciona la siguiente información:

  • El nombre del conjunto de datos superior
  • El nombre del almacén de anotaciones superior
  • El ID del registro de anotaciones
  • Un token de acceso

En el siguiente ejemplo, se muestra una solicitud GET mediante Windows PowerShell a fin de ver un registro de anotación para una instancia de DICOM.

$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

Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:

{
  "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"
    }
  }
}

Si configuraste algún campo en el recurso Annotation, también aparecerá en la respuesta.

Enumera registros de anotaciones en un almacén de anotaciones

En los siguientes ejemplos, se muestra cómo enumerar los registros de anotaciones en un almacén de anotaciones. Para obtener más información, consulta projects.locations.datasets.annotationStores.annotations.list.

curl

Para enumerar los registros de anotaciones en un almacén de anotaciones, realiza una solicitud GET y proporciona la siguiente información:

  • El nombre del conjunto de datos superior
  • El nombre del almacén de anotaciones
  • Un token de acceso

En el siguiente ejemplo, se muestra una solicitud GET mediante curl en un almacén de anotaciones que contiene registros de anotaciones para una instancia de DICOM.

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"

Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:

{
  "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"
        }
      }
    }
  ]
}

Si configuraste algún campo en el recurso Annotation, también aparecerá en la respuesta.

PowerShell

Para enumerar los registros de anotaciones en un almacén de anotaciones, realiza una solicitud GET y proporciona la siguiente información:

  • El nombre del conjunto de datos superior
  • El nombre del almacén de anotaciones
  • Un token de acceso

En el siguiente ejemplo, se muestra una solicitud GET mediante Windows PowerShell en un almacén de anotaciones que contiene registros de anotaciones para una instancia de DICOM.

$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

Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor:

{
  "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"
        }
      }
    }
  ]
}

Si configuraste algún campo en el recurso Annotation, también aparecerá en la respuesta.

Borra un registro de anotaciones

En los siguientes ejemplos, se muestra cómo borrar un registro de anotaciones. Para obtener más información, consulta projects.locations.datasets.annotationStores.annotations.delete:

curl

Para borrar un registro de anotaciones, realiza una solicitud DELETE y proporciona la siguiente información:

  • El nombre del conjunto de datos superior
  • El nombre del almacén de anotaciones superior
  • El ID del registro de anotaciones
  • Un token de acceso

En el siguiente ejemplo, se muestra una solicitud DELETE mediante curl.

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"

Si la solicitud es exitosa, el servidor muestra el cuerpo de respuesta vacío en formato JSON:

{}

PowerShell

Para borrar un registro de anotaciones, realiza una solicitud DELETE y proporciona la siguiente información:

  • El nombre del conjunto de datos superior
  • El nombre del almacén de anotaciones superior
  • El ID del registro de anotaciones
  • Un token de acceso

En el siguiente ejemplo, se muestra una solicitud DELETE mediante Windows PowerShell.

$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

Si la solicitud es exitosa, el servidor muestra el cuerpo de respuesta vacío en formato JSON:

{}