Anotar datos desidentificados

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

Anota la descripción general de los datos desidentificados

Cada vez que desidentificas datos FHIR o DICOM sensibles, puedes generar información sobre los datos sensibles que se quitaron de un almacén de anotaciones. Esta información se almacena como uno o más registros de anotaciones 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 que se creó durante la operación de desidentificación. Si creas el almacén de anotaciones en un conjunto de datos existente, no existe 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 de un proyecto y generar registros de anotaciones de forma simultánea en un almacén de anotaciones de un proyecto diferente.

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 práctico. Encontrarás información para configurar el campo storeQuote en la siguiente sección.

Mediante 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 DATE y si storeQuote se configura como true, se muestra la siguiente información en el registro de anotaciones:

    • El valor de la fecha (como 1980-12-05) que se muestra en el campo quote
    • El Infotipo de 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 en false, la fecha (1980-12-05) no se mostrará en el registro de anotación y solo se mostrará la siguiente información:

    • El Infotipo de 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 amplían los conceptos que se explican en Desidentifica datos de FHIR mediante la API de Cloud Healthcare.

Estructura del registro de anotaciones

La operación de desidentificación crea un registro de anotación por cada recurso de FHIR desidentificado. Cada registro de anotación 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 anotación, debe tener el INSPECT_AND_TRANSFORM Action aplicado.

Configura anotaciones para datos de FHIR desidentificados

En las siguientes muestras, se usa la desidentificación predeterminada de datos de FHIR como punto de partida. En las muestras, se indica cómo desidentificar un recurso de paciente mediante el método predeterminado de FHIR y almacenar información sobre los datos desidentificados en un registro de anotación en un almacén de anotaciones nuevo. En las muestras, el campo storeQuote se configura como true, lo que significa que el registro de la anotación del resultado 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 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 Infotipos, junto con sus valores y las ubicaciones en las que 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 está configurado en true de forma predeterminada y no se puede cambiar cuando se usa la herramienta de línea de comandos de gcloud.

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 observa que la operación creó el almacén de anotaciones nuevo:

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

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

ID                    LOCATION
ANNOTATION_STORE_ID                      LOCATION

No es posible ver los detalles de una anotación individual mediante la herramienta de gcloud. Para ver los detalles de una anotación individual, sigue las instrucciones que aparecen en la muestra curl.

Anotaciones para datos de DICOM desidentificados

En esta sección, se amplían los conceptos explicados en Desidentifica datos de DICOM mediante 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 DICOM, de los datos desidentificados. Cada registro de anotación de texto contiene un objeto textAnnotation que contiene información sobre los datos desidentificados que se inspeccionaron y se transformaron. Para que una etiqueta desidentificada aparezca en el registro de anotación, se debe inspeccionar la información de salud protegida (PHI) según la configuración proporcionada en elTagFilterProfile campo. Por ejemplo, en las muestras de la sección Configura anotaciones para datos de DICOM desidentificados, se usa la configuración DEIDENTIFY_TAG_CONTENTS.
  • Registros de anotaciones de imágenes: contienen la ubicación de información sensible en marcos DICOM individuales. Cada registro de anotación de imagen 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 marco en una instancia de DICOM. Por ejemplo, si una instancia de DICOM tiene tres marcos, 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 un imageAnnotation, para cada uno de los tres marcos Cada registro de anotación de imagen 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 la desidentificación de etiquetas y el ocultamiento de texto grabado como punto de partida. En los ejemplos, se muestra cómo desidentificar una instancia de DICOM para ocultar todo el texto de la imagen, además de 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 anotación en un almacén de anotaciones nuevo. En las muestras, el campo storeQuote se configura como true, lo que significa que el registro de la anotación del resultado 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 anotación: un registro de anotación de texto y uno de imagen.

Primero, usa el valor TEXT_ANNOTATION_RECORD_ID para ver el registro de anotación 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 anotación de la imagen:

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 está configurado en true de forma predeterminada y no se puede cambiar cuando se usa la herramienta de línea de comandos de gcloud.

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 observa que la operación creó el almacén de anotaciones nuevo:

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

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

ID                    LOCATION
ANNOTATION_STORE_ID                      LOCATION

No es posible ver los detalles de una anotación individual mediante la herramienta de gcloud. Para ver los detalles de una anotación individual, sigue las instrucciones que aparecen en la muestra curl.