Questa pagina spiega come configurare archivi e record di annotazioni quando anonimizza il FHIR sensibile e DICOM.
Panoramica delle annotazioni dei dati anonimizzati
Ogni volta che anonimizza i dati FHIR o DICOM sensibili, può restituire informazioni sui dati sensibili rimossi un archivio di annotazioni. Queste informazioni vengono archiviate come una o più annotazioni all'interno dell'archivio annotazioni.
Puoi creare l'archivio di annotazioni in un set di dati esistente oppure crearlo in il nuovo set di dati creato durante l'operazione di anonimizzazione. Se crei di annotazioni in un set di dati esistente, un archivio di annotazioni lo stesso nome non può esistere già nel set di dati.
L'archivio di annotazioni creato deve trovarsi nello stesso progetto dell'archivio anonimizzato i dati di origine. Ad esempio, non puoi anonimizzare contemporaneamente i dati e produrre record di annotazione in un archivio di annotazioni in un progetto.
Per specificare un archivio di annotazioni e il suo comportamento durante l'anonimizzazione,
imposta il campo annotationStoreName
all'interno di un annotation
in DeidentifyConfig
.
Se vuoi, puoi impostare il campo storeQuote
, a seconda del caso d'uso.
Le informazioni sull'impostazione del campo storeQuote
sono disponibili in
sezione successiva.
Utilizzo del campo storeQuote
Le seguenti informazioni si applicano sia ai dati FHIR sia a quelli DICOM.
Quando è impostato il campo storeQuote
all'interno di annotation
nella richiesta
a true
, i valori originali dei dati anonimizzati vengono visualizzati nel
record di annotazione nel campo quote
. Ad esempio:
Se
DATE
è anonimizzato e sestoreQuote
è impostato sutrue
, nel record di annotazione vengono visualizzate le seguenti informazioni:- Il valore della data (ad es.
1980-12-05
), visualizzato nel campoquote
- L'infoType
DATE
- Le posizioni di inizio e fine in cui sono stati trovati i dati. Le posizioni di partenza e di arrivo utilizzano un indice in base zero e sono entrambe inclusive.
- Il valore della data (ad es.
Se
storeQuote
è impostato sufalse
, la data (1980-12-05
) non vengono visualizzati nel record di annotazione e vengono fornite solo le seguenti informazioni visualizza:- L'infoType
DATE
- Le posizioni di inizio e fine in cui sono stati trovati i dati. Le posizioni di partenza e di arrivo utilizzano un indice in base zero e sono entrambe inclusive.
- L'infoType
Annotazioni per dati FHIR anonimizzati
Questa sezione si basa sui concetti spiegati Anonimizzazione dei dati FHIR mediante il metodo API Cloud Healthcare.
Struttura del record di annotazione
L'operazione di anonimizzazione crea un record di annotazione per ogni
Risorsa FHIR.
Ogni record di annotazione contiene un oggetto textAnnotation
che contiene
informazioni sui dati anonimizzati che sono stati 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. Negli esempi, il valore storeQuote
è impostato su true
, il che significa che il record di annotazione di output contiene
i valori originali dei dati anonimizzati.
Il nuovo archivio di annotazioni si trova nel set di dati creato di anonimizzazione, ma puoi anche per creare l'archivio di annotazioni 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 lo
Metodo dell'operazione get
per monitorare lo stato dell'operazione:
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 è riuscita, puoi elencare i di annotazioni nel set di dati e vedrai che l'operazione ha creato archivio 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"
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 le record di annotazioni nell'archivio 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 l'annotazione record:
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 ha esito positivo, il server restituisce la risposta in formato JSON.
L'oggetto textAnnotation
contiene informazioni sul testo sensibile che l'oggetto
l'operazione di anonimizzazione è stata rimossa. Nel campo details
, puoi vedere che
L'operazione ha cercato l'oggetto patient.text.div
e ha trovato
quattro infoType, insieme ai relativi valori e alle posizioni in cui i valori
sono stati trovati.
Utilizzando l'anonimizzazione FHIR predefinita, gli unici dati ispezionati
e trasformati sono stati i dati nell'oggetto patient.text.div
. tutti gli altri
i dati anonimizzati sono stati trasformati senza essere ispezionati perché
infoType è 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 dalla 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 questo comando per elencare gli archivi di annotazioni nel set di dati e vedrai che l'operazione ha creato il nuovo archivio di annotazioni:
gcloud beta healthcare annotation-stores list --dataset=DESTINATION_DATASET_ID
Se la richiesta ha esito positivo, il server restituisce il nuovo archivio di annotazioni:
ID LOCATION ANNOTATION_STORE_ID LOCATION
Non è possibile visualizzare i dettagli di una singola annotazione utilizzando il metodo
con gcloud CLI. Per visualizzare i dettagli di una singola annotazione:
le istruzioni nell'esempio di curl
.
Annotazioni per i dati DICOM anonimizzati
Questa sezione si basa sui concetti spiegati Anonimizzazione dei dati DICOM mediante API Cloud Healthcare.
Struttura del record di annotazione
L'operazione di anonimizzazione crea due tipi di record di annotazione dati DICOM anonimizzati. I due tipi di record di annotazione sono:
- Record di annotazione di testo: contengono metadati, ad esempio
come tag DICOM, dai dati anonimizzati. Ogni record di annotazione di testo contiene
textAnnotation
che contiene informazioni sui dati anonimizzati che sono stati 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 campoTagFilterProfile
. Ad esempio, gli esempi in Configurazione delle annotazioni per i dati DICOM anonimizzati utilizzano la configurazioneDEIDENTIFY_TAG_CONTENTS
. - Record di annotazione per le immagini: contengono la posizione delle informazioni sensibili.
nei singoli frame DICOM. Ogni record di annotazione delle immagini contiene
ImageAnnotation
contenente le coordinate per le 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, 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 annotazioni delle immagini, ciascuno contenente un
imageAnnotation
, per ciascuno dei tre frame. Ogni record di annotazione delle immagini contieneframe_index
per indicare il frame a cui corrisponde il record.
Tutti e quattro questi record di annotazione hanno lo stessocloudHealthcareSource.name
, che è 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 la combinazione dell'anonimizzazione dei tag e dell'oscuramento del testo con burn-in
come punto di partenza. Gli esempi mostrano come anonimizzare un'istanza DICOM
per oscurare completamente il testo integrato nell'immagine, ispezionare e trasformare i dati
testo. Gli esempi mostrano anche come archiviare le informazioni sui dati anonimizzati
in un
di annotazioni in un nuovo archivio di annotazioni. Negli esempi, il valore storeQuote
è impostato su true
, il che significa che il record di annotazione di output contiene
i valori originali dei dati anonimizzati.
Il nuovo archivio di annotazioni si trova nel set di dati creato di anonimizzazione, ma puoi anche per creare l'archivio di annotazioni 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 lo
Metodo dell'operazione get
per monitorare lo stato dell'operazione:
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 il nuovo 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 le record di annotazioni nell'archivio 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 notare che sono stati creati due record di annotazione: un record di annotazione testuale e un record di annotazione per l'immagine.
Innanzitutto, utilizza 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" } ] } } } }
Poi, 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 ha esito positivo, 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
Il seguente esempio utilizza la classe 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 dalla 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 questo comando per elencare gli archivi di annotazioni nel set di dati e vedrai che l'operazione ha creato il nuovo archivio di annotazioni:
gcloud beta healthcare annotation-stores list --dataset=DESTINATION_DATASET_ID
Se la richiesta ha esito positivo, il server restituisce il nuovo archivio di annotazioni:
ID LOCATION ANNOTATION_STORE_ID LOCATION
Non è possibile visualizzare i dettagli di una singola annotazione utilizzando il metodo
con gcloud CLI. Per visualizzare i dettagli di una singola annotazione, segui le istruzioni riportate nel esempio curl
.