Auf dieser Seite wird erläutert, wie Sie virtuelle Schnitte (Whole Slide Images, WSIs) mit der Cloud Healthcare API speichern, analysieren und verwalten.
Übersicht
Die digitale Pathologie ermöglicht das Speichern, Verarbeiten und Verwalten von konventionellen Objektträgern. Dazu werden diese digitalisiert, um virtuelle Schnitte (Whole Slide Images, WSIs) zu erstellen.
WSIs sind normalerweise große Dateien, die bis zu mehreren GB groß sein können. Sie können verschiedene Dateiformate verwenden, was die Verwaltung erschwert. Die Cloud Healthcare API vereinfacht den Speichern, Analysieren und Verwalten von WSIs.
Virtuelle Schnitte mit DICOM speichern
Die Cloud Healthcare API bietet einen verwalteten Dienst zum Speichern von DICOM-Images. Dieser Dienst unterstützt auch das Speichern und Abrufen von WSIs. Weitere Informationen zu DICOM in der Cloud Healthcare API finden Sie unter DICOM.
Die Verwendung von DICOM hat folgende Vorteile:
- Unterstützt mehrere Anbieter und Softwareversionen.
- DICOM ist ein Dateiformat und auch ein Netzwerkprotokoll, das die DICOMweb und DIMSE APIs definiert. Diese APIs werden zum Abrufen und Speichern von DICOM-Instanzen verwendet, bieten umfangreiche Funktionen und vereinfachen die Interaktion mit Bildern.
Virtuelle Schnitte in DICOM konvertieren
Die meisten WSI-Scanner erzeugen keine DICOM-Dateien nativ von WSIs. Daher müssen Sie die WCI-Werte in DICOM-Dateien manuell konvertieren.
WSIs kann mit den folgenden Tools in DICOM konvertiert werden:
Im folgenden Abschnitt wird gezeigt, wie Sie mit dem wsi2dcm-Befehlszeilentool DICOM-Dateien generieren.
DICOM-Dateien mit dem wsi2dcm-Befehlszeilentool generieren
Prüfen Sie vor dem Ausführen der folgenden Schritte, ob Sie eine gültige WSI-Datei haben. Beispieldaten sind von OpenSlide und anderen Ressourcen auf der Website der Digital Pathology Association verfügbar.
Führen Sie das wsi2dcm-Befehlszeilentool aus:
wsi2dcm \ --input=INPUT_WSI \ --outFolder=PATH/TO/OUTPUT/FOLDER \ --seriesDescription=WSI_DESCRIPTION
Dabei gilt:
- INPUT_WSI ist der Pfad und der Name der WSI-Datei.
- PATH/TO/OUTPUT/FOLDER ist der Pfad, in dem das Tool die konvertierte DICOM-Datei ausgibt.
- WSI_DESCRIPTION ist eine Beschreibung Ihrer Wahl für die konvertierte DICOM-Datei.
Durch die Ausführung des Tools werden mehrere DICOM-Dateien aus dem WSI generiert. Die DICOM-Dateien haben das Suffix .dcm
.
DICOM-Dateien in die Cloud Healthcare API hochladen
Wenn Sie noch keinen DICOM-Speicher erstellt haben, tun Sie dies jetzt.
Sie können die generierten DICOM-Dateien mit einer der folgenden Methoden in einen DICOM-Speicher hochladen:
- Dateien über die Implementierung der DICOMweb-Store-Transaktion der Cloud Healthcare API direkt speichern
- Dateien mit dem DICOMweb-Befehlszeilentool speichern
DICOM-Dateien und zugehörige Metadaten abrufen
Nach dem Hochladen der DICOM-Dateien in einen DICOM-Speicher können Sie Metadaten zu den DICOM-Bildern auflisten und anzeigen.
Alle WSIs auflisten
Jeder WSI ist eine DICOM-Studie. Rufen Sie zum Auflisten der WSIs die Methode dicomStores.searchForStudies
auf:
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID ist das übergeordnete Dataset des DICOM-Speichers
- DICOM_STORE_ID ist die ID des DICOM-Speichers
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/dicomStores/DICOM_STORE_ID/dicomWeb/studies"
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/dicomStores/DICOM_STORE_ID/dicomWeb/studies" | Select-Object -Expand Content
APIs 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:
WSI-Metadaten ansehen
Jede Studie enthält mehrere Instanzen und jede Instanz enthält einen Teil der Kacheln eines WSI. Rufen Sie die Methode dicomStores.searchForInstances
auf, um die Instanzmetadaten für eine Instanz in der Studie aufzurufen:
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID ist das übergeordnete Dataset des DICOM-Speichers
- DICOM_STORE_ID ist die ID des DICOM-Speichers
- STUDY_INSTANCE_UID ist die eindeutige Kennung (Unique Identifier, UID) der Studieninstanz
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/dicomStores/DICOM_STORE_ID/dicomWeb/instances?StudyInstanceUID=STUDY_INSTANCE_UID"
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/dicomStores/DICOM_STORE_ID/dicomWeb/instances?StudyInstanceUID=STUDY_INSTANCE_UID" | Select-Object -Expand Content
APIs 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:
WSI-Kacheln ansehen
Jede Instanz enthält in der Regel mehrere Frames. Ein Frame stellt eine Kachel des WSI auf einer bestimmten Zoomstufe im WSI "pyramid" dar.
Rufen Sie die Methode frames.retrieveRendered
auf, um einen einzelnen Frame im JPEG-Format abzurufen:
curl
Wenn Sie einen einzelnen Frame im JPEG-Format abrufen möchten, senden Sie eine GET
-Anfrage und geben Sie die folgenden Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des DICOM-Speichers
- Die UID der Studie
- Die Serien-UID
- Die Instanz-UID
- Ein Zugriffstoken
Das folgende Beispiel zeigt eine GET
-Anfrage mit curl
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Accept: image/jpeg" \ --output FILENAME \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/frames/0/rendered"
Wenn die Anfrage erfolgreich ist, wird die JPEG-Datei auf Ihren Rechner geschrieben.
PowerShell
Wenn Sie einen einzelnen Frame im JPEG-Format abrufen möchten, senden Sie eine GET
-Anfrage und geben Sie die folgenden Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des DICOM-Speichers
- Die UID der Studie
- Die Serien-UID
- Die Instanz-UID
- Ein Zugriffstoken
Das folgende Beispiel zeigt eine GET
-Anfrage mit Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred"; "Accept" = "image/jpeg" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -OutFile FILENAME ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/frames/0/rendered"
Wenn die Anfrage erfolgreich ist, wird die JPEG-Datei auf Ihren Rechner geschrieben.
Alle virtuellen Schnitte abrufen
Mit der Methode instances.retrieveInstance
können Sie die gesamte Instanz abrufen, in der die WSIs enthalten sind:
curl
Um eine gesamte Instanz abzurufen, senden Sie eine GET
-Anfrage und geben Sie die folgenden Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des DICOM-Speichers
- Die UID der Studie
- Die Serien-UID
- Die Instanz-UID
- Ein Zugriffstoken
Das folgende Beispiel zeigt eine GET
-Anfrage mit curl
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Accept: application/dicom" \ --output FILENAME \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID"
Wenn die Anfrage erfolgreich ist, wird die DICOM-Datei auf Ihren Rechner geschrieben.
PowerShell
Um eine gesamte Instanz abzurufen, senden Sie eine GET
-Anfrage und geben Sie die folgenden Informationen an:
- Der Name des übergeordneten Datasets
- Der Name des DICOM-Speichers
- Die UID der Studie
- Die Serien-UID
- Die Instanz-UID
- Ein Zugriffstoken
Das folgende Beispiel zeigt eine GET
-Anfrage mit Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred"; "Accept" = "application/dicom" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -OutFile FILENAME ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID"
Wenn die Anfrage erfolgreich ist, wird die DICOM-Datei auf Ihren Rechner geschrieben.
Virtuelle Schnitte mit einem WSI-Betrachter ansehen
In den vorherigen Abschnitten wurde gezeigt, wie Sie die Metadaten eines WSIs anzeigen und einzelne Kacheln abrufen. Um den gesamten WSI anzusehen, müssen Sie einen WSI-Betrachter verwenden, der von DICOMweb unterstützt wird.
Die folgenden Betrachter sind mit der Cloud Healthcare API kompatibel:
Konvertierte WSI-DICOM-Dateien mit dem DICOMweb-WSI-Betrachter ansehen
Lesen Sie die folgenden Abschnitte, um die konvertierten WSCI-DICOM-Dateien mithilfe des DICOMweb-WSI-Betrachters darzustellen.
Betrachter herunterladen
Laden Sie den DICOMweb-WSI-Betrachter herunter:
git clone https://github.com/GoogleCloudPlatform/dicomweb-wsi-viewer.git
Clientschlüssel abrufen
Mit einem Clientschlüssel wird ein Nutzer authentifiziert, wenn er auf eine Anwendung zugreift. Sie betten den Clientschlüssel in den Quellcode des DICOM-Web-WSI-Betrachters ein. Führen Sie die folgenden Schritte aus, um einen Clientschlüssel abzurufen:
Rufen Sie in der Google Cloud Console die Seite Anmeldedaten auf.
Zur Seite "Anmeldedaten"Klicken Sie auf Anmeldedaten erstellen und wählen Sie OAuth-Client-ID aus.
Wählen Sie unter Anwendungstyp die Option Webanwendung aus.
Geben Sie einen Namen Ihrer Wahl ein.
Geben Sie unter Autorisierte JavaScript-Quellen und Autorisierte Weiterleitungs-URIs
http://localhost:8000
ein.Klicken Sie auf Erstellen und dann im angezeigten Fenster OAuth-Client auf OK. Kopieren Sie die Client-ID zur Verwendung im nächsten Abschnitt.
Clientschlüssel im Betrachter konfigurieren
Führen Sie die folgenden Schritte unter Verwendung der Client-ID aus, die Sie im vorherigen Abschnitt abgerufen haben:
Öffnen Sie die Datei
viewer.js
im Verzeichnisdicomweb-wsi-viewer
.Ersetzen Sie die folgende Zeile, damit sie Ihre Client-ID enthält:
const CLIENT_ID = 'INSERT-YOUR-CLIENT-ID-HERE'
Die Zeile sollte in etwa so aussehen:
const CLIENT_ID = 'PROJECT_ID-VALUE.apps.googleusercontent.com';
Speichern Sie die Datei.
OAuth-Zustimmungsbildschirm konfigurieren
Wenn Sie den OAuth-Zustimmungsbildschirm Ihres Google Cloud-Projekts noch nicht konfiguriert haben, führen Sie die folgenden Schritte aus:
Öffnen Sie den OAuth-Zustimmungsbildschirm.
Zum OAuth-ZustimmungsbildschirmWählen Sie unter Support-E-Mail-Adresse die E-Mail-Adresse aus, die als öffentlicher Kontakt angezeigt werden soll. Dies muss Ihre E-Mail-Adresse oder die einer Google-Gruppe sein, deren Inhaber Sie sind.
Geben Sie den Namen der Anwendung ein, der angezeigt werden soll.
Klicken Sie auf Bereich hinzufügen. Geben Sie im angezeigten Dialogfeld
https://www.googleapis.com/auth/cloud-healthcare
ein und klicken Sie dann auf Hinzufügen.Klicken Sie auf Speichern.
Zum Ändern von Informationen im OAuth-Zustimmungsbildschirm wie Produktname oder E-Mail-Adresse müssen Sie die vorherigen Schritte zur Konfiguration des Zustimmungsbildschirms wiederholen.
Wenn Sie bereits den OAuth-Zustimmungsbildschirm Ihres Google Cloud-Projekts konfiguriert haben, müssen Sie https://www.googleapis.com/auth/cloud-healthcare
im Dialogfeld Bereich hinzufügen hinzufügen.
DICOMweb-WSI-Betrachter ausführen
Führen Sie im Verzeichnis
dicomweb-wsi-viewer
den folgenden Befehl aus:python -m http.server 8000
Wechseln Sie auf dem Computer, auf dem Sie den vorherigen Befehl ausgeführt haben, zu
https://localhost:8000
.Klicken Sie in der Benutzeroberfläche auf Anmelden/Autorisieren, um den OAuth-Zustimmungsbildschirm aufzurufen. Erteilen Sie dem Betrachter die Berechtigung, auf Ihr Google Cloud-Projekt und die Cloud Healthcare API-Ressourcen zuzugreifen.