Anotar datos desidentificados

En esta página, se explica cómo configurar almacenes de anotaciones y registros de anotaciones cuando se desidentifican datos sensibles de FHIR y DICOM.

Anota la descripción general de los datos desidentificados

Cada vez que desidentificas datos sensibles de FHIR o DICOM, puedes generar información sobre los datos sensibles que se quitaron a un almacén de anotaciones. Esta información se almacena como uno o más registros de anotación dentro del almacén de anotaciones.

Puedes crear el almacén de anotaciones en un conjunto de datos existente o en el conjunto de datos nuevo creado durante la operación de desidentificación. Si creas el almacén de anotaciones en un conjunto de datos existente, no puede existir un almacén de anotaciones con el mismo nombre en ese conjunto de datos.

El almacén de anotaciones creado debe estar en el mismo proyecto que los datos de origen desidentificados. Por ejemplo, no puedes desidentificar datos en un proyecto y, al mismo tiempo, enviar registros de anotaciones a un almacén de anotaciones en otro proyecto.

Para especificar un almacén de anotaciones y su comportamiento durante la desidentificación, establece el campo annotationStoreName dentro de un objeto annotation en el objeto DeidentifyConfig.

De forma opcional, puedes configurar el campo storeQuote, según tu caso de uso. La información para configurar el campo storeQuote está disponible en la siguiente sección.

Usa el campo storeQuote

La siguiente información se aplica a los datos de FHIR y DICOM.

Cuando el campo storeQuote dentro de annotation en la solicitud se establece en true, los valores originales de los datos desidentificados se muestran en el registro de anotaciones en el campo quote. Por ejemplo:

  • Si se desidentifica una DATE y si storeQuote se configura como true, la siguiente información se muestra en el registro de anotaciones:

    • El valor de la fecha (como 1980-12-05), que se muestra en el campo quote
    • El infotipo DATE
    • Las ubicaciones de inicio y finalización en las que se encontraron los datos Las ubicaciones de inicio y finalización usan un índice basado en cero y ambos son inclusivos.
  • Si storeQuote se establece como false, la fecha (1980-12-05) no se muestra en el registro de anotaciones y solo se muestra la siguiente información:

    • El infotipo DATE
    • Las ubicaciones de inicio y finalización en las que se encontraron los datos Las ubicaciones de inicio y finalización usan un índice basado en cero y ambos son inclusivos.

Anotaciones para los datos de FHIR desidentificados

En esta sección, se desarrollan los conceptos que se explican en Cómo desidentificar datos de FHIR con la API de Cloud Healthcare.

Estructura del registro de anotaciones

La operación de desidentificación crea un registro de anotación para cada recurso de FHIR desidentificado. Cada registro de anotaciones contiene un objeto textAnnotation que contiene información sobre los datos desidentificados que se inspeccionaron y transformaron. Para que un campo desidentificado aparezca en el registro de anotaciones, debe tener aplicada la Action INSPECT_AND_TRANSFORM.

Configura anotaciones para datos de FHIR desidentificados

En los siguientes ejemplos, se usa la Desidentificación predeterminada de datos de FHIR como punto de partida. En los ejemplos, se muestra cómo desidentificar un recurso de paciente con el método predeterminado de FHIR y almacenar información sobre los datos desidentificados en un registro de anotación en un nuevo almacén de anotaciones. En los ejemplos, el campo storeQuote se establece en true, lo que significa que el registro de anotaciones de salida contiene los valores originales de los datos que se desidentificaron.

El almacén de anotaciones nuevo se encuentra en el conjunto de datos creado por la operación de desidentificación, pero también puedes crear el almacén de anotaciones en un conjunto de datos existente.

curl

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'destinationDataset': 'projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID',
      'config': {
        'fhir': {},
        'annotation': {
          'annotationStoreName': 'projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/annotationStores/ANNOTATION_STORE_ID',
          'storeQuote': 'true'
        }
      }
    }" "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

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

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"
}

La respuesta contiene un nombre de operación. Puedes usar el método get de operación para realizar un seguimiento del estado de la operación:

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor. Una vez que finaliza el proceso de desidentificación, la respuesta contiene "done": true.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1beta1.dataset.DatasetService.DeidentifyDataset",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.deidentify.DeidentifySummary",
    "successStoreCount": "1",
    "successResourceCount": "1"
  }
}

Después de verificar que la desidentificación se realizó correctamente, puedes enumerar los almacenes de anotaciones en el conjunto de datos y ver que la operación creó el nuevo almacén de anotaciones:

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

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

{
  "annotationStores": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/annotationStores/ANNOTATION_STORE_ID"
    },
    {
      ...
    }
  ]
}

Usa el valor ANNOTATION_STORE_ID para enumerar los registros de anotaciones en el almacén de anotaciones:

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

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

{
  "annotations": [
    "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_RECORD_ID",
    ...
  ]
}

Usa el valor ANNOTATION_RECORD_ID para ver el registro de anotaciones:

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

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

El objeto textAnnotation contiene información sobre el texto sensible que quitó la operación de desidentificación. En el campo details, puedes ver que la operación buscó el objeto patient.text.div y encontró cuatro infoTypes, junto con sus valores y las ubicaciones donde se encontraron los valores.

Con la desidentificación de FHIR predeterminada, los únicos datos que se inspeccionaron y transformaron son los datos del objeto patient.text.div, todos los demás datos desidentificados se transformaron sin inspeccionarse porque su Infoinfo ya estaba declarado en el recurso FHIR original.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_RECORD_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID"
    }
  },
  "textAnnotation": {
    "details": {
      "patient.text.div": {
        "findings": [
          {
            "infoType": "PERSON_NAME",
            "start": "42",
            "end": "54",
            "quote": "Smith, Darcy"
          },
          {
            "infoType": "PERSON_NAME",
            "start": "42",
            "end": "47",
            "quote": "Smith"
          },
          {
            "infoType": "PERSON_NAME",
            "start": "49",
            "end": "54",
            "quote": "Darcy"
          },
          {
            "infoType": "DATE",
            "start": "81",
            "end": "91",
            "quote": "1980-12-05"
          }
        ]
      }
    }
  }
}

gcloud

En el siguiente ejemplo, se usa el comando gcloud beta healthcare datasets deidentify. El campo storeQuote se establece en true de forma predeterminada y no se puede cambiar cuando se usa Google Cloud CLI.

gcloud beta healthcare datasets deidentify SOURCE_DATASET_ID \
    --destination-dataset=projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID \
    --default-fhir-config \
    --annotation-store=projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/annotationStores/ANNOTATION_STORE_ID

La línea de comandos muestra el ID de la operación y, después de que se completa la operación, done:

Request issued for: [SOURCE_DATASET_ID]
Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID] to complete...done.

Para ver más detalles de la operación, ejecuta el comando gcloud beta healthcare operations describe y proporciona el OPERATION_ID de la respuesta:

gcloud beta healthcare operations describe --dataset=SOURCE_DATASET_ID \
    OPERATION_ID

En la respuesta, se incluye done: true:

done: true
metadata:
  '@type': type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata
  apiMethodName: google.cloud.healthcare.v1beta1.dataset.DatasetService.DeidentifyDataset
  counter: {COUNTER}
  createTime: 'CREATE_TIME'
  endTime: 'END_TIME'
  logsUrl: CLOUD_LOGGING_URL
name: projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID
response:
  '@type': type.googleapis.com/google.cloud.healthcare.v1beta1.deidentify.DeidentifySummary

Ejecuta el siguiente comando para enumerar los almacenes de anotaciones en el conjunto de datos y ver que la operación creó el nuevo almacén de anotaciones:

gcloud beta healthcare annotation-stores list --dataset=DESTINATION_DATASET_ID

Si la solicitud se realiza de forma correcta, el servidor muestra el nuevo almacén de anotaciones:

ID                    LOCATION
ANNOTATION_STORE_ID                      LOCATION

No es posible ver detalles sobre una anotación individual con la gcloud CLI. Para ver los detalles de una anotación individual, sigue las instrucciones en la muestra de curl.

Anotaciones para datos de DICOM desidentificados

En esta sección, se desarrollan los conceptos que se explican en Desidentifica datos de DICOM con la API de Cloud Healthcare.

Estructura del registro de anotaciones

La operación de desidentificación crea dos tipos de registros de anotación para datos de DICOM desidentificados. Los dos tipos de registros de anotaciones son los siguientes:

  • Registros de anotaciones de texto: contienen metadatos, como etiquetas de DICOM, de los datos desidentificados. Cada registro de anotaciones de texto contiene un objeto textAnnotation que contiene información sobre los datos desidentificados que se inspeccionaron y transformaron. Para que una etiqueta desidentificada aparezca en el registro de anotaciones, debe haber sido inspeccionada en busca de información de salud protegida (PHI) en función de la configuración proporcionada en el campo TagFilterProfile. Por ejemplo, los ejemplos de Configura anotaciones para datos de DICOM desidentificados usan la configuración DEIDENTIFY_TAG_CONTENTS.
  • Registros de anotaciones de imágenes: Contienen la ubicación de la información sensible en marcos de DICOM individuales. Cada registro de anotaciones de imágenes contiene un objeto ImageAnnotation que contiene las coordenadas de la información sensible encontrada.

La operación de desidentificación crea registros de anotación para cada fotograma en una instancia de DICOM. Por ejemplo, si una instancia de DICOM tiene tres fotogramas, la operación de desidentificación crea los siguientes registros de anotación:

  • Un registro de anotación de texto, que contiene un textAnnotation, para las etiquetas de DICOM en la instancia de DICOM.
  • Tres registros de anotaciones de imágenes, cada uno con una imageAnnotation, para cada uno de los tres marcos. Cada registro de anotaciones de imágenes contiene un campo frame_index para indicar el marco al que corresponde el registro.

Los cuatro registros de anotaciones tienen el mismo valor cloudHealthcareSource.name, que es la ruta de la instancia de DICOM en el formato: projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID/series/SERIES_UID/instances/INSTANCE_UID.

Configura anotaciones para datos de DICOM desidentificados

En los siguientes ejemplos, se usa Combina desidentificación de etiquetas y ocultamiento de texto quemado como su punto de partida. En los ejemplos, se muestra cómo desidentificar una instancia de DICOM para ocultar todo el texto grabado en la imagen, así como inspeccionar y transformar el texto sensible. En los ejemplos, también se muestra cómo almacenar información sobre los datos desidentificados en un registro de anotaciones en un almacén de anotaciones nuevo. En los ejemplos, el campo storeQuote se establece en true, lo que significa que el registro de anotaciones de salida contiene los valores originales de los datos que se desidentificaron.

El almacén de anotaciones nuevo se encuentra en el conjunto de datos creado por la operación de desidentificación, pero también puedes crear el almacén de anotaciones en un conjunto de datos existente.

curl

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'destinationDataset': 'projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID',
      'config': {
        'dicom': {
          'filterProfile': 'DEIDENTIFY_TAG_CONTENTS'
        },
        'image': {
          'textRedactionMode': 'REDACT_ALL_TEXT'
        },
        'annotation': {
          'annotationStoreName': 'projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/annotationStores/ANNOTATION_STORE_ID',
          'storeQuote': 'true'
        }
      }
    }" "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

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

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"
}

La respuesta contiene un nombre de operación. Puedes usar el método get de operación para realizar un seguimiento del estado de la operación:

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

Si la solicitud tiene éxito, se mostrará la respuesta en formato JSON en el servidor. Una vez que finaliza el proceso de desidentificación, la respuesta contiene "done": true.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1beta1.dataset.DatasetService.DeidentifyDataset",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.deidentify.DeidentifySummary",
    "successStoreCount": "1",
    "successResourceCount": "1"
  }
}

Después de verificar que la desidentificación se realizó correctamente, puedes enumerar los almacenes de anotaciones en el conjunto de datos y ver que la operación creó el nuevo almacén de anotaciones:

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

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

{
  "annotationStores": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/annotationStores/ANNOTATION_STORE_ID"
    },
    {
      ...
    }
  ]
}

Usa el valor ANNOTATION_STORE_ID para enumerar los registros de anotaciones en el almacén de anotaciones:

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

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

{
  "annotations": [
    "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/TEXT_ANNOTATION_RECORD_ID",
    "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/IMAGE_ANNOTATION_RECORD_ID",
    ...
  ]
}

Puedes ver que se crearon dos registros de anotaciones: un registro de anotaciones de texto y un registro de anotaciones de imágenes.

Primero, usa el valor TEXT_ANNOTATION_RECORD_ID para ver el registro de anotaciones de texto:

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

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

El objeto textAnnotation contiene información sobre el texto sensible que quitó la operación de desidentificación. En el campo details, puedes ver que la operación proporcionó una lista de etiquetas de DICOM. Cuando se encontró una etiqueta de DICOM, su información se proporcionó en el objeto findings, que muestra el Infotipo, el valor del Infotipo y las ubicaciones donde se encontraron los valores.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/TEXT_ANNOTATION_RECORD_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID/series/SERIES_UID/instances/INSTANCE_UID"
    }
  },
  "textAnnotation": {
    "details": {
      "00080070": {},
      "00080090": {
        "findings": [
          {
            "infoType": "PERSON_NAME",
            "end": "8",
            "quote": "John Doe"
          }
        ]
      },
      "00081090": {},
      "00100010": {
        "findings": [
          {
            "infoType": "PERSON_NAME",
            "end": "11",
            "quote": "Ann Johnson"
          }
        ]
      },
      "00100020": {},
      "00100030": {
        "findings": [
          {
            "infoType": "DATE",
            "end": "8",
            "quote": "19880812"
          }
        ]
      },
      "00020013": {
        "findings": [
          {
            "infoType": "LOCATION",
            "end": "5",
            "quote": "OFFIS"
          }
        ]
      },
      "00080020": {
        "findings": [
          {
            "infoType": "DATE",
            "end": "8",
            "quote": "20110909"
          }
        ]
      }
    }
  }
}

A continuación, usa el valor IMAGE_ANNOTATION_RECORD_ID para ver el registro de anotaciones de imágenes:

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

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

Dentro del objeto imageAnnotation, hay varios vertices, cada uno de los cuales contiene cuatro puntos X/Y que vinculan las ubicaciones donde la operación de desidentificación detectó datos sensibles de la imagen y texto grabado.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/IMAGE_ANNOTATION_RECORD_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID/series/SERIES_UID/instances/INSTANCE_UID"
    }
  },
  "imageAnnotation": {
    "boundingPolys": [
      {
        "vertices": [
          {
            "x": 439,
            "y": 919
          },
          {
            "x": 495,
            "y": 919
          },
          {
            "x": 495,
            "y": 970
          },
          {
            "x": 439,
            "y": 970
          }
        ]
      },
      {
        "vertices": [
          {
            "x": 493,
            "y": 919
          },
          {
            "x": 610,
            "y": 919
          },
          {
            "x": 610,
            "y": 972
          },
          {
            "x": 493,
            "y": 972
          }
        ]
      },
      {
        "vertices": [
        ...
        ]
      },
      ...
    ]
  }
}

gcloud

En el siguiente ejemplo, se usa el comando gcloud beta healthcare datasets deidentify. El campo storeQuote se establece en true de forma predeterminada y no se puede cambiar cuando se usa Google Cloud CLI.

gcloud beta healthcare datasets deidentify SOURCE_DATASET_ID \
    --destination-dataset=projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID \
    --text-redaction-mode=all \
    --annotation-store=projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/annotationStores/ANNOTATION_STORE_ID

La línea de comandos muestra el ID de la operación y, después de que se completa la operación, done:

Request issued for: [SOURCE_DATASET_ID]
Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID] to complete...done.

Para ver más detalles de la operación, ejecuta el comando gcloud beta healthcare operations describe y proporciona el OPERATION_ID de la respuesta:

gcloud beta healthcare operations describe --dataset=SOURCE_DATASET_ID \
    OPERATION_ID

En la respuesta, se incluye done: true:

done: true
metadata:
  '@type': type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata
  apiMethodName: google.cloud.healthcare.v1beta1.dataset.DatasetService.DeidentifyDataset
  counter: {COUNTER}
  createTime: 'CREATE_TIME'
  endTime: 'END_TIME'
  logsUrl: CLOUD_LOGGING_URL
name: projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID
response:
  '@type': type.googleapis.com/google.cloud.healthcare.v1beta1.deidentify.DeidentifySummary

Ejecuta el siguiente comando para enumerar los almacenes de anotaciones en el conjunto de datos y ver que la operación creó el nuevo almacén de anotaciones:

gcloud beta healthcare annotation-stores list --dataset=DESTINATION_DATASET_ID

Si la solicitud se realiza de forma correcta, el servidor muestra el nuevo almacén de anotaciones:

ID                    LOCATION
ANNOTATION_STORE_ID                      LOCATION

No es posible ver detalles sobre una anotación individual con la gcloud CLI. Para ver los detalles de una anotación individual, sigue las instrucciones en la muestra de curl.