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 (GKE) die folgenden 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 herkömmlichen Protokollen und RESTful-Protokollen zu übersetzen. Beispielsweise können Sie aus dem C-STORE in das STOW-RS-Format umwandeln.

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.

Hinweis

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

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

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

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

    Enable the 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

Sie können diese Anleitung entweder in Cloud Shell oder in Ihrer lokalen Shell ausführen.

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

  • 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:

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • 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 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 Eigenschaften des Deployments mithilfe einer Deployment-Manifestdatei, bei der es sich in der Regel um eine YAML-Datei handelt. 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"

Dabei gilt:

  • 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). Die mit dem Load-Balancer können Sie das DIMSE-Element intern freigeben. Port (in diesem Handbuch 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

So rufen Sie die Pod die vom Deployment erstellt wurden, führen Sie den folgenden Befehl aus:

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.

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • 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 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. Nach dem Start der Instanz wird er 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.

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • 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 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:

    gcloud storage 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:

    gcloud storage 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 . --billing-project=PROJECT_ID
  3. Führen Sie den dcmsend aus. , der im 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

    Dabei gilt:

    • 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-Image 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. So rufen Sie die Logs auf: führen Sie die folgenden Schritte über die Google Cloud Console oder die kubectl-Tool:

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)

Prüfen Sie, ob die PACS-VM und die GKE Cluster werden im selben VPC-Netzwerk ausgeführt. 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 der Load-Balancer-Dienst oder der Adapter Pods sind im GKE-Cluster nicht korrekt eingerichtet. 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 nicht aktiviert wurde in dem Projekt, in dem der GKE-Cluster mit dem Adapter ausgeführt wird:

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.