Creazione e gestione dei record di annotazione

Questa pagina spiega come creare, visualizzare, elencare ed eliminare i record di annotazione. Esempi di record di annotazione includono etichette e tag per testo, immagini e audio sanitari. Per una panoramica degli archivi di annotazioni e dei record di annotazioni, consulta Annotazioni.

Creazione di un record di annotazione

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

Gli esempi riportati di seguito mostrano come creare un record di annotazione. Per ulteriori informazioni, consulta projects.locations.datasets.annotationStores.annotations.create.

curl

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

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

L'esempio riportato di seguito 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 e etichetta l'area delimitata con il nome "bounding-box". Questo esempio presuppone che tu abbia già archiviato un'istanza DICOM in un archivio DICOM. A questa istanza DICOM viene fatto 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 riesce, 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 principale
  • Il nome dell'archivio di annotazioni principale
  • L'origine del record di annotazione
  • Il tipo di record di annotazione
  • Un token di accesso

L'esempio riportato di seguito mostra una richiesta POST mediante 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 e etichetta l'area delimitata con il nome "bounding-box". Questo esempio presuppone che tu abbia già archiviato un'istanza DICOM in un archivio DICOM. A questa istanza DICOM viene fatto 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 riesce, 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"
      }
    ]
  }
}

Modificare un record di annotazione

Gli esempi riportati di seguito mostrano come modificare il record di annotazione di Creazione di un record di annotazione in modo che abbia un'etichetta di tipo di risorsa. Per ulteriori informazioni, vedi projects.locations.datasets.annotationStores.annotations.patch.

curl

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

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

L'esempio riportato di seguito 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 riesce, 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 principale
  • Il nome dell'archivio di annotazioni principale
  • L'ID record dell'annotazione
  • I dati da aggiornare
  • Una maschera di aggiornamento
  • Un token di accesso

Il seguente esempio mostra una richiesta PATCH mediante Windows PowerShell su 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 riesce, 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"
  }
}

Visualizzare i dettagli dei record di annotazione

Gli esempi riportati di seguito mostrano come recuperare i dettagli di un record di annotazione. Per maggiori informazioni, vedi projects.locations.datasets.annotationStores.annotations.get.

curl

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

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

L'esempio riportato di seguito 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 riesce, 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 nella risorsa Annotation hai configurato dei campi, questi vengono visualizzati anche nella risposta.

PowerShell

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

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

L'esempio riportato di seguito 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 riesce, 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 nella risorsa Annotation hai configurato dei campi, questi vengono visualizzati anche nella risposta.

Elenco dei record di annotazione delle schede in un archivio di annotazioni

Gli esempi riportati di seguito mostrano come elencare i record di annotazioni in un archivio di annotazioni. Per ulteriori informazioni, vedi projects.locations.datasets.annotationStores.annotations.list.

curl

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

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

L'esempio riportato di seguito mostra una richiesta GET che utilizza curl in un archivio di annotazioni contenente 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 riesce, 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 nella risorsa Annotation hai configurato dei campi, questi vengono visualizzati anche nella risposta.

PowerShell

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

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

L'esempio seguente mostra una richiesta GET mediante 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 riesce, 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 nella risorsa Annotation hai configurato dei campi, questi vengono visualizzati anche nella risposta.

Eliminazione di un record di annotazione

Gli esempi riportati di seguito mostrano come eliminare un record di annotazione. Per ulteriori informazioni, consulta projects.locations.datasets.annotationStores.annotations.delete.

curl

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

  • Il nome del set di dati principale
  • Il nome dell'archivio di annotazioni principale
  • L'ID 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 riesce, il server restituisce un corpo di risposta vuoto in formato JSON:

{}

PowerShell

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

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

Il seguente esempio mostra una richiesta DELETE mediante 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 riesce, il server restituisce un corpo di risposta vuoto in formato JSON:

{}