Creazione e gestione dei record di annotazione

Questa pagina spiega come creare, visualizzare, elencare ed eliminare i record delle annotazioni. Esempi di record di annotazioni includono etichette e tag per testo sanitario, immagine e audio. Per una panoramica degli archivi di annotazioni e dei record di annotazioni, consulta l'articolo Annotazioni.

Creazione di un record di annotazione

Prima di poter creare un record di annotazione, devi creare un archivio di annotazioni.

I seguenti esempi mostrano come creare un record di annotazione. Per ulteriori informazioni, consulta la pagina projects.locations.datasets.annotationStores.annotations.create.

Curling

Per creare un record di annotazione, effettua una richiesta POST e fornisci le seguenti informazioni:

  • Il nome del set di dati padre
  • Il nome dell'archivio di annotazioni principale
  • L'origine del record dell'annotazione
  • Il tipo di record di annotazione
  • Un token di accesso

L'esempio seguente mostra una richiesta POST che utilizza curl per creare un record di annotazione per un'immagine DICOM. L'annotazione utilizza un riquadro di delimitazione per contrassegnare le dimensioni di una parte dell'immagine ed etichetta l'area delimitata con il nome "bounding-box.&quot". Questo esempio presuppone che tu abbia già archiviato un'istanza DICOM in un archivio DICOM. A questa istanza DICOM si fa riferimento nel campo name di cloudHealthcareSource.

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'annotationSource': {
        'cloudHealthcareSource': {
          'name': 'projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID'
        }
      },
      'imageAnnotation': {
        'boundingPolys': [
          {
            'vertices': [
              {
                'x': 100,
                'y': 100
              },
              {
                'x': 100,
                'y': 400
              },
              {
                'x': 400,
                'y': 100
              },
              {
                'x': 400,
                'y': 400
              }
            ],
            'label': 'bounding-box'
          }
        ]
      }
    }" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations"

Se la richiesta ha esito positivo, il server restituisce la risposta in formato JSON:

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
    }
  },
  "imageAnnotation": {
    "boundingPolys": [
      {
        "vertices": [
          {
            "x": 100,
            "y": 100
          },
          {
            "x": 100,
            "y": 400
          },
          {
            "x": 400,
            "y": 100
          },
          {
            "x": 400,
            "y": 400
          }
        ],
        "label": "bounding-box"
      }
    ]
  }
}

PowerShell

Per creare un record di annotazione, effettua una richiesta POST e fornisci le seguenti informazioni:

  • Il nome del set di dati padre
  • Il nome dell'archivio di annotazioni principale
  • L'origine del record dell'annotazione
  • Il tipo di record di annotazione
  • Un token di accesso

L'esempio seguente mostra una richiesta POST con Windows PowerShell che crea un record di annotazione per un'immagine DICOM. L'annotazione utilizza un riquadro di delimitazione per contrassegnare le dimensioni di una parte dell'immagine ed etichetta l'area delimitata con il nome "bounding-box.&quot". Questo esempio presuppone che tu abbia già archiviato un'istanza DICOM in un archivio DICOM. A questa istanza DICOM si fa riferimento nel campo name di cloudHealthcareSource.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
    'annotationSource': {
      'cloudHealthcareSource': {
        'name': 'projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID'
      }
    },
    'imageAnnotation': {
      'boundingPolys': [
        {
          'vertices': [
            {
              'x': 100,
              'y': 100
            },
            {
              'x': 100,
              'y': 400
            },
            {
              'x': 400,
              'y': 100
            },
            {
              'x': 400,
              'y': 400
            }
          ],
          'label': 'bounding-box'
        }
      ]
    }
  }" `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations" | Select-Object -Expand Content

Se la richiesta ha esito positivo, il server restituisce la risposta in formato JSON:

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
    }
  },
  "imageAnnotation": {
    "boundingPolys": [
      {
        "vertices": [
          {
            "x": 100,
            "y": 100
          },
          {
            "x": 100,
            "y": 400
          },
          {
            "x": 400,
            "y": 100
          },
          {
            "x": 400,
            "y": 400
          }
        ],
        "label": "bounding-box"
      }
    ]
  }
}

Modifica di un record di annotazione

Gli esempi riportati di seguito mostrano come modificare il record dell'annotazione da Creazione di un record di annotazione in modo che abbia un'etichetta del tipo di risorsa. Per saperne di più, vedi projects.locations.datasets.annotationStores.annotations.patch.

Curling

Per modificare un record di annotazione, effettua una richiesta PATCH e fornisci le seguenti informazioni:

  • Il nome del set di dati padre
  • Il nome dell'archivio di annotazioni principale
  • L'ID del record dell'annotazione
  • I dati da aggiornare
  • Maschera di aggiornamento
  • Un token di accesso

L'esempio seguente mostra una richiesta PATCH che utilizza curl su un record di annotazione per un'istanza DICOM.

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'resourceAnnotation': {
        'label': 'VALUE'
      }
    }" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID?updateMask=resourceAnnotation"

Se la richiesta ha esito positivo, il server restituisce la risposta in formato JSON:

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
    }
  },
  "resourceAnnotation": {
    "label": "VALUE"
  }
}

PowerShell

Per modificare un record di annotazione, effettua una richiesta PATCH e fornisci le seguenti informazioni:

  • Il nome del set di dati padre
  • Il nome dell'archivio di annotazioni principale
  • L'ID del record dell'annotazione
  • I dati da aggiornare
  • Maschera di aggiornamento
  • Un token di accesso

L'esempio seguente mostra una richiesta PATCH che utilizza Windows PowerShell in un record di annotazione per un'istanza DICOM.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Patch `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
    'resourceAnnotation': {
      'label': 'VALUE'
    }
  }" `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID?updateMask=resourceAnnotation" | Select-Object -Expand Content

Se la richiesta ha esito positivo, il server restituisce la risposta in formato JSON:

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
    }
  },
  "resourceAnnotation": {
    "label": "VALUE"
  }
}

Recupero dei dettagli dei record delle annotazioni

I seguenti esempi mostrano come ottenere i dettagli di un record di annotazione. Per ulteriori informazioni, consulta projects.locations.datasets.annotationStores.annotations.get.

Curling

Per ottenere dettagli su un record di annotazione, effettua una richiesta GET e fornisci le seguenti informazioni:

  • Il nome del set di dati padre
  • Il nome dell'archivio di annotazioni principale
  • L'ID del record dell'annotazione
  • Un token di accesso

L'esempio seguente mostra una richiesta GET che utilizza curl per visualizzare un record di annotazione per un'istanza DICOM.

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

Se la richiesta ha esito positivo, il server restituisce la risposta in formato JSON:

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
    }
  }
}

Se hai configurato dei campi nella risorsa Annotation, questi vengono visualizzati anche nella risposta.

PowerShell

Per ottenere dettagli su un record di annotazione, effettua una richiesta GET e fornisci le seguenti informazioni:

  • Il nome del set di dati padre
  • Il nome dell'archivio di annotazioni principale
  • L'ID del record dell'annotazione
  • Un token di accesso

L'esempio seguente mostra una richiesta GET mediante Windows PowerShell per visualizzare un record di annotazione per un'istanza DICOM.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID" | Select-Object -Expand Content

Se la richiesta ha esito positivo, il server restituisce la risposta in formato JSON:

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
  "annotationSource": {
    "cloudHealthcareSource": {
      "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
    }
  }
}

Se hai configurato dei campi nella risorsa Annotation, questi vengono visualizzati anche nella risposta.

Elenco dei record di annotazioni in un archivio annotazioni

I seguenti esempi mostrano come elencare i record di annotazione in un archivio di annotazioni. Per saperne di più, vedi projects.locations.datasets.annotationStores.annotations.list.

Curling

Per elencare i record delle annotazioni in un archivio annotazioni, effettua una richiesta GET e fornisci le seguenti informazioni:

  • Il nome del set di dati padre
  • Il nome dell'archivio di annotazioni
  • Un token di accesso

L'esempio seguente mostra una richiesta GET che utilizza curl in un archivio di annotazioni contenente i record di annotazioni per un'istanza DICOM.

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

Se la richiesta ha esito positivo, il server restituisce la risposta in formato JSON:

{
  "annotations": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
      "annotationSource": {
        "cloudHealthcareSource": {
          "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
        }
      }
    }
  ]
}

Se hai configurato dei campi nella risorsa Annotation, questi vengono visualizzati anche nella risposta.

PowerShell

Per elencare i record delle annotazioni in un archivio annotazioni, effettua una richiesta GET e fornisci le seguenti informazioni:

  • Il nome del set di dati padre
  • Il nome dell'archivio di annotazioni
  • Un token di accesso

L'esempio seguente mostra una richiesta GET tramite Windows PowerShell in un archivio di annotazioni contenente record di annotazioni per un'istanza DICOM.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations" | Select-Object -Expand Content

Se la richiesta ha esito positivo, il server restituisce la risposta in formato JSON:

{
  "annotations": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID",
      "annotationSource": {
        "cloudHealthcareSource": {
          "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID"
        }
      }
    }
  ]
}

Se hai configurato dei campi nella risorsa Annotation, questi vengono visualizzati anche nella risposta.

Eliminazione di un record di annotazione

I seguenti esempi mostrano come eliminare un record di annotazione. Per ulteriori informazioni, consulta la sezione projects.locations.datasets.annotationStores.annotations.delete.

Curling

Per eliminare un record di annotazione, effettua una richiesta DELETE e fornisci le seguenti informazioni:

  • Il nome del set di dati padre
  • Il nome dell'archivio di annotazioni principale
  • L'ID del record dell'annotazione
  • Un token di accesso

L'esempio seguente mostra una richiesta DELETE che utilizza curl.

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

Se la richiesta ha esito positivo, il server restituisce un corpo della risposta vuoto in formato JSON:

{}

PowerShell

Per eliminare un record di annotazione, effettua una richiesta DELETE e fornisci le seguenti informazioni:

  • Il nome del set di dati padre
  • Il nome dell'archivio di annotazioni principale
  • L'ID del record dell'annotazione
  • Un token di accesso

L'esempio seguente mostra una richiesta DELETE che utilizza Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Delete `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID/annotations/ANNOTATION_ID" | Select-Object -Expand Content

Se la richiesta ha esito positivo, il server restituisce un corpo della risposta vuoto in formato JSON:

{}