Auf dieser Seite wird erläutert, wie Sie mit der Konfiguration „v1 DicomConfig
“ vertrauliche Daten in DICOM-Instanzen auf den folgenden Ebenen de-identifizieren:
- Auf Dataset-Ebene mit
datasets.deidentify
- Auf DICOM-Speicherebene mit
dicomStores.deidentify
Auf dieser Seite wird auch erläutert, wie Sie Filter anwenden, wenn Sie Daten auf DICOM-Speicherebene de-identifizieren.
Übersicht über die De-Identifikation
De-Identifikation auf Dataset-Ebene
Rufen Sie den Vorgang datasets.deidentify
auf, um DICOM-Daten auf Dataset-Ebene zu de-identifizieren. Der API-Aufruf zur De-Identifikation 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 den Vorgang
deidentify
aufrufen, werden alle Instanzen in allen DICOM-Speichern im Dataset de-identifiziert. - Das Ziel-Dataset: Die De-Identifikation wirkt sich nicht auf das ursprüngliche Dataset oder seine Daten aus. 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 das Dataset verarbeitet werden soll. Sie können die DICOM-De-Identifikation so konfigurieren, dass DICOM-Instanzmetadaten (mithilfe von Tag-Keywords) oder eingebrannter Text in DICOM-Images de-identifiziert werden. Geben Sie dazu diese Parameter in einem
DeidentifyConfig
-Objekt an und führen Sie die folgenden Schritte aus:- Feld
config
des Anfragetexts festlegen - Speichern Sie das Dataset im JSON-Format in Cloud Storage und geben Sie den Speicherort der Datei im Bucket mithilfe des Felds
gcsConfigUri
im Request Body an.
- Feld
Die meisten Beispiele in diesem Leitfaden zeigen, 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. Der API-Aufruf zur De-Identifikation 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
deidentify
aufrufen, werden alle Instanzen im DICOM-Speicher de-identifiziert. - Der Ziel-DICOM-Speicher: 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.
- Welche Elemente de-identifiziert werden sollen: Konfigurationsparameter, die angeben, wie der DICOM-Speicher verarbeitet werden soll. Sie können die DICOM-De-Identifikation so konfigurieren, dass DICOM-Instanzmetadaten (mithilfe von Tag-Keywords) oder eingebrannter Text in DICOM-Bildern de-identifiziert werden. Geben Sie dazu diese Parameter in einem
DeidentifyConfig
-Objekt an und übergeben Sie es auf eine der folgenden Arten:- Feld
config
des Anfragetexts festlegen - Speichern Sie das Dataset im JSON-Format in Cloud Storage und geben Sie den Speicherort der Datei im Bucket mithilfe des Felds
gcsConfigUri
im Request Body an.
- Feld
Ein Beispiel zum De-Identifizieren von DICOM-Daten auf DICOM-Speicherebene finden Sie unter De-Identifikation von Daten auf DICOM-Speicherebene.
Filter
Sie können eine Teilmenge von Daten in einem 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
Die Beispiele in diesem Leitfaden verwenden eine einzelne DICOM-Instanz. Sie können jedoch auch mehrere Instanzen deaktivieren.
In jedem der folgenden Abschnitte finden Sie Beispiele zur De-Identifikation von DICOM-Daten mithilfe verschiedener Methoden. Für jedes Beispiel wird eine Ausgabe des de-identifizierten Images bereitgestellt. In jedem Beispiel wird das folgende Originalbild als Eingabe verwendet:
Sie können das Ausgabebild jedes De-Identifizierungsvorgangs mit diesem Originalbild vergleichen, um die Auswirkungen des Vorgangs zu sehen.
De-Identifikation von DICOM-Tags
Sie können DICOM-Instanzen anhand von Tag-Keywords in den DICOM-Metadaten de-identifizieren. Die folgenden Tag-Filtermethoden stehen im Objekt DicomConfig
verfügbar:
keepList
: Liste der zu speichernden Tags. Entfernen Sie alle anderen Tags.removeList
: Liste der Tags, die entfernt werden sollen. Alle anderen Tags beibehalten.filterProfile
: Ein Tag-Filterprofil, mit dem bestimmt wird, welche Tags beibehalten oder entfernt werden.
Für jedes Beispiel in diesem Abschnitt wird die Ausgabe der geänderten Metadaten der DICOM-Instanz bereitgestellt. Im Folgenden finden Sie die ursprünglichen Metadaten der Instanz, die als Eingabe für jedes Beispiel verwendet werden:
[
{
"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"]}
}
]
De-Identifikation mithilfe von Keeplist-Tags
Wenn Sie ein Keeplist-Tag im Objekt DicomConfig
angeben, werden standardmäßig die folgenden Tags hinzugefügt:
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
Der deidentify
-Vorgang entfernt die vorherigen Tags nicht. Die Werte für einige Tags werden jedoch neu generiert, d. h., die Werte werden durch eine deterministische Transformation durch einen anderen Wert ersetzt.
Weitere Informationen finden Sie unter Option „UIDs beibehalten“ im DICOM-Standard. Wenn Sie die ursprünglichen Werte der vorherigen Tags beibehalten möchten, verwenden Sie die Option SkipIdRedaction
.
Wenn keine Keeplist-Tags angegeben sind, werden keine DICOM-Tags im Dataset entfernt.
In den folgenden Beispielen wird gezeigt, wie Sie ein Dataset mit DICOM-Speichern und DICOM-Daten de-identifizieren, während einige Tags unverändert bleiben.
Nachdem Sie das Image an die Cloud Healthcare API gesendet haben, wird es wie folgt angezeigt. Während die Metadaten, die in den oberen Ecken des Bildes angezeigt werden, entfernt wurden, bleiben die eingebrannten geschützten Gesundheitsinformationen (PHI) unten im Bild erhalten. Informationen zum Entfernen des eingebrannten Texts finden Sie unter Eingebrannten Text aus Bildern entfernen.
REST
De-identifizieren Sie das Dataset.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- SOURCE_DATASET_ID: Die ID des Datasets, das die zu de-identifizierenden Daten enthält
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
JSON-Text der Anfrage:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } }
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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } } 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: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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } } '@ | 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:deidentify" | Select-Object -Expand Content- Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud-Projekts
- DATASET_ID: die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen. - 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, eine Serien-UID und eine Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
In der folgenden Tabelle sehen Sie, wie sich die Studien-UID, 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
Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/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 diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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 ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
Go
Java
Node.js
Python
De-Identifikation mithilfe von Removelist-Tags
Sie können eine Entfernungsliste im Objekt DicomConfig
angeben. Beim deidentify
-Vorgang werden nur die in der Liste angegebenen Tags entfernt. Wenn keine Removelist-Tags angegeben sind, wird die De-Identifikation wie gewohnt fortgesetzt, aber es werden keine DICOM-Tags im Ziel-Dataset entfernt.
Wenn Sie eine Removelist angeben, wird standardmäßig das Tag OverlayData
hinzugefügt, da Overlay-Daten PHI enthalten können.
Die Tags, die standardmäßig zu einer Keeplist hinzugefügt werden, können nicht zu einer Removelist hinzugefügt werden.
In den folgenden Beispielen wird gezeigt, wie Sie ein Dataset mit DICOM-Speichern und DICOM-Daten de-identifizieren, indem Sie alle Tags aus der Entfernungsliste entfernen. Tags, die nicht in der Liste zum Entfernen enthalten sind, bleiben unverändert.
Nachdem Sie das Image an die Cloud Healthcare API gesendet haben, wird es wie folgt angezeigt. Von den in der Entfernungsliste angegebenen Tags wird nur PatientBirthDate
aus dem Bild entfernt, da es das einzige Tag aus der Entfernungsliste ist, das den Metadaten entspricht, die im Bild sichtbar sind.
Während das PatientBirthDate
in der oberen Ecke des Bildes gemäß der Konfiguration in der Entfernungsliste entfernt wurde, bleibt die eingebrannte PHI unten im Bild erhalten. Informationen zum Entfernen des eingebrannten Texts finden Sie unter Eingebrannten Text aus Bildern entfernen.
REST
De-identifizieren Sie das Dataset.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- SOURCE_DATASET_ID: Die ID des Datasets, das die zu de-identifizierenden Daten enthält
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
JSON-Text der Anfrage:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "removeList": { "tags": [ "PatientBirthName", "PatientBirthDate", "PatientAge", "PatientSize", "PatientWeight", "PatientAddress", "PatientMotherBirthName" ] } } } }
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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "removeList": { "tags": [ "PatientBirthName", "PatientBirthDate", "PatientAge", "PatientSize", "PatientWeight", "PatientAddress", "PatientMotherBirthName" ] } } } } 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: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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "removeList": { "tags": [ "PatientBirthName", "PatientBirthDate", "PatientAge", "PatientSize", "PatientWeight", "PatientAddress", "PatientMotherBirthName" ] } } } } '@ | 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:deidentify" | Select-Object -Expand Content- Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud-Projekts
- DATASET_ID: die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen. - 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, eine Serien-UID und eine Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
In der folgenden Tabelle sehen Sie, wie sich die Studien-UID, 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
Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/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 diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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 ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
De-Identifikation mithilfe eines Tag-Filterprofils
Anstatt anzugeben, welche Tags beibehalten oder entfernt werden sollen, können Sie ein TagFilterProfile
im Objekt DicomConfig
konfigurieren. Ein Tag-Filterprofil ist ein vordefiniertes Profil, das bestimmt, welche Tags beibehalten, entfernt oder transformiert werden. Informationen zu verfügbaren Profilen finden Sie in der Dokumentation zu TagFilterProfile
.
In den folgenden Beispielen wird gezeigt, wie ein Dataset mit DICOM-Speichern und DICOM-Daten mit dem Tag-Filterprofil ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE
de-identifiziert werden kann.
Dieses Tag-Filterprofil entfernt Tags auf der Grundlage des Basisprofils für Attribut-Vertraulichkeit des DICOM-Standards.
Die Cloud Healthcare API entspricht nicht vollständig dem Attribut "Vertraulichkeitsprofil". Beispielsweise überprüft die Cloud Healthcare API bei der Auswahl einer Aktion für ein Tag keine IOD-Einschränkungen (Informationsobjektdefinition).
Nachdem Sie das Bild mit dem Tag-FilterprofilATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE
an die Cloud Healthcare API gesendet haben, wird das Bild wie folgt angezeigt: Während die in den oberen Ecken des Bildes angezeigten Metadaten entfernt wurden, bleibt die eingebrannte PHI unten im Bild erhalten.
Informationen zum Entfernen des eingebrannten Texts finden Sie unter Eingebrannten Text aus Bildern entfernen.
REST
De-identifizieren Sie das Dataset.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- SOURCE_DATASET_ID: Die ID des Datasets, das die zu de-identifizierenden Daten enthält
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
JSON-Text der Anfrage:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_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/v1/projects/PROJECT_ID/locations/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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud-Projekts
- DATASET_ID: die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen. - 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, eine Serien-UID und eine Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
In der folgenden Tabelle sehen Sie, wie sich die Studien-UID, 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
Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/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 diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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 ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
De-Identifikation von Daten in der Google Cloud Console
Führen Sie die folgenden Schritte aus, um Daten in der Google Cloud Console zu de-identifizieren:
Rufen Sie in der Google Cloud Console die Seite „Datasets” auf.
Wählen Sie in der Liste Aktionen für das Dataset, das Sie de-identifizieren möchten, die Option De-identifizieren aus.
Die Seite Dataset de-identifizieren wird angezeigt.
Wählen Sie Ziel-Dataset festlegen aus und geben Sie einen Namen für das neue Dataset ein, in dem die de-identifizierten Daten gespeichert werden sollen.
Wählen Sie DICOM-Tag-De-Identifikation aus, um das Profil auszuwählen, für das Daten de-identifiziert werden. Daten können folgendermaßen de-identifiziert werden:
KEEP_ALL_PROFILE
: Alle DICOM-Meta-Tags beibehaltenDEIDENTIFY_TAG_CONTENTS
: Daten in Meta-Tags de-identifizierenATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE
: Entfernt Meta-Tags gemäß dem Basisprofil im DICOM-StandardMINIMAL_KEEP_LIST_PROFILE
: Nur die für ein gültiges DICOM-Objekt erforderlichen Meta-Tags werden beibehalten- Überspringen der ID-Entfernung: Generiert UID-Felder gemäß dem DICOM-Standard neu
Wählen Sie DICOM gebrannte Textentfernung aus, um zu konfigurieren, wie die Bildentfernung während der De-Identifikation durchgeführt wird. Sie können die Image-Entfernung wie folgt konfigurieren:
REDACT_NO_TEXT
: Entfernen Sie keinen Text in BildernREDACT_SENSITIVE_TEXT
: Nur sensiblen Text in Bildern entfernenREDACT_ALL_TEXT
: Gesamten Text in Bildern entfernen
Klicken Sie auf De-identifizieren, um die Daten im Dataset zu de-identifizieren.
Entfernen von eingebranntem Text aus Bildern
Die Cloud Healthcare API kann sensiblen eingebrannten Text aus Bildern entfernen. Sensible Daten wie PHI werden von der API erkannt, die sie dann mit einem undurchsichtigen Rechteck verdeckt. Die API gibt dieselben DICOM-Bilder in demselben Format zurück, aber alle Texte, die gemäß Ihren Kriterien vertrauliche Informationen enthalten, werden entfernt.
Sie können eingebrannten Text aus Bildern entfernen, indem Sie in einem ImageConfig
-Objekt die Option TextRedactionMode
angeben. Mögliche Werte finden Sie in der TextRedactionMode
-Dokumentation.
Entfernen des gesamten eingebrannten Texts aus einem Bild
In den folgenden Beispielen wird gezeigt, wie Sie den gesamten eingebrannten Text aus DICOM-Bildern in einem Dataset entfernen. Geben Sie dazu REDACT_ALL_TEXT
im Feld TextRedactionMode
an.
Nachdem das Bild mit der Option REDACT_ALL_TEXT
an die Cloud Healthcare API gesendet wurde, sieht es so aus: Während der eingebrannte Text unten im Bild entfernt wurde, bleiben die Metadaten in den oberen Ecken des Bildes erhalten. Informationen zum Entfernen der Metadaten finden Sie unter De-identify-DICOM-Tags.
REST
De-identifizieren Sie das Dataset.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- SOURCE_DATASET_ID: Die ID des Datasets, das die zu de-identifizierenden Daten enthält
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
JSON-Text der Anfrage:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "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/v1/projects/PROJECT_ID/locations/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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud-Projekts
- DATASET_ID: die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen. - 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, eine Serien-UID und eine Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
In der folgenden Tabelle sehen Sie, wie sich die Studien-UID, 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
Nur sensiblen eingebrannten Text aus einem Bild entfernen
Die folgenden Beispiele zeigen, wie Sie sensiblen eingebrannten Text aus DICOM-Bildern in einem Dataset entfernen. Geben Sie dazu REDACT_SENSITIVE_TEXT
im Feld TextRedactionMode
an.
Die in den Standard-DICOM-infoTypes angegebenen infoTypes werden entfernt, wenn REDACT_SENSITIVE_TEXT
angegeben ist. Es wird auch ein zusätzlicher benutzerdefinierter infoType für Patienten-IDs (Medical Record Numbers, MRN) angewendet und die Patientenkennung entfernt.
In der folgenden Abbildung sehen Sie eine nicht korrigierte Aufnahme eines Patienten:
Nachdem Sie das Bild mit der Option REDACT_SENSITIVE_TEXT
an die Cloud Healthcare API gesendet haben, wird es wie folgt angezeigt:
Folgendes ist aufgetreten:
- Das
PERSON_NAME
unten links im Bild wurde entfernt. - Das
DATE
unten links im Bild wurde entfernt.
Das Geschlecht des Patienten wurde nicht entfernt, da dies gemäß den Standard-DICOM-infos nicht als sensibler Text gilt.
REST
De-identifizieren Sie das Dataset.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- SOURCE_DATASET_ID: Die ID des Datasets, das die zu de-identifizierenden Daten enthält
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
JSON-Text der Anfrage:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_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/v1/projects/PROJECT_ID/locations/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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud-Projekts
- DATASET_ID: die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen. - 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, eine Serien-UID und eine Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
In der folgenden Tabelle sehen Sie, wie sich die Studien-UID, 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
Kombination aus der Tag-De-Identifikation und der eingebrannten Textentfernung
Sie können die De-Identifikation mithilfe von Tags mit der Entfernung von eingebranntem Text aus Bildern kombinieren, um DICOM-Instanzen detaillierter zu de-identifizieren. Kombinieren Sie beispielsweise REDACT_ALL_TEXT
im Feld TextRedactionMode
mit DEIDENTIFY_TAG_CONTENTS
in TagFilterProfile
, um Folgendes zu tun:
REDACT_ALL_TEXT
: Sämtlichen eingebrannten Text im Bild entfernen.DEIDENTIFY_TAG_CONTENTS
: Tag-Inhalt überprüfen und sensiblen Text umwandeln Weitere Informationen zum Verhalten vonDEIDENTIFY_TAG_CONTENTS
finden Sie unter Standardkonfiguration.
Nachdem Sie das Image mit den Optionen REDACT_ALL_TEXT
und DEIDENTIFY_TAG_CONTENTS
an die Cloud Healthcare API gesendet haben, wird das Bild wie folgt angezeigt. Beachten Sie die folgenden Änderungen:
- Die Namen in der oberen linken und rechten oberen Ecke des Bildes wurden mit einem
CryptoHashConfig
transformiert. - Die Datumsangaben in der oberen linken und rechten oberen Ecke des Bildes wurden mit einem
DateShiftConfig
transformiert. - Der eingebrannte Text am unteren Rand des Bildes wird entfernt.
REST
De-identifizieren Sie das Dataset.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- SOURCE_DATASET_ID: Die ID des Datasets, das die zu de-identifizierenden Daten enthält
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
JSON-Text der Anfrage:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "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/v1/projects/PROJECT_ID/locations/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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud-Projekts
- DATASET_ID: die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen. - 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, eine Serien-UID und eine Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/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 diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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 ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
infoTypes und primitive Transformationen mit DICOM-Tags verwenden
Die Cloud Healthcare API kann Informationstypen verwenden, um zu definieren, welche Daten bei der De-Identifikation von Tags durchsucht werden. Ein infoType ist ein Typ sensibler Daten wie Patientenname, E-Mail-Adresse, Telefonnummer, Sozialversicherungsnummer oder Kreditkartennummer.
Primitive Transformationen sind Regeln, die Sie zum Transformieren eines Eingabewerts verwenden. Sie können die De-Identifizierung von DICOM-Tags anpassen, indem Sie eine einfache Transformation auf den infoType jedes Tags anwenden. Sie können beispielsweise den Nachnamen eines Patienten de-identifizieren und durch eine Reihe von Sternchen ersetzen, indem Sie den infoType LAST_NAME
mit der primitiven einfachen Transformation CharacterMaskConfig
angeben.
Standard-DICOM-InfoTypen
Für die De-Identifikation von Metadaten werden standardmäßig die folgenden DICOM-infoTypes verwendet:
AGE
CREDIT_CARD_NUMBER
DATE
EMAIL_ADDRESS
IP_ADDRESS
LOCATION
MAC_ADDRESS
PASSPORT
PERSON_NAME
PHONE_NUMBER
SWIFT_CODE
US_DRIVERS_LICENSE_NUMBER
US_SOCIAL_SECURITY_NUMBER
US_VEHICLE_IDENTIFICATION_NUMBER
US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
Wenn Sie sensiblen Text in Bildern mit REDACT_SENSITIVE_TEXT
de-identifizieren, verwendet die Cloud Healthcare API die obigen infoTypes, aber ein zusätzlicher benutzerdefinierter infoType für Patienten-IDs, z. B. Krankenaktennummern, wird auch auf sensiblen Text im Bild angewendet.
Einfache Transformationsoptionen
Die einfachen Transformationsoptionen der Cloud Healthcare API umfassen:
RedactConfig
: Entfernt einen Wert.CharacterMaskConfig
: Maskiert einen String vollständig oder teilweise, indem er die Eingabezeichen durch ein festgelegtes festes Zeichen ersetzt.DateShiftConfig
: Verschiebt Datumsangaben um eine zufällige Anzahl von Tagen, wobei die Option der Einheitlichkeit in demselben Kontext besteht.CryptoHashConfig
: Verwendet SHA-256, um Eingabewerte durch eine base64-codierte Darstellung eines gehashten Ausgabestrings zu ersetzen, der mit einem bestimmten Datenverschlüsselungsschlüssel generiert wurde.ReplaceWithInfoTypeConfig
: Ersetzt einen Eingabewert durch den Namen seines infoType.
Konfigurationen in TextConfig
angeben
InfoTypes und einfache Transformationen werden in einem InfoTypeTransformation
angegeben, einem Objekt innerhalb von TextConfig
.
InfoTypes werden als kommagetrennte Werte in das Array infoTypes
eingegeben.
Die Angabe eines infoType ist optional. Wenn Sie nicht mindestens einen infoType angeben, gilt die Transformation für die Standard-DICOM-infoTypes, die in der Cloud Healthcare API gefunden werden.
Wenn Sie in InfoTypeTransformation
infoTypes angeben, müssen Sie mindestens eine einfache Transformation angeben.
Sie können InfoTypeTransformation
nur auf das Profil DEIDENTIFY_TAG_CONTENTS
anwenden.
Ein InfoTypeTransformation
kann nicht auf die anderen in TagFilterProfile
aufgeführten Profile angewendet werden.
In den folgenden Abschnitten wird gezeigt, wie Sie die in InfoTypeTransformation
verfügbaren einfachen Transformationen zusammen mit infoTypes verwenden, um die De-Identifizierung von DICOM-Tags anzupassen. In den Beispielen wird das in der Beispielübersicht bereitgestellte Beispielbild und die Beispielmetadaten unter DICOM-Tags de-identifizieren verwendet.
Standardkonfiguration
Wenn das DEIDENTIFY_TAG_CONTENTS
-Profil ohne Konfiguration im TextConfig
-Objekt festgelegt wird, ersetzt die Cloud Healthcare API standardmäßig sensible Daten mithilfe der standardmäßigen DICOM-infoTypes.
Es gibt jedoch ein anderes Verhalten für die infoTypes DATE
und PERSON_NAME
, wie unten gezeigt:
- Ein
DateShiftConfig
wird auf Text angewendet, der alsDATE
-infoType klassifiziert ist. Die MethodeDateShiftConfig
verwendet eine Datumsverschiebung mit einer Differenz von 100 Tagen. - Ein
CryptoHashConfig
wird auf Text angewendet, der alsPERSON_NAME
-infoType klassifiziert ist. DerCryptoHashConfig
führt eine Tokenisierung durch, indem er einen Ersatzwert mithilfe von kryptografischem Hash generiert.
Das folgende Verhalten gilt auch für:
- Alle Patientenarten, deren Wert größer oder gleich 90 ist und in 90 umgewandelt werden.
- Wenn eine Transformation aufgrund von DICOM-Formatbeschränkungen nicht angewendet werden kann, wird ein Platzhalterwert angegeben, der der Wertdarstellung (VR) des Tags entspricht.
- Alle anderen Werte, die einem der Standard-DICOM-infos in der Cloud Healthcare API entsprechen, werden durch ihren infoType ersetzt. Wenn das
PatientComments
-Tag beispielsweise den String "Ann Schmidt ging zu Anytown Krankenhäuser" enthält, wird "Anytown" durch den infoTypeLOCATION
ersetzt.
Die folgenden Beispiele zeigen die Ausgabe der Verwendung des Standardprofils DEIDENTIFY_TAG_CONTENTS
für ein Dataset mit DICOM-Speichern und DICOM-Daten. Sie können diese Standardausgabe mit den Ausgaben vergleichen, wenn Sie die verschiedenen einfachen Transformationen mit infoType-Kombinationen verwenden. In den Beispielen wird eine einzelne DICOM-Instanz verwendet. Sie können aber auch mehrere Instanzen de-identifizieren.
Nachdem Sie das Image mit dem Profil DEIDENTIFY_TAG_CONTENTS
an die Cloud Healthcare API gesendet haben, wird das Image wie folgt angezeigt.
Beachten Sie die folgenden Änderungen:
- Die Namen in der oberen linken und rechten oberen Ecke des Bildes wurden mit einem
CryptoHashConfig
transformiert. - Die Datumsangaben in der oberen linken und rechten oberen Ecke des Bildes wurden mit einem
DateShiftConfig
transformiert.
REST
De-identifizieren Sie das Dataset.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- SOURCE_DATASET_ID: Die ID des Datasets, das die zu de-identifizierenden Daten enthält
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
JSON-Text der Anfrage:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } }
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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } } 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: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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } } '@ | 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:deidentify" | Select-Object -Expand Content- Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud-Projekts
- DATASET_ID: die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen. - 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, eine Serien-UID und eine Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/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 diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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 ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
RedactConfig
Wenn Sie redactConfig
angeben, wird ein bestimmter Wert vollständig entfernt.
Die redactConfig
-Meldung hat keine Argumente. Allein dadurch, dass sie angegeben wird, wird ihre Transformation aktiviert.
Die folgenden Beispiele erweitern die Standardkonfiguration, enthalten jetzt jedoch den infoType PERSON_NAME
mit der Transformation redactConfig
. Wenn Sie diese Anfrage senden, werden alle Namen aus der DICOM-Instanz entfernt.
Nachdem Sie das Bild mit der Transformation redactConfig
an die Cloud Healthcare API gesendet haben, wird das Bild wie folgt angezeigt:
REST
De-identifizieren Sie das Dataset.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- SOURCE_DATASET_ID: Die ID des Datasets, das die zu de-identifizierenden Daten enthält
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
JSON-Text der Anfrage:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "redactConfig": {} } ] } } }
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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "redactConfig": {} } ] } } } 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: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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "redactConfig": {} } ] } } } '@ | 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:deidentify" | Select-Object -Expand Content- Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud-Projekts
- DATASET_ID: die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen. - 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, eine Serien-UID und eine Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/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 diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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 ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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 zeigt, dass die Werte in ReferringPhysicianName
(00080090
) und PatientName
(00100010
) entfernt wurden. Dies steht im Gegensatz zum Beispiel in der Standardkonfiguration, in der diese Werte mithilfe von kryptografischem Hashing umgewandelt wurden.
CharacterMaskConfig
Wenn Sie characterMaskConfig
angeben, werden Strings ersetzt, die den angegebenen infoTypes durch ein festgelegtes Zeichen entsprechen. Anstatt beispielsweise den Namen eines Patienten zu entfernen oder mithilfe von kryptografischem Hashing zu transformieren, können Sie den Namen durch eine Reihe von Sternchen (*
) ersetzen. Sie können das feste Zeichen als Wert im Feld maskingCharacter
angeben.
Die folgenden Beispiele erweitern die Standardkonfiguration, enthalten jetzt jedoch den infoType LAST_NAME
mit der Transformation characterMaskConfig
. Es wird kein festes Zeichen bereitgestellt, sodass die Maskierung standardmäßig auf Sternchen gesetzt wird.
In den Beispielen wird eine einzelne DICOM-Instanz verwendet. Sie können aber auch mehrere Instanzen de-identifizieren.
Nachdem Sie das Bild mit der Transformation characterMaskConfig
an die Cloud Healthcare API gesendet haben, wird das Bild wie folgt angezeigt:
REST
De-identifizieren Sie das Dataset.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- SOURCE_DATASET_ID: Die ID des Datasets, das die zu de-identifizierenden Daten enthält
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
JSON-Text der Anfrage:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "characterMaskConfig": { "maskingCharacter": "" } } ] } } }
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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "characterMaskConfig": { "maskingCharacter": "" } } ] } } } 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: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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "characterMaskConfig": { "maskingCharacter": "" } } ] } } } '@ | 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:deidentify" | Select-Object -Expand Content- Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud-Projekts
- DATASET_ID: die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen. - 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, eine Serien-UID und eine Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/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 diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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 ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
In der Ausgabe sehen Sie, dass die Nachnamen in ReferringPhysicianName
(00080090
) und PatientName
(00100010
) durch Sternchen ersetzt wurden. Dies unterscheidet sich vom Beispiel in der Standardkonfiguration, wobei diese Werte mit kryptografischem Hashing umgewandelt wurden.
DateShiftConfig
Die Cloud Healthcare API kann Daten umwandeln, indem sie innerhalb eines vordefinierten Bereichs verschoben werden. Verwenden Sie DateShiftConfig
mit einer der folgenden Optionen, um Datumstransformationen bei De-Identifikation-Durchläufen konsistent zu halten:
- (Verworfen): Ein AES-128/192/256-Bit-Base-64-codierter Standardschlüssel.
- (Empfohlen): Ein verpackter Cloud Key Management Service-Schlüssel (Cloud KMS). Ein Beispiel für die Verwendung von verpackten Cloud KMS-Schlüsseln finden Sie unter Sensiblen Text de-identifizieren und re-identifizieren.
Sie müssen dem Dienstkonto Cloud Healthcare-Dienst-Agent eine Rolle mit der Berechtigung cloudkms.cryptoKeyVersions.useToDecrypt
zuweisen, um den verpackten Cloud KMS-Schlüssel zu entschlüsseln. Wir empfehlen, die Rolle Cloud KMS CryptoKey-Entschlüsseler (roles/cloudkms.cryptoKeyDecrypter
) zu verwenden. Wenn Sie Cloud KMS für kryptografische Vorgänge verwenden, fallen Gebühren an. Weitere Informationen finden Sie unter Cloud Key Management Service – Preise.
Die Cloud Healthcare-API verwendet diesen Schlüssel, um den Betrag zu berechnen, nach dem Datumsangaben (z. B. das Geburtsdatum eines Patienten) innerhalb von 100 Tagen verschoben werden.
Wenn Sie keinen Schlüssel angeben, generiert die Cloud Healthcare API bei jeder Ausführung des De-Identifizierungsvorgangs für Datumswerte einen eigenen Schlüssel. Das kann zu inkonsistenten Datumsausgaben zwischen Ausführungen führen.
Die folgenden Beispiele zeigen, wie Sie die infoTypes DATE
und DATE_OF_BIRTH
mit der Transformation DateShiftConfig
für eine DICOM-Instanz festlegen. Nachdem die De-Identifikationsanfrage an die Cloud Healthcare API gesendet wurde, ändern sich die Datumswerte in der Instanz innerhalb von mehr oder weniger 100 Tagen nach ihren ursprünglichen Werten.
Der bereitgestellte Cryptokey U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=
ist ein AES-verschlüsselter Base64-codierter 256-Bit-Standardschlüssel, der mit dem folgenden Befehl generiert wird. Bei entsprechender Aufforderung wird dem Befehl ein leeres Passwort bereitgestellt:
echo -n "test" | openssl enc -e -aes-256-ofb -a -salt
Nachdem Sie das Bild mit der Transformation dateShiftConfig
an die Cloud Healthcare API gesendet haben, wird das Bild wie folgt angezeigt:
REST
De-identifizieren Sie das Dataset.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- SOURCE_DATASET_ID: Die ID des Datasets, das die zu de-identifizierenden Daten enthält
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
JSON-Text der Anfrage:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "DATE", "DATE_OF_BIRTH" ], "dateShiftConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } }
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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "DATE", "DATE_OF_BIRTH" ], "dateShiftConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } 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: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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "DATE", "DATE_OF_BIRTH" ], "dateShiftConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } '@ | 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:deidentify" | Select-Object -Expand Content- Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud-Projekts
- DATASET_ID: die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen. - 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, eine Serien-UID und eine Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/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 diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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 ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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 zeigt, dass StudyDate
(00080020
) und PatientBirthDate
(00100030
) neue Werte haben. Diese Transformationen erfolgten aufgrund der Kombination von 100 Tagen zwischen dem bereitgestellten cryptoKey
-Wert. Die neuen Datumswerte für diese Instanz zwischen der De-Identifikation werden ausgeführt, solange derselbe cryptoKey
bereitgestellt wird.
CryptoHashConfig
Sie können das Feld cryptoHashConfig
leer lassen oder einen der folgenden Werte angeben:
- (Verworfen): Ein AES-128/192/256-Bit-Base-64-codierter Standardschlüssel.
- (Empfohlen): Ein verpackter Cloud Key Management Service-Schlüssel (Cloud KMS). Ein Beispiel für die Verwendung von verpackten Cloud KMS-Schlüsseln finden Sie unter Sensiblen Text de-identifizieren und re-identifizieren.
Sie müssen dem Dienstkonto Cloud Healthcare-Dienst-Agent eine Rolle mit der Berechtigung cloudkms.cryptoKeyVersions.useToDecrypt
zuweisen, um den verpackten Cloud KMS-Schlüssel zu entschlüsseln. Wir empfehlen, die Rolle Cloud KMS CryptoKey-Entschlüsseler (roles/cloudkms.cryptoKeyDecrypter
) zu verwenden. Wenn Sie Cloud KMS für kryptografische Vorgänge verwenden, fallen Gebühren an. Weitere Informationen finden Sie unter Cloud Key Management Service – Preise.
Die Cloud Healthcare API kann Daten durch die Ersetzung von Werten durch kryptografische Hashes (auch als Ersatzwerte bezeichnet) transformieren. Geben Sie dazu eine Nachricht vom Typ cryptoHashConfig
an.
Wenn Sie keinen Schlüssel angeben, generiert die Cloud Healthcare API einen Schlüssel. Die Cloud Healthcare API verwendet diesen Schlüssel, um Ersatzwerte zu generieren. Wenn Sie für jede Ausführung denselben Schlüssel angeben, generiert die Cloud Healthcare API konsistente Ersatzwerte. Wenn Sie keinen Schlüssel angeben, generiert die Cloud Healthcare API bei jeder Ausführung des Vorgangs einen neuen Schlüssel. Die Verwendung eines anderen Schlüssels führt zu anderen Ersatzwerten.
Die folgenden Beispiele zeigen, wie eine cryptoHashConfig
-Transformation auf alle standardmäßigen DICOM-infoTypes angewendet wird, die von der Cloud Healthcare API unterstützt werden. Nach dem Senden der De-Identifizierungsanfrage werden die Werte mit einem entsprechenden DICOM-infoType in der Cloud Healthcare API durch Ersatzwerte ersetzt.
Das Beispiel zeigt auch, wie Sie einen Cryptokey bereitstellen, um zwischen De-Identifikationsausführungen konsistente Ersatzwerte zu generieren.
Der bereitgestellte Cryptokey U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=
ist ein AES-verschlüsselter Base64-codierter 256-Bit-Standardschlüssel, der mit dem folgenden Befehl generiert wird. Bei entsprechender Aufforderung wird dem Befehl ein leeres Passwort bereitgestellt:
echo -n "test" | openssl enc -e -aes-256-ofb -a -salt
Nachdem Sie das Bild mit der Transformation cryptoHashConfig
an die Cloud Healthcare API gesendet haben, wird das Bild wie folgt angezeigt:
REST
De-identifizieren Sie das Dataset.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- SOURCE_DATASET_ID: Die ID des Datasets, das die zu de-identifizierenden Daten enthält
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
JSON-Text der Anfrage:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "cryptoHashConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } }
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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "cryptoHashConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } 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: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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "cryptoHashConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } '@ | 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:deidentify" | Select-Object -Expand Content- Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud-Projekts
- DATASET_ID: die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen. - 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, eine Serien-UID und eine Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/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 diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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 ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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 Transformationen in der Ausgabe sind für diese Instanz zwischen den De-Identifikationsvorgängen konsistent, sofern derselbe cryptoKey
angegeben wird.
ReplaceWithInfoTypeConfig
Wenn Sie replaceWithInfoTypeConfig
angeben, werden Eingabewerte durch den Namen des infoType des Werts ersetzt.
Die folgenden Beispiele zeigen, wie eine replaceWithInfoTypeConfig
-Transformation auf alle standardmäßigen DICOM-infoTypes angewendet wird, die von der Cloud Healthcare API unterstützt werden.
Die replaceWithInfoTypeConfig
-Meldung hat keine Argumente. Allein dadurch, dass sie angegeben wird, wird ihre Transformation aktiviert.
Nachdem Sie das Bild mit der Transformation replaceWithInfoTypeConfig
an die Cloud Healthcare API gesendet haben, wird das Bild wie folgt angezeigt:
REST
De-identifizieren Sie das Dataset.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- SOURCE_DATASET_ID: Die ID des Datasets, das die zu de-identifizierenden Daten enthält
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
JSON-Text der Anfrage:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "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/v1/projects/PROJECT_ID/locations/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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud-Projekts
- DATASET_ID: die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen. - 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, eine Serien-UID und eine Instanz-UID. Daher müssen Sie zuerst im neuen Dataset nach der de-identifizierten Instanz suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- SOURCE_DATASET_LOCATION: Speicherort des Quell-Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Rufen Sie mit den neuen Werten die Metadaten für die Instanz ab.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten Daten geschrieben werden
- DESTINATION_DICOM_STORE_ID: die ID des DICOM-Speichers im Ziel-Dataset. Diese ID 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/v1/projects/PROJECT_ID/locations/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 diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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 ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
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:
- Ändern Sie
destinationDataset
im Anfragetext indestinationStore
. - Fügen Sie
dicomStores/DESTINATION_DICOM_STORE_ID
am Ende des Werts indestinationStore
hinzu, wenn Sie das Ziel angeben. - Fügen Sie
dicomStores/SOURCE_DICOM_STORE_ID
hinzu, wenn Sie den Speicherort der Quelldaten angeben.
Beispiel:
De-Identifikation auf Dataset-Ebene
"destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID" ... "https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"
Die folgenden Beispiele erweitern die Kombination von Tag-De-Identifikation und ausgeblendeter Textentfernung, die De-Identifikation erfolgt jedoch in einem einzelnen DICOM-Speicher und die de-identifizierten Daten werden in einen neuen DICOM-Speicher kopiert. Bevor Sie die Beispiele ausführen, muss der von DESTINATION_DICOM_STORE_ID referenzierte DICOM-Speicher bereits vorhanden sein.
Console
Führen Sie die folgenden Schritte aus, um Daten mithilfe der Google Cloud Console in einem DICOM-Speicher zu de-identifizieren.
Rufen Sie in der Google Cloud Console die Seite „Datasets” auf.
Klicken Sie auf das Dataset, das die Daten enthält, die Sie de-identifizieren möchten.
Wählen Sie in der Liste der DICOM-Speicher in der Liste Aktionen für den DICOM-Speicher, den Sie de-identifizieren möchten, die Option De-identifizieren aus.
Die Seite DICOM-Speicher de-identifizieren wird angezeigt.
Wählen Sie Zieldatenspeicher festlegen und das Dataset und den DICOM-Speicher aus, in dem die de-identifizierten Daten gespeichert werden.
Wählen Sie DICOM-Tag-De-Identifikation aus, um zu konfigurieren, wie Daten de-identifiziert werden. Daten können folgendermaßen de-identifiziert werden:
KEEP_ALL_PROFILE
: Alle DICOM-Meta-Tags beibehaltenDEIDENTIFY_TAG_CONTENTS
: Daten in Meta-Tags de-identifizierenATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE
: Entfernt Meta-Tags gemäß dem Basisprofil im DICOM-StandardMINIMAL_KEEP_LIST_PROFILE
: Nur die für ein gültiges DICOM-Objekt erforderlichen Meta-Tags werden beibehalten- Überspringen der ID-Entfernung: Generiert UID-Felder gemäß dem DICOM-Standard neu
Wählen Sie DICOM gebrannte Textentfernung aus, um zu konfigurieren, wie die Bildentfernung während der De-Identifikation durchgeführt wird. Sie können die Image-Entfernung wie folgt konfigurieren:
REDACT_NO_TEXT
: Entfernen Sie keinen Text in BildernREDACT_SENSITIVE_TEXT
: Nur sensiblen Text in Bildern entfernenREDACT_ALL_TEXT
: Gesamten Text in Bildern entfernen
Klicken Sie auf De-identifizieren, um die Daten im DICOM-Speicher zu de-identifizieren.
REST
De-identifizieren Sie das Dataset.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- SOURCE_DATASET_ID: Die ID des Datasets, das die zu de-identifizierenden Daten enthält
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten 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
JSON-Text der Anfrage:
{ "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" } } }
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" } } } 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" } } } '@ | 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- Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud-Projekts
- DATASET_ID: die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen.
Die 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 in der Filterdatei, die Sie beim Aufrufen des De-Identifizierungsvorgangs übergeben haben, keine Studie, Serie oder Instanz angegeben ist, wird diese Studie, Serie oder Instanz nicht de-identifiziert und sie wird nicht im DICOM-Zielspeicher vorhanden sein.
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:
Fragen Sie nach den Studien-, Serien- und Instanz-UIDs, 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]
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.
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 gcloud storage cp
eine Filterdatei in einen Cloud Storage-Bucket hochladen:
gcloud storage cp PATH/TO/FILTER_FILE gs://BUCKET/DIRECTORY
Beispiel:
gcloud storage cp /home/user/Desktop/filters.txt gs://my-bucket/my-directory
Filter verwenden
Nachdem Sie die Filterdatei konfiguriert haben, können Sie sie als Wert an das Feld resourcePathsGcsUri
im Objekt filterConfig
übergeben.
Das folgende Beispiel wird auf die De-Identifikation von Daten auf DICOM-Speicherebene erweitert. In Cloud Storage wird jedoch eine Filterdatei bereitgestellt, die bestimmt, welche DICOM-Ressourcen de-identifiziert werden.
REST
De-identifizieren Sie das Dataset.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- SOURCE_DATASET_ID: Die ID des Datasets, das die zu de-identifizierenden Daten enthält
- DESTINATION_DATASET_ID: die ID des Ziel-Datasets, in das die de-identifizierten 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 der Anfrage:
{ "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- Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud-Projekts
- DATASET_ID: die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit 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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen.
Fehlerbehebung bei DICOM-De-Identifikationsvorgängen
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.