PACS mit der Cloud Healthcare API verbinden

Auf dieser Seite wird erläutert, wie Sie mit dem Open-Source-DICOM-Adapter der Cloud Healthcare API in Google Kubernetes Engine folgende Aufgaben ausführen:

  • Bildarchivierungs- und Kommunikationssystem (Picture Archive and Communication System, PACS) mit der Cloud Healthcare API verbinden
  • DICOM-Daten aus dem PACS in einen DICOM-Speicher in der Cloud Healthcare API importieren

Dieser Leitfaden bietet eine einfache Möglichkeit, einen Prototyp mit Google Kubernetes Engine und einer virtuellen Maschine (VM) von Compute Engine einzurichten. Die Compute Engine-VM simuliert das lokale PACS. Weitere Informationen finden Sie in der README-Datei zum DICOM-Adapter.

DICOM-Adapter – Übersicht

Der Adapter besteht aus zwei Hauptkomponenten: dem Importadapter und dem Exportadapter. In dieser Anleitung wird gezeigt, wie Sie mit dem Importadapter DICOM-Images in einem DICOM-Speicher ablegen.

Verwenden Sie den DICOM-Adapter, um Daten zwischen traditionellen Protokollen und RESTful-Protokollen zu übertragen. Beispielsweise ist eine Übersetzung vom C-STORE-Format in das STOW-RS-Format möglich.

Kosten

In dieser Anleitung werden kostenpflichtige Komponenten von Google Cloud verwendet, darunter:

  • Cloud Healthcare API
  • Google Kubernetes Engine
  • Compute Engine

Sie können mithilfe des Preisrechners eine Kostenschätzung für Ihre voraussichtliche Nutzung erstellen. Neuen Cloud Platform-Nutzern steht möglicherweise einekostenlose Testversion zur Verfügung.

Hinweise

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Cloud Healthcare API, Google Kubernetes Engine, and Container Registry APIs aktivieren.

    Aktivieren Sie die APIs

  5. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  6. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  7. Cloud Healthcare API, Google Kubernetes Engine, and Container Registry APIs aktivieren.

    Aktivieren Sie die APIs

  8. Warten Sie, bis die GKE API und die zugehörigen Dienste aktiviert wurden. Dieser Vorgang kann einige Minuten dauern.
  9. Erstellen Sie einen DICOM-Speicher, falls noch nicht geschehen.

Shell auswählen

Verwenden Sie Cloud Shell oder Ihre lokale Shell, um diese Anleitung abzuschließen.

Cloud Shell ist eine Shell-Umgebung für die Verwaltung von Ressourcen, die in Google Cloud gehostet werden. Die folgenden Tools, die Sie in dieser Anleitung verwenden, sind in Cloud Shell vorinstalliert:

  • gcloud CLI: Stellt die primäre Befehlszeile für Google Cloud bereit
  • kubectl: Bietet die Befehlszeilenschnittstelle zum Ausführen von Befehlen für GKE-Cluster

So öffnen Sie Cloud Shell oder konfigurieren Ihre lokale Shell:

Cloud Shell

  1. Rufen Sie die Google Cloud Console auf.

    Google Cloud Console

  2. Klicken Sie in der oberen rechten Ecke der Console auf die Schaltfläche Google Cloud Shell aktivieren:

Im unteren Bereich der Konsole wird ein Frame für die Cloud Shell-Sitzung geöffnet. In dieser Shell führen Sie gcloud- und kubectl-Befehle aus.

Lokale Shell

Wenn Sie Ihre lokale Shell bevorzugen, müssen Sie die gcloud CLI installieren. Eine Anleitung finden Sie unter Google Cloud CLI installieren.

Adapter mit Google Kubernetes Engine bereitstellen

Der Importadapter und der Exportadapter sind containerisierte Anwendungen, die in einem vordefinierten Docker-Image in Container Registry bereitgestellt werden. In dieser Anleitung stellen Sie das dicom-import-adapter-Image bereit, das in einem GKE-Cluster ausgeführt werden soll.

Compute Engine-Dienstkontoberechtigungen erteilen

Folgen Sie der Anleitung unter Dienstkonten für Instanzen erstellen und aktivieren, um dem Compute Engine-Standarddienstkonto die Rolle roles/healthcare.dicomEditor zuzuweisen. Weitere Informationen finden Sie unter DICOM-Speicher-Rollen.

Cluster erstellen

gcloud

Führen Sie den Befehl gcloud container clusters create aus, um in GKE einen Cluster mit dem Namen dicom-adapter zu erstellen:

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

  • COMPUTE_ZONE: Die Zone, in der Ihr Cluster bereitgestellt wird. Eine Zone ist ein ungefährer regionaler Standort, an dem Ihre Cluster und deren Ressourcen bereitgestellt werden. Beispielsweise ist us-west1-a eine Zone in der Region us-west. Wenn Sie mit dem gcloud config set compute/zone-Befehl eine Standardzone festgelegt haben, überschreibt der Wert des Flags im vorherigen Befehl den Standardwert.

Führen Sie den folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud container clusters create dicom-adapter \
  --zone=COMPUTE_ZONE \
  --scopes=https://www.googleapis.com/auth/cloud-healthcare

Windows (PowerShell)

gcloud container clusters create dicom-adapter `
  --zone=COMPUTE_ZONE `
  --scopes=https://www.googleapis.com/auth/cloud-healthcare

Windows (cmd.exe)

gcloud container clusters create dicom-adapter ^
  --zone=COMPUTE_ZONE ^
  --scopes=https://www.googleapis.com/auth/cloud-healthcare

Sie sollten eine Antwort ähnlich der folgenden erhalten:

Creating cluster dicom-adapter in COMPUTE_ZONE... Cluster is being health-checked (master is healthy)...done.
Created [https://container.googleapis.com/v1/projects/PROJECT_ID/zones/COMPUTE_ZONE/clusters/dicom-adapter].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/COMPUTE_ZONE/dicom-adapter?project=PROJECT_ID
kubeconfig entry generated for dicom-adapter.
NAME           LOCATION    MASTER_VERSION  MASTER_IP        MACHINE_TYPE   NODE_VERSION   NUM_NODES  STATUS
dicom-adapter  COMPUTE_ZONE 1.18.16-gke.502   123.456.789.012  n1-standard-1  1.18.16-gke.502  3     RUNNING

Bereitstellung konfigurieren

Wenn Sie eine Anwendung in GKE bereitstellen, definieren Sie die Attribute des Deployments in einer Manifestdatei für das Deployment. Dies ist in der Regel eine YAML-Datei. Weitere Informationen zu Deployment-Manifestdateien finden Sie unter Deployments erstellen.

Erstellen Sie mit einem Texteditor eine Deployment-Manifestdatei für den Importadapter namens dicom_adapter.yaml mit folgendem Inhalt:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: dicom-adapter
spec:
  replicas: 1
  selector:
    matchLabels:
      app: dicom-adapter
  template:
    metadata:
      labels:
        app: dicom-adapter
    spec:
      containers:
        - name: dicom-import-adapter
          image: gcr.io/cloud-healthcare-containers/healthcare-api-dicom-dicomweb-adapter-import:0.2.43
          ports:
            - containerPort: 2575
              protocol: TCP
              name: "port"
          args:
            - "--dimse_aet=IMPORTADAPTER"
            - "--dimse_port=2575"
            - "--dicomweb_address=https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb"

Ersetzen Sie Folgendes:

  • PROJECT_ID: Die Projekt-ID
  • LOCATION: Speicherort des Datasets
  • DATASET_ID: ID des übergeordneten Datasets Ihres DICOM-Speichers
  • DICOM_STORE_ID: ID für den DICOM-Speicher, in den Sie DICOM-Daten importieren

Dienst konfigurieren

Sie müssen einen internen Load-Balancer konfigurieren, um den DICOM-Adapter für Anwendungen außerhalb des GKE-Clusters zugänglich zu machen (z. B. ein PACS). Mit dem Load-Balancer können Sie den DIMSE-Port intern freigeben (in diesem Leitfaden Port 2575).

Erstellen Sie eine Dienst-Manifestdatei, um das interne Load-Balancing zu konfigurieren. Erstellen Sie in dem Verzeichnis, in dem Sie die Deployment-Manifestdatei erstellt haben, mit einem Texteditor eine Datei namens dicom_adapter_load_balancer.yaml mit folgendem Inhalt. Unter Dienst und internen Load-Balancer bereitstellen erstellen Sie die Dienst-Manifestdatei und stellen diese bereit.

apiVersion: v1
kind: Service
metadata:
  name: dicom-adapter-load-balancer
  # The "Internal" annotation will result in an load balancer that can only
  # be accessed from within the VPC the Kubernetes cluster is in.
  # You can remove this annotation to get an externally accessible load balancer.
  annotations:
    cloud.google.com/load-balancer-type: "Internal"
spec:
  ports:
  - port: 2575
    targetPort: 2575
    protocol: TCP
    name: port
  selector:
    app: dicom-adapter
  type: LoadBalancer

Bereitstellung bereitstellen

Führen Sie folgenden Befehl in einem Verzeichnis mit der dicom_adapter.yaml-Manifestdatei in einem GKE-Cluster aus, um den Adapter in einem GKE-Cluster bereitzustellen:

kubectl apply -f dicom_adapter.yaml

Die Ausgabe sieht so aus:

deployment.apps/dicom-adapter created

Deployment prüfen

Nachdem Sie das Deployment erstellt haben, können Sie es mit dem kubectl-Tool prüfen.

Führen Sie den folgenden Befehl aus, um ausführliche Informationen zum Deployment zu erhalten:

kubectl describe deployment dicom-adapter

Führen Sie den folgenden Befehl aus, um den vom Deployment erstellten Pod anzuzeigen:

kubectl get pods -l app=dicom-adapter

Führen Sie den folgenden Befehl aus, um Informationen zum erstellten Pod abzurufen. Verwenden Sie dabei den Namen des Pods, der vom vorherigen Befehl zurückgegeben wurde:

kubectl describe pod POD_NAME

Wenn das Deployment erfolgreich war, enthält der letzte Teil der Ausgabe des vorherigen Befehls die folgenden Informationen: Der Adapter kann Anfragen verarbeiten, wenn der dicom-import-adapter-Container den Wert Started in der Spalte Reason hat.

Events:
  Type    Reason     Age    From                                                   Message
  ----    ------     ----   ----                                                   -------
  Normal  Scheduled  3m33s  default-scheduler                                      Successfully assigned default/dicom-adapter-69d579778-qrm7n to gke-dicom-adapter-default-pool-6f6e0dcd-9cdd
  Normal  Pulling    3m31s  kubelet, gke-dicom-adapter-default-pool-6f6e0dcd-9cdd  Pulling image "gcr.io/cloud-healthcare-containers/healthcare-api-dicom-dicomweb-adapter-import:0.2.43"
  Normal  Pulled     3m10s  kubelet, gke-dicom-adapter-default-pool-6f6e0dcd-9cdd  Successfully pulled image "gcr.io/cloud-healthcare-containers/healthcare-api-dicom-dicomweb-adapter-import:0.2.43"
  Normal  Created    3m7s   kubelet, gke-dicom-adapter-default-pool-6f6e0dcd-9cdd  Created container dicom-import-adapter
  Normal  Started    3m7s   kubelet, gke-dicom-adapter-default-pool-6f6e0dcd-9cdd  Started container dicom-import-adapter

Dienst und internen Load-Balancer bereitstellen

Führen Sie den folgenden Befehl aus, um den internen Load-Balancer in dem Verzeichnis zu erstellen, das die Manifestdatei des Dienstes dicom_adapter_load_balancer.yaml enthält:

kubectl apply -f dicom_adapter_load_balancer.yaml

Die Ausgabe sieht so aus:

service/dicom-adapter-load-balancer created

Dienst überprüfen

Nachdem Sie den Dienst erstellt haben, prüfen Sie, ob er korrekt konfiguriert wurde.

Führen Sie den folgenden Befehl aus, um den Load-Balancer zu prüfen:

kubectl describe service dicom-adapter-load-balancer

Die Ausgabe sieht so aus:

Name:                     dicom-adapter-load-balancer
Namespace:                default
Labels:                   <none>
Annotations:              cloud.google.com/load-balancer-type: Internal
Selector:                 app=dicom-adapter
Type:                     LoadBalancer
IP:                       198.51.100.1
LoadBalancer Ingress:     203.0.113.1
Port:                     port  2575/TCP
TargetPort:               2575/TCP
NodePort:                 port  30440/TCP
Endpoints:                192.0.2.1:2575
Session Affinity:         None
External Traffic Policy:  Cluster
Events:

Events:
  Type    Reason                Age   From                Message
  ----    ------                ----  ----                -------
  Normal  EnsuringLoadBalancer  1m    service-controller  Ensuring load balancer
  Normal  EnsuredLoadBalancer   1m    service-controller  Ensured load balancer

Es kann bis zu einer Minute dauern, bis die IP-Adresse LoadBalancer Ingress ausgefüllt ist. Speichern Sie die IP-Adresse LoadBalancer Ingress. Sie greifen damit im nächsten Abschnitt auf den Dienst von außerhalb des Clusters zu.

Compute Engine-VM erstellen

Erstellen Sie zum Simulieren Ihres lokalen PACS eine Compute Engine-VM, um Anfragen an den DICOM-Adapter zu senden. Da Sie einen internen Load-Balancer bereitgestellt haben, muss sich die von Ihnen erstellte VM und der vorhandene GKE-Cluster in derselben Region befinden und dasselbe VPC-Netzwerk verwenden.

Führen Sie die folgenden Schritte aus, um eine Linux-VM-Instanz in Compute Engine zu erstellen:

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu Seite „VM-Instanzen“

  2. Klicken Sie auf Instanz erstellen.

  3. Wählen Sie eine Region und eine Zone für die Instanz aus, die der Zone entspricht, die Sie beim Erstellen des Clusters ausgewählt haben. Wenn Sie beispielsweise us-central1-a für die COMPUTE_ZONE beim Erstellen des Clusters verwendet haben, wählen Sie us-central1 (Iowa) für die Region und us-central1-a für die Zone aus.

  4. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um Ihr Bootlaufwerk zu konfigurieren.

  5. Wählen Sie auf dem Tab Öffentliche Images die Version 9 des Debian-Betriebssystems aus.

  6. Klicken Sie auf Auswählen.

  7. Wählen Sie im Bereich Firewall die Option HTTP-Traffic zulassen aus.

  8. Klicken Sie auf Erstellen, um die Instanz zu erstellen.

gcloud

Führen Sie den Befehl gcloud compute instances create aus. Der Befehl verwendet das Tag http-server, um HTTP-Traffic zuzulassen.

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

  • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
  • COMPUTE_ZONE: Die Zone die Sie beim Erstellen des Clusters festgelegt haben
  • INSTANCE_NAME: Der Name der VM

Führen Sie den folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud compute instances create INSTANCE_NAME \
  --project=PROJECT_ID \
  --zone=COMPUTE_ZONE \
  --image-family=debian-9 \
  --image-project=debian-cloud \
  --tags=http-server

Windows (PowerShell)

gcloud compute instances create INSTANCE_NAME `
  --project=PROJECT_ID `
  --zone=COMPUTE_ZONE `
  --image-family=debian-9 `
  --image-project=debian-cloud `
  --tags=http-server

Windows (cmd.exe)

gcloud compute instances create INSTANCE_NAME ^
  --project=PROJECT_ID ^
  --zone=COMPUTE_ZONE ^
  --image-family=debian-9 ^
  --image-project=debian-cloud ^
  --tags=http-server

Sie sollten eine Antwort ähnlich der folgenden erhalten:

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/COMPUTE_ZONE/instances/INSTANCE_NAME].
NAME          ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
INSTANCE_NAME  COMPUTE_ZONE           n1-standard-1               INTERNAL_IP  EXTERNAL_IP    RUNNING

Warten Sie, bis die Instanz gestartet ist. Nachdem die Instanz gestartet wurde, wird sie auf der Seite der VM-Instanzen mit einem grünen Statussymbol angezeigt.

Verbindung zur VM herstellen

Führen Sie folgende Schritte aus, um eine Verbindung zur VM herzustellen:

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu Seite „VM-Instanzen“

  2. Klicken Sie in der Liste der VM-Instanzen in der Zeile der von Ihnen erstellten Instanz auf SSH.

gcloud

Führen Sie den Befehl gcloud compute ssh aus.

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

  • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
  • COMPUTE_ZONE ist die Zone der VM
  • INSTANCE_NAME ist der Name der VM

Führen Sie den folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud compute ssh INSTANCE_NAME \
  --project PROJECT_ID \
  --zone COMPUTE_ZONE

Windows (PowerShell)

gcloud compute ssh INSTANCE_NAME `
  --project PROJECT_ID `
  --zone COMPUTE_ZONE

Windows (cmd.exe)

gcloud compute ssh INSTANCE_NAME ^
  --project PROJECT_ID ^
  --zone COMPUTE_ZONE

Sie haben nun ein Terminalfenster, über das Sie mit Ihrer Linux-Instanz interagieren können.

DICOM-Images in den DICOM-Speicher importieren

Es gibt mehrere Softwareoptionen, mit denen Sie DICOM-Images über ein Netzwerk senden können. In den folgenden Abschnitten verwenden Sie das DCMTK-DICOM-Toolkit.

Führen Sie die folgenden Schritte von der im vorherigen Abschnitt erstellten VM aus, um DICOM-Images in den DICOM-Speicher zu importieren:

  1. Installieren Sie die DCMTK-DICOM-Toolkit-Software:

    sudo apt-get install -y dcmtk
    
  2. Speichern Sie das DICOM-Image auf der VM. Wenn das DICOM-Image beispielsweise in einem Cloud Storage-Bucket gespeichert ist, führen Sie den folgendem Befehl aus, um es in Ihr aktuelles Arbeitsverzeichnis herunterzuladen:

    gsutil cp gs://BUCKET/DCM_FILE .
    

    Führen Sie den folgenden Befehl aus, um ein von Google Cloud kostenlos zur Verfügung gestelltes DICOM-Image aus dem Dataset gcs-public-data--healthcare-tcia-lidc-idri zu verwenden:

    gsutil -u PROJECT_ID cp gs://gcs-public-data--healthcare-tcia-lidc-idri/dicom/1.3.6.1.4.1.14519.5.2.1.6279.6001.100036212881370097961774473021/1.3.6.1.4.1.14519.5.2.1.6279.6001.130765375502800983459674173881/1.3.6.1.4.1.14519.5.2.1.6279.6001.100395847981751414562031366859.dcm .
    
  3. Führen Sie den Befehl dcmsend aus, der über das DCMTK-DICOM-Toolkit verfügbar ist. Setzen Sie den Titel der Anwendungsentität (AE) auf IMPORTADAPTER, wenn Sie den Befehl ausführen. Sie können optional das Flag --verbose hinzufügen, um die Verarbeitungsdetails aufzurufen. Der in dieser Anleitung verwendete Port ist 2575.

    dcmsend --verbose PEER 2575 DCM_FILE_IN -aec IMPORTADAPTER
    

    Ersetzen Sie Folgendes:

    • PEER: Die LoadBalancer Ingress-IP-Adresse, die bei der Prüfung des Dienstes zurückgegeben wurde
    • DCMFILE_IN: Der Pfad zum DICOM-Image auf der VM

    Wenn Sie dcmsend mit einem einzelnen DICOM-Bild ausführen, sieht die Ausgabe so aus:

    I: checking input files ...
    I: starting association #1
    I: initializing network ...
    I: negotiating network association ...
    I: Requesting Association
    I: Association Accepted (Max Send PDV: 16366)
    I: sending SOP instances ...
    I: Sending C-STORE Request (MsgID 1, MR)
    I: Received C-STORE Response (Success)
    I: Releasing Association
    I:
    I: Status Summary
    I: --------------
    I: Number of associations   : 1
    I: Number of pres. contexts : 1
    I: Number of SOP instances  : 1
    I: - sent to the peer       : 1
    I:   * with status SUCCESS  : 1
    
  4. Wenn Sie prüfen möchten, ob das DICOM-Image erfolgreich in den DICOM-Speicher importiert wurde, suchen Sie im DICOM-Speicher nach Instanzen und vergewissern Sie sich, dass sich das neue DICOM-Image im Speicher befindet.

Nachdem Sie diesen Abschnitt abgeschlossen haben, haben Sie den DICOM-Adapter erfolgreich in GKE bereitgestellt und ein DICOM-Image von einer PACS-Instanz über den Adapter an die Cloud Healthcare API gesendet.

Fehlerbehebung

Fehlerbehebung für GKE

Wenn der DICOM-Adapter nach der Bereitstellung in GKE einen Fehler feststellt, führen Sie die Schritte unter Fehlerbehebung bei bereitgestellten Arbeitslasten aus.

Fehlerbehebung für Adapter

Die Import- und Exportadapter generieren Logs, die Sie zur Diagnose von Problemen verwenden können. Wenn Sie einen Adapter mit GKE ausführen, werden die Logs in Cloud Logging gespeichert. Führen Sie zum Ansehen der Logs die folgenden Schritte über die Google Cloud Console oder das kubectl-Tool aus:

Console

  1. Rufen Sie in der Google Cloud Console das GKE-Dashboard "Arbeitslasten" auf.

    Zu GKE-Arbeitslasten

  2. Wählen Sie die Arbeitslast dicom-adapter aus.

  3. Klicken Sie auf der Seite Deployment-Details auf Containerlogs.

kubectl

Führen Sie den folgenden Befehl aus, um alle in Ihrem Cluster ausgeführten Pods anzusehen:

kubectl get pods

Suchen Sie nach dem Pod, dessen Name mit dicom-adapter beginnt.

Führen Sie den folgenden Befehl aus, um die Logs des Pods abzurufen:

kubectl logs POD_NAME

Wenn Sie einen der Schritte in dieser Anleitung verpasst haben, kann der dcmsend-Befehl Bilder eventuell nicht hochladen. Führen Sie den Befehl mit dem -d-Flag noch einmal aus (für "Debugging"), um dieses Problem zu untersuchen. Das Flag gibt ein ausführlicheres Aktionsprotokoll aus, einschließlich Nachrichten, die Informationen zum Fehler enthalten.

Fehlerbehebung bei Berechtigungen und Autorisierungen

In folgenden Abschnitten werden Fehler beschrieben, die in dcmsend auftreten können, wenn Berechtigungen oder Autorisierungen falsch konfiguriert sind.

Fehler "Peering-Verbindung abgebrochen"

Das folgende Problem tritt auf, wenn Netzwerktraffic nicht vom PACS zum Port 2575 des Load-Balancers fließen kann:

cannot send SOP instance: Peer aborted Association (or never connected)

Achten Sie zum Beheben dieses Problems darauf, dass die PACS-VM und der GKE-Cluster im selben VPC-Netzwerk ausgeführt werden. Werden sie nicht im selben VPC-Netzwerk ausgeführt, prüfen Sie Folgendes:

  • Der Load-Balancer darf nicht als "intern" konfiguriert sein.
  • Es sind keine Firewallregeln vorhanden, die Verbindungen zu Port 2575 blockieren.

Dieser Fehler kann auch auftreten, wenn entweder der Load-Balancer-Dienst oder der Adapter-Pod im GKE-Cluster nicht richtig eingerichtet sind. Um sicherzustellen, dass diese Elemente ordnungsgemäß eingerichtet sind, lesen Sie die Informationen unter Deployment prüfen und Dienst prüfen in dieser Anleitung.

Fehler "Erforderliche APIs nicht aktiviert"

Das folgende Problem tritt auf, wenn die Cloud Healthcare API in dem Projekt, in dem der GKE-Cluster mit dem Adapter ausgeführt wird, nicht aktiviert wurde:

LO [Http_403, PERMISSION_DENIED, Cloud Healthcare API has not been u]

Prüfen Sie, ob alle erforderlichen APIs aktiviert sind, um dieses Problem zu beheben. Folgen Sie dazu der Anleitung unter Vorbereitung.

Fehler bei unzureichendem Bereich

Das folgende Problem tritt auf, wenn für den GKE-Cluster, in dem der Adapter ausgeführt wird, nicht der richtige Bereichswert festgelegt ist:

LO [Http_403, PERMISSION_DENIED, Request had insufficient authentica]

Aktualisieren Sie den GKE-Cluster oder erstellen Sie einen neuen Cluster mit dem folgenden Flag, um dieses Problem zu beheben:

--scopes=https://www.googleapis.com/auth/cloud-healthcare

Fehler "DICOM-Speicherberechtigung verweigert"

Der folgende Fehler tritt auf, wenn das vom GKE-Cluster verwendete Dienstkonto, in dem der Adapter ausgeführt wird, nicht die Rolle roles/healthcare.dicomEditor hat:

LO [Http_403, PERMISSION_DENIED, Permission healthcare.dicomStores.d]

Folgen Sie der Anleitung unter Compute Engine-Dienstkontoberechtigungen erteilen, um dieses Problem zu beheben.

Nächste Schritte

Nachdem Sie den Prototyp in diesem Leitfaden konfiguriert haben, können Sie mit Cloud VPN den Traffic zwischen Ihrem PACS und der Cloud Healthcare API verschlüsseln.