DICOM-Daten mit DicomTagConfig de-identifizieren

Auf dieser Seite wird erläutert, wie Sie die v1beta1-DicomTagConfig-Konfiguration in der Cloud Healthcare API verwenden, um sensible Daten in DICOM-Instanzen auf den folgenden Ebenen zu de-identifizieren:

Auf dieser Seite wird auch erläutert, wie Sie Filter anwenden, wenn Sie Daten auf DICOM-Speicherebene de-identifizieren.

Sie können DICOM-De-Identifikationsvorgänge entweder mit dem Legacy-v1-DicomConfig-Objekt oder dem v1beta1-DicomTagConfig-Objekt konfigurieren. Wir empfehlen ausdrücklich die Verwendung von DicomTagConfig.

Wenn Sie bereits DicomConfig für Ihre De-Identifikationsvorgänge verwenden, empfehlen wir Ihnen, zu DicomTagConfig zu migrieren. Eine Zusammenfassung der neuen Funktionen finden Sie unter Neue Konfigurationsoptionen in DicomTagConfig. Eine Anleitung zur Migration finden Sie unter Anfragen und Antworten zur Verwendung von DicomTagConfig migrieren.

Neue Konfigurationsoptionen in DicomTagConfig

Text mit kontextbezogener De-Identifikation de-identifizieren

Sie können das Objekt DicomTagConfig.Options.CleanDescriptorsOption so konfigurieren, dass die kontextbezogene De-Identifikation von unstrukturiertem Metadatentext aktiviert wird. Diese Option basiert auf der Option „Clean Descriptors“. Wenn Sie DicomTagConfig.Options.CleanDescriptorsOption angeben, wird während der Prüfung ein zusätzlicher infoType verwendet, der sich auf die Abrechnungskosten auswirken kann.

Mit der Option DicomTagConfig.Options.CleanDescriptorsOption wird jeder unstrukturierte Metadatentext umgewandelt, der mit entfernten Tags übereinstimmt. Dadurch wird die Qualität der De-Identifikation verbessert. Angenommen, Sie de-identifizieren ein Röntgenbild und der Röntgenpatient hat einen Nachnamen, der ebenfalls ein Substantiv ist, z. B. Wall. Wenn Metadaten in der Instanz, z. B. der Text in StudyDescription, das Wort Wall enthalten, wird der Text umgewandelt.

Mit der Option CleanDescriptorsOption werden kontextbezogene Wortgruppen entfernt, die mit Tags übereinstimmen, die im DICOM-Basisprofil zum Entfernen gekennzeichnet sind, sofern die Tags mit einem der folgenden Aktionscodes übereinstimmen:

  • D
  • Z
  • X
  • U

Übereinstimmende kontextbezogene Wortgruppen werden durch das Token [CTX] ersetzt.

Sie können konfigurieren, welche Tags entfernt werden sollen, indem Sie Folgendes angeben:

  • Eine Aufzählung im Objekt ProfileType. Es muss kein enum angegeben werden.
  • Mit dem Filter CleanTextTag können Sie nach bestimmten Tags filtern.

Die im DICOM-Basisprofil verwendeten Tags können jedoch nicht geändert werden.

Eingebrannten Text mit kontextbezogener De-Identifikation entfernen

Sie können die Aufzählung TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS angeben, um die kontextbezogene De-Identifikation von eingebrannten Text in einem Bild zu aktivieren. Diese Option basiert auf der Option „Clean Descriptors“. Wenn Sie die Aufzählung TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS angeben, wird während der Prüfung ein zusätzlicher infoType verwendet, der sich auf die Abrechnungskosten auswirken kann.

Sie können die Aufzählung TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS auf folgende Arten angeben:

Mit der Option TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS wird eingebrannter Text entfernt, der mit allen im DICOM-Basisprofil zum Entfernen gekennzeichneten Tags übereinstimmt, sofern die Tags mit einem der folgenden Aktionscodes übereinstimmen:

  • D
  • Z
  • X
  • U

Für die kontextbezogene De-Identifikation von eingebrannten Text müssen Sie sie lediglich mithilfe einer Aufzählung im Objekt ProfileType aktivieren oder deaktivieren. Es muss kein enum angegeben werden.

Zusätzliche infoTypes bei der De-Identifikation von Bildern

Sie können mit Informationstypen (infoTypes) angeben, nach welchen Daten bei der De-Identifikation von Tags gesucht werden soll. Ein infoType ist ein Typ sensibler Daten wie Patientenname, E-Mail-Adresse, Telefonnummer, Sozialversicherungsnummer oder Kreditkartennummer.

Sie können die folgenden Felder im Objekt DicomTagConfig.Options.ImageConfig konfigurieren, um zu bestimmen, welche infoTypes bei der De-Identifikation von DICOM-Bildern verwendet werden sollen:

Diese Felder werden nur wirksam, wenn DicomTagConfig.Options.ImageConfig.TextRedactionMode auf einen der folgenden Werte festgelegt ist:

Anfragen und Antworten zur Verwendung von DicomTagConfig migrieren

Sie können die DICOM-De-Identifikation mit DicomTagConfig konfigurieren, der in der Cloud Healthcare API v1beta1 verfügbar ist und eine Alternative zur Verwendung des Legacy-DicomConfig darstellt. Wenn Sie eine Anfrage senden, können Sie nicht sowohl DicomConfig als auch DicomTagConfig angeben.

In den folgenden Abschnitten werden Konfigurationen in DicomConfig und ihre Migration zu DicomTagConfig beschrieben.

TagFilterProfile bis ProfileType

Ersetzen Sie das Objekt DicomConfig TagFilterProfile durch das Objekt DicomTagConfig ProfileType. Dieselben vier Profile in TagFilterProfileType sind in ProfileType verfügbar.

Das folgende Beispiel zeigt, wie Sie eine Anfrage von TagFilterProfile zu ProfileType migrieren:

DicomConfigDicomTagConfig
"config": {
  "dicom": {
    "filterProfile": enum(TagFilterProfile)
  }
}
"config": {
  "dicomTagConfig": {
    "profileType": enum(ProfileType)
  }
}

keepList und removeList

Die Felder DicomConfig keepList und removeList sind in DicomTagConfig nicht mehr verfügbar. Wenn Sie anstelle eines Profils keepList und removeList verwendet haben, um Tags anzugeben, die beibehalten oder entfernt werden sollen, müssen Sie zum neuen Action-Objekt migrieren, in dem Sie das Tag-Verhalten festlegen. Das Action-Objekt bietet zusätzliche Optionen zum Transformieren von Tags.

Das folgende Beispiel zeigt, wie Sie eine Anfrage von keepList zu Action.keepTag migrieren. Die Anfrage gibt an, dass der Wert des Tags PatientID während des De-Identifikationsvorgangs beibehalten wird.

DicomConfigDicomTagConfig
"config": {
  "dicom": {
    "keepList": {
      "tags": [
        "PatientID"
      ]
    }
  }
}
"config": {
  "dicomTagConfig": {
    "actions": [
      {
        "queries": [
          "PatientID"
        ],
        "keepTag": {}
      }
    ]
  }
}

Keep-Listen, Löschlisten und Profile kombinieren

Im DicomConfig-Objekt können Sie anhand von Keep-Listen, Entfernungslisten und Profilen festlegen, ob Daten beibehalten oder entfernt werden sollen. Diese Optionen schließen sich gegenseitig aus.

Wenn Sie das Objekt DicomTagConfig verwenden, können Sie diese Optionen kombinieren. Dazu geben Sie an, welche Tags in einem Action-Objekt beibehalten und entfernt werden sollen, und geben gleichzeitig ein Profil in ProfileType an.

Die im Objekt Action konfigurierten Optionen überschreiben die im Profil ProfileType konfigurierten Optionen. Die Optionen im Action-Objekt werden in der Reihenfolge angewendet, in der sie in der Anfrage angegeben sind.

skipIdRedaction bis Objects.primaryIds

Ersetzen Sie das Feld skipIdRedaction im Objekt DicomConfig durch das Feld primaryIds im Objekt DicomTagConfig. Das Feld primaryIds im Objekt Options enthält ein Objekt PrimaryIdsOption, in dem Sie eine der folgenden Enums angeben:

  • PRIMARY_IDS_OPTION_UNSPECIFIED: Standardverhalten, wenn für PrimaryIdsOption kein Wert angegeben wird Die Standardeinstellung ist die in ProfileType angegebene Option.
  • KEEP: Lassen Sie die primären IDs unverändert.
  • REGEN: Generieren Sie die primären IDs neu.

Das folgende Beispiel zeigt, wie Sie eine Anfrage von skipIdRedaction zu Options.primaryIds migrieren. Die Anfrage gibt an, dass die Werte der primären IDs während des De-Identifikationsvorgangs beibehalten werden:

DicomConfigDicomTagConfig
"config": {
  "dicom": {
    "skipIdRedaction": true
  }
}
"config": {
  "dicomTagConfig": {
    "options": {
      "primaryIds": "KEEP"
    }
  }
}

DeidentifyConfig.ImageConfig bis DicomTagConfig.Options.ImageConfig

Ersetzen Sie das Objekt DeidentifyConfig.ImageConfig durch das Objekt DicomTagConfig.Options.ImageConfig. Die Optionen im ImageConfig-Objekt sind in beiden Versionen identisch.

Das folgende Beispiel zeigt, wie Sie eine Anfrage von einem ImageConfig in DeidentifyConfig.image zu einem ImageConfig in DeidentifyConfig.DicomTagConfig.Options.cleanImage migrieren. Die Anfrage gibt an, dass der gesamte Text in einem Bild während des De-Identifikationsvorgangs entfernt werden soll:

DeidentifyConfig.imageDeidentifyConfig.DicomTagConfig.Options.cleanImage
"config": {
  "image": {
    "textRedactionMode": "REDACT_ALL_TEXT"
  }
}
"config": {
  "dicomTagConfig": {
    "options": {
      "cleanImage": {
        "textRedactionMode": "REDACT_ALL_TEXT"
      }
    }
  }
}

Übersicht über die De-Identifikation

De-Identifikation auf Dataset-Ebene

Rufen Sie die Methode datasets.deidentify auf, um DICOM-Daten auf Dataset-Ebene zu de-identifizieren. Die Methode datasets.deidentify besteht aus folgenden Komponenten:

  • Das Quell-Dataset: Ein Dataset, das DICOM-Speicher mit einer oder mehreren Instanzen enthält, die sensible Daten enthalten. Wenn Sie die Methode datasets.deidentify aufrufen, werden alle Instanzen in allen DICOM-Speichern im Dataset de-identifiziert.
  • Ziel-Dataset: Die De-Identifikation hat keinen Einfluss auf das ursprüngliche Dataset oder seine Daten. Stattdessen werden de-identifizierte Kopien der ursprünglichen Daten in ein neues Dataset geschrieben, das als Ziel-Dataset bezeichnet wird.
  • Zu de-identifizierende Elemente: Konfigurationsparameter, die angeben, wie die DICOM-Daten im Dataset verarbeitet werden sollen. Sie können die DICOM-De-Identifikation konfigurieren, um DICOM-Instanzmetadaten (mithilfe von Tag-Keywords) oder eingebrannten Text in DICOM-Bildern zu de-identifizieren. Dazu geben Sie diese Parameter in einem DeidentifyConfig-Objekt an.

In den meisten Beispielen in diesem Leitfaden wird gezeigt, wie DICOM-Daten auf Dataset-Ebene de-identifiziert werden.

DICOM-De-Identifikation auf Speicherebene

Wenn Sie DICOM-Daten auf DICOM-Speicherebene de-identifizieren, können Sie besser steuern, welche Daten de-identifiziert werden. Wenn Sie beispielsweise ein Dataset mit mehreren DICOM-Speichern haben, können Sie die De-Identifikation jedes DICOM-Speichers entsprechend dem jeweiligen Datentyp aufheben.

Rufen Sie die Methode dicomStores.deidentify auf, um DICOM-Daten in einem DICOM-Speicher zu de-identifizieren. Die Methode dicomStores.deidentify besteht aus folgenden Komponenten:

  • Der DICOM-Speicher für Quellen: Ein DICOM-Speicher mit einer oder mehreren Instanzen, die vertrauliche Daten enthalten. Wenn Sie den Vorgang dicomStores.deidentify aufrufen, werden alle Instanzen im DICOM-Speicher de-identifiziert.
  • Der DICOM-Zielspeicher: Die De-Identifikation wirkt sich nicht auf den ursprünglichen DICOM-Speicher oder seine Daten aus. Stattdessen werden de-identifizierte Kopien der Originaldaten in den DICOM-Zielspeicher geschrieben. Der DICOM-Zielspeicher muss bereits vorhanden sein.
  • Zu de-identifizierende Elemente: Konfigurationsparameter, die angeben, wie der DICOM-Speicher verarbeitet werden soll. Sie können die DICOM-De-Identifikation konfigurieren, um DICOM-Instanzmetadaten (mit Tag-Keywords) oder eingebrannten Text in DICOM-Bildern zu de-identifizieren. Geben Sie dazu diese Parameter in einem DeidentifyConfig-Objekt an.

Ein Beispiel zum De-Identifizieren von DICOM-Daten auf DICOM-Speicherebene finden Sie unter Daten auf DICOM-Speicherebene de-identifizieren.

Filter

Wenn Sie DICOM-Daten auf DICOM-Speicherebene de-identifizieren, können Sie eine Teilmenge der Daten im DICOM-Speicher de-identifizieren, indem Sie eine Filterdatei konfigurieren und die Datei in der dicomStores.deidentify-Anfrage angeben. Ein Beispiel finden Sie unter Teilmenge eines DICOM-Speichers de-identifizieren.

Beispiele – Übersicht

In den Beispielen in diesem Leitfaden wird eine einzelne DICOM-Instanz mit dem Namen dicom_deid_instance_sample.dcm verwendet. Sie können jedoch auch mehrere Instanzen de-identifizieren. Laden Sie die Datei auf Ihren lokalen Computer herunter und folgen Sie der Anleitung unter DICOM-Daten speichern, um die DICOM-Beispielinstanz in den Beispielen auf dieser Seite zu verwenden.

Die folgenden Abschnitte zeigen, wie das Bild in der DICOM-Instanz aussieht und die Metadaten in der Instanz.

Beispielbild

Einige Beispiele auf dieser Seite enthalten eine Ausgabe des de-identifizierten Bilds. Bei jedem Beispiel wird das folgende Originalbild als Eingabe verwendet. Sie können das Ausgabebild jedes De-Identifikationsvorgangs mit diesem Originalbild vergleichen, um die Auswirkungen des Vorgangs zu sehen:

xray_original

Beispielmetadaten

Die meisten Beispiele auf dieser Seite enthalten eine Ausgabe der geänderten Metadaten in der DICOM-Instanz. Jedes Beispiel verwendet die folgenden Originalmetadaten als Eingabe. Sie können die Ausgabemetadaten jedes De-Identifikationsvorgangs mit diesen ursprünglichen Metadaten vergleichen, um die Auswirkungen der De-Identifikation zu sehen:

[
  {
    "00020002": {
      "vr": "UI",
      "Value": [
        "1.2.840.10008.5.1.4.1.1.7"
      ]
    },
    "00020003": {
      "vr": "UI",
      "Value": [
        "1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695"
      ]
    },
    "00020010": {
      "vr": "UI",
      "Value": [
        "1.2.840.10008.1.2.4.50"
      ]
    },
    "00020012": {
      "vr": "UI",
      "Value": [
        "1.2.276.0.7230010.3.0.3.6.1"
      ]
    },
    "00020013": {
      "vr": "SH",
      "Value": [
        "OFFIS_DCMTK_361"
      ]
    },
    "00080005": {
      "vr": "CS",
      "Value": [
        "ISO_IR 100"
      ]
    },
    "00080016": {
      "vr": "UI",
      "Value": [
        "1.2.840.10008.5.1.4.1.1.7"
      ]
    },
    "00080018": {
      "vr": "UI",
      "Value": [
        "1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695"
      ]
    },
    "00080020": {
      "vr": "DA",
      "Value": [
        "20110909"
      ]
    },
    "00080030": {
      "vr": "TM",
      "Value": [
        "110032"
      ]
    },
    "00080050": {
      "vr": "SH"
    },
    "00080064": {
      "vr": "CS",
      "Value": [
        "WSD"
      ]
    },
    "00080070": {
      "vr": "LO",
      "Value": [
        "Manufacturer"
      ]
    },
    "00080090": {
      "vr": "PN",
      "Value": [
        {
          "Alphabetic": "John Doe"
        }
      ]
    },
    "00081090": {
      "vr": "LO",
      "Value": [
        "ABC1"
      ]
    },
    "00100010": {
      "vr": "PN",
      "Value": [
        {
          "Alphabetic": "Ann Johnson"
        }
      ]
    },
    "00100020": {
      "vr": "LO",
      "Value": [
        "S1214223-1"
      ]
    },
    "00100030": {
      "vr": "DA",
      "Value": [
        "19880812"
      ]
    },
    "00100040": {
      "vr": "CS",
      "Value": [
        "F"
      ]
    },
    "0020000D": {
      "vr": "UI",
      "Value": [
        "2.25.70541616638819138568043293671559322355"
      ]
    },
    "0020000E": {
      "vr": "UI",
      "Value": [
        "1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694"
      ]
    },
    "00200010": {
      "vr": "SH"
    },
    "00200011": {
      "vr": "IS"
    },
    "00200013": {
      "vr": "IS"
    },
    "00200020": {
      "vr": "CS"
    },
    "00280002": {
      "vr": "US",
      "Value": [
        3
      ]
    },
    "00280004": {
      "vr": "CS",
      "Value": [
        "YBR_FULL_422"
      ]
    },
    "00280006": {
      "vr": "US",
      "Value": [
        0
      ]
    },
    "00280010": {
      "vr": "US",
      "Value": [
        1024
      ]
    },
    "00280011": {
      "vr": "US",
      "Value": [
        1024
      ]
    },
    "00280100": {
      "vr": "US",
      "Value": [
        8
      ]
    },
    "00280101": {
      "vr": "US",
      "Value": [
        8
      ]
    },
    "00280102": {
      "vr": "US",
      "Value": [
        7
      ]
    },
    "00280103": {
      "vr": "US",
      "Value": [
        0
      ]
    },
    "00282110": {
      "vr": "CS",
      "Value": [
        "01"
      ]
    },
    "00282114": {
      "vr": "CS",
      "Value": [
        "ISO_10918_1"
      ]
    }
  }
]

Eingebrannten Text aus Bildern entfernen

Sie können eingebrannten Text in DICOM-Bildern mit dem Objekt ImageConfig in einem Action-Objekt de-identifizieren. In ImageConfig können Sie angeben, welche infoTypes ein- oder ausgeschlossen werden sollen und wie Text mithilfe des Objekts TextRedactionMode entfernt werden soll.

Gesamten Text entfernen

In den folgenden Beispielen wird gezeigt, wie Sie eine DICOM-Instanz de-identifizieren, indem Sie TextRedactionMode auf REDACT_ALL_TEXT setzen. Mit dieser Konfiguration wird der gesamte eingebrannte Text im Bild entfernt.

REST

  1. De-identifizieren Sie das Dataset.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden

    JSON-Text anfordern:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "cleanImage": {
              "textRedactionMode": "REDACT_ALL_TEXT"
            }
          }
        }
      }
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "cleanImage": {
              "textRedactionMode": "REDACT_ALL_TEXT"
            }
          }
        }
      }
    }
    EOF

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "cleanImage": {
              "textRedactionMode": "REDACT_ALL_TEXT"
            }
          }
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

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

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • OPERATION_ID ist die ID, die vom lang andauernden Vorgang zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der Vorgang mit langer Ausführungszeit abgeschlossen.

  3. Nach erfolgreicher De-Identifikation können Sie die Metadaten für die de-identifizierte Instanz abrufen, um zu sehen, wie sie geändert wurde. Die de-identifizierte Instanz hat eine neue Studien-UID, Serien-UID und Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand Content

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

    Die folgende Tabelle zeigt, wie sich die UID der Studie, die Serien-UID und die Instanz-UID geändert haben:
      Metadaten der ursprünglichen Instanz De-identifizierte Instanzmetadaten
    Studien-UID (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    Serien-UID (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    Instanz-UID (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe enthält die neuen Metadaten. Sie können die neuen Metadaten mit den ursprünglichen Metadaten vergleichen, um die Auswirkungen der Transformation zu sehen.

Nach der De-Identifikation des Bildes mit REDACT_ALL_TEXT sieht das Bild so aus. Sie sehen, dass der gesamte eingebrannte Text unten im Bild entfernt wurde.

Abbildung 1. Die DICOM-Instanz nach der De-Identifikation mit REDACT_ALL_TEXT.

Sensiblen Text mit der Option „Saubere Beschreibungen“ entfernen

In den folgenden Beispielen wird gezeigt, wie Sie eine DICOM-Instanz de-identifizieren, indem Sie TextRedactionMode auf REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS setzen.

Weitere Informationen zur Option CleanDescriptorsOption finden Sie unter Text mit kontextbezogener De-Identifikation de-identifizieren.

REST

  1. De-identifizieren Sie das Dataset.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden

    JSON-Text anfordern:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "cleanImage": {
              "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS"
            }
          }
        }
      }
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "cleanImage": {
              "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS"
            }
          }
        }
      }
    }
    EOF

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "cleanImage": {
              "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS"
            }
          }
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

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

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • OPERATION_ID ist die ID, die vom lang andauernden Vorgang zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der Vorgang mit langer Ausführungszeit abgeschlossen.

  3. Nach erfolgreicher De-Identifikation können Sie die Metadaten für die de-identifizierte Instanz abrufen, um zu sehen, wie sie geändert wurde. Die de-identifizierte Instanz hat eine neue Studien-UID, Serien-UID und Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand Content

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

    Die folgende Tabelle zeigt, wie sich die UID der Studie, die Serien-UID und die Instanz-UID geändert haben:
      Metadaten der ursprünglichen Instanz De-identifizierte Instanzmetadaten
    Studien-UID (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    Serien-UID (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    Instanz-UID (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe enthält die neuen Metadaten. Sie können die neuen Metadaten mit den ursprünglichen Metadaten vergleichen, um die Auswirkungen der Transformation zu sehen.

Nach der De-Identifikation des Bildes mit REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS sieht das Bild so aus. Beachten Sie, dass nicht der gesamte eingebrannte Text unten im Bild entfernt wurde. Der Text Female wird weiterhin angezeigt, da PatientSex (0010,0040) kein Standard-DICOM-infoType ist.

Abbildung 2. Die DICOM-Instanz nach der De-Identifikation mit REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS.

DICOM-Tags de-identifizieren

Sie können DICOM-Instanzen anhand von Tag-Keywords in den DICOM-Metadaten de-identifizieren.

Die folgenden Tag-Filtermethoden sind im Objekt DicomTagConfig Action verfügbar:

Sie geben jede Action-Option als Liste von DICOM-Tag-IDs, Namen oder Wertdarstellungen (VRs) an. Anschließend führt die Option eine Aktion für die Tags in der Liste aus. Sie können in einer Liste von Tags nicht mehr als eine Action-Option angeben.

Jedes Action-Objekt stellt eine queries[]-Liste bereit, in der Sie eine Liste von Tags angeben. Folgende Tag-Formate werden unterstützt:

  • Tag-IDs, z. B. "00100010"
  • Tag-Namen, z. B. "PatientName"
  • Wertdarstellungen (VRs), wie "PN"

Die Anzahl der Tags, die in der queries[]-Liste angegeben werden können, ist nicht begrenzt. Für jedes Tag kann jedoch nur eine einzige Action-Option ausgeführt werden. Wenn Sie verschiedene Tags angeben möchten, für die unterschiedliche Action-Optionen ausgeführt werden, müssen Sie mehrere Action-Objekte angeben.

Tags beibehalten

Wenn Sie verhindern möchten, dass die Werte von Tags entfernt werden, geben Sie die Tags in einem KeepTag-Objekt im DicomTagConfig-Objekt an.

Wenn Sie bei Verwendung eines KeepTag-Objekts ein gültiges DICOM-Objekt erstellen möchten, geben Sie die Werte MINIMAL_KEEP_LIST_PROFILE oder DEIDENTIFY_TAG_CONTENTS im Objekt ProfileType an.

Wenn Sie eines dieser Profile angeben, werden die folgenden Tags automatisch beibehalten, sodass die de-identifizierte DICOM-Instanz gültig ist:

  • StudyInstanceUID
  • SeriesInstanceUID
  • SOPInstanceUID
  • TransferSyntaxUID
  • MediaStorageSOPInstanceUID
  • MediaStorageSOPClassUID
  • PixelData
  • Rows
  • Columns
  • SamplesPerPixel
  • BitsAllocated
  • BitsStored
  • Highbit
  • PhotometricInterpretation
  • PixelRepresentation
  • NumberOfFrames
  • PlanarConfiguration
  • PixelAspectRatio
  • SmallestImagePixelValue
  • LargestImagePixelValue
  • RedPaletteColorLookupTableDescriptor
  • GreenPaletteColorLookupTableDescriptor
  • BluePaletteColorLookupTableDescriptor
  • RedPaletteColorLookupTableData
  • GreenPaletteColorLookupTableData
  • BluePaletteColorLookupTableData
  • ICCProfile
  • ColorSpace
  • WindowCenter
  • WindowWidth
  • VOILUTFunction

Die Werte einiger der vorhergehenden Tags werden neu generiert. Dies bedeutet, dass die Werte durch eine deterministische Transformation durch einen anderen Wert ersetzt werden. Weitere Informationen finden Sie unter Option zum Beibehalten von UIDs im DICOM-Standard.

Die Werte von StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID und MediaStorageSOPInstanceUID werden als „primäre IDs“ bezeichnet. Geben Sie in PrimaryIdsOption einen Wert an, um festzulegen, wie primäre IDs transformiert werden sollen.

Die folgenden Beispiele zeigen, wie das Objekt KeepTag verwendet wird, um die Werte bestimmter Tags während der De-Identifikation unverändert zu lassen. Das Tag PatientName wird der Liste queries[] hinzugefügt, sodass der Wert PatientName bei der De-Identifikation nicht entfernt wird.

Da PrimaryIdsOption im Beispiel nicht angegeben ist, wird standardmäßig im Feld primaryIds der Wert PRIMARY_IDS_OPTION_UNSPECIFIED verwendet, also der Wert aus ProfileType. Da ProfileType ebenfalls nicht angegeben ist, ist das Feld profileType standardmäßig auf PROFILE_TYPE_UNSPECIFIED gesetzt. Dadurch werden Tags auf Grundlage des Basisprofils der Attributvertraulichkeit (DICOM-Standardversion 2018) entfernt.

REST

  1. De-identifizieren Sie das Dataset.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden

    JSON-Text anfordern:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "keepTag": {}
            }
          ]
        }
      }
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "keepTag": {}
            }
          ]
        }
      }
    }
    EOF

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "keepTag": {}
            }
          ]
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

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

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • OPERATION_ID ist die ID, die vom lang andauernden Vorgang zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der Vorgang mit langer Ausführungszeit abgeschlossen.

  3. Nach erfolgreicher De-Identifikation können Sie die Metadaten für die de-identifizierte Instanz abrufen, um zu sehen, wie sie geändert wurde. Die de-identifizierte Instanz hat eine neue Studien-UID, Serien-UID und Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand Content

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

    Die folgende Tabelle zeigt, wie sich die UID der Studie, die Serien-UID und die Instanz-UID geändert haben:
      Metadaten der ursprünglichen Instanz De-identifizierte Instanzmetadaten
    Studien-UID (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    Serien-UID (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    Instanz-UID (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe enthält die neuen Metadaten. Sie können die neuen Metadaten mit den ursprünglichen Metadaten vergleichen, um die Auswirkungen der Transformation zu sehen.

Tags entfernen

Die folgenden Beispiele zeigen, wie das Objekt RemoveTag verwendet wird, um die Werte bestimmter Tags während der De-Identifikation zu entfernen. Ein entferntes Tag wird durch einen leeren Wert ersetzt.

In den folgenden Beispielen wird das Tag PatientName der Liste queries[] hinzugefügt, sodass sein Wert während der De-Identifikation durch einen leeren Wert ersetzt wird.

REST

  1. De-identifizieren Sie das Dataset.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden

    JSON-Text anfordern:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
                 "PatientName"
              ],
              "removeTag": {}
            }
          ]
        }
      }
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
                 "PatientName"
              ],
              "removeTag": {}
            }
          ]
        }
      }
    }
    EOF

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
                 "PatientName"
              ],
              "removeTag": {}
            }
          ]
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

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

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • OPERATION_ID ist die ID, die vom lang andauernden Vorgang zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der Vorgang mit langer Ausführungszeit abgeschlossen.

  3. Nach erfolgreicher De-Identifikation können Sie die Metadaten für die de-identifizierte Instanz abrufen, um zu sehen, wie sie geändert wurde. Die de-identifizierte Instanz hat eine neue Studien-UID, Serien-UID und Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand Content

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

    Die folgende Tabelle zeigt, wie sich die UID der Studie, die Serien-UID und die Instanz-UID geändert haben:
      Metadaten der ursprünglichen Instanz De-identifizierte Instanzmetadaten
    Studien-UID (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    Serien-UID (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    Instanz-UID (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe enthält die neuen Metadaten. Sie können die neuen Metadaten mit den ursprünglichen Metadaten vergleichen, um die Auswirkungen der Transformation zu sehen.

Tags löschen

Die folgenden Beispiele zeigen, wie Sie mit dem Objekt DeleteTag während der De-Identifikation bestimmte Tags löschen.

REST

  1. De-identifizieren Sie das Dataset.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden

    JSON-Text anfordern:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "deleteTag": {}
            }
          ]
        }
      }
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "deleteTag": {}
            }
          ]
        }
      }
    }
    EOF

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "deleteTag": {}
            }
          ]
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

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

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • OPERATION_ID ist die ID, die vom lang andauernden Vorgang zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der Vorgang mit langer Ausführungszeit abgeschlossen.

  3. Nach erfolgreicher De-Identifikation können Sie die Metadaten für die de-identifizierte Instanz abrufen, um zu sehen, wie sie geändert wurde. Die de-identifizierte Instanz hat eine neue Studien-UID, Serien-UID und Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand Content

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

    Die folgende Tabelle zeigt, wie sich die UID der Studie, die Serien-UID und die Instanz-UID geändert haben:
      Metadaten der ursprünglichen Instanz De-identifizierte Instanzmetadaten
    Studien-UID (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    Serien-UID (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    Instanz-UID (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe enthält die neuen Metadaten. Sie können die neuen Metadaten mit den ursprünglichen Metadaten vergleichen, um die Auswirkungen der Transformation zu sehen.

Tags auf einen Platzhalterwert zurücksetzen

Die folgenden Beispiele zeigen, wie das Objekt ResetTag verwendet wird, um den Wert von Tags während der De-Identifikation auf den String PLACEHOLDER festzulegen.

REST

  1. De-identifizieren Sie das Dataset.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden

    JSON-Text anfordern:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "resetTag": {}
            }
          ]
        }
      }
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "resetTag": {}
            }
          ]
        }
      }
    }
    EOF

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "resetTag": {}
            }
          ]
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

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

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • OPERATION_ID ist die ID, die vom lang andauernden Vorgang zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der Vorgang mit langer Ausführungszeit abgeschlossen.

  3. Nach erfolgreicher De-Identifikation können Sie die Metadaten für die de-identifizierte Instanz abrufen, um zu sehen, wie sie geändert wurde. Die de-identifizierte Instanz hat eine neue Studien-UID, Serien-UID und Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand Content

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

    Die folgende Tabelle zeigt, wie sich die UID der Studie, die Serien-UID und die Instanz-UID geändert haben:
      Metadaten der ursprünglichen Instanz De-identifizierte Instanzmetadaten
    Studien-UID (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    Serien-UID (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    Instanz-UID (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe enthält die neuen Metadaten. Sie können die neuen Metadaten mit den ursprünglichen Metadaten vergleichen, um die Auswirkungen der Transformation zu sehen.

    Beachten Sie insbesondere, dass der Wert des Tags PatientName auf PLACEHOLDER gesetzt ist:

    Original metadataMetadaten nach der Ausführung von ResetTag
    "00100010": {
      "vr": "PN",
      "Value": [
        {
          "Alphabetic": "Ann Johnson"
        }
      ]
    }
    "00100010": {
      "vr": "PN",
      "Value": [
        {
          "Alphabetic": "PLACEHOLDER"
        }
      ]
    }

Sensiblen Text in Tags prüfen und umwandeln

In den folgenden Beispielen wird gezeigt, wie Sie mit dem Objekt CleanTextTag Tags prüfen und die Werte der Tags gemäß der Konfiguration im Objekt TextConfig transformieren.

In diesen Beispielen werden die folgenden Optionen im Actions-Objekt festgelegt:

  • Ein CleanTextTag-Objekt.
  • Eine queries[]-Liste mit dem DICOM-Tag PatientName.

Die folgenden Optionen werden im TextConfig-Objekt festgelegt:

  • Ein InfoTypeTransformation-Objekt, das Text umwandelt, der mit einem bestimmten infoType übereinstimmt.
  • Ein ReplaceWithInfoTypeConfig-Objekt, das übereinstimmende Texte durch den Namen des infoType ersetzt.
  • Eine infoTypes[]-Liste mit dem infoType PERSON_NAME.

Wenn diese Konfigurationen festgelegt sind, prüft der De-Identifikationsvorgang das Tag PatientName, gleicht das Tag mit dem infoType PERSON_NAME ab und ersetzt den Wert des Tags durch den infoType PERSON_NAME. Das Tag PatientName hat die Wertdarstellung (VR) PN, eine der unterstützten VRs im CleanTextTag-Objekt.

REST

  1. De-identifizieren Sie das Dataset.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden

    JSON-Text anfordern:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
                "PatientName"
              ],
              "cleanTextTag": {}
            }
          ]
        },
        "text": {
          "additionalTransformations": [
            {
              "infoTypes": [
                "PERSON_NAME"
              ],
              "replaceWithInfoTypeConfig": {}
            }
          ]
        }
      }
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
                "PatientName"
              ],
              "cleanTextTag": {}
            }
          ]
        },
        "text": {
          "additionalTransformations": [
            {
              "infoTypes": [
                "PERSON_NAME"
              ],
              "replaceWithInfoTypeConfig": {}
            }
          ]
        }
      }
    }
    EOF

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
                "PatientName"
              ],
              "cleanTextTag": {}
            }
          ]
        },
        "text": {
          "additionalTransformations": [
            {
              "infoTypes": [
                "PERSON_NAME"
              ],
              "replaceWithInfoTypeConfig": {}
            }
          ]
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

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

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • OPERATION_ID ist die ID, die vom lang andauernden Vorgang zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der Vorgang mit langer Ausführungszeit abgeschlossen.

  3. Nach erfolgreicher De-Identifikation können Sie die Metadaten für die de-identifizierte Instanz abrufen, um zu sehen, wie sie geändert wurde. Die de-identifizierte Instanz hat eine neue Studien-UID, Serien-UID und Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand Content

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

    Die folgende Tabelle zeigt, wie sich die UID der Studie, die Serien-UID und die Instanz-UID geändert haben:
      Metadaten der ursprünglichen Instanz De-identifizierte Instanzmetadaten
    Studien-UID (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    Serien-UID (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    Instanz-UID (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe enthält die neuen Metadaten. Sie können die neuen Metadaten mit den ursprünglichen Metadaten vergleichen, um die Auswirkungen der Transformation zu sehen.

    Beachten Sie insbesondere, dass der Wert des Tags PatientName auf [PERSON_NAME] gesetzt ist:

    Original metadataMetadaten nach der Ausführung von CleanTextTag
    "00100010": {
      "vr": "PN",
      "Value": [
        {
          "Alphabetic": "Ann Johnson"
        }
      ]
    }
    "00100010": {
      "vr": "PN",
      "Value": [
        {
          "Alphabetic": "[PERSON_NAME]"
        }
      ]
    }

UID durch generierte UID ersetzen

Die folgenden Beispiele zeigen, wie Sie mit dem Objekt RegenUidTag eine UID durch eine neu generierte UID ersetzen. Die einzige VR, die vom RegenUidTag-Objekt unterstützt wird, ist UI.

Standardmäßig wird die UID bei jedem Tag in den Beispielmetadaten mit einer VR von UI während der De-Identifikation generiert. Im Beispiel werden die folgenden Optionen festgelegt, um zu zeigen, wie eine UID für ein bestimmtes Tag generiert wird:

  • ProfileType ist auf die Aufzählung KEEP_ALL gesetzt, was verhindert, dass DICOM-Metadaten de-identifiziert werden.

  • PrimaryIdsOption ist auf die Aufzählung KEEP festgelegt, sodass die primären IDs (StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID und MediaStorageSOPInstanceUID) unverändert bleiben.

Wenn diese Optionen festgelegt sind, wird keine der primären ID-UIDs in den Beispieldaten durch neu generierte Werte ersetzt. Wenn Sie jedoch SOPInstanceUID zum Array Action.queries[] hinzufügen, können Sie speziell für das SOPInstanceUID-Tag eine neue UID generieren.

REST

  1. De-identifizieren Sie das Dataset.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden

    JSON-Text anfordern:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "primaryIds": "KEEP"
          },
          "actions": [
            {
              "queries": [
                "00080018"
              ],
              "regenUidTag": {}
            }
          ],
          "profileType": "KEEP_ALL_PROFILE"
        }
      }
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "primaryIds": "KEEP"
          },
          "actions": [
            {
              "queries": [
                "00080018"
              ],
              "regenUidTag": {}
            }
          ],
          "profileType": "KEEP_ALL_PROFILE"
        }
      }
    }
    EOF

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "primaryIds": "KEEP"
          },
          "actions": [
            {
              "queries": [
                "00080018"
              ],
              "regenUidTag": {}
            }
          ],
          "profileType": "KEEP_ALL_PROFILE"
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

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

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • OPERATION_ID ist die ID, die vom lang andauernden Vorgang zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der Vorgang mit langer Ausführungszeit abgeschlossen.

  3. Nach erfolgreicher De-Identifikation können Sie die Metadaten für die de-identifizierte Instanz abrufen, um zu sehen, wie sie geändert wurde. Die de-identifizierte Instanz hat eine neue Instanz-UID, weil Sie das Tag SOPInstanceUID im Array Action.queries[] angegeben haben. Sie müssen also zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand Content

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

    Die folgende Tabelle zeigt, wie sich die UID der Instanz geändert hat:

      Metadaten der ursprünglichen Instanz De-identifizierte Instanzmetadaten
    Instanz-UID (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Rufen Sie mit dem neuen Wert die Metadaten für die Instanz ab.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/2.25.70541616638819138568043293671559322355/series/1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/2.25.70541616638819138568043293671559322355/series/1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe enthält die neuen Metadaten. Sie können die neuen Metadaten mit den ursprünglichen Metadaten vergleichen, um die Auswirkungen der Transformation zu sehen.

    Beachten Sie, dass von den primären IDs nur die SOPInstanceUID eine neu generierte UID hat.

Tags in einem verschachtelten Sequence rekursiv de-identifizieren

In den folgenden Beispielen wird gezeigt, wie Sie mit dem RecurseTag-Objekt rekursiv verschachtelte DICOM-Tags in einem Sequence de-identifizieren. Das RecurseTag-Objekt unterstützt nur SQ VR, das die VR für eine Sequence ist.

Informationen zu SQ VR finden Sie unter 7.5 Datensätze verschachteln.

Die für diese Seite bereitgestellte DICOM-Beispielinstanz enthält keine DICOM-Tags mit SQ VR. Sie können eine DICOM-Instanz mit fiktiven Daten, die SQ VR enthalten, erstellen und speichern. Dazu führen Sie die folgenden Schritte aus, die auf der Anleitung unter DICOM-Instanzen aus JSON-Metadaten und JPEG-Dateien erstellen basieren. Die DICOM-Instanz, die Sie in den folgenden Schritten erstellen, verwendet fiktive Daten und soll nur das Verhalten von RecurseTag veranschaulichen.

  1. Speichern Sie die folgenden DICOM-Metadaten in einer JSON-Datei mit dem Namen instance.json. Die Metadaten enthalten ein PhysiciansReadingStudyIdentificationSequence-Tag (00081062). Das Tag hat ein SQ VR und enthält zwei verschachtelte PersonIdentificationCodeSequence-Tags (00401101). Die verschachtelten Tags haben ebenfalls ein SQ-VR und enthalten jeweils die folgenden verschachtelten Tags:

    • CodeValue (00080100)
    • CodingSchemeDesignator (00080102)
    [{
      "00020010": {
        "vr": "UI",
        "Value": [
          "1.2.840.10008.1.2.4.50"
        ]
      },
      "00080005": {
        "vr": "CS",
        "Value": [
          "ISO_IR 192"
        ]
      },
      "00080016": {
        "vr": "UI",
        "Value": [
          "1111111"
        ]
      },
      "00080018": {
        "vr": "UI",
        "Value": [
          "2222222"
        ]
      },
      "0020000D": {
        "vr": "UI",
        "Value": [
          "3333333"
        ]
      },
      "0020000E": {
        "vr": "UI",
        "Value": [
          "4444444"
        ]
      },
      "00280002": {
        "vr": "US",
        "Value": [
          3
        ]
      },
      "00280004": {
        "vr": "CS",
        "Value": [
          "YBR_FULL_422"
        ]
      },
      "00280006": {
        "vr": "US",
        "Value": [
          0
        ]
      },
      "00280008": {
        "vr": "IS",
        "Value": [
          1
        ]
      },
      "00280010": {
        "vr": "US",
        "Value": [
          1024
        ]
      },
      "00280011": {
        "vr": "US",
        "Value": [
          1024
        ]
      },
      "00280100": {
        "vr": "US",
        "Value": [
          8
        ]
      },
      "00280101": {
        "vr": "US",
        "Value": [
          8
        ]
      },
      "00280102": {
        "vr": "US",
        "Value": [
          7
        ]
      },
      "00280103": {
        "vr": "US",
        "Value": [
          0
        ]
      },
      "7FE00010": {
        "vr": "OB",
        "BulkDataURI": "jpeg-image"
      },
      "00081062": {
        "vr": "SQ",
        "Value": [
          {
            "00401101": {
              "vr": "SQ",
              "Value": [
                {
                  "00080100": {
                    "vr": "SH",
                    "Value": [
                      "CodeValue1"
                    ]
                  },
                  "00080102": {
                    "vr": "SH",
                    "Value": [
                      "CodingSchemeDesignator1"
                    ]
                  }
                }
              ]
            }
          },
          {
            "00401101": {
              "vr": "SQ",
              "Value": [
                {
                  "00080100": {
                    "vr": "SH",
                    "Value": [
                      "CodeValue2"
                    ]
                  },
                  "00080102": {
                    "vr": "SH",
                    "Value": [
                      "CodingSchemeDesignator2"
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    }]
    
  2. Laden Sie die Datei google.jpg auf Ihren lokalen Computer herunter. Die DICOMweb-API der Cloud Healthcare API akzeptiert jedes JPEG-Bild, das mit JSON-Metadaten gekoppelt ist, solange die Metadaten gültig sind.

  3. Führen Sie die folgenden Befehle aus, um ein Öffnungsbild (für die JSON-Metadaten), ein mittleres Bild (für das JPEG-Bild) und ein schließendes Bild im Bild zu erstellen:

    echo -ne "--DICOMwebBoundary\r\nContent-Type: application/dicom+json\r\n\r\n" > opening.file
    echo -ne "\r\n--DICOMwebBoundary\r\nContent-Location: jpeg-image\r\nContent-Type: image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.50\r\n\r\n" > middle.file
    echo -ne "\r\n--DICOMwebBoundary--" > closing.file
    
  4. Umbrechen Sie das google.jpg-Bild innerhalb der mittleren und schließenden Begrenzungen. Die Ausgabedatei, die Sie an die Cloud Healthcare API senden, heißt multipart-request.file:

    cat opening.file instance.json middle.file google.jpg closing.file > multipart-request.file
    
  5. Speichern Sie die Datei multipart-request.file:

    REST

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DICOM_STORE_ID: die ID des DICOM-Speichers im Quell-Dataset

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: multipart/related; type=\"application/dicom+json\"; boundary=DICOMwebBoundary" \
    --data-binary @multipart-request.file \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID/dicomWeb/studies"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -InFile multipart-request.file `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID/dicomWeb/studies" | Select-Object -Expand Content

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Führen Sie die folgenden Schritte aus, um die gespeicherte DICOM-Instanz zu de-identifizieren.

REST

  1. De-identifizieren Sie das Dataset.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden

    JSON-Text anfordern:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PhysiciansReadingStudyIdentificationSequence"
              ],
              "recurseTag": {}
            }
          ]
        }
      }
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PhysiciansReadingStudyIdentificationSequence"
              ],
              "recurseTag": {}
            }
          ]
        }
      }
    }
    EOF

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PhysiciansReadingStudyIdentificationSequence"
              ],
              "recurseTag": {}
            }
          ]
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

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

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • OPERATION_ID ist die ID, die vom lang andauernden Vorgang zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der Vorgang mit langer Ausführungszeit abgeschlossen.

  3. Nach erfolgreicher De-Identifikation können Sie die Metadaten für die de-identifizierte Instanz abrufen, um zu sehen, wie sie geändert wurde. Die de-identifizierte Instanz hat eine neue Studien-UID, Serien-UID und Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand Content

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

    Die folgende Tabelle zeigt, wie sich die UID der Studie, die Serien-UID und die Instanz-UID geändert haben:

    Metadaten der ursprünglichen Instanz De-identifizierte Instanzmetadaten
    Studien-UID (0020000D) 3333333 1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314
    Serien-UID (0020000E) 4444444 1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347
    Instanz-UID (00080018) 2222222 1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633
  4. Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314/series/1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347/instances/1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633/metadata"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314/series/1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347/instances/1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633/metadata" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe enthält die neuen Metadaten. Sie können die neuen Metadaten mit den ursprünglichen Metadaten in Schritt 1 vergleichen, um die Auswirkungen der Transformation zu sehen.

    Beachten Sie insbesondere, dass die Werte der verschachtelten Tags CodeValue und CodingSchemaDesignator auf PLACEHOLDER festgelegt sind:

    Original metadataMetadaten nach der Ausführung von RecurseTag
    {
      "00081062": {
        "vr": "SQ",
        "Value": [
          {
            "00401101": {
              "vr": "SQ",
              "Value": [
                {
                  "00080100": {
                    "vr": "SH",
                    "Value": [
                      "CodeValue1"
                    ]
                  },
                  "00080102": {
                    "vr": "SH",
                    "Value": [
                      "CodingSchemeDesignator1"
                    ]
                  }
                }
              ]
            }
          },
          {
            "00401101": {
              "vr": "SQ",
              "Value": [
                {
                  "00080100": {
                    "vr": "SH",
                    "Value": [
                      "CodeValue2"
                    ]
                  },
                  "00080102": {
                    "vr": "SH",
                    "Value": [
                      "CodingSchemeDesignator2"
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    }
    {
      "00081062": {
        "vr": "SQ",
        "Value": [
          {
            "00401101": {
              "vr": "SQ",
              "Value": [
                {
                  "00080100": {
                    "vr": "SH",
                    "Value": [
                      "PLACEHOLDER"
                    ]
                  },
                  "00080102": {
                    "vr": "SH",
                    "Value": [
                      "PLACEHOLDER"
                    ]
                  }
                }
              ]
            }
          },
          {
            "00401101": {
              "vr": "SQ",
              "Value": [
                {
                  "00080100": {
                    "vr": "SH",
                    "Value": [
                      "PLACEHOLDER"
                    ]
                  },
                  "00080102": {
                    "vr": "SH",
                    "Value": [
                      "PLACEHOLDER"
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    }

Daten auf DICOM-Speicherebene de-identifizieren

Die vorherigen Beispiele zeigen, wie DICOM-Daten auf Dataset-Ebene de-identifiziert werden. In diesem Abschnitt wird beschrieben, wie Sie Daten auf der DICOM-Speicherebene de-identifizieren.

Nehmen Sie die folgenden Änderungen vor, um eine Dataset-De-Identifizierungsanfrage in eine DICOM-Store-De-Identifizierungsanfrage zu ändern:

  • Ersetzen Sie destinationDataset im Anfragetext durch destinationStore.
  • Fügen Sie dicomStores/DESTINATION_DICOM_STORE_ID am Ende des Werts in destinationStore hinzu, wenn Sie das Ziel angeben.
  • Fügen Sie dicomStores/SOURCE_DICOM_STORE_ID hinzu, wenn Sie den Speicherort der Quelldaten angeben.

Die folgenden Beispiele zeigen eine De-Identifikationsanfrage auf Dataset-Ebene und wie Sie die Anfrage für eine De-Identifikation auf DICOM-Speicherebene ändern:

De-Identifikation auf Dataset-Ebene

"destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID"
...
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

DICOM-De-Identifikation auf Speicherebene

"destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID"
...
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"

In den folgenden Beispielen wird gezeigt, wie Sie eine DICOM-Instanz in einem DICOM-Speicher de-identifizieren und die de-identifizierten Daten in einen neuen DICOM-Speicher schreiben. Bevor die Beispiele ausgeführt werden, muss die ID des DICOM-Zielspeichers bereits vorhanden sein.

REST

  1. De-identifizieren Sie das Dataset.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden. Muss vor dem De-Identifikationsvorgang bereits vorhanden sein.
    • DESTINATION_DICOM_STORE_ID: der DICOM-Speicher im Ziel-Dataset. Muss vor dem De-Identifikationsvorgang bereits vorhanden sein.

    JSON-Text anfordern:

    {
      "destinationStore": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "keepTag": {}
            }
          ]
        }
      }
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    cat > request.json << 'EOF'
    {
      "destinationStore": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "keepTag": {}
            }
          ]
        }
      }
    }
    EOF

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID:deidentify"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "destinationStore": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "keepTag": {}
            }
          ]
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

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

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID:deidentify" | Select-Object -Expand Content
    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • OPERATION_ID ist die ID, die vom lang andauernden Vorgang zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der Vorgang mit langer Ausführungszeit abgeschlossen.

  3. Nach erfolgreicher De-Identifikation können Sie die Metadaten für die de-identifizierte Instanz abrufen, um zu sehen, wie sie geändert wurde. Die de-identifizierte Instanz hat eine neue Studien-UID, Serien-UID und Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand Content

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

    Die folgende Tabelle zeigt, wie sich die UID der Studie, die Serien-UID und die Instanz-UID geändert haben:
      Metadaten der ursprünglichen Instanz De-identifizierte Instanzmetadaten
    Studien-UID (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    Serien-UID (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    Instanz-UID (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe enthält die neuen Metadaten. Sie können die neuen Metadaten mit den ursprünglichen Metadaten vergleichen, um die Auswirkungen der Transformation zu sehen.

Teilmenge eines DICOM-Speichers de-identifizieren

Um eine Teilmenge der Daten in einem DICOM-Speicher zu de-identifizieren geben Sie einen Filter an.

Der Filter hat die Form einer Filterdatei, die Sie als Wert für das Feld resourcePathsGcsUri im Objekt DicomFilterConfig angeben. Die Filterdatei muss in einem Cloud Storage-Bucket vorhanden sein. Sie können keine Filterdatei angeben, die auf Ihrem lokalen Computer oder einer anderen Quelle vorhanden ist. Der Speicherort der Datei muss das Format gs://BUCKET/PATH/TO/FILE haben.

Filterdatei erstellen

Eine Filterdatei definiert, welche DICOM-Dateien de-identifiziert werden sollen. Sie können Dateien auf den folgenden Ebenen filtern:

  • Auf der Studienebene
  • Für die Reihe
  • Auf Instanzebene

Die Filterdatei besteht aus einer Zeile pro Studie, Serie oder Instanz, die Sie de-identifizieren möchten. Jede Zeile hat das Format /studies/STUDY_UID[/series/SERIES_UID[/instances/INSTANCE_UID]]. Am Ende jeder Zeile befindet sich ein Zeilenvorschubzeichen: entweder \n oder \r\n.

Wenn eine Studie, Serie oder Instanz nicht in der Filterdatei angegeben ist, die Sie beim Aufrufen des De-Identifikationsvorgangs übergeben haben, wird diese Studie, Serie oder Instanz nicht de-identifiziert und ist nicht im DICOM-Zielspeicher vorhanden.

Nur der Teil /studies/STUDY_UID des Pfads ist erforderlich. Dies bedeutet, dass Sie eine Studie durch Angabe von /studies/STUDY_UID de-identifizieren können, oder Sie können eine Reihe durch Angabe von /studies/STUDY_UID/series/SERIES_UID de-identifizieren.

Betrachten Sie die folgende Filterdatei. Die Filterdatei führt dazu, dass eine Studie, zwei Serien und drei einzelne Instanzen de-identifiziert werden:

/studies/1.123.456.789
/studies/1.666.333.111/series/123.456\n
/studies/1.666.333.111/series/567.890\n
/studies/1.888.999.222/series/123.456/instances/111\n
/studies/1.888.999.222/series/123.456/instances/222\n
/studies/1.888.999.222/series/123.456/instances/333\n

Filterdatei mit BigQuery erstellen

Normalerweise erstellen Sie eine Filterdatei, indem Sie zuerst die Metadaten aus einem DICOM-Speicher in BigQuery exportieren. Sie können BigQuery verwenden, um die Studien-, Series- und Instanz-UIDs der DICOM-Daten in Ihrem DICOM-Speicher anzuzeigen. Danach haben Sie folgende Möglichkeiten:

  1. Fragen Sie die Studien-, Reihen- und Instanz-UIDs ab, die Sie interessieren. Nachdem Sie beispielsweise die Metadaten in BigQuery exportiert haben, können Sie die folgende Abfrage ausführen, um die Studien-, Serien- und Instanz-UIDs in einem Format zu verketten, das mit den Anforderungen der Filterdatei kompatibel ist:

    SELECT CONCAT
      ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID)
    FROM
      [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
    
  2. Wenn die Abfrage eine große Ergebnismenge zurückgibt, können Sie eine neue Tabelle materialisieren, indem Sie die Abfrageergebnisse in einer Zieltabelle in BigQuery speichern.

  3. Nachdem Sie die Abfrageergebnisse in der Zieltabelle gespeichert haben, können Sie den Inhalt der Zieltabelle in einer Datei speichern und in Cloud Storage exportieren. Die erforderlichen Schritte finden Sie unter Tabellendaten exportieren. Die exportierte Datei ist Ihre Filterdatei. Sie verwenden den Speicherort der Filterdatei in Cloud Storage, wenn Sie den Filter im Exportvorgang angeben.

Filterdatei manuell erstellen

Sie können eine Filterdatei mit benutzerdefinierten Inhalten erstellen und diese in einen Cloud Storage-Bucket hochladen. Sie verwenden den Speicherort der Filterdatei in Cloud Storage, wenn Sie den Filter im De-Identifizierungsvorgang angeben. Im folgenden Beispiel wird gezeigt, wie Sie mit dem Befehl gsutil cp eine Filterdatei in einen Cloud Storage-Bucket hochladen:

gsutil cp PATH/TO/FILTER_FILE gs://BUCKET/DIRECTORY

Beispiel:

gsutil cp /home/user/Desktop/filters.txt gs://my-bucket/my-directory

Filter nutzen

Nachdem Sie die Filterdatei konfiguriert haben, können Sie sie als Wert an das Feld resourcePathsGcsUri im Objekt filterConfig übergeben.

Das folgende Beispiel erweitert die De-Identifikation von Daten auf DICOM-Speicherebene. Es wird jedoch eine Filterdatei in Cloud Storage bereitgestellt, um zu bestimmen, welche DICOM-Ressourcen de-identifiziert werden.

REST

  1. De-identifizieren Sie das Dataset.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • LOCATION ist der Standort des Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DICOM_STORE_ID: die ID des DICOM-Speichers, der die zu de-identifizierenden Daten enthält
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset
    • BUCKET/PATH/TO/FILE ist der Speicherort der Filterdatei in einem Cloud Storage-Bucket

    JSON-Text anfordern:

    {
      "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID",
      "config": {
        "dicom": {
          "filterProfile": "DEIDENTIFY_TAG_CONTENTS"
        },
        "image": {
          "textRedactionMode": "REDACT_ALL_TEXT"
        }
      },
      "filterConfig": {
        "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE"
      }
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    cat > request.json << 'EOF'
    {
      "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID",
      "config": {
        "dicom": {
          "filterProfile": "DEIDENTIFY_TAG_CONTENTS"
        },
        "image": {
          "textRedactionMode": "REDACT_ALL_TEXT"
        }
      },
      "filterConfig": {
        "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE"
      }
    }
    EOF

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID",
      "config": {
        "dicom": {
          "filterProfile": "DEIDENTIFY_TAG_CONTENTS"
        },
        "image": {
          "textRedactionMode": "REDACT_ALL_TEXT"
        }
      },
      "filterConfig": {
        "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

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

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify" | Select-Object -Expand Content
    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen sehr lange dauern kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Datasets mit den Daten, die de-identifiziert werden sollen.
    • OPERATION_ID ist die ID, die vom lang andauernden Vorgang zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der Vorgang mit langer Ausführungszeit abgeschlossen.

  3. Nach erfolgreicher De-Identifikation können Sie die Metadaten für die de-identifizierte Instanz abrufen, um zu sehen, wie sie geändert wurde. Die de-identifizierte Instanz hat eine neue Studien-UID, Serien-UID und Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand Content

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

    Die folgende Tabelle zeigt, wie sich die UID der Studie, die Serien-UID und die Instanz-UID geändert haben:
      Metadaten der ursprünglichen Instanz De-identifizierte Instanzmetadaten
    Studien-UID (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    Serien-UID (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    Instanz-UID (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.

    Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • DESTINATION_DATASET_ID: ID des Ziel-Datasets, in das de-identifizierte Daten geschrieben werden
    • SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
    • DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Dies entspricht der ID des DICOM-Speichers im Quell-Dataset.

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Führen Sie folgenden Befehl aus:

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe enthält die neuen Metadaten. Sie können die neuen Metadaten mit den ursprünglichen Metadaten vergleichen, um die Auswirkungen der Transformation zu sehen.

Fehler bei DICOM-De-Identifikationsvorgängen beheben

Wenn Fehler während einer DICOM-De-Identifikation auftreten, werden die Fehler in Cloud Logging protokolliert. Weitere Informationen finden Sie unter Fehlerlogs in Cloud Logging ansehen.

Wenn der gesamte Vorgang einen Fehler zurückgibt, finden Sie weitere Informationen unter Fehlerbehebung bei Vorgängen mit langer Ausführungszeit.