De-identifizierte Daten annotieren

Auf dieser Seite wird erläutert, wie Sie Annotationsspeicher und -einträge konfigurieren, wenn Sie sensible FHIR- und DICOM-Daten de-identifizieren.

De-identifizierte Daten annotieren

Jedes Mal, wenn Sie vertrauliche FHIR- oder DICOM-Daten de-identifizieren, können Sie Informationen zu den vertraulichen Daten ausgeben, die in einen Annotationsspeicher entfernt wurden. Diese Informationen werden als ein oder mehrere Annotationseinträge im Annotationsspeicher gespeichert.

Sie können den Annotationsspeicher in einem vorhandenen Dataset erstellen oder in dem neuen Dataset erstellen, das beim De-Identifikationsvorgang erstellt wurde. Wenn Sie den Annotationsspeicher in einem vorhandenen Dataset erstellen, darf in diesem Dataset kein Annotationsspeicher mit demselben Namen vorhanden sein.

Der erstellte Annotationsspeicher muss sich im selben Projekt wie die de-identifizierten Quelldaten befinden. Es ist beispielsweise nicht möglich, Daten gleichzeitig in einem Projekt zu entfernen und Annotationseinträge an einen Annotationsspeicher in einem anderen Projekt zu erkennen.

Wenn Sie einen Annotationsspeicher und sein Verhalten während der De-Identifikation angeben möchten, legen Sie das Feld annotationStoreName in einem annotation-Objekt im Objekt DeidentifyConfig fest.

Je nach Anwendungsfall können Sie das Feld storeQuote optional festlegen. Informationen zum Festlegen des Felds storeQuote finden Sie im nächsten Abschnitt.

Feld storeQuote verwenden

Die folgenden Informationen gelten sowohl für FHIR- als auch für DICOM-Daten.

Wenn das storeQuote-Feld innerhalb der annotation in der Anfrage auf true gesetzt ist, werden die ursprünglichen Werte der de-identifizierten Daten im Anmerkungsdatensatz im quote-Feld angezeigt. Beispiel:

  • Wenn ein DATE de-identifiziert wird und storeQuote auf true gesetzt ist, werden die folgenden Informationen im Annotationseintrag angezeigt:

    • Der Wert für das Datum (z. B. 1980-12-05), das im Feld quote angezeigt wird
    • Der infoType DATE
    • Die Start- und Endorte, an denen die Daten gefunden wurden. Die Start- und Endpositionen verwenden einen nullbasierten Index und sind beide inklusive.
  • Wenn storeQuote auf false gesetzt ist, wird das Datum (1980-12-05) nicht im Annotationseintrag angezeigt und nur die folgenden Informationen werden angezeigt:

    • Der infoType DATE
    • Die Start- und Endorte, an denen die Daten gefunden wurden. Die Start- und Endpositionen verwenden einen nullbasierten Index und sind beide inklusive.

Annotationen für de-identifizierte FHIR-Daten

Dieser Abschnitt basiert auf Konzepten, die unter FHIR-Daten mit der Cloud Healthcare API de-identifizieren erläutert werden.

Struktur eines Annotationseintrags

Der De-Identifizierungsvorgang erstellt einen Annotationseintrag für jede de-identifizierte FHIR-Ressource. Jeder Annotationseintrag enthält ein textAnnotation-Objekt, das Informationen zu den de-identifizierten Daten enthält, die untersucht und transformiert wurden. Damit ein de-identifiziertes Feld im Annotationseintrag angezeigt wird, muss die INSPECT_AND_TRANSFORM Action darauf angewendet werden.

Annotationen für de-identifizierte FHIR-Daten konfigurieren

In den folgenden Beispielen wird die standardmäßige De-Identifikation von FHIR-Daten als Ausgangspunkt verwendet. Die Beispiele zeigen, wie eine Patientenressource mithilfe der FHIR-Standardmethode de-identifiziert und Informationen zu den de-identifizierten Daten in einem Annotationseintrag in einem neuen Annotationsspeicher gespeichert werden. In den Beispielen ist das Feld storeQuote auf true gesetzt. Das bedeutet, dass der Ausgabeannotationseintrag die ursprünglichen Werte der de-identifizierten Daten enthält.

Der neue Annotationsspeicher befindet sich in dem Dataset, das durch den Vorgang der De-Identifikation erstellt wurde. Sie können jedoch auch den Annotationsspeicher in einem vorhandenen Dataset erstellen.

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"

Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück:

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

Die Antwort enthält einen Vorgangsnamen. Sie können die Vorgangsmethode get verwenden, um den Status des Vorgangs zu verfolgen:

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"

Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück. Nach Abschluss des De-Identifikationsprozesses enthält die Antwort "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"
  }
}

Nachdem Sie überprüft haben, ob die De-Identifikation erfolgreich war, können Sie die Annotationsspeicher im Dataset auflisten und sehen, dass der Vorgang den Annotationsspeicher erstellt hat:

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"

Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück:

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

Verwenden Sie den Wert ANNOTATION_STORE_ID, um die Annotationseinträge im Annotationsspeicher aufzulisten:

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"

Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück:

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

Verwenden Sie den Wert ANNOTATION_RECORD_ID, um den Annotationseintrag anzuzeigen:

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"

Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück.

Das Objekt textAnnotation enthält Informationen zu vertraulichem Text, der durch die De-Identifikation entfernt wurde. Im Feld details sehen Sie, dass der Vorgang das Objekt patient.text.div durchsucht und vier infoTypes sowie deren Werte und die Speicherorte gefunden hat, unter denen die Werte gefunden wurden.

Bei der Verwendung der standardmäßigen FHIR-De-Identifikation wurden nur die Daten im Objekt patient.text.div geprüft und transformiert. Alle anderen de-identifizierten Daten wurden transformiert, ohne geprüft zu werden, da ihr infoType bereits in der ursprünglichen FHIR-Ressource deklariert wurde.

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

Im folgenden Beispiel wird der gcloud beta healthcare datasets deidentify-Befehl verwendet. Das storeQuote-Feld ist standardmäßig auf true gesetzt und kann bei Verwendung der Google Cloud CLI nicht geändert werden.

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

In der Befehlszeile wird die Vorgangs-ID und nach Abschluss des Vorgangs done angezeigt:

Request issued for: [SOURCE_DATASET_ID]
Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID] to complete...done.

Führen Sie den Befehl gcloud beta healthcare operations describe aus und geben Sie OPERATION_ID aus der Antwort an, um weitere Details zum Vorgang aufzurufen:

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

Die Antwort enthält 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

Führen Sie folgenden Befehl aus, um die Annotationsspeicher im Dataset aufzulisten und zu sehen, ob der Vorgang den neuen Annotationsspeicher erstellt hat:

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

Wenn die Anfrage erfolgreich ist, gibt der Server den neuen Anmerkungsspeicher zurück:

ID                    LOCATION
ANNOTATION_STORE_ID                      LOCATION

Mit der gcloud CLI können Sie keine Details zu einer individuellen Annotation aufrufen. Folgen Sie der Anleitung im curl-Beispiel, um Details zu einer einzelnen Annotation aufzurufen.

Annotationen für de-identifizierte DICOM-Daten

Dieser Abschnitt baut auf Konzepten auf, die unter DICOM-Daten de-identifizieren mit der Cloud Healthcare API erläutert werden.

Struktur eines Annotationseintrags

Der De-Identifizierungsvorgang erstellt zwei Arten von Annotationseinträgen für de-identifizierte DICOM-Daten. Es gibt zwei Arten von Annotationseinträgen:

  • Textannotationsdatensätze: enthalten Metadaten wie DICOM-Tags aus den de-identifizierten Daten. Jeder Textannotationsdatensatz enthält ein textAnnotation-Objekt, das Informationen zu den de-identifizierten Daten enthält, die geprüft und transformiert wurden. Damit ein de-identifiziertes Tag im Annotationsdatensatz erscheint, muss es auf geschützte Gesundheitsinformationen (Protected Health Information, PHI) basierend auf der im Feld TagFilterProfile angegebenen Konfiguration überprüft worden sein. In den Beispielen unter Annotationen für de-identifiziere DICOM-Daten konfigurieren wird beispielsweise die Konfiguration DEIDENTIFY_TAG_CONTENTS verwendet.
  • Bildannotationseinträge: Enthalten den Speicherort vertraulicher Informationen in einzelnen DICOM-Frames. Jeder Bildannotationseintrag enthält ein ImageAnnotation-Objekt, das die Koordinaten der gefundenen vertraulichen Informationen enthält.

Der De-Identifikationsvorgang erstellt Annotationseinträge für jeden Frame in einer DICOM-Instanz. Wenn eine DICOM-Instanz beispielsweise drei Frames hat, erstellt der De-Identifikationsvorgang die folgenden Annotationseinträge:

  • Ein Textannotationseintrag mit einer textAnnotation für die DICOM-Tags in der DICOM-Instanz.
  • Drei Bildannotationseinträge mit jeweils einer imageAnnotation für jeden der drei Frames. Jeder Eintrag mit Bildannotationen enthält ein frame_index-Feld, das den Frame angibt, dem der Eintrag entspricht.

Alle vier Annotationseinträge haben den gleichen cloudHealthcareSource.name-Wert. Dies ist der DICOM-Instanzpfad im Format projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID/series/SERIES_UID/instances/INSTANCE_UID.

Annotationen für de-identifizierte DICOM-Daten konfigurieren

Die folgenden Beispiele verwenden eine Kombination aus der Tag-De-Identifikation und der eingebrannten Textentfernung als Ausgangspunkt. Die Beispiele zeigen, wie Sie eine DICOM-Instanz de-identifizieren, um eingebrannten Text im Bild zu entfernen und vertraulichen Text zu untersuchen und zu transformieren. Die Beispiele zeigen auch, wie Informationen zu den de-identifizierten Daten in einem Annotationseintrag in einem neuen Annotationsspeicher gespeichert werden. In den Beispielen ist das Feld storeQuote auf true gesetzt. Das bedeutet, dass der Ausgabeannotationseintrag die ursprünglichen Werte der de-identifizierten Daten enthält.

Der neue Annotationsspeicher befindet sich in dem Dataset, das durch den Vorgang der De-Identifikation erstellt wurde. Sie können jedoch auch den Annotationsspeicher in einem vorhandenen Dataset erstellen.

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"

Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück:

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

Die Antwort enthält einen Vorgangsnamen. Sie können die Vorgangsmethode get verwenden, um den Status des Vorgangs zu verfolgen:

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"

Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück: Nach Abschluss des De-Identifikationsprozesses enthält die Antwort "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"
  }
}

Nachdem Sie überprüft haben, ob die De-Identifikation erfolgreich war, können Sie die Annotationsspeicher im Dataset auflisten und sehen, dass der Vorgang den neuen Annotationsspeicher erstellt hat:

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"

Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück:

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

Verwenden Sie den Wert ANNOTATION_STORE_ID, um die Annotationseinträge im Annotationsspeicher aufzulisten:

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"

Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück:

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

Sie sehen, dass zwei Annotationseinträge erstellt wurden: ein Textannotationseintrag und ein Bildannotationseintrag.

Verwenden Sie zuerst den Wert TEXT_ANNOTATION_RECORD_ID, um den Eintrag für die Textannotation anzuzeigen:

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"

Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück.

Das Objekt textAnnotation enthält Informationen zu vertraulichem Text, der durch die De-Identifikation entfernt wurde. Im Feld details sehen Sie, dass beim Vorgang eine Liste von DICOM-Tags bereitgestellt wurde. Wenn ein DICOM-Tag gefunden wurde, wurden seine Informationen im findings-Objekt bereitgestellt, das den InfoType, den Wert des InfoType und die Orte, an denen die Werte gefunden wurden, anzeigt.

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

Verwenden Sie als Nächstes den IMAGE_ANNOTATION_RECORD_ID-Wert, um den Bildannotationseintrag anzuzeigen:

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"

Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück.

Innerhalb des imageAnnotation-Objekts gibt es mehrere vertices, die jeweils vier X/Y-Punkte enthalten, an denen die Orte gebunden sind, an denen der De-Identifikationsvorgang vertrauliche Bilddaten und eingebrannten Text ermittelt hat.

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

Im folgenden Beispiel wird der gcloud beta healthcare datasets deidentify-Befehl verwendet. Das storeQuote-Feld ist standardmäßig auf true gesetzt und kann bei Verwendung der Google Cloud CLI nicht geändert werden.

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

In der Befehlszeile wird die Vorgangs-ID und nach Abschluss des Vorgangs done angezeigt:

Request issued for: [SOURCE_DATASET_ID]
Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID] to complete...done.

Führen Sie den Befehl gcloud beta healthcare operations describe aus und geben Sie OPERATION_ID aus der Antwort an, um weitere Details zum Vorgang aufzurufen:

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

Die Antwort enthält 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

Führen Sie folgenden Befehl aus, um die Annotationsspeicher im Dataset aufzulisten und zu sehen, ob der Vorgang den neuen Annotationsspeicher erstellt hat:

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

Wenn die Anfrage erfolgreich ist, gibt der Server den neuen Anmerkungsspeicher zurück:

ID                    LOCATION
ANNOTATION_STORE_ID                      LOCATION

Mit der gcloud CLI können Sie keine Details zu einer individuellen Annotation aufrufen. Folgen Sie der Anleitung im curl-Beispiel, um Details zu einer einzelnen Annotation aufzurufen.