Annotazione di dati anonimizzati

Questa pagina spiega come configurare gli archivi di annotazioni e i record di annotazioni quando vengono anonimizzati i dati sensibili FHIR e DICOM.

Panoramica dell'annotazione di dati anonimizzati

Ogni volta che anonimizzi dati FHIR o DICOM sensibili, puoi outputtare informazioni sui dati sensibili rimossi in un archivio di annotazioni. Queste informazioni vengono archiviate come uno o più record di annotazione all'interno dell'archivio di annotazioni.

Puoi creare il datastore delle annotazioni in un set di dati esistente o nel nuovo set di dati creato durante l'operazione di anonimizzazione. Se crei il datastore delle annotazioni in un set di dati esistente, non può esistere già un datastore con lo stesso nome nel set di dati.

Lo spazio di archiviazione delle annotazioni creato deve trovarsi nello stesso progetto dei dati di origine anonimizzati. Ad esempio, non puoi anonimizzare contemporaneamente i dati in un progetto e generare record di annotazioni in un archivio di annotazioni in un altro progetto.

Per specificare un archivio di annotazioni e il relativo comportamento durante la spersonalizzazione, imposta il campo annotationStoreName all'interno di un oggetto annotation nell'oggetto DeidentifyConfig.

Se vuoi, puoi impostare il campo storeQuote, a seconda del caso d'uso. Le informazioni sull'impostazione del campo storeQuote sono disponibili nella sezione successiva.

Utilizzo del campo storeQuote

Le seguenti informazioni si applicano sia ai dati FHIR sia a quelli DICOM.

Quando il campo storeQuote all'interno di annotation nella richiesta è impostato su true, i valori originali dei dati anonimizzati vengono visualizzati nel record di annotazione nel campo quote. Ad esempio:

  • Se un DATE è anonimizzato e storeQuote è impostato su true, nel record di annotazione vengono visualizzate le seguenti informazioni:

    • Il valore della data (ad es. 1980-12-05), visualizzato nel campo quote
    • L'infoType DATE
    • Le posizioni di inizio e di fine in cui sono stati trovati i dati. Le posizioni di inizio e di fine utilizzano un indice a partire da zero e sono entrambe inclusive.
  • Se storeQuote è impostato su false, la data (1980-12-05) non viene visualizzata nel record dell'annotazione e vengono visualizzate solo le seguenti informazioni:

    • L'infoType DATE
    • Le posizioni di inizio e di fine in cui sono stati trovati i dati. Le posizioni di inizio e di fine utilizzano un indice a partire da zero e sono entrambe inclusive.

Annotazioni per i dati FHIR anonimizzati

Questa sezione si basa sui concetti spiegati in Anonimizzazione dei dati FHIR utilizzando l'API Cloud Healthcare.

Struttura del record di annotazione

L'operazione di anonimizzazione crea un record di annotazione per ogni risorsa FHIR anonimizzata. Ogni record di annotazione contiene un oggetto textAnnotation che contiene informazioni sui dati anonimizzati ispezionati e trasformati. Affinché un campo anonimizzato venga visualizzato nel record di annotazione, deve essere applicato il valore INSPECT_AND_TRANSFORM Action.

Configurazione delle annotazioni per i dati FHIR anonimizzati

I seguenti esempi utilizzano l'anonimizzazione predefinita dei dati FHIR come punto di partenza. Gli esempi mostrano come anonimizzare una risorsa Patient utilizzando il metodo predefinito di FHIR e archiviare le informazioni sui dati anonimizzati in un record di annotazione in un nuovo archivio di annotazioni. Nei sample, il campo storeQuote è impostato su true, il che significa che il record di annotazione dell'output contiene i valori originali dei dati anonimizzati.

Il nuovo archivio di annotazioni si trova nel set di dati creato dall'operazione di anonimizzazione, ma puoi anche crearlo in un set di dati esistente.

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"

Se la richiesta riesce, il server restituisce la risposta in formato JSON:

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

La risposta contiene il nome di un'operazione. Puoi utilizzare il metodo get dell'operazione per tenere traccia del relativo stato:

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"

Se la richiesta riesce, il server restituisce la risposta in formato JSON. Al termine del processo di anonimizzazione, la risposta 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"
  }
}

Dopo aver verificato che l'anonimizzazione sia andata a buon fine, puoi elencare gli Annotator nel set di dati e verificare che l'operazione abbia creato l'Annotator:

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"

Se la richiesta riesce, il server restituisce la risposta in formato JSON:

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

Utilizza il valore ANNOTATION_STORE_ID per elencare i record di annotazione nell'archivio di annotazioni:

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"

Se la richiesta riesce, il server restituisce la risposta in formato JSON:

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

Utilizza il valore ANNOTATION_RECORD_ID per visualizzare il record di annotazione:

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"

Se la richiesta riesce, il server restituisce la risposta in formato JSON.

L'oggetto textAnnotation contiene informazioni sul testo sensibile rimosso dall'operazione di anonimizzazione. Nel campo details, puoi vedere che l'operazione ha cercato nell'oggetto patient.text.div e ha trovato quattro infoType, insieme ai relativi valori e alle posizioni in cui sono stati ritrovati.

Se utilizzi l'anonimizzazione FHIR predefinita, gli unici dati ispezionati e trasformati sono quelli nell'oggetto patient.text.div. Tutti gli altri dati anonimizzati sono stati trasformati senza essere ispezionati perché il relativo infoType era già stato dichiarato nella risorsa FHIR originale.

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

L'esempio seguente utilizza il comando gcloud beta healthcare datasets deidentify. Il campo storeQuote è impostato su true per impostazione predefinita e non può essere modificato quando si utilizza 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 riga di comando mostra l'ID operazione e, al termine dell'operazione,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.

Per visualizzare ulteriori dettagli sull'operazione, esegui il comando gcloud beta healthcare operations describe fornendo il valore OPERATION_ID della risposta:

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

La risposta include 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

Esegui il comando seguente per elencare gli store di annotazioni nel set di dati e verificare che l'operazione abbia creato il nuovo store di annotazioni:

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

Se la richiesta riesce, il server restituisce il nuovo archivio di annotazioni:

ID                    LOCATION
ANNOTATION_STORE_ID                      LOCATION

Non è possibile visualizzare i dettagli di una singola annotazione utilizzando gcloud CLI. Per visualizzare i dettagli di una singola annotazione, segui le istruzioni riportate nel sample curl.

Annotazioni per i dati DICOM anonimizzati

Questa sezione si basa sui concetti spiegati in Anonimazione dei dati DICOM utilizzando l'API Cloud Healthcare.

Struttura del record di annotazione

L'operazione di anonimizzazione crea due tipi di record di annotazione per i dati DICOM anonimizzati. I due tipi di record di annotazione sono:

  • Record di annotazione del testo: contengono metadati, come i tag DICOM, dei dati anonimizzati. Ogni record di annotazione del testo contiene un oggetto textAnnotation che contiene informazioni sui dati anonimizzati ispezionati e trasformati. Affinché un tag anonimizzato venga visualizzato nel record di annotazione, deve essere stato controllato per rilevare informazioni sanitarie protette (PHI) in base alla configurazione fornita nel campo TagFilterProfile. Ad esempio, gli esempi in Configurazione delle annotazioni per i dati DICOM anonimizzati utilizzano la configurazione DEIDENTIFY_TAG_CONTENTS.
  • Record di annotazione delle immagini: contengono la posizione delle informazioni sensibili nei singoli frame DICOM. Ogni record di annotazione dell'immagine contiene un oggetto ImageAnnotation che contiene le coordinate delle informazioni sensibili trovate.

L'operazione di anonimizzazione crea record di annotazioni per ogni frame di un'istanza DICOM. Ad esempio, se un'istanza DICOM ha tre frame, l'operazione di anonimizzazione crea i seguenti record di annotazione:

  • Un record di annotazione di testo contenente un textAnnotation per i tag DICOM nell'istanza DICOM.
  • Tre record di annotazione delle immagini, ciascuno contenente un imageAnnotation, per ciascuno dei tre frame. Ogni record di annotazione dell'immagine contiene un frame_index campo per indicare il frame a cui corrisponde il record.

Tutti e quattro questi record di annotazione hanno lo stessocloudHealthcareSource.name valore, ovvero il percorso dell'istanza DICOM nel formato: projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID/series/SERIES_UID/instances/INSTANCE_UID.

Configurazione delle annotazioni per i dati DICOM anonimizzati

I seguenti esempi utilizzano come punto di partenza la combinazione di spersonalizzazione dei tag e oscuramento del testo integrato. Gli esempi mostrano come anonimizzare un'istanza DICOM per oscurare tutto il testo integrato nell'immagine e ispezionare e trasformare il testo sensibile. Gli esempi mostrano anche come archiviare le informazioni relative ai dati anonimizzati in un record di annotazione in un nuovo archivio di annotazioni. Nei sample, il campo storeQuote è impostato su true, il che significa che il record di annotazione dell'output contiene i valori originali dei dati anonimizzati.

Il nuovo archivio di annotazioni si trova nel set di dati creato dall'operazione di anonimizzazione, ma puoi anche crearlo in un set di dati esistente.

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"

Se la richiesta riesce, il server restituisce la risposta in formato JSON:

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

La risposta contiene il nome di un'operazione. Puoi utilizzare il metodo get dell'operazione per tenere traccia del relativo stato:

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"

Se la richiesta riesce, il server restituisce la risposta in formato JSON. Al termine del processo di anonimizzazione, la risposta 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"
  }
}

Dopo aver verificato che l'anonimizzazione sia andata a buon fine, puoi elencare gli Annotazioni Store nel set di dati e verificare che l'operazione abbia creato il nuovo Annotazioni Store:

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"

Se la richiesta riesce, il server restituisce la risposta in formato JSON:

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

Utilizza il valore ANNOTATION_STORE_ID per elencare i record di annotazione nell'archivio di annotazioni:

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"

Se la richiesta riesce, il server restituisce la risposta in formato JSON:

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

Puoi vedere che sono stati creati due record di annotazione: un record di annotazione del testo e un record di annotazione dell'immagine.

Innanzitutto, utilizza il valore TEXT_ANNOTATION_RECORD_ID per visualizzare il record di annotazione del testo:

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"

Se la richiesta riesce, il server restituisce la risposta in formato JSON.

L'oggetto textAnnotation contiene informazioni sul testo sensibile rimosso dall'operazione di anonimizzazione. Nel campo details, puoi vedere che l'operazione ha fornito un elenco di tag DICOM. Quando è stato trovato un tag DICOM, le relative informazioni sono state fornite nell'oggetto findings, che mostra l'infoType, il valore dell'infoType e le posizioni in cui sono stati trovati i valori.

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

Quindi, utilizza il valore IMAGE_ANNOTATION_RECORD_ID per visualizzare il record di annotazione dell'immagine:

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"

Se la richiesta riesce, il server restituisce la risposta in formato JSON.

All'interno dell'oggetto imageAnnotation sono presenti più vertices, ciascuno dei quali contiene quattro punti X/Y che delimitano le posizioni in cui l'operazione di anonimizzazione ha rilevato dati sensibili delle immagini e testo incollato.

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

L'esempio seguente utilizza il comando gcloud beta healthcare datasets deidentify. Il campo storeQuote è impostato su true per impostazione predefinita e non può essere modificato quando si utilizza 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 riga di comando mostra l'ID operazione e, al termine dell'operazione,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.

Per visualizzare ulteriori dettagli sull'operazione, esegui il comando gcloud beta healthcare operations describe fornendo il valore OPERATION_ID della risposta:

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

La risposta include 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

Esegui il comando seguente per elencare gli store di annotazioni nel set di dati e verificare che l'operazione abbia creato il nuovo store di annotazioni:

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

Se la richiesta riesce, il server restituisce il nuovo archivio di annotazioni:

ID                    LOCATION
ANNOTATION_STORE_ID                      LOCATION

Non è possibile visualizzare i dettagli di una singola annotazione utilizzando gcloud CLI. Per visualizzare i dettagli di una singola annotazione, segui le istruzioni riportate nel sample curl.